Switch CI pipeline from pypi.org to Forgejo PyPI #4

Closed
opened 2026-03-01 18:03:37 +00:00 by forgejo_admin · 0 comments

Plan

plan-2026-03-01-forgejo-pypi-migration — Phase 2

Repo

gmail-mcp — the repo where the code change happens

User Story

As a platform maintainer
I need the gmail-mcp CI pipeline to publish to Forgejo PyPI instead of pypi.org
So that all Python packages are published privately to the platform registry

Acceptance Criteria

When I merge a PR to main
Then the Woodpecker pipeline lints with ruff, runs tests, and publishes to Forgejo PyPI using global secrets

Additional Information

  • Old .woodpecker.yaml publishes to pypi.org — must be deleted
  • New .woodpecker.yml follows the woodpecker-sdk template pattern
  • Need [tool.ruff] config in pyproject.toml (py310, line-length 120, select E/F/W/I)
  • Lint step pins ruff==0.15.2
  • No special secrets needed for tests
  • Publish uses global secrets: forgejo_pypi_url, forgejo_publish_user, forgejo_publish_token
  • Stale pypi_token repo secret already deleted

Checklist

  • PR opened with related notes
  • Tests cover the acceptance criteria
  • Docs updated if needed
  • project-claude-config — platform CI infrastructure
### Plan `plan-2026-03-01-forgejo-pypi-migration` — Phase 2 ### Repo `gmail-mcp` — the repo where the code change happens ### User Story As a platform maintainer I need the gmail-mcp CI pipeline to publish to Forgejo PyPI instead of pypi.org So that all Python packages are published privately to the platform registry ### Acceptance Criteria When I merge a PR to main Then the Woodpecker pipeline lints with ruff, runs tests, and publishes to Forgejo PyPI using global secrets ### Additional Information - Old `.woodpecker.yaml` publishes to pypi.org — must be deleted - New `.woodpecker.yml` follows the woodpecker-sdk template pattern - Need `[tool.ruff]` config in pyproject.toml (py310, line-length 120, select E/F/W/I) - Lint step pins `ruff==0.15.2` - No special secrets needed for tests - Publish uses global secrets: `forgejo_pypi_url`, `forgejo_publish_user`, `forgejo_publish_token` - Stale `pypi_token` repo secret already deleted ### Checklist - [ ] PR opened with related notes - [ ] Tests cover the acceptance criteria - [ ] Docs updated if needed ### Related - `project-claude-config` — platform CI infrastructure
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo_admin/gmail-mcp#4
No description provided.