はじめに
コンポーネントライブラリを、GitHub Packagesのnpm レジストリに公開して、GitHub Organization 内でのみ利用可能な状態にしました。
以下のサイトを参考にライブラリの公開まで行うことができましたが、公開したライプラリをインストールする際に詰まったところがあったので、その解消方法をメモとして残しておきます。
- GitHub Packages の npm レジストリを使って、社内 org 用のプライベートパッケージを公開する手順とインストールする手順
- GitHub Packagesを使ってプライベートパッケージをnpmインストールできるようにする
GitHubアカウントごとのインストール手順の違い
GitHub Organization に属している GitHub アカウントの種類(Member/Outside Collaborator)で、手順が異なります。
以下説明する作業の場面としては、上記参考サイトで掲載されているPersongt Access Tokenを発行して.npmrc
ファイルの設定をした後からです。
member
Persongt Access Token発行後、npm install
を試してみると以下のエラーが発生しました。
npm ERR! code E401
npm ERR! 401 Unauthorized - GET[リポジトリURL】- unauthenticated: User cannot be authenticated with the token provided.
こちらに関しては、OrgnizationでSSO認証がかけられていたため、発行したトークンに対してSSO設定を行う必要がありました。以下に載っている手順で解決することができました。
SAMLシングルサインオンで利用するために個人アクセストークンを認可する
Outside Collaborator
アクセストークン発行後、npm install
を試してみると以下のエラーが発生しました。
npm ERR! code E403
npm ERR! 403 403 Forbidden - GET [リポジトリURL] - Permission permission_denied: read_package
npm ERR! 403 In most cases, you or one of your dependencies are requesting
npm ERR! 403 a package version that is forbidden by your security policy, or
npm ERR! 403 on a server you do not have access to.
Outside Collaboratorの場合、Orgnization内のリポジトリの中でも招待されたリポジトリに対してしかアクセスすることができません。(GitHubの担当者に問い合わせました。)
ちなみに、memberの手順で行ったSSO設定の操作も行うことができません。
そのため、Github Packagesで公開したリポジトリに招待する必要があります。このときの権限はread権限で問題ありません。
ただし、Outside Collaboratorをリポジトリに招待できるのは、OrganizationのOwnerのみです。そのため、Ownerにリポジトリ招待をしてもらう必要があります。
Ownerにリポジトリへ招待してもらった後、npm install
を試すと、問題なくインストールすることができました。