0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

github actions を使用して、github organization を跨いでprivate repository を参照する

Posted at

かなり限定的な状況だったので同じ事例がなく困った。

やりたかったこと

  • github enterprise を使用して、enterprise内のorgAのprivate repo を、orgBのgithub actions 内で実行するterraform から参照したい
  • terraform では、参照したrepo をmodule として取り込んでリソース作成を行いたい

起こったこと

  • orgB のgithub actions ユーザーにはorgA のrepo を参照する権限がなかった
  • よくある解決手段にはPATがあったが、システムユーザーにPATを付与して管理したくなかった
  • また、github enterprise であったため対象URLがgithub.com でなく苦戦した

やったこと

github app を使用し、orgA でappトークンを払い出す

払い出したトークンの

  • appトークンのID
  • シークレットキー
    を控える

以下をorgB のgithub actions 内のterraform 実行前step で実施する

steps:
      - name: Generate token
        id: generate_token
        uses: actions/create-github-app-token@v1
        with:
          app-id: ${{ vars.<variablesに設定したorgA のappトークンID> }}
          private-key: ${{ secrets.<secretsに設定したorgA のapp のシークレットキー> }}
          owner: "<orgAの名前>"
      - name: Set Token
        run: |
            export TOKEN='${{ steps.generate_token.outputs.token }}'
            git config --global url."https://x-access-token:${TOKEN}@github.<github enterprise ごとの値>//".insteadOf "https://github.<github enterpriseごとの値>/"
0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?