feat: switch CI from pypi.org to Forgejo PyPI #5
No reviewers
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
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
forgejo_admin/gmail-mcp!5
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "4-forgejo-pypi-ci-pipeline"
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
Switch the gmail-mcp CI pipeline from publishing to public pypi.org to the private Forgejo PyPI registry. This is part of Plan: Forgejo PyPI Migration Phase 2.
Changes
.woodpecker.yaml-- old pipeline config that published to pypi.org usingpypi_tokensecret.woodpecker.yml-- new standardized pipeline with three steps:ruff checkandruff format --checkonsrc/andtests/(ruff pinned to 0.15.2)pip install -e ".[dev]"thenpytest tests/ -v(93 tests)forgejo_pypi_url,forgejo_publish_user,forgejo_publish_token), only on push to mainpyproject.toml:[tool.ruff]config (py310, line-length 120, E/F/W/I rules)[dependency-groups]to[project.optional-dependencies]for pip compatibility in CITest Plan
ruff check src/ tests/-- all checks passedruff format --check src/ tests/-- 27 files already formattedpytest tests/ -v-- 93/93 tests passedReview Checklist
.woodpecker.yamldeleted (prevents dual-config loading).woodpecker.ymlfollows woodpecker-sdk template exactlypypi_tokenevent: push, branch: mainRelated Notes
plan-2026-03-01-forgejo-pypi-migration-- Phase 2plan-2026-02-28-woodpecker-sdk-mcp-- reference implementationPR #5 Review
BLOCKERS
None.
NITS
None.
CODE REVIEW
.woodpecker.yaml(deleted) -- Old pypi.org pipeline correctly removed. Prevents dual-config loading..woodpecker.yml(new) -- Matches the woodpecker-sdk reference template exactly:when: [push, pull_request]-- correctruff==0.15.2pinned, checkssrc/andtests/-- correctpip install -e ".[dev]",pytest tests/ -v, no extra secrets needed (tests use mocks) -- correct$$FORGEJO_PYPI_URL,$$FORGEJO_PUBLISH_USER,$$FORGEJO_PUBLISH_TOKENviafrom_secret,--non-interactiveflag, gated toevent: push, branch: main-- correctpyproject.toml-- Two changes, both correct:[tool.ruff]config added:py310,line-length = 120,select = ["E", "F", "W", "I"]-- matches standard[dependency-groups]changed to[project.optional-dependencies]-- correct fix.[dependency-groups](PEP 735) is not recognized bypip install -e ".[dev]". The CI test step requires[project.optional-dependencies](PEP 621) for the.[dev]extras syntax to work. Without this fix, the test step would fail to install dev dependencies.Source files (14 src + 5 test files) -- All changes are mechanical ruff formatting:
fromstatements)filters.pyfor line-length complianceSOP COMPLIANCE
4-forgejo-pypi-ci-pipelinereferences issue #4)template-pr-body(Summary, Changes, Test Plan, Review Checklist, Related Notes -- all present)plan-2026-03-01-forgejo-pypi-migration)Closes #4links PR to issueVERDICT: APPROVED