https://zenn.dev/tak_iwamoto/articles/c4e8677f2a50af を参考に、リポジトリ A の特定ファイルへの push をトリガーにリポジトリ B に PR を作ろうとした。まずはリポジトリ A 側の GitHub Actions の workflow を以下のように準備した。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
name: dispatch target file updated
on:
  push:
    branches:
      - master
    paths:
      - "public/*"
jobs:
  dispatch-target-updated:
    strategy:
      matrix:
        repo: ["kumashun8/kumashun8.github.io"]
    name: dispatch-target-updated
    runs-on: ubuntu-latest
    steps:
      - name: dispatch target-updated
        uses: peter-evans/repository-dispatch@v1
        with:
          # ここがおかしい?
          token: ${{ secrets.GITHUB_ACTIONS_TOKEN }}
          repository: ${{ matrix.repo }}
          event-type: target-updated

使用する secrets は Personal access tokens から発行済み。

gh-setting-env

public/* の差分を master に push してみると、Actions は実行されるもののエラーになってしまう。

Error: Parameter token or opts.auth is required

Parameter token は記述しているから、このメッセージから考えられる原因は以下のどちらか。それぞれ調べてみる。

  1. token が適切な値でない
  2. opts.auth というものが不足している

token が適切な値でない?

試しに存在しない環境変数を設定してみる。

1
2
3
4
        with:
          # ACTIONS_TOKEN という personal access token は無い
++        token: ${{ secrets.ACTIONS_TOKEN }}
--        token: ${{ secrets.GITHUB_ACTIONS_TOKEN }}

この場合でも出力されるエラーは同じだった。

Error: Parameter token or opts.auth is required

環境変数の設定方法が正しくなさそう…

たまたま自分が参考にした記事では、この環境変数の設定手順がややカットされていた。別の記事を見ると、取得した Personal access token の値をコピーして、repository の環境変数に設定する必要がありそうだ。

先ほど試しに設定した ACTIONS_TOKEN という環境変数を repository の settings/secrets に追加して、再度 workflow を実行してみる。

gh-setting-repo-env-sample

Error: Bad credentials

エラーが変わった!!
環境変数の取得はできたが、その値が正しくないようなメッセージだ。

MY_GITHUB_ACCESS_TOKEN という名前で Personal access token を作成して、その値を repository secrets に設定した。

改めて Actions を再実行すると…

gha-success

成功 🎉
あとはリポジトリ B 側の workflow を定義するだけ!!


原因候補 2 の opts.auth については、今回は的外れだったようです。 初歩的なハマり過ぎてアレですが、こういう雑なアウトプットからコツコツやっていけたらと思います 😃