GitHub Actions 集成

您可以在 GitHub Actions 工作流程中使用 Black,而无需设置自己的 Python 环境。非常适合强制您的代码符合 Black 代码风格。

兼容性

已知此操作支持所有 GitHub 托管的运行器操作系统。此外,仅支持已发布的 Black 版本(即 PyPI 上可用的版本)。

最后,此操作使用 colorama 附加项安装 Black,因此 --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_pyproject 设置为 true。这将首先查看 tool.black.required-version 字段,然后查看 project.dependencies 数组,最后查看 project.optional-dependencies 表格。动作默认使用 PyPI 上可用的最新版本。仅支持从 PyPI 获取的版本,因此不支持任何提交 SHA 或分支名称。

如果您想包含 Jupyter Notebooks,则必须使用 jupyter 附加项安装 Black。可以通过 jupyter 配置安装附加项和包含 Jupyter Notebook 文件(默认值为 false)。

您还可以通过 options(默认为 '--check --diff')和 src(默认为 '.')配置传递给 Black 的参数。请注意,--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_pyproject 设置为 true

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