4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Composer でプライベートリポジトリを使っている時の GitHub Actions 設定方法

Last updated at Posted at 2022-04-18

Composer でプライベートリポジトリを require している場合、GitHub Actions で普通に

- name: Install dependencies
  run: composer install --prefer-dist --no-progress

としていると認証エラーが発生します。(当然ですよね)

Failed to clone the git@github.com:foo/bar.git repository, 
try running in interactive mode so that you can enter your GitHub credentials

これを解決するためには、プライベートリポジトリを利用するためのアクセストークンを渡してあげる必要があります。アクセストークンを Actions に書いてコミットするなんてことは絶対しちゃいけないので、secret を利用します。なので全体では次のような手順が必要です。

  1. GitHub のアクセストークンを生成する
  2. リポジトリの secret にそのトークンを保存する
  3. Actions の job 定義の中で環境変数をセットする

また、アクセストークンが期限切れになった(なりそうな)時には更新する必要があります。
更新は次のような手順が必要です。

  1. GitHub のアクセストークンを更新する
  2. リポジトリの secret のトークンを更新する

以下、それぞれの手順を説明します。

新たに設定する

1. GitHub のアクセストークンを生成する

GitHub Actions 用のアクセストークンを生成します。プライベートリポジトリを require しているので、すでにアクセストークンを生成してローカルの Composer で使っていることと思いますが、ここでは新たに生成します。
次のリンクから生成可能です。

  1. GitHub: アクセストークン にアクセスします
  2. Generate new token をクリックします
  3. Note の欄には何のためのトークンかを説明する文章を入れましょう。適当に入れると後でわけわからなくなります
  4. Select scopes の欄では、repo にチェックを入れます
  5. Generate token ボタンをクリックして生成します
  6. Personal Access Token のページに戻りますが、そこにアクセストークンが表示されています
  7. コピーボタンをクリックしてトークンをクリップボードにコピーします (ここでコピーし忘れると二度と見ることはできませんので注意が必要です)

トークンのコピーを忘れた場合は更新の時の手順に従ってトークンの再生成を行なってください。

2. リポジトリの secret にそのトークンを保存する

生成したトークンは、リポジトリの Actions secret に保存しておきます。

  1. Actions を設定したいと思っているリポジトリを開き、Setting > Secrets and variables > Actions と選択します
  2. New repository secret をクリックします
  3. Name の欄に名前(ここでは COMPOSER_AUTH としますが別の名前でも構いません)を入れ Value の欄にトークンをペーストします
  4. Add secret ボタンをクリックして保存します

3. Actions の job 定義の中で環境変数をセットする

次のように、COMPOSER_AUTH 環境変数に secret の値を含んだ文字列をセットします。この前のセクションで secret の名前を変更した場合は、secrets.COMPOSER_AUTH の部分もそれに合わせて変更してください。

  - name: Install dependencies
    env:
      COMPOSER_AUTH: '{"github-oauth": {"github.com": "${{secrets.COMPOSER_AUTH}}"} }'
    run:
      composer install --prefer-dist --no-progress

以上で完了です。

更新する

1. GitHub のアクセストークンを更新する

  1. GitHub: アクセストークン にアクセスします
  2. トークンの一覧の中から対象のトークンを選択します
  3. Regenerate token ボタンをクリックして再生成します
  4. 確認画面が表示されますので Regenerate token をクリックします
  5. Edit personal access token のページが表示されますが、画面上部に再生成されたトークンが表示されます。
  6. Personal Access Token のページに戻りますが、そこにアクセストークンが表示されています
  7. コピーボタンをクリックしてトークンをクリップボードにコピーします (ここでコピーし忘れると二度と見ることはできませんので注意が必要です)
  8. Update token ボタンをクリックすると更新されます

コピーを忘れた場合は、もう一度再生成をします。

2. リポジトリの secret のトークンを更新する

  1. 対象のリポジトリを開き、Setting > Secrets and variables > Actions と選択します
  2. Repoitory secrets の一覧に設定済みの secret があると思いますので、その Update ボタンをクリックします
  3. Value の欄にトークンをペーストします
  4. Update secret ボタンをクリックして保存します

以上で更新は完了です。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?