👌

[Go][Heroku] プライベートリポジトリをimportしてビルドする

2021/09/23に公開

ローカルでビルド

githubに上がっているプライベートリポジトリをimportしたところ410 Goneとなり取得できませんでした。
ローカル環境ではGoのバージョンが1.13以上なのでGOPRIVATEという環境変数を設定すれば即時解決いたしました。

# 個人アカウントのリポジトリを直接指定
export GOPRIVATE="github.com/YOUR_ACCOUNT/REPOSITORY_NAME"
# 会社などの組織アカウント全体を指定
export GOPRIVATE="github.com/ORGANIZATION_NAME/*"

Herokuでビルド

Herokuでは調べていた現時点(2020/08/06)ではGOPRIVATEが対応していないようです。
その代わりとなる環境変数を設定することで解決できます。
なお今回はGithubでソースを管理しているということで話をすすめますので、その他のサービスを利用している場合は置き換えてください。
まずアクセストークンをGithubで生成します。生成方法はこちらの記事を参照ください。
トークンが取得できたらHerokuにセットすることになりますが、環境変数名はルールがありますので、必要であれば仕様を確認して変更してください。

heroku config:set GO_GIT_CRED__HTTPS__GITHUB__COM=YOUR_TOKEN

The custom git credential handler searches the application's config vars for vars that follow the following pattern: GO_GIT_CRED__<PROTOCOL><HOSTNAME>. Any periods (.) in the HOSTNAME must be replaces with double underscores ().

https://github.com/heroku/heroku-buildpack-go#private-git-repos

Discussion