rcmdnk's blog

テンプレート仕事術 ―日常業務の75%を自動化する

GitHubでのPythonのレポジトリ用のテンプレートの作成。

GitHub Template

テンプレートリポジトリを作成する - GitHub Docs

GitHubのレポジトリのSettingsGeneralで 一番上にあるRepository nameの直下にあるTemplate repositoryのところに チェックを入れるとそのレポジトリはテンプレートとして使えるようになります。

レポジトリの中身は特に特別なものはなく、通常のレポジトリでもなんでも出来ます。

テンプレートにすると こんな感じのUse this templateなボタンが現れるので、そこから create a new repositoryを選ぶとそのテンプレートの中身を初期状態として 新しいレポジトリの作成ができます。

20230503_template.png

このボタン、画面幅が短い状態でレポジトリを表示すると見えないのでない場合はちょっとブラウザを広げてみてください。

レポジトリの作成などは通常の新規作成と一緒で、単に最初にテンプレートの内容がInitial commitとして入っているだけです。

Forkと違いもととなるレポジトリのcommit履歴を引き継ぎません。 また、Forkは同じアカウント内では出来ませんがテンプレートの引き継ぎは同じアカウント内のものでも可能です。

python-template

Python用のレポジトリを何度か作って同じ様な初期設定をすることが多かったのでテンプレート化しました。

Poetryで管理するPythonプロジェクトのレポジトリ用のテンプレート。

使い方は テンプレートを使ってレポジトリを作成したら手元にcloneして、 setup.sh を実行します。

このsetup.shの先頭の方にレポジトリの設定があるので必要であれば変更します。

主には

  • py_ver: 対応するPython Version。デフォルトでは"3.10"のみ。複数を"3.10, 3.9, 3.8"のように指定することも可。このバージョンはpyproject.tomlでの対応状況、GitHub Actionsでのテストで対応するPythonバージョンになります。
  • py_main: GitHub Actionsでのテストでmainとするバージョン。デフォルトではpy_verで最初に書かれたバージョン。
  • os: GitHub Actionsでテストする環境。デフォルトは"ubuntu-latest"。複数のOSに対応させたい場合はカンマ区切りで。
  • os_main: GitHub Actionsでのテストでmainとするos。デフォルトはosの最初に書かれたもの。
  • cli: Poetryの設定でCLIのコマンドを導入するかどうか。"yes" or "no" (デフォルトは"no")

これらを良しなに変更して./setup.shを実行すると、

  • pyproject.tomlの設置。
    • nameをレポジトリ名に、authorgit config --get user.nameで取得したものに、などに設定。
  • src/の下にレポジトリ名のディレクトリを作成し、その下に__init__.pyを置いた状態に。
  • tests/の下にpytes用のディレクトリを用意。
    • 初期状態ではバージョンチェックのスクリプトを設置。
  • .github/workflows/test.ymlの設置。
  • .pre-commit-config.yamlを設置。
  • README.mdの書き換え。
    • もとのテンプレートのものを削除し、GitHub Actionsの結果のバッジなどを設置。
    • 開発時の設定やテストの実行方法などを追記。
  • LICENSE内の年、名前の設定。
    • 名前はgit config --get user.nameで取得したもの。
    • また、LICENSEはApache 2.0のものを使っていますがレポジトリのLICENSEを変更したい場合は変更を。
  • renovate.jsonの設置。
    • 毎週月曜の朝にアップデートするように設定。

といった事が設定されたレポジトリが出来ます。

使用例

Sponsored Links
Sponsored Links

« python-action: pytestなどを実行するGitHub Action シェルスクリプトでgitとかみたいなサブコマンドを作る »

}