AtCoder で AC したソースコードを GitHub 上 or ローカルに保存します
GitHub Actions を利用した自動収集とローカルでの実行が可能です
動いているデモ
$ npm install --global a3-cli
a3 init
を実行し、初期設定を行ってくださいa3 config <PROPERTIES>
で設定を書き換える事ができますa3 config open
で設定ファイルのディレクトリが開くので直接設定を書き換えることもできます:- config.user_id: 利用する AtCoder の ID
- config.archive_dir: ソースコードの保存先、指定しない場合は実行場所に保存される
- config.github_id: commit に使用する GitHub ID
- config.github_email: commit に使用する GitHub Email
a3 archive
でコードを収集します
$ a3 [COMMAND] -h
- このリポジトリ を Fork します
.github/workflows/schedule.yml
の環境変数 を編集します:- USER_ID: 利用する AtCoder の ID
- GH_ID: commit に使用する GitHub の ID
- GH_EMAIL: commit に使用する GitHub の Email
- 環境変数はリポジトリの Secrets に登録しても直接書き換えても問題ないです
- リポジトリの Actions タブを開き、GitHub Actions を有効化し、Update Workflows を有効化してください
- スケジュール毎にコードが収集され、Fork したリポジトリの
atcoder.jp/<USER_ID>
ブランチに push されます
- AtCoder Problems API へのリクエストと AtCoder へのスクレイピングを行っており、負荷軽減のためどちらも 1~1.5 秒程スリープを挟んで叩くようにしています
- AtCoder への負荷軽減と GitHub Actions のリミットの兼ね合いで、CI はスクレイピングの実行時間が 5 分を超えたタイミングで終了します
- AC 数が多い方は全てのコードを取得するまでに GitHub Actions を何度か実行する必要があるかもしれません
MIT ©ivgtr