注: サイト管理者はそれぞれのサポートされているパッケージの種類を有効化あるいは無効化できるので、このパッケージの種類はインスタンスで利用できないかもしれません。 詳細については、「エンタープライズ向けのパッケージ サポートの構成」を参照してく� さい。
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") } } }