注: サイト管理者はそれぞれのサポートされているパッケージの種類を有効化あるいは無効化できるので、このパッケージの種類はインスタンスで利用できないかもしれません。 詳細については、「エンタープライズ向けのパッケージ サポートの構成」を参照してく� さい。
GitHub Packages への認証を行う
パッケージを発行、インストール、および削除するには、アクセス トークンが必要です。
個人アクセス トークン (PAT) を使用し、GitHub Packages または GitHub Enterprise Server API の認証を受けることができます。 個人トークンを作成する際には、必要に応じて様々なスコープをトークンに割り当てできます。 PAT のパッケージ関連のスコープの詳細については、「GitHub パッケージのアクセス許可について」を参照してく� さい。
GitHub Actionsワークフロー内でGitHub Packagesレジストリに認証を受けるには、以下の方法が使えます。
GITHUB_TOKEN
では、ワークフロー リポジトリに関連付けられているパッケージを発行します。packages:read
以上のスコープが設定された 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 のユーザーもしくは組織のアカウントに置き換えてく� さい。 大文字はサポートされていないため、仮にGitHubのユーザあるいはOrganization名が大文字を含んでいても、リポジトリオーナーには小文字を使わなければなりません。
注: GitHub Packages では Apache Maven の SNAPSHOT
バージョンがサポートされています。 SNAPSHOT
成果物のダウンロードに GitHub Packages リポジトリを使用するには、それを使用するプロジェクトまたは ~/.m2/settings.xml ファイルの POM で 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
公開されたパッケージの利用
GitHub Packagesから公開されたパッケージを使うには、そのパッケージを依存関係として追� し、リポジトリをプロジェクトに追� してく� さい。 詳細については、Gradle ドキュメントの「依存関係の宣言」を参照してく� さい。
-
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") }
-
リポジトリを build.gradle ファイル (Gradle Groovy) または build.gradle.kts ファイル (Kotlin DSL) ファイルに追� します。
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") } } }