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

完了

GitHub Packages からパッケージをインストールすると、GitHub でホストされているライブラリ、依存関係、コンテナー イメージを使用できます。 あなたが表示する許可を持っているパッケージをインストールし、プロジェクトの依存関係として使用できます。

パッケージの検出

GitHub Packages には、 パッケージを検出する複数の方法が用意されています。

検索オプション

  • グローバル検索: GitHub 上のすべてのパブリック パッケージを検索する
  • 組織の検索: 特定の組織内のパッケージを検索する
  • リポジトリ検索: リポジトリから発行されたパッケージを参照する
  • パッケージの種類のフィルター: npm、NuGet、Maven、Docker などでフィルター処理します。

詳細については、 パッケージの検索を参照してください。

パッケージ情報

パッケージが見つかると、 パッケージ ページ に次の重要な情報が表示されます。

  • 形容: パッケージの機能とその目的
  • インストール手順: プロジェクトにパッケージを追加する方法
  • バージョン履歴: 利用可能なバージョンとリリース ノート
  • 依存 関係: 必要なパッケージとバージョンの制約
  • 使用例: 一般的なシナリオを示すコード サンプル
  • ライセンス: パッケージを使用するための法的条件
  • 統計情報のダウンロード: パッケージがインストールされた回数

ベスト プラクティス: 要件、破壊的変更、互換性を理解するには、インストールする前に必ずパッケージのインストールと説明の手順を読んでください。

インストール ワークフロー

パッケージのインストールは、パッケージの種類に関係なく 、一貫した 2 段階のプロセス に従います。

1. GitHub パッケージに対する認証

スコープを持つread:packages を使用して GitHub Packages で認証するようにパッケージ クライアントを構成します。

認証要件:

  • パブリック パッケージ: パブリック パッケージの場合でも認証が必要
  • プライベート パッケージ: 適切なリポジトリ アクセス権を持つ PAT が必要
  • 組織パッケージ: 組織のメンバーシップが必要な場合があります
  • 内部パッケージ: GitHub Enterprise 組織内でのみ使用できます

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

パッケージ クライアントの ネイティブ インストール コマンド (npm インストール、dotnet add package、mvn install など) を使用して、パッケージをプロジェクトに追加します。

インストール チェックリスト:

  • パッケージ名とバージョンが正しいことを確認する
  • プロジェクトのフレームワーク バージョンとの互換性を確認する
  • 依存関係ツリーの競合を確認する
  • インストール後のパッケージ機能をテストする
  • 新しい依存関係を反映するようにドキュメントを更新する

NuGet パッケージのインストール

NuGet パッケージ は、 Visual Studio または dotnet CLI を使用してインストールできます。

方法 1: Visual Studio

Visual Studio には、NuGet パッケージを管理するための グラフィカル インターフェイス が用意されています。

  1. NuGet パッケージ マネージャーを開きます。

    • ソリューション → プロジェクトの展開
    • 依存関係を右クリックする
    • [ NuGet パッケージの管理]を選択します。..

    NuGet パッケージを管理するための Visual Studio オプションのスクリーンショット。

  2. ブラウズしてインストールします。

    • [ 参照 ] タブをクリックする
    • パッケージ名を検索する
    • 目的のバージョンを選択する
    • [インストール] をクリックします

    NuGet パッケージを管理し、Visual Studio からインストールして更新する方法のスクリーンショット。

複数のレジストリの依存関係を同時に参照、インストール、更新できます。 詳細については、「 プロジェクトの依存関係の作成と削除」を参照してください。

方法 2: .csproj を直接編集する

プロジェクト ファイルにパッケージ参照を 直接 追加できます。

手順 1: GitHub パッケージに対する認証

nuget.config ファイルを作成または更新します (認証の詳細については、「発行」セクションを参照してください)。

手順 2: PackageReference を追加する

.csproj ファイルに PackageReference を含む ItemGroup を追加します。

<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net8.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>

手記

OctokittenApp をお使いのパッケージ名に置き換え、12.0.2 を使用したいバージョン番号に置き換えます。

手順 3: パッケージを復元する

restore コマンドを使用してパッケージを インストール します。

dotnet restore

方法 3: dotnet CLI を使用する

dotnet add コマンドを使用してパッケージをインストールできます。

dotnet add package OctokittenApp --version 12.0.2 --source github

NuGet インストールのベスト プラクティス:

  • バージョンをピン留めする: 再現可能なビルドの正確なバージョンを指定する
  • 中央パッケージ管理を使用する: Directory.Packages.props でバージョンを統合する
  • 脆弱性を確認する: インストールする前にセキュリティ アドバイザリを確認する
  • テストの互換性: パッケージがターゲット フレームワークと連携していることを確認する

npm パッケージのインストール

npm パッケージ では、GitHub パッケージをレジストリとして指定するように .npmrc ファイルを構成する必要があります。

.npmrc ファイルを構成する

手順 1: GitHub パッケージに対する認証

認証トークンを使用して ~/.npmrc ファイルを作成または更新します (認証の詳細については、「公開」セクションを参照してください)。

手順 2: プロジェクト .npmrc を作成する

package.json ファイル と同じディレクトリ で、 .npmrc ファイルを作成または編集します。

@OWNER:registry=https://npm.pkg.github.com

手記

OWNER を、パッケージを所有するユーザーまたは組織アカウントの名前に置き換えます。

手順 3: .npmrc をリポジトリにコミットする

すべてのチーム メンバーが同じ構成を使用するように 、.npmrc ファイルをリポジトリに追加します。 リポジトリへのファイルの追加を参照してください。

依存関係を package.json に追加する

依存関係としてパッケージを含むように package.json を構成します。

{
  "name": "@my-org/server",
  "version": "1.0.0",
  "description": "Server app that uses the @octo-org/octo-app package",
  "main": "index.js",
  "author": "",
  "license": "MIT",
  "dependencies": {
    "@octo-org/octo-app": "1.0.0"
  }
}

依存関係の仕様:

  • 正確なバージョン:"1.0.0" 特定のバージョンをインストールします
  • キャレット範囲:"^1.0.0" 互換性のあるマイナー/パッチ更新プログラムをインストールします
  • チルダ範囲:"~1.0.0" 互換性のあるパッチ更新プログラムのみをインストールします。
  • Latest:"latest" 最新バージョンをインストールします (運用環境には推奨されません)

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

npm install コマンドを実行します。

npm install

または、 特定のパッケージをインストールします。

npm install @octo-org/octo-app

複数の組織

複数の組織のパッケージをインストールする必要がある場合は、.npmrc ファイルに行を追加します。

@first-org:registry=https://npm.pkg.github.com
@second-org:registry=https://npm.pkg.github.com
@third-org:registry=https://npm.pkg.github.com

npm インストールのベスト プラクティス:

  • package-lock.jsonを使用する: 環境間で一貫したインストールを行うロックファイルをコミットする
  • 監査の依存関係:npm auditを実行して脆弱性を確認する
  • npm ci を使用します。 CI/CD パイプラインでは、 npm ci を使用して、より高速で信頼性の高いインストールを実現します
  • バージョンの制約: セマンティック バージョン範囲を使用して安定性と更新のバランスを取る
  • 最初のプライベート レジストリ: パブリック npm の前に GitHub パッケージを確認するようにスコープを構成する

CI/CD パイプラインへのインストール

GitHub Actions ワークフローには、同じ方法を使用してパッケージをインストールできます。

GitHub Actions の npm

- uses: actions/setup-node@v4
  with:
    node-version: "18"
    registry-url: "https://npm.pkg.github.com"
    scope: "@OWNER"
- run: npm ci
  env:
    NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

GitHub Actions の NuGet

- uses: actions/setup-dotnet@v4
  with:
    dotnet-version: "8.0.x"
    source-url: https://nuget.pkg.github.com/OWNER/index.json
  env:
    NUGET_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: dotnet restore

GITHUB_TOKENの利点:

  • PAT は必要ありません: ワークフローで自動的に使用可能
  • スコープ付きアクセス許可: ワークフローのリポジトリ アクセスに制限される
  • 自動回転: ワークフロー実行ごとにトークンが再生成されます
  • 安全: ログやアーティファクトで決してさらされない

インストールに関する問題のトラブルシューティング

一般的な問題と解決策:

問題 原因 Solution
401 権限がありません PAT が見つからないか無効です トークンにスコープ read:packages があることを確認する
404 見つかりません パッケージ名またはレジストリ URL が正しくありません パッケージが存在し、所有者が正しいことを確認する
403 許可されていません パッケージにアクセスするアクセス許可がありません アクセスを要求するか、組織のメンバーシップを確認する
バージョンが見つかりません 要求されたバージョンが存在しない パッケージ ページで使用可能なバージョンを確認する
依存関係の競合 互換性のないパッケージ バージョン 他の依存関係を更新するか、解決策を使用する

その他のリソース

詳細については、以下を参照してください。