GitHub Actions、もといGitHub自体、初心者ということもあって、時間をかなり溶かしたので、メモとして残しておきます(´・ω・`) とあるパブリック・リポジトリに設定されたGitHub Actionsから別のパブリック・リポジトリにgit push
したい場合、おおよそ以下の通りに記述すればOKです。
jobs:
sample-job:
runs-on: sample-latest
steps:
- name: sample-step
env:
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
run: git push https://x-access-token:${ACCESS_TOKEN}@github.com/sample-user/sample-repository sample-branch
ここで大事なのが、リモートレポジトリのURLの形式です。ここではACCESS_TOKEN
とsecrets.ACCESS_TOKEN
という環境変数を利用していますが、これはGitHub Actions組み込みの変数ではありません。ユーザが自分で設定する必要があります。
- "Personal access tokens" において、アクセストークンを作成します。このとき"Access public repositories"を有効化し、発行されたアクセストークン文字列を控えておきます。
- GitHub Actionsが設定されたリポジトリのページ → Settings → Secrets において、次のような変数を作成します。
- "Name": ACCESS_TOKEN
- "Value": 1.で控えておいたアクセストークン文字列
- すると、GitHub Actionsの
secrets.ACCESS_TOKEN
が2.で作成したValue
の値を指すようになるはずです。
要するにアクセストークンをSecrets経由でGitHub Actionsに渡しているだけです。パブリックなレポジトリにハードコーディングするのはセキュリティ上避けたいので、こういう迂回策をとっているわけです。
またACCESS_TOKEN
という名前は一例に過ぎません。任意の名前をつけても大丈夫です(´・ω・`)