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

GitHub Packagesで利用するためにdotnet CLIを設定する

GitHub Packages にNuGetパッケージを公開し、GitHub Packages に保存されたパッケージを依存関係として .Net プロジェクトで利用するようdotnetコマンドラインインターフェース(CLI)を設定できます。

GitHub PackagesはGitHub Free、GitHub Pro、GitHub FreeのOrganization、GitHub Team、GitHub Enterprise Cloud、GitHub Oneで利用できます。 GitHub Packagesは、レガシーのリポジトリごとのプランを使っているアカウントが所有しているプライベートリポジトリでは利用できません。 詳しい情報については「GitHubの製品」を参照してください。

ここには以下の内容があります:

GitHub Packages への認証を行う

GitHub Packagesでパッケージを公開、インストール、削除するにはアクセストークンが必要です。 GitHub Packagesに直接、あるいはGitHub APIでユーザ名で認証を受けるのに、個人のアクセストークンが利用できます。 GitHub Actionsのワークフローを使って認証するのには、GITHUB_TOKENが利用できます。

個人アクセストークンでの認証

GitHub Packages内でパッケージを公開及びインストールするためには、適切なスコープで個人アクセストークンを使わなければなりません。 詳しい情報については「GitHub Packagesについて」を参照してください。

dotnetコマンドラインインターフェース(CLI)でGitHub Packagesに認証を受けるには、プロジェクトディレクトリにnuget.configファイルを作成し、GitHub Packagesをソースとしてdotnet CLIクライアントのpackageSourcesの下に指定してください。

以下のように置き換えてください。

  • USERNAMEをGitHub上のユーザアカウント名で。
  • TOKENを個人アクセストークンで。
  • OWNERを、プロジェクトを含むリポジトリを所有しているユーザもしくはOrganizationアカウント名で。 大文字はサポートされていないため、仮にGitHubのユーザあるいはOrganization名が大文字を含んでいても、リポジトリオーナーには小文字を使わなければなりません。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <clear />
        <add key="github" value="https://nuget.pkg.github.com/OWNER/index.json" />
    </packageSources>
    <packageSourceCredentials>
        <github>
            <add key="Username" value="USERNAME" />
            <add key="ClearTextPassword" value="TOKEN" />
        </github>
    </packageSourceCredentials>
</configuration>

GITHUB_TOKENでの認証

GitHub Actionsワークフローを使っているなら、GITHUB_TOKENを使い、個人アクセストークンを保存したり管理したりする必要なくGitHub Packages内のパッケージの公開や利用ができます。 詳しい情報については「GITHUB_TOKENでの認証」を参照してください。

パッケージを公開する

nuget.configで認証を受けることによって、パッケージをGitHub Packagesに公開できます。 公開の際には、nuget.config認証ファイルで使用するcsprojファイル中で、OWNERに同じ値を使わなければなりません。 .csprojファイル中でバージョン番号を指定もしくはインクリメントし、dotnet packコマンドを使ってそのバージョンのための.nuspecファイルを作成してください。 パッケージの作成に関する詳しい情報については、Microsoftのドキュメンテーション中の「クイック スタート: パッケージの作成と公開 (dotnet CLI)」を参照してください。

パッケージを公開した後は、GitHub上でそのパッケージを見ることができます。 詳しい情報については「パッケージの表示」を参照してください。

  1. GitHub Packagesに認証を受けてください。 詳しい情報については「GitHub Packagesへの認証を行う」を参照してください。

  2. 新しいプロジェクトを作成してください。

    dotnet new console --name OctocatApp
  3. プロジェクト固有の情報をプロジェクトファイルに追加してください。プロジェクトファイルは.csprojで終わります。 以下のように置き換えてください。

    • OWNERを、プロジェクトを含むリポジトリを所有しているユーザもしくはOrganizationアカウント名で。
    • REPOSITORYを、公開したいパッケージを含むリポジトリの名前で。
    • 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://github.com/OWNER/REPOSITORY</RepositoryUrl>
      </PropertyGroup>
    
    </Project>
    
  4. プロジェクトをパッケージ化してください。

    dotnet pack --configuration Release
  5. nuget.configファイル中で指定したkeyを使ってパッケージを公開してください。

    dotnet nuget push "bin/Release/OctocatApp.1.0.0.nupkg" --source "github"

同じリポジトリへの複数パッケージの公開

複数のパッケージを同じリポジトリに公開するには、同じGitHubリポジトリURLをすべての.csprojプロジェクトファイル中のRepositoryURLフィールドに含めることができます。 GitHubは、そのフィールドに基づいてリポジトリをマッチします。

たとえば、以下のOctodogAppOctocatAppは同じリポジトリに公開されます。

<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>
<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://github.com/octo-org/octo-cats-and-dogs</RepositoryUrl>
  </PropertyGroup>

</Project>

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

プロジェクトでGitHubからパッケージを利用するのは、nuget.orgからパッケージを使用するのに似ています。 パッケージの依存関係を.csprojファイルに追加し、パッケージ名とバージョンを指定してください。 プロジェクトでの.csprojファイルの利用に関する詳しい情報については、Microsoftのドキュメンテーションの「パッケージ利用のワークフロー」を参照してください。

  1. GitHub Packagesに認証を受けてください。 詳しい情報については「GitHub Packagesへの認証を行う」を参照してください。

  2. パッケージを利用するには、.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://github.com/OWNER/REPOSITORY</RepositoryUrl>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="OctokittenApp" Version="12.0.2" />
      </ItemGroup>
    
    </Project>
    
  3. restoreコマンドでパッケージをインストールしてください。

    dotnet restore

参考リンク

担当者にお尋ねください

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

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