📚
GitHub Actions でプライベートリポジトリを clone する方法
構成
- RepoA: GitHub Actions を使って RepoB を git clone したい
- RepoB: private repository
actions/checkout は Personal Access Token のみの対応のようなので、この記事では ssh を使った方法を記します。
この方法では、秘密鍵を GitHub に登録することになるので、あまりおすすめではありません。どうしても Personal Access Token 以外を使わないといけない状況の場合に参考にして頂ければ。
事前準備
ローカル開発環境等で ssh-key-gen
コマンドで鍵を作成
// -f はファイル名を指定
$ ssh-keygen -f zenn
// ファイル確認
$ ls ~/.ssh
zenn zenn.pub
設定
-
公開鍵 (
zenn.pub
) は RepoB のDeploy Keys
に登録- [repo] - [Settings] - [Deploy Keys]
-
RepoA の Secrets に 秘密鍵(
zenn
)を登録- [repo] - [Settings] - [Secrets]
- ここでは
ZENN_SECRET
という名前で登録
-
RepoA に GitHub Actions の設定ファイルを作成
$ cat .github/workflows/main.yml
name: Zenn Example
on:
push:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: git clone
env:
ZENN_SECRET: ${{ secrets.ZENN_SECRET }}
GIT_SSH_COMMAND: ssh -i ~/zenn_secret
run: |
echo "$ZENN_SECRET" > ~/zenn_secret
chmod 600 ~/zenn_secret
git clone git@github.com:<org>/<RepoB>.git
Discussion