パッケージをインストールする
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 パッケージを管理するための グラフィカル インターフェイス が用意されています。
NuGet パッケージ マネージャーを開きます。
- ソリューション → プロジェクトの展開
- 依存関係を右クリックする
- [ NuGet パッケージの管理]を選択します。..
ブラウズしてインストールします。
- [ 参照 ] タブをクリックする
- パッケージ名を検索する
- 目的のバージョンを選択する
- [インストール] をクリックします
複数のレジストリの依存関係を同時に参照、インストール、更新できます。 詳細については、「 プロジェクトの依存関係の作成と削除」を参照してください。
方法 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 許可されていません | パッケージにアクセスするアクセス許可がありません | アクセスを要求するか、組織のメンバーシップを確認する |
| バージョンが見つかりません | 要求されたバージョンが存在しない | パッケージ ページで使用可能なバージョンを確認する |
| 依存関係の競合 | 互換性のないパッケージ バージョン | 他の依存関係を更新するか、解決策を使用する |
その他のリソース
詳細については、以下を参照してください。
- GitHub Packages レジストリの操作 - サポートされているすべてのレジストリの完全なガイド。
- NuGet レジストリの操作 - 詳細な NuGet インストール ガイド。
- npm レジストリの操作 - 詳細な npm インストール ガイド。
- GitHub パッケージのアクセス許可について - パッケージのアクセス制御について。