Skip to main content

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2023-01-18. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise にアップグレードします。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせく� さい

npmレジストリの利用

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

GitHub Packages は、GitHub Free、GitHub Pro、Organization の GitHub Free、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server 3.0 以降、GitHub AE で利用できます。 GitHub Enterprise Server インスタンスのアップグレードについて詳しくは、「新しいリリースへのアップグレードについて」を参照してく� さい。また、現在のリリース バージョンからのアップグレード パスについては、アップグレード アシスタント を参照してく� さい。

注: サイト管理者はそれぞれのサポートされているパッケージの種類を有効化あるいは無効化できるので、このパッケージの種類はインスタンスで利用できないかもしれません。 詳細については、「エンタープライズ向けのパッケージ サポートの構成」を参照してく� さい。

公開したnpmバージョンに対する制限

GitHub Packagesに公開したnpmパッケージのバージョンが1000を超える� �合、使用中にパフォーマンスの問題やタイ� アウトが発生することがあります。

サービスのパフォーマンスを向上させるため、将来的には1,000を超えるパッケージのバージョンをGitHubに公開できなくなります。 この制限に達しないバージョンであれば、今後も読み取り可能です。

この制限に達した� �合は、パッケージのバージョンを削除するよう検討するか、サポートにお問い合わせく� さい。 この制限が施行されるようになると、ドキュメントが更新され、この制限を回避する方法が記載されることになります。 詳細については、「パッケージを削除および復元する」または「サポートに問い合わせる」を参照してく� さい。

GitHub Packages への認証を行う

パッケージを発行、インストール、および削除するには、アクセス トークンが必要です。

個人アクセス トークン (PAT) を使用し、GitHub Packages または GitHub Enterprise Server API の認証を受けることができます。 個人トークンを作成する際には、必要に応じて様々なスコープをトークンに割り当てできます。 PAT のパッケージ関連のスコープの詳細については、「GitHub パッケージのアクセス許可について」を参照してく� さい。

GitHub Actionsワークフロー内でGitHub Packagesレジストリに認証を受けるには、以下の方法が使えます。

  • GITHUB_TOKEN では、ワークフロー リポジトリに関連付けられているパッケージを発行します。
  • packages:read 以上のスコープが設定された PAT では、(GITHUB_TOKEN ではアクセスできない) 他のプライベート リポジトリに関連付けられているパッケージがインストールされます。

personal access token で認証を行う

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

npm で GitHub Packages に対して認証を行うには、ユーザーごとの ~/.npmrc ファイルを編集して personal access token を含めるか、コマンド ラインでユーザー名と personal access token を使って npm にログインします。

~/.npmrc ファイルに personal access token を追� して認証を行うには、プロジェクトの ~/.npmrc ファイルを編集して次の行を含めます。HOSTNAME は your GitHub Enterprise Server instance のホスト名に、TOKEN は personal access token に置き換えます。 存在しない� �合は、新しい ~/.npmrc ファイルを作成します。

インスタンスで Subdomain Isolation が有効になっている� �合:

//npm.HOSTNAME//:_authToken=TOKEN

インスタンスで Subdomain Isolation が無効になっている� �合:

//HOSTNAME/_registry/npm/:_authToken=TOKEN

npm にログインして認証を行うには、npm login コマンドを使用します。USERNAME は GitHub ユーザー名に、TOKEN は personal access token に、PUBLIC-EMAIL-ADDRESS はメール アドレスに置き換えます。

GitHub Packages が npm を使用するための既定のパッケージ レジストリではなく、npm audit コマンドを使用する� �合は、GitHub Packages に対する認証時に、パッケージの所有者と共に --scope フラグを使用することをお勧めします。

インスタンスで Subdomain Isolation が有効になっている� �合:

$ npm login --scope=@OWNER --registry=https://npm.HOSTNAME/

> Username: USERNAME
> Password: TOKEN
> Email: PUBLIC-EMAIL-ADDRESS

インスタンスで Subdomain Isolation が無効になっている� �合:

$ npm login --scope=@OWNER --registry=https://HOSTNAME/_registry/npm/
> Username: USERNAME
> Password: TOKEN
> Email: PUBLIC-EMAIL-ADDRESS

パッケージの公開

注: パッケージ名とスコープには小文字のみを使用する必要があります。

既定では、GitHub Packages は package.json ファイルの name フィールドで指定された GitHub リポジトリにパッケージを公開します。 たとえば、@my-org/test という名前のパッケージは、my-org/test GitHub リポジトリに公開することになります。 npm v8.5.3 以降を実行している� �合は、パッケージ ディレクトリに README.md ファイルを含めることで、パッケージのリスト ページの概要を追� できます。 詳しくは、package.json の利用Node.js モジュールの作成方法に関する npm のドキュメントをご覧く� さい。

URL フィールドを package.json ファイルに含めることで、同じ GitHub リポジトリに複数のパッケージを公開できます。 詳しくは、「同じリポジトリへの複数パッケージの公開」をご覧く� さい。

プロジェクト内にあるローカルの .npmrc ファイルか、package.jsonpublishConfig オプションを使用して、プロジェクトのスコープのマッピングを設定できます。 GitHub Packagesはスコープ付きのnpmパッケージのみをサポートしています。 スコープ付きのパッケージには、@owner/name 形式の名前が付いています。 スコープ付きのパッケージの先� �には常に @ 記号が付いています。 スコープ付きの名前を使うには、package.json で名前を更新する必要がある� �合があります。 たとえば、"name": "@codertocat/hello-world-npm" のようにします。

パッケージを公開した後は、GitHub上でそのパッケージを見ることができます。 詳しくは、「パッケージの表示」をご覧く� さい。

ローカルの .npmrc ファイルを使用したパッケージの公開

.npmrc ファイルを使用して、プロジェクトのスコープのマッピングを設定できます。 .npmrc ファイルで GitHub Packages の URL とアカウント所有者を使い、GitHub Packages がパッケージ要求のルーティング先を把握できるようにしてく� さい。 .npmrc ファイルを使うことで、他の開発者がパッケージを GitHub Packages ではなく npmjs.org に誤って公開することを防止できます。

  1. GitHub Packagesに認証を受けてく� さい。 詳細については、「GitHub Packages への認証」を参照してく� さい。 2. package.json ファイルと同じディレクトリで、.npmrc ファイルを作成するか編集し、GitHub Packages URL とアカウント所有者を指定する行を含めます。 OWNER を、プロジェクトを含むリポジトリを所有しているユーザーもしくは組織アカウント名で置換します。

    サブドメイン分離が有効な� �合:

    @OWNER:registry=https://npm.HOSTNAME

    Subdomain Isolationが無効な� �合:

    @OWNER:registry=https://HOSTNAME/_registry/npm
  2. GitHub Packages でプロジェクトを見つけられるリポジトリに .npmrc ファイルを追� します。 詳細については、「リポジトリにファイルを追� する」を参照してく� さい。

  3. プロジェクトの package.json にあるパッケージの名前を確認します。 name フィールドには、スコープとパッケージの名前が含まれている必要があります。 たとえば、パッケージの名前が "test" で、"My-org" GitHub Organization に公開する� �合、package.jsonname フィールドは @my-org/test にする必要があります。

  4. プロジェクトの package.jsonrepository フィールドを確認します。 repository フィールドは、GitHub リポジトリの URL と一致している必要があります。 たとえば、リポジトリの URL が github.com/my-org/test である� �合、repository フィールドは https://github.com/my-org/test.git でなければなりません。 1. パッケージを公開してく� さい。

    $ npm publish

package.json ファイルでの publishConfig を使用したパッケージの公開

package.json ファイルで publishConfig 要� を使用して、パッケージを公開するレジストリを指定できます。 詳細については、npm ドキュメントの「publishConfig」を参照してく� さい。

  1. パッケージの package.json ファイルを編集して、publishConfig のエントリを含めるようにします。 インスタンスで Subdomain Isolation が有効になっている� �合:

    "publishConfig": {
      "registry": "https://npm.HOSTNAME/"
    },

    インスタンスで Subdomain Isolation が無効になっている� �合:

    "publishConfig": {
       "registry": "https://HOSTNAME/_registry/npm/"
     },
    1. プロジェクトの package.jsonrepository フィールドを確認します。 repository フィールドは、GitHub リポジトリの URL と一致している必要があります。 たとえば、リポジトリの URL が github.com/my-org/test である� �合、repository フィールドは https://github.com/my-org/test.git でなければなりません。 1. パッケージを公開してく� さい。
    $ npm publish

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

複数のパッケージを同じリポジトリに公開する� �合は、GitHub リポジトリの URL を、各パッケージの package.json ファイルの repository フィールドに含めます。

リポジトリのURLが正しいことを確認するには、REPOSITORYを公開したいパッケージを含むリポジトリ名で、OWNERをリポジトリを所有しているGitHubのユーザもしくはOrganizationアカウント名で置き換えてく� さい。

GitHub Packages は、パッケージ名の代わりに、このURLを元にしてリポジトリを照合します。

"repository":"https://HOSTNAME/OWNER/REPOSITORY",

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

プロジェクトの package.json ファイルに依存関係としてパッケージを追� することで、GitHub Packages からパッケージをインストールできます。 プロジェクトで package.json を使用する方法について詳しくは、package.json の利用に関する npm のドキュメントをご覧く� さい。

デフォルトでは、パッケージは1つのOrganizationから追� できます。 詳しくは、「他の Organization からのパッケージのインストール」をご覧く� さい。

プロジェクトに .npmrc ファイルを追� して、パッケージをインストールするためのすべての要求が GitHub Packages を経由するようにする必要もあります。 すべてのパッケージ要求を GitHub Packages 経由になるようにルーティングすると、npmjs.org のスコープ付きおよびスコープなしのパッケージをどちらも使用できるようになります。詳しくは、npm のスコープに関する npm のドキュメントをご覧く� さい。

  1. GitHub Packagesに認証を受けてく� さい。 詳細については、「GitHub Packages への認証」を参照してく� さい。 2. package.json ファイルと同じディレクトリで、.npmrc ファイルを作成するか編集し、GitHub Packages URL とアカウント所有者を指定する行を含めます。 OWNER を、プロジェクトを含むリポジトリを所有しているユーザーもしくは組織アカウント名で置換します。

    サブドメイン分離が有効な� �合:

    @OWNER:registry=https://npm.HOSTNAME

    Subdomain Isolationが無効な� �合:

    @OWNER:registry=https://HOSTNAME/_registry/npm
  2. GitHub Packages でプロジェクトを見つけられるリポジトリに .npmrc ファイルを追� します。 詳細については、「リポジトリにファイルを追� する」を参照してく� さい。

  3. インストールするパッケージを使用するように、プロジェクトの package.json を構成します。 GitHub Packages のためにパッケージの依存関係を package.json ファイルに追� するには、@my-org/server のように完全なスコープ付きのパッケージ名を指定してく� さい。 npmjs.com のパッケージの� �合は、@babel/core または @lodash のように完全な名前を指定してく� さい。 <organization_name>/<package_name> をパッケージの依存関係と置き換えます。

    {
      "name": "@my-org/server",
      "version": "1.0.0",
      "description": "Server app that uses the <organization_name>/<package_name> package",
      "main": "index.js",
      "author": "",
      "license": "MIT",
      "dependencies": {
        "<organization_name>/<package_name>": "1.0.0"
      }
    }
    
  4. パッケージをインストールします。

    $ npm install

他のOrganizationからのパッケージのインストール

デフォルトでは、1つのOrganizationからのみGitHub Packagesパッケージを利用できます。 パッケージ要求を複数の組織とユーザーにルーティングする� �合は、 .npmrc ファイルに行を追� できます。HOSTNAME は your GitHub Enterprise Server instance のホスト名に、OWNER はプロジェクトが含まれているリポジトリを所有するユーザーまたは組織アカウントの名前に置き換えます。

インスタンスで Subdomain Isolation が有効になっている� �合:

@OWNER:registry=https://npm.HOSTNAME
@OWNER:registry=https://npm.HOSTNAME

インスタンスで Subdomain Isolation が無効になっている� �合:

@OWNER:registry=https://HOSTNAME/_registry/npm
@OWNER:registry=https://HOSTNAME/_registry/npm

公式NPMレジストリを使用する

GitHub Packages では、registry.npmjs.com の公式 NPM レジストリにアクセスできます (GitHub Enterprise Server 管理者がこの機能を有効にしている� �合)。 詳しくは、「公式 NPM レジストリに接続する」をご覧く� さい。