Integrations#
GitHub Actions#
GitHub Actions には、Ruff をすぐに実行するために必要なものがすべて揃っています。:
name: CI
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install ruff
# Update output format to enable automatic inline annotations.
- name: Run Ruff
run: ruff check --output-format=github .
Ruff は、ruff-action
を介して GitHub Action として使用することもできます。
デフォルトでは、ruff-action
は、指定されたリポジトリがそのconfigurationに従ってリントルール違反を含んでいないことを確認するための合否テストとして実行されます。
しかし、内部的には、ruff-action
はruff
を直接インストールして実行するため、サポートされている任意のruff
コマンド(例えばruff check --fix
)を実行するために使用することができます。
ruff-action
は、GitHub でホストされているすべてのランナーをサポートしており、公開されている任意の Ruff バージョン(つまり、PyPIで入手可能な任意のバージョン)で使用できます。
ruff-action
を使用するには、以下を使用してリポジトリ内にファイル(例:.github/workflows/ruff.yml
)を作成します。:
name: Ruff
on: [push, pull_request]
jobs:
ruff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: chartboost/ruff-action@v1
あるいは、他のワークフローファイルのステップとしてruff-action
を含めることもできます。:
ruff-action
はwith:
経由でオプションの設定パラメータを受け付けます。:
version
: The Ruff version to install (default: latest).args
: The command-line arguments to pass to Ruff (default:"check"
).src
: The source paths to pass to Ruff (default:[".", "src"]
).
たとえば、ruff check--select B./src
using Ruff version0.0.259
を実行するには、次のように指定します。:
pre-commit#
Ruff は、ruff-pre-commit
を介してpre-commitフックとして使用できます。:
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.6.0
hooks:
# Run the linter.
- id: ruff
# Run the formatter.
- id: ruff-format
リント修正を有効にするには、リントフックに--fix
引数を追加します。:
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.6.0
hooks:
# Run the linter.
- id: ruff
args: [--fix]
# Run the formatter.
- id: ruff-format
Jupyter Notebooks 上でもフックを実行するには、許可されたファイルタイプのリストにjupyter
を追加します。:
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.6.0
hooks:
# Run the linter.
- id: ruff
types_or: [python, pyi, jupyter]
args: [--fix]
# Run the formatter.
- id: ruff-format
types_or: [python, pyi, jupyter]
--fix
を使用して実行する場合、Ruff の修正動作は再フォーマットを必要とするコード変更を出力する可能性があるため、Ruff の lint フックは Ruff のフォーマッタフックの前、Black、isort、およびその他のフォーマットツールの前に配置する必要があります。
--fix
を指定せずに実行する場合、Ruff のフォーマッタフックは Ruff のリントフックの前または後に配置できます。
(Ruff の設定がlinter-formatter の非互換性を回避している限り、ruff format
は新しい lint エラーを発生させることはないので、Ruff の format hookafterruff check--fix
を実行しても安全です。)
mdformat
#
mdformatは、Markdown 内のコードブロックをフォーマットすることができます。mdformat-ruff
プラグインは、mdformat が Ruff で Python コードブロックをフォーマットできるようにします。