やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

リポジトリ作成バッチ(漏洩防止版)

以前、自らAccessTokenをGitHubに公開してしまった。対策を考えたが、今回はとりあえず簡単な対処だけした。

入手先

GitHub MEGA

前回まで

GitHubへのアップロード作業が面倒なのでバッチで自動化した。しかし、あろうことか自らAccessTokenをGitHubに公開してしまうという大失態を犯す。GitHubが自動でそのAccessTokenを削除してくれたことで事なきを得たが、危険である。AccessTokenの再作成も面倒である。そこで、自爆を防ぐべく、バッチを改善することにした。

改善点

  • ユーザ名、リポジトリ名、説明、Homepage、対象ファイル一式を表示した
  • 実行確認の入力を必須とした
  • プロジェクト内に含めるバッチにAccessTokenなどの認証情報を入れないようにした

認証データをプロジェクトごとに保存しなくなったため、漏洩リスクが減った。 認証データのパスを指定してアップしないかぎり、自爆することはない。 認証データの一元管理により、新旧データが入り乱れて混乱することも避けられる。

アップする内容の確認もできてミスも減る。 リポジトリの作成/削除を短時間で何度もくりかえしてGitHubから500エラーを食らうことも避けられる。

使い方

MyProjectディレクトリ配下のバッチを設定/実行する。

ファイル 使用場面
up.bat リポジトリを新規生成する
del.bat リポジトリを削除する
edit.bat リモートリポジトリの説明文とHomepageを変更する

上記バッチは、以下の項目だけをテキスト編集すればいい。

流用データ

他、以下の項目は以下のように設定される。一度コードやファイルを設定しておけば、他のプロジェクトに流用できる。詳しくはAutomation配下のコードやAccount配下のTSVファイルを参照。

項目 内容
リポジトリ プロジェクトディレクトリ名を使う。
AccessToken プロジェクトディレクトリ(リポジトリ)外のパスにTSVファイルで保存しておく。ユーザ名をキーにして取得する。

任意に変更するデータ

パス

ディレクト 内容
Account 認証データを保存する
Automation 自動化バッチを保存する
MyProject git/githubリポジトリディレクトリ)

上記のようなディレクトリ構成になっている。べつにこだわる必要はない。変えたいときはバッチファイルのパスも変更して使うこと。

TSVファイル

TSVファイルの名前やカラム名も任意に変更可能。そのときはバッチファイルの内容も変更すること。

問題点

自爆問題に関しては改善できた。欲を言えば、さらなる問題がある。

  • 認証データが平文で保存されている
    • 暗号化して保存しないとgrepでイチコロ
  • ReadMe.mdの表示確認ができない
    • githubと同じ表示を事前に確認したい。後から失敗に気づいてリポジトリ削除することになる

今すぐ簡単にはできそうにない。

所感

これで自爆は防げるはず。次はAccessTokenの自動作成について考えたい。