GithHubにPublicリポジトリでUPしたいが、難しい場合

2022年10月13日

作成したものを他の人に見せたかったり、草を生やしたいのでPublicリポジトリに載せたい場合の方法

my-project という Public リポジトリに対し、my-project-env という名前の Private リポジトリを作成する。(名前はなんでもいい)

そして、my-project-env 内で見せたくない文言などを .env などのenvファイルをコミットし、記載するだけ。

例えば、webのフロントプロジェクトの場合 .env.production

title=ぼくのブログ
<h1>{process.env.title}</h1>

としておいて、my-project内で以下のようなコマンドを実行し、プライベートリポジトリのenvファイルを設置するだけ。

https://user:${GITHUB_TOKEN}@github.com/enoatu/my-project-env.git env && cp -r env/.env* .

このメリットはenvのリポジトリを切り替えるだけで、ビルドプロジェクトが全く新しいものが出来上がることにある。

my-project-env-ramen ブログ1

title=ラーメンの食べ方

my-project-env-seaside ブログ2

title=浜辺で見かけたもの

といったように。

Netlifyで環境変数ファイルをビルド時に読み込ませる方法

にもなる。

Netlifyなどのホスティング・ビルドサービスを使用する際にも便利だ。

環境変数を CMS_TOKEN = hogehoge のように1つ1つ設定するのは手間だが、 環境変数ファイルが含んであるリポジトリがあれば、それをビルド中に持ってきて中を見ればよい。

  1. GitHubトークンを発行する。

github > settings > developer setting > personal token 権限は必要な分だけ選択する。

  1. NetlifyでGitHubトークンを環境変数に設定する

GITHUB_TOKEN = hogehoge 3. package.jsonにビルドコマンドを設定する package.json

"build": "rm -rf env && git clone https://user:${GITHUB_TOKEN}@github.com/user/my-project-env.git env && cp -r env/.env* . && hoge build",
  1. デプロイする

1つの環境変数で、プライベートリポジトリを取得して、その中の環境変数ファイルを使用することができる。 そのため、Netlifyに設定する環境変数は1つだけでよくなる。

もし、ローカルで buildする際は、以下等で環境変数を渡してあげるとよい

GITHUB_TOKEN=hogehoge yarn build

あとがき

他にも環境変数ファイルに暗号化をして、ビルド中に復号をすることで、PublicリポジトリにUPできるようにすることも考えたが、暗号・復号コマンドを入れるのがだるい点(バージョンの違いにより復号できなかったり)、公開しているため脆弱に晒される点、復号キーをパスワードとして自分が覚えなくてはいけない点などを考えると、これが一番いい方法だと思う。