やりたいこと
GitHub Actionsのワークフローを設定したリポジトリAから、別のリポジトリBのソースコードを読み込めるようにしたい。
やり方
使用するのはお馴染みのactions/checkout@v2。
This action checks-out your repository under $GITHUB_WORKSPACE, so your workflow can access it.
このアクションを使うとワークフローの中で、ソースコードにアクセスできるようになります。
▼ パブリックな別リポジトリにチェックアウト
steps:
- name: Checkout other repository
uses: actions/checkout@v2
with:
repository: foo/bar # 取得先のリポジトリ名を指定します。
repository
にチェックアウトしたいリポジトリ名を指定すれば取得できます。
path
やref
などのオプションも確認しておくと良いと思います。
▼ プライベートな別リポジトリにチェックアウト
steps:
- name: Checkout other repository
uses: actions/checkout@v2
with:
repository: foo/bar # 取得先のリポジトリ名を指定します。
token: ${{ secrets.HOGE }} # プライベートリポジトリを読み取れる個人アクセストークンをsecretsから読み込みます。
プライベートリポジトリを取得するので、もちろんアクセス権限が必要になります。
その設定項目として用意されているのがtoken
です。
token
にはPAT(個人アクセストークン)を設定します。
PATの発効方法は、公式ドキュメント(日本語)を参考にするとわかりやすいと思います。
ざっくり
GitHubのプロフィールアイコン > Settings > Developer settings > Personal access tokens
から作成できます。
- 強い権限をつけ過ぎないこと。(
repo
くらいあればチェックアウトするには十分なはずです) - 個人アクセストークンを流出させないこと。
に十分気をつけましょう。
PATが作成できたら、ワークフローを作成しているGitHubリポジトリのsecrets
にトークンを登録しましょう。
「【GitHub Actions】カスタム環境変数を読み込みたい」を参考に登録してみてください。
▼ SSOが必要なOrganizationの別リポジトリにチェックアウト
steps:
- name: Checkout other repository
uses: actions/checkout@v2
with:
repository: foo/bar # 取得先のリポジトリ名を指定します。
token: ${{ secrets.HOGE }} # リポジトリを読み取れる個人アクセストークンをsecretsから読み込みます。
.yml
ファイルの設定は、「▼ プライベートな別リポジトリにチェックアウト」と同じです。
発行したPATのSSO(SAMLシングルサインオン)を有効にしてあげる必要があります。
これも公式ドキュメント(日本語)を参考にするとわかりやすいと思います。