GitHub Actions 統合

独自の Python 環境を設定することなく、GitHub Actions ワークフロー内で Black を使用できます。コードが Black のコーディングスタイルに一致することを強制するのに最適です。

互換性

このアクションは、GitHub がホストするすべてのランナー OS をサポートすることが知られています。さらに、公開されているバージョンの Black のみがサポートされています(つまり、PyPI で入手可能なバージョン)。

最後に、このアクションは Blackcolorama エクストラと共にインストールするため、--color フラグは正常に動作するはずです。

使用方法

リポジトリ内に .github/workflows/black.yml という名前のファイルを作成し、以下の内容を記述します。

name: Lint

on: [push, pull_request]

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: psf/black@stable

@stable タグの使用を推奨しますが、バージョンごとのタグも必要に応じて存在します。選択するアクションのバージョンは、アクションが使用する Black のバージョンとは独立していることに注意してください。

アクションが使用する Black のバージョンは、version で設定するか、pyproject.toml ファイルから読み取ることができます。version は、有効なバージョン指定子 または、正確なバージョンが必要な場合はバージョン番号のみを指定できます。pyproject.toml ファイルからバージョンを読み取るには、use_pyprojecttrue に設定します。これにより、最初に tool.black.required-version フィールド、次に project.dependencies 配列、最後に project.optional-dependencies テーブルが検索されます。アクションはデフォルトで PyPI で利用可能な最新のリリースに設定されます。PyPI から入手可能なバージョンのみがサポートされているため、コミット SHA やブランチ名は使用できません。

Jupyter Notebook を含める場合は、Blackjupyter エクストラと共にインストールする必要があります。エクストラのインストールと Jupyter Notebook ファイルの包含は、jupyter で設定できます(デフォルトは false です)。

Black に渡される引数は、options(デフォルトは '--check --diff')と src(デフォルトは '.')で設定することもできます。--check フラグ は、Black がフォーマットする必要があるファイルを見つけた場合にワークフローが失敗するようにするために必要です。

設定例を以下に示します。

- uses: psf/black@stable
  with:
    options: "--check --verbose"
    src: "./src"
    jupyter: true
    version: "21.5b1"

Black の 安定性ポリシー でカバーされているバージョンと一致させる場合は、互換リリース演算子(~=)を使用できます。

- uses: psf/black@stable
  with:
    options: "--check --verbose"
    src: "./src"
    version: "~= 22.0"

pyproject.toml からバージョンを読み取る場合は、use_pyprojecttrue に設定します。

- uses: psf/black@stable
  with:
    options: "--check --verbose"
    src: "./src"
    use_pyproject: true