Note: GitHub Packages is currently in beta for GitHub Enterprise Server 2.22. To join the beta for your your GitHub Enterprise Server instance, use the sign-up form.
デフォルトでは、GitHubはパッケージはそのままの名前で既存のリポジトリに公開されます。 たとえば、GitHubはOWNER/test
というリポジトリ内のcom.example:test
という名前のパッケージを公開します。
GitHub Packages への認証を行う
GitHub Packagesでパッケージを公開、インストール、削除するにはアクセストークンが必要です。 GitHub Packagesに直接、あるいはGitHub APIでユーザ名で認証を受けるのに、個人のアクセストークンが利用できます。 個人トークンを作成する際には、必要に応じて様々なスコープをトークンに割り当てできます。
To authenticate to
GitHub Packages using a GitHub Actions workflow, you must use GITHUB_TOKEN
.
個人アクセストークンでの認証
GitHub Packages内でパッケージを公開及びインストールするためには、適切なスコープで個人アクセストークンを使わなければなりません。 詳しい情報については「GitHub Packagesについて」を参照してください。
dotnet
コマンドラインインターフェース(CLI)でGitHub Packagesに認証を受けるには、プロジェクトディレクトリにnuget.configファイルを作成し、GitHub Packagesをソースとしてdotnet
CLIクライアントのpackageSources
の下に指定してください。
以下のように置き換えてください。
USERNAME
をGitHub上のユーザアカウント名で。TOKEN
を個人アクセストークンで。OWNER
with the name of the user or organization account that owns the repository containing your project.HOSTNAME
を、GitHub Enterprise Serverインスタンスのホスト名で。
パッケージの作成に関する詳しい情報についてはmaven.apache.orgのドキュメンテーションを参照してください。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="github" value="https://nuget.HOSTNAME/OWNER/index.json" />
</packageSources>
<packageSourceCredentials>
<github>
<add key="Username" value="USERNAME" />
<add key="ClearTextPassword" value="TOKEN" />
</github>
</packageSourceCredentials>
</configuration>
たとえば、以下のOctodogAppとOctocatAppは同じリポジトリに公開されます。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<PackageId>OctodogApp</PackageId>
<Version>1.0.0</Version>
<Authors>Octodog</Authors>
<Company>GitHub</Company>
<PackageDescription>This package adds an Octodog!</PackageDescription>
<RepositoryUrl>https://github.com/octo-org/octo-cats-and-dogs</RepositoryUrl>
</PropertyGroup>
</Project>
GITHUB_TOKEN
での認証
GitHub Actionsワークフローを使っているなら、GITHUB_TOKEN
を使い、個人アクセストークンを保存したり管理したりする必要なくGitHub Packages内のパッケージの公開や利用ができます。 詳しい情報については「GITHUB_TOKEN
での認証」を参照してください。
パッケージを公開する
You can publish a package to GitHub Packages by authenticating with a nuget.config file.
Publishing a package using a nuget.config file
公開の際には、nuget.config認証ファイルで使用するcsprojファイル中で、OWNER
に同じ値を使わなければなりません。 .csprojファイル中でバージョン番号を指定もしくはインクリメントし、dotnet pack
コマンドを使ってそのバージョンのための.nuspecファイルを作成してください。 For more information on creating your package, see "Create and publish a package" in the Microsoft documentation.
-
GitHub Packagesに認証を受けてください。 詳しい情報については「GitHub Packagesへの認証を行う」を参照してください。
-
新しいプロジェクトを作成してください。
dotnet new console --name OctocatApp
-
プロジェクト固有の情報をプロジェクトファイルに追加してください。プロジェクトファイルは.csprojで終わります。 以下のように置き換えてください。
OWNER
を、プロジェクトを含むリポジトリを所有しているユーザもしくはOrganizationアカウント名で。REPOSITORY
を、公開したいパッケージを含むリポジトリの名前で。1.0.0
with the version number of the package.HOSTNAME
を、GitHub Enterprise Serverインスタンスのホスト名で。
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> <PackageId>OctocatApp</PackageId> <Version>1.0.0</Version> <Authors>Octocat</Authors> <Company>GitHub</Company> <PackageDescription>This package adds an Octocat!</PackageDescription> <RepositoryUrl>https://HOSTNAME/OWNER/REPOSITORY</RepositoryUrl> </PropertyGroup> </Project>
-
プロジェクトをパッケージ化してください。
dotnet pack --configuration Release
-
nuget.configファイル中で指定した
key
を使ってパッケージを公開してください。dotnet nuget push "bin/Release/OctocatApp.1.0.0.nupkg" --source "github"
パッケージを公開した後は、GitHub上でそのパッケージを見ることができます。 詳しい情報については「パッケージの表示」を参照してください。
同じリポジトリへの複数パッケージの公開
複数のパッケージを同じリポジトリに公開するには、同じGitHubリポジトリURLをすべての.csprojプロジェクトファイル中のRepositoryURL
フィールドに含めることができます。 GitHubは、そのフィールドに基づいてリポジトリをマッチします。
たとえば、以下のOctodogAppとOctocatAppは同じリポジトリに公開されます。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<PackageId>OctodogApp</PackageId>
<Version>1.0.0</Version>
<Authors>Octodog</Authors>
<Company>GitHub</Company>
<PackageDescription>This package adds an Octodog!</PackageDescription>
<RepositoryUrl>https://HOSTNAME/octo-org/octo-cats-and-dogs</RepositoryUrl>
</PropertyGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<PackageId>OctocatApp</PackageId>
<Version>1.0.0</Version>
<Authors>Octocat</Authors>
<Company>GitHub</Company>
<PackageDescription>This package adds an Octocat!</PackageDescription>
<RepositoryUrl>https://HOSTNAME/octo-org/octo-cats-and-dogs</RepositoryUrl>
</PropertyGroup>
</Project>
パッケージをインストールする
プロジェクトでGitHubからパッケージを利用するのは、nuget.orgからパッケージを使用するのに似ています。 パッケージの依存関係を.csprojファイルに追加し、パッケージ名とバージョンを指定してください。 For more information on using a .csproj file in your project, see "Working with NuGet packages" in the Microsoft documentation.
-
GitHub Packagesに認証を受けてください。 詳しい情報については「GitHub Packagesへの認証を行う」を参照してください。
-
パッケージを利用するには、.csprojプロジェクトファイルに
ItemGroup
を追加し、PackageReference
フィールドを設定してください。OctokittenApp
パッケージをパッケージの依存関係で、1.0.0
を使いたいバージョンで置き換えてください。<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> <PackageId>OctocatApp</PackageId> <Version>1.0.0</Version> <Authors>Octocat</Authors> <Company>GitHub</Company> <PackageDescription>This package adds an Octocat!</PackageDescription> <RepositoryUrl>https://HOSTNAME/OWNER/REPOSITORY</RepositoryUrl> </PropertyGroup> <ItemGroup> <PackageReference Include="OctokittenApp" Version="12.0.2" /> </ItemGroup> </Project>
-
restore
コマンドでパッケージをインストールしてください。dotnet restore