feat: add Woodpecker CI pipeline and ruff config #2
No reviewers
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
test:label-a
test:label-b
test:set-label
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/forgejo-mcp!2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "1-add-woodpecker-ci-pipeline-ruff-config-f"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Changes
.woodpecker.yml: New CI pipeline with lint step (ruff check + format --check) and publish step (build + twine upload to Forgejo PyPI, main-only). Test step omitted because repo has no tests yet (only emptytests/__init__.py).pyproject.toml: Added[tool.ruff](target-version py310, line-length 120),[tool.ruff.lint](select E/F/W/I), andruff>=0.15.0to[dev]extras.src/forgejo_mcp/server.py: Import ordering fixed by ruff (isort).src/forgejo_mcp/tools/workflows.py: Fixed 3 long lines (E501) by wrapping strings, ruff reformattedjson.dumpscalls and function signatures for consistency.Test Plan
ruff check src/passes with zero errorsruff format --check src/confirms all files formattedReview Checklist
Related Notes
plan-2026-03-01-forgejo-pypi-migration-- Phase 1, forgejo-mcp repoPR #2 Review
BLOCKERS
None.
NITS
src/-- The woodpecker-sdk reference lints bothsrc/ tests/. This PR lints onlysrc/. The justification (repo has no tests, only emptytests/__init__.py) is reasonable, but if tests are added later someone will need to remember to update the lint targets. Consider addingtests/now for consistency with the template, even if it is currently empty. Non-blocking.SOP COMPLIANCE
1-add-woodpecker-ci-pipeline-ruff-config-freferences issue #1)template-pr-body(Summary, Changes, Test Plan, Review Checklist, Related Notes)plan-2026-03-01-forgejo-pypi-migrationPIPELINE VERIFICATION
.woodpecker.ymlmatches proven pattern from woodpecker-sdkruff==0.15.2pinned in lint step$$FORGEJO_PYPI_URL,$$FORGEJO_PUBLISH_USER,$$FORGEJO_PUBLISH_TOKENwithfrom_secret--non-interactiveflag on twine uploadevent: push, branch: mainCODE CHANGES
server.pyimport reorder is mechanical (isort)workflows.pychanges are all mechanical formatting (E501 line wraps,json.dumpsreformatting, function signature reformatting) -- no behavioral changesVERDICT: APPROVED