ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

GitHub パッケージレジストリで利用するために NuGet を設定する

GitHub パッケージレジストリ にパッケージを公開するよう nuget を設定し、GitHub パッケージレジストリ に保存されたパッケージを依存関係として .Net プロジェクトで利用できます。

GitHub パッケージレジストリ は現在、限定パブリックベータとして利用できます。ベータ期間中は、高価なワークフローやコンテンツに GitHub パッケージレジストリ を利用することは避けてください。詳細は「GitHub パッケージレジストリ について」を参照してください。

本記事の内容:

GitHub パッケージレジストリ への認証を行う

NuGet で GitHub パッケージレジストリ のパブリックパッケージを公開および削除するには、read:packageswrite:packages のスコープ付き個人アクセストークンを使う必要があります。 リポジトリがプライベートである場合、個人アクセストークンも repo のスコープを持っている必要があります。 詳細は「コマンドライン用の個人アクセストークンを作成する」を参照してください。

GitHub パッケージレジストリ を Source として nuget クライアントに追加することで、新しいパッケージをプッシュする際にあなたのトークンを使うよう nuget を設定できます。 スコープパラメータの OWNER を、パッケージを公開したいリポジトリを含む GitHub ユーザまたは Organization 名に置き換えてください。

nuget source Add -Name "GitHub nuget registry" \
     -Source "https://nuget.pkg.github.com/OWNER/index.json" \
     -UserName USERNAME -Password TOKEN

パッケージを公開する

nuget CLI を使って Source を指定し、NuGet パッケージを OWNER の配下にある GitHub パッケージレジストリ に公開できます。 前の例を使うと、パッケージのソースとして GitHub nuget registry を指定するには、以下を実行します:

$ nuget push  -Source "GitHub nuget registry"

パッケージには、以下の URL からアクセスできます。OWNER をあなたの GitHub ユーザもしくは Organization 名に、REPOSITORY をリポジトリ名に置き換えてください。

https://github.com/OWNER/REPOSITORY/packages

複数のパッケージを同じ GitHub リポジトリに公開する

パッケージを公開する際、デフォルトでは GitHub パッケージレジストリ はパッケージ名により公開する GitHub リポジトリを決定します。 たとえば、odata-client という名前のパッケージは、OWNER/odata-client という GitHub リポジトリに公開されます。 GitHub リリースおよび関連する Git タグが、パッケージのバージョンに対して存在していない場合は、それが作成されます。

パッケージを公開するリポジトリを変えたい場合や、複数のパッケージを同じリポジトリに公開したい場合は、GitHub リポジトリ内の、パッケージの .nuspec ファイルにある projectUrl フィールドに、URL を記述できます。 GitHub は、パッケージ名の代わりに、このフィールドを元にしてリポジトリを照合します。

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
    <id>sample</id>
    <version>1.2.3</version>
    <authors>Kim Abercrombie, Franck Halmaert</authors>
    <description>Sample exists only to show a sample .nuspec file.</description>
    <language>en-US</language>
    <projectUrl>https://github.com/my-org/my-custom-repo</projectUrl>
    </metadata>
</package>

パッケージの作成に関する詳しい情報については、nuget ドキュメンテーション中の「パッケージの作成と公開」を参照してください。

パッケージレジストリイベントを受信する

パッケージが 'published' あるいは 'updated' になったときに、webhook イベントを受信することができます。詳細は GitHub 開発者ドキュメンテーション の RegistryPackageEvent を参照してください。

パッケージをインストールする

プロジェクトの GitHub からパッケージを利用する方法は、nuget.org からパッケージを利用する方法に似ています。 パッケージ名とバージョンを指定して、package.config にパッケージ依存関係を追加します。

  1. nuget source Add で、GitHub パッケージレジストリへの認証を行います。 詳しい情報については「GitHub パッケージレジストリへの認証を行う」を参照してください。

  2. パッケージを利用し、` GitHub パッケージレジストリ

をPackageSourceとして追加には、*package.config*を設定します。 たとえば、以下の*package.config*では、octo-app`パッケージを依存関係として利用します。

  <?xml version="1.0" encoding="utf-8"?>
    <packages>
      <package id="octo-app" version="3.1.1"/>
    </packages>
    <packageSources>
      <add key="GitHub nuget registry" value="https://nuget.pkg.github.com/OWNER/index.json" protocolVersion="3" />
    </packageSources>
  </xml>
  1. パッケージをインストールします。

    $ nuget install

プロジェクトにおける package.json の利用に関する詳しい情報については、MSDN nuget ドキュメンテーションの「nuget package を使って作業する」を参照してください。

パッケージを削除する

あなたのパッケージに依存しているかもしれないプロジェクトを壊すことがないよう、GitHub パッケージレジストリはパッケージの削除や、パッケージのバージョンの削除をサポートしていません。法的な理由やGDPR標準といった特別な状況下では、GitHub Supportを通じてパッケージの削除をリクエストできます。連絡フォームを使って「GitHub パッケージレジストリ」というタイトル行でGitHub Supportに連絡してください。

担当者にお尋ねください

探しているものが見つからなかったでしょうか?

弊社にお問い合わせください