Skip to content

Commit

Permalink
feat: add ruff template (#33)
Browse files Browse the repository at this point in the history
  • Loading branch information
hairmare authored Mar 11, 2024
1 parent d35c36f commit f06e7a4
Show file tree
Hide file tree
Showing 3 changed files with 136 additions and 0 deletions.
1 change: 1 addition & 0 deletions catalog-info.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ spec:
- https://github.com/radiorabe/backstage-software-templates/blob/main/scaffolder-templates/all-in-one/template.yaml
- https://github.com/radiorabe/backstage-software-templates/blob/main/scaffolder-templates/ci_schedule/template.yaml
- https://github.com/radiorabe/backstage-software-templates/blob/main/scaffolder-templates/dependabot/template.yaml
- https://github.com/radiorabe/backstage-software-templates/blob/main/scaffolder-templates/ruff/template.yaml
- https://github.com/radiorabe/backstage-software-templates/blob/main/scaffolder-templates/semrel/template.yaml
74 changes: 74 additions & 0 deletions scaffolder-skeletons/ruff/ruff.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# [ruff](https://docs.astral.sh/ruff/) config
#
# templated with https://github.com/radiorabe/backstage-software-templates

[lint]
select = [
"F", # pyflakes
"E", # pycodestyle errors
"I", # isort
"C90", # mccabe
"N", # pep8-naming
"D", # pydocstyle
"UP", # pyupgrade
"ANN", # flake8-annotations
"ASYNC", # flake8-async
"S", # flake8-bandit
"BLE", # flake8-blind-exception
"FBT", # flake8-boolean-trap
"B", # flake8-bugbear
"A", # flake8-builtins
"COM", # flake8-commas
"C4", # flake8-comprehensions
"DTZ", # flake8-datetimez
"T10", # flake8-debugger
"EM", # flake8-errmsg
"EXE", # flake8-executable
"FA", # flake8-future-annotations
"ISC", # flake8-implicit-str-concat
"ICN", # flake8-import-conventions
"G", # flake8-logging-format
"INP", # flake8-no-pep420
"PIE", # flake8-pie
"T20", # flake8-print
"PYI", # flake8-pyi
"PT", # flake8-pytest-style
"Q", # flake8-quotes
"RSE", # flake8-raise
"RET", # flake8-return
"SLF", # flake8-self
"SLOT", # flake8-slots
"SIM", # flake8-simplify
"TID", # flake8-tidy-imports
"TCH", # flake8-type-checking
"INT", # flake8-gettext
"ARG", # flake8-unused-arguments
"PTH", # flake8-use-pathlib
"TD", # flake8-todos
"ERA", # eradicate
"PGH", # pygrep-hooks
"PL", # Pylint
"TRY", # tryceratops
"PERF", # Perflint
"RUF", # ruff specific rules
]
ignore = [
"D203", # we prefer blank-line-before-class (D211) for black compat
"D213", # we prefer multi-line-summary-first-line (D212)
]

[lint.per-file-ignores]
"tests/**/*.py" = [
"D", # pydocstyle is optional for tests
"ANN", # flake8-annotations are optional for tests
"S101", # assert is allow in tests
"S108" # /tmp is allowed in tests since it's expected to be mocked
"DTZ001", # tests often run in UTC
"INP001", # tests do not need a dunder init
]
"**/__init__.py" = [
"D104", # dunder init does not need a docstring because it might be empty
]
"docs/gen_ref_pages.py" = [
"INP001", # mkdocs does not need a dunder init
]
61 changes: 61 additions & 0 deletions scaffolder-templates/ruff/template.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
name: ruff
title: Ruff
description: Configure Ruff on an existing project.
tags:
- python
spec:
owner: it-reaktion
type: ci
parameters:
- title: Choose a location
required:
- repoUrl
properties:
repoUrl:
title: Repository Location
type: string
ui:field: RepoUrlPicker
ui:options:
allowedHosts:
- github.com
allowedOwners:
- radiorabe
requestUserCredentials:
secretsKey: USER_GITHUB_OAUTH_TOKEN
additionalScopes:
github:
- workflow
steps:
- id: fetch-base
name: Fetch Base
action: fetch:template
input:
url: ../../scaffolder-skeletons/ruff/
replace: true
values:
actions_version: ${{ steps.getversion.output.body.tag_name }}
- id: publish
name: Publish
action: publish:github:pull-request
input:
title: "chore(ci): configure ruff"
token: ${{ secrets.USER_GITHUB_OAUTH_TOKEN }}
repoUrl: ${{ parameters.repoUrl }}
branchName: chore/ci/ruff
update: true
description: |
# Configure [ruff](https://docs.astral.sh/ruff/)
This configuration reflects the default RaBe Ruff config.
Please check the following before you merge it:
* [ ] pytest-ruff is installed and the `--ruff` arg is passed in `pyproject.toml`
* [ ] `pyproject.toml` does not contain any further ruff configuration
output:
links:
- url: ${{steps.publish.output.remoteUrl}}
title: "Go to PR"

0 comments on commit f06e7a4

Please sign in to comment.