ノート: GitHub Packagesは現在GitHub Enterprise Server 2.22でベータです。 GitHub Enterprise Serverのインスタンスのベータに参加するには、サインアップフォームを使ってください。
デフォルトでは、GitHubはパッケージはそのままの名前で既存のリポジトリに公開されます。 たとえば、GitHubはOWNER/test
というリポジトリ内のcom.example:test
という名前のパッケージを公開します。
GitHub Packages への認証を行う
GitHub Packagesでパッケージを公開、インストール、削除するにはアクセストークンが必要です。
GitHub Packages、あるいはGitHub APIで認証を受けるのに、個人のアクセストークン(PAT)が利用できます。 個人トークンを作成する際には、必要に応じて様々なスコープをトークンに割り当てできます。 PATに関するパッケージ関連のスコープについての詳しい情報は、「GitHub Packagesの権限について」を参照してください。
GitHub Actionsワークフロー内でGitHub Packagesレジストリに認証を受けるには、以下の方法が使えます。
GITHUB_TOKEN
を使って、ワークフローリポジトリに関連づけられたパッケージを公開。- PATで他のプライベートリポジトリ(これには
GITHUB_TOKEN
がアクセスできない)に関連づけられたパッケージをインストール。
GitHub Actionsワークフローで使われるGITHUB_TOKEN
に関する詳しい情報については「ワークフローでの認証」を参照してください。 GradleとのGITHUB_TOKEN
の利用に関する詳しい情報については、「GradleでのJavaパッケージの公開」を参照してください。
個人アクセストークンでの認証
GitHub Packages内でパッケージを公開及びインストールするためには、適切なスコープで個人アクセストークンを使わなければなりません。 詳しい情報については「GitHub Packagesについて」を参照してください。
Gradle GroovyもしくはKotlin DSLを使って、GradleでGitHub Packagesに認証を受けることができます。それには、build.gradleファイル(Gradle Groovy)もしくはbuild.gradle.ktsファイル(Kotlin DSL)ファイルを編集して、個人アクセストークンを含めます。 リポジトリ中の単一のパッケージもしくは複数パッケージを認識するようにGradle Groovy及びKotlin DSLを設定することもできます。
REGISTRY-URL をインスタンスの Maven レジストリの URL に置き換えます。 インスタンスで Subdomain Isolation が有効になっている場合は、maven.HOSTNAME
を使用します。 インスタンスで Subdomain Isolation が無効になっている場合は、HOSTNAME/_registry/maven
を使用します。 いずれの場合でも、 HOSTNAME を GitHub Enterprise Server インスタンスのホスト名に置き換えてください。
USERNAMEをGitHubのユーザ名で、TOKENを個人アクセストークンで、REPOSITORYを公開したいパッケージを含むリポジトリの名前で、OWNERをリポジトリを所有するGitHubのユーザもしくはOrganizationアカウント名で置き換えてください。 大文字はサポートされていないため、仮にGitHubのユーザあるいはOrganization名が大文字を含んでいても、リポジトリオーナーには小文字を使わなければなりません。
Note: GitHub PackagesはApache MavenのSNAPSHOT
バージョンをサポートしています。 SNAPSHOT
成果物をダウンロードするためにGitHub Packagesリポジトリを使うには、使用するプロジェクトのPOM中もしくは~/.m2/settings.xmlファイルでSNAPSHOTSを有効にしてください。 例として「GitHub Packagesで使用するためのApache Mavenの設定」を参照してください。
リポジトリ中の単一のパッケージのためにGradle Groovyを使う例
plugins {
id("maven-publish")
}
publishing {
repositories {
maven {
name = "GitHubPackages"
url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
credentials {
username = project.findProperty("gpr.user") ?: System.getenv("USERNAME")
password = project.findProperty("gpr.key") ?: System.getenv("TOKEN")
}
}
}
publications {
gpr(MavenPublication) {
from(components.java)
}
}
}
同じリポジトリ中の複数のパッケージのためにGradle Groovyを使う例
plugins {
id("maven-publish") apply false
}
subprojects {
apply plugin: "maven-publish"
publishing {
repositories {
maven {
name = "GitHubPackages"
url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
credentials {
username = project.findProperty("gpr.user") ?: System.getenv("USERNAME")
password = project.findProperty("gpr.key") ?: System.getenv("TOKEN")
}
}
}
publications {
gpr(MavenPublication) {
from(components.java)
}
}
}
}
同じリポジトリ中の単一パッケージのためにKotlin DSLを使う例
plugins {
`maven-publish`
}
publishing {
repositories {
maven {
name = "GitHubPackages"
url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
credentials {
username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN")
}
}
}
publications {
register<MavenPublication>("gpr") {
from(components["java"])
}
}
}
同じリポジトリ中の複数パッケージのためにKotlin DSLを使う例
plugins {
`maven-publish` apply false
}
subprojects {
apply(plugin = "maven-publish")
configure<PublishingExtension> {
repositories {
maven {
name = "GitHubPackages"
url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
credentials {
username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN")
}
}
}
publications {
register<MavenPublication>("gpr") {
from(components["java"])
}
}
}
}
パッケージを公開する
デフォルトでは、GitHubはパッケージはそのままの名前で既存のリポジトリに公開されます。 たとえば、GitHubはOWNER/test
GitHub Packagesリポジトリ内のcom.example.test
という名前のパッケージを公開します。
パッケージを公開した後は、GitHub上でそのパッケージを見ることができます。 詳しい情報については「パッケージの表示」を参照してください。
-
GitHub Packagesに認証を受けてください。 詳しい情報については「GitHub Packagesへの認証を行う」を参照してください。
-
パッケージを作成した後、そのパッケージを公開できます。
$ gradle publish
Using a published package
To use a published package from GitHub Packages, add the package as a dependency and add the repository to your project. 詳しい情報については、Gradleのドキュメンテーションの 「 Declaring dependencies」を参照してください。
-
GitHub Packagesに認証を受けてください。 詳しい情報については「GitHub Packagesへの認証を行う」を参照してください。
-
build.gradleファイル(Gradle Groovy)もしくはbuild.gradle.ktsファイル(Kotlin DSL)にパッケージの依存関係を追加してください。
Gradle Groovyの例:
dependencies { implementation 'com.example:package' }
Kotlin DSLの例:
dependencies { implementation("com.example:package") }
-
Add the repository to your build.gradle file (Gradle Groovy) or build.gradle.kts file (Kotlin DSL) file.
Gradle Groovyの例:
repositories { maven { url = uri("https://REGISTRY-URL/OWNER/REPOSITORY") credentials { username = project.findProperty("gpr.user") ?: System.getenv("USERNAME") password = project.findProperty("gpr.key") ?: System.getenv("TOKEN") } } }
Kotlin DSLの例:
repositories { maven { url = uri("https://REGISTRY-URL/OWNER/REPOSITORY") credentials { username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME") password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN") } } }