GitHubアクションを使用してNode.jsプロジェクトのビルドを実行しようとしています。 npm install
の一部として、(GPRからではなく)プライベートGitHubリポジトリから直接npmモジュールをインストールする必要があります。
package.json
では、
"dependencies": {
...
"my-module": "github:<org>/<my-module>#master",
...
},
ただし、npm install
を実行すると、次のようになります。
npm ERR! [email protected]:権限が拒否されました(公開鍵)。 npm ERR!致命的:リモートリポジトリから読み取れませんでした。
リポジトリは私の組織の一部であり、ローカルで(つまり、私のマシンから)機能します。これを実行するにはどうすればよいですか?
私はすでにNODE_AUTH_TOKEN
環境変数を設定しようとしましたが、違いはありませんでした。この提案は非常に頻繁に見られますが、GPRのみを扱っているようです。回避したいのは、トークンをpackage.json
ファイルにハードコードする必要があることです。これについて何か考えはありますか?
これは、プライベートGitHubリポジトリから依存関係をインストールする方法です。
Package.jsonの依存関係は次のように追加できます。 github:
接頭辞はオプションです。 #branch
または#tag
の指定もオプションです。
"dependencies": {
...
"myrepo": "username/myrepo#master",
"myotherrepo": "github:username/myotherrepo"
},
次にワークフローの例を示します。 PAT
はrepo
スコープ 個人アクセストークン です。 actions/checkout
の永続的な認証情報を無効にすることが重要です。無効にしないと、PAT
が上書きされます。 git config
の変更はステップ間で持続するため、ジョブごとに一度だけ実行する必要があることに注意してください。
- uses: actions/checkout@v2
with:
persist-credentials: false
- uses: actions/setup-node@v1
with:
node-version: 12.x
- run: git config --global url."https://${{ secrets.PAT }}@github.com/".insteadOf ssh://[email protected]/
- run: npm ci
...
エラーと依存関係(package.json)を含めた方法から、認証資格情報(トークン、ssh。
Git URLs as Dependencies の詳細については、このドキュメントを参照してください
Httpsおよびoauthまたはsshを介して行うことができます。
httpsとoauth: アクセストークンを作成する 「repo」スコープがあり、次に この構文を使用 =:
"package-name": "git+https://<github_token>:[email protected]/<user>/<repo>.git"
または
ssh:sshをセットアップしてから、次の構文を使用します。
"package-name": "git+ssh://[email protected]:<user>/<repo>.git"
(note the use of colon instead of slash before user)