LoginSignup
8
4

More than 3 years have passed since last update.

Github Actionsで他リポジトリをCloneする

Last updated at Posted at 2019-09-20

概要

  • 複数のリポジトリでGithub Actions内の処理を共通化をしたい
  • 他リポジトリで管理してクローンすればいいんじゃね?
  • 一工夫必要なのでその方法です

完成品

name: CloneTest

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1
    - name: Clone another repository
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      run: |
        git clone https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/tkada/UnityEquirectRenderer

この例ではpublicリポジトリですが、アクセス権さえあればprivateリポジトリでもクローンできます
publicリポジトリしかクローン出来ないようです・・・

解説

最初は単純に
git clone https://github.com/tkada/UnityEquirectRenderer.git
とやったのですが、拒否られてしまいました

アクセストークンでクローンできるらしいので
git clone https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/tkada/UnityEquirectRenderer
としてみましたがこれでもダメでした。

実は、GITHUB_TOKENの環境変数を使う際はその前に設定をしておく必要があります。

GITHUB_TOKENシークレット
GITHUB_TOKENシークレットは、ワークフロー を含むリポジトリにスコープされたGitHub Appインストールトークンです GitHubは、デフォルトでGITHUB_TOKENシークレットを自動的に作成しますが、アクションでそれを使用するには、ワークフローファイルに追加する必要があります。 GITHUB_TOKENシークレットを使用すると、認証されたGitHub APIコールを、アクションに代わって実行することができます。
ワークフローファイルで、GITHUB_TOKENシークレットにアクセスする必要があるアクションごとに環境変数を作成してください。
https://help.github.com/ja/articles/virtual-environments-for-github-actions#environment-variables

GITHUB_TOKENの環境変数を使う前に

env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

という記述が必要となります。

参考

8
4
1

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
8
4