よく行うGitやGitHubの操作を自動化するスクリプト。
大量のリポジトリを作成する必要がある場合などに使う。
※自分用
Key | Value |
---|---|
GITHUB_TOKEN | GitHubのアクセストークン |
pip3 install -r requirements.txt
指定したローカルのリポジトリについて以下の操作を行う。
- ブランチ名を
main
に変更(masterブランチなどにいる前提) - もし、
README.md
に変更がある場合、commit
する。 - 当該ディレクトリと同じ名前のリポジトリをGitHub上に作成。
- 作成したURLに
main
をpush
する。 solution
という名前のブランチがある場合、これも作成したリポジトリにpush
する。(複数ある場合、複数push
する。)main
にcheckout
する。- branch protection ruleを追加する。(mainブランチへのマージにPRへのApproveを必須にする。)
パラメタ
--repo
必須: リポジトリへのpath--org
必須: organization--branch-protection
任意: Trueを指定するとブランチプロテクションを設定する。デフォルトはFalse。
実行例
python3 deploy_main_and_solution.py --repo ./path/to/repo --org some-org
指定したリポジトリにブランチプロテクションを設定する。
ブランチプロテクションの内容は、指定したブランチへのマージにApproveを必須とするもの。
パラメタ
--repo
必須: リポジトリ名--org
必須: organization--branch
任意: protectionするブランチ。デフォルトはmain
。
実行例
python3 add_branch_protection.py --org some-org --repo some_repo --branch develop
指定したOrganizationのリポジトリのURL一覧を表示する。
python3 repo_urls.py --org <organization> --hostname <hostname>
cloneする際、全てのリモートブランチをcloneする。
パラメタ
--url
必須: cloneするリポジトリのURL--dest
必須: 保存するディレクトリを指定。(その中にcloneしたディレクトリが生成される。)
実行例
python3 clone_all_branch.py --url https://***.git --dest ./test
新規にGitHubにリポジトリを作成し、指定したローカルリポジトリの全てのブランチをPUSHする。
パラメタ
--path
必須: ローカルリポジトリのpath--org
必須: organization--remote
必須: 新規にGitHubに作成したremoteの名前--prefix
: github上に作成するリポジトリのprefix
実行例
python3 deploy_repo.py --org some-org --remote some-org --path ./some/awesome-lib
指定したブランチを指定したURLのリモートリポジトリにpushする。
パラメタ
--path
必須: ローカルリポジトリのpath--url
必須: リモートのURL--branch
必須: pushするブランチ名
※ad9055f94eb34ad2-90ccd5811527bc6e
という名前の一時remoteを作成します。(処理がおわったら自動でremoveする。)
実行例
python3 deploy_branch.py --url https://*** --branch feature --path ./some/awesome-lib