Migrate project URLs and CI from Codeberg to forge.marvin8.zone #17

Manually merged
marvin8 merged 7 commits from feat/issue-16-migrate-to-forge into main 2026-08-06 20:25:50 +00:00
Collaborator

Closes #16

Summary

Migrate all project references, CI, and remotes from Codeberg to forge.marvin8.zone.

Changes

  • Remotes: origin → forge-marvin8, added forge-pi
  • URLs: Replaced all codeberg.org references in pyproject.toml, README, mkdocs.yml, docs/, justfile, CHANGELOG.md
  • CI:
    • Weekly-checks runner: codeberg-small-lazy → suanni
    • Wuming action: codeberg.org → forge.marvin8.zone
    • Removed Codeberg Pages upload step (Forgejo 16 serves pages branch natively)
    • Deploy-docs git remote updated
  • Dependencies: Bumped cyclopts, platformdirs, bump-my-version, complexipy, mkdocs-material, prek, ruff, ty
  • Zaojun: Enabled compat-ok to allow compatible updates within min-age

Notes

  • The docs site at rainlog.marvin8.zone will need the custom domain configured in forge.marvin8.zone repo settings (Pages section)
  • claude remote retained until migration confirmed working
Closes #16 ## Summary Migrate all project references, CI, and remotes from Codeberg to forge.marvin8.zone. ## Changes - **Remotes**: origin → forge-marvin8, added forge-pi - **URLs**: Replaced all codeberg.org references in pyproject.toml, README, mkdocs.yml, docs/, justfile, CHANGELOG.md - **CI**: - Weekly-checks runner: codeberg-small-lazy → suanni - Wuming action: codeberg.org → forge.marvin8.zone - Removed Codeberg Pages upload step (Forgejo 16 serves pages branch natively) - Deploy-docs git remote updated - **Dependencies**: Bumped cyclopts, platformdirs, bump-my-version, complexipy, mkdocs-material, prek, ruff, ty - **Zaojun**: Enabled compat-ok to allow compatible updates within min-age ## Notes - The docs site at rainlog.marvin8.zone will need the custom domain configured in forge.marvin8.zone repo settings (Pages section) - `claude` remote retained until migration confirmed working
🔧 migrate project URLs and CI from Codeberg to forge.marvin8.zone
Some checks failed
/ gitleaks (pull_request) Successful in 19s
/ pr-review (pull_request) Successful in 1m4s
/ checks (pull_request) Failing after 3m55s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
94c2b37e78
- Update origin remote to forge-marvin8, add forge-pi remote
- Replace all codeberg.org URLs in pyproject.toml, README, mkdocs.yml, docs,
  justfile, CHANGELOG.md, and CI workflows
- Switch weekly-checks runner from codeberg-small-lazy to suanni
- Remove Codeberg Pages upload step (Forgejo 16 serves pages branch natively)
- Update wuming action URL to forge.marvin8.zone
- Bump dependencies: cyclopts, platformdirs, bump-my-version, complexipy,
  mkdocs-material, prek, ruff, ty
- Enable compat-ok in zaojun config
🐛 restore grebedoc upload step in deploy-docs
Some checks failed
/ gitleaks (pull_request) Successful in 19s
/ pr-review (pull_request) Successful in 58s
/ checks (pull_request) Failing after 3m59s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
c70eb3ddd8
The git-pages/action pushes to grebedoc.dev, not Codeberg Pages — it must stay
as-is during migration. Also correct rainlog's description in the migration
tracker to note docs publish via grebedoc.dev.
forgejo-actions left a comment

WuMing

Found 1 issue(s). See inline comments below.

## WuMing Found **1** issue(s). See inline comments below.
@ -92,3 +92,3 @@
git config user.email "ci@forgejo"
git config user.name "Forgejo Actions"
git remote set-url origin https://x-token-auth:$FORGEJO_TOKEN@codeberg.org/${{ github.repository }}.git
git remote set-url origin https://x-token-auth:$FORGEJO_TOKEN@forge.marvin8.zone/${{ github.repository }}.git

security [MEDIUM]

The Git remote URL includes a secret token in the command line, which could be visible in CI logs if shell tracing or verbose output is enabled. Use a credential helper or extraheader approach that doesn't place the token directly in the command. (A02, A05)

**security** [MEDIUM] The Git remote URL includes a secret token in the command line, which could be visible in CI logs if shell tracing or verbose output is enabled. Use a credential helper or `extraheader` approach that doesn't place the token directly in the command. (A02, A05) <!-- wuming:sha256:e58c8edb18ff5cfba00c0ec90dd0e21ec63ab0ae3749b6745f26159ee3537589 -->
🔧 fix dependency bumps — remove constraint hacks, use correct ~= targets
Some checks failed
/ gitleaks (pull_request) Successful in 18s
/ pr-review (pull_request) Successful in 29s
/ checks (pull_request) Failing after 3m57s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
56431164bf
Each ~= minimum set to aged_version (when too_new) or latest (per zaojun --format json).
No constraint-dependencies or compat-ok needed — min-age handles quarantine.
🐛 fix ruff PLR0917, pysentry vuln, and pre-commit version pins
All checks were successful
/ gitleaks (pull_request) Successful in 15s
/ pr-review (pull_request) Successful in 1m2s
/ checks (pull_request) Successful in 3m57s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
edbc7209a9
- Add PLR0917 to noqa (new rule in ruff 0.16.0)
- Add pymdown-extensions>=11.0.0 constraint for PYSEC-2026-3609
- Bump pre-commit ruff rev to v0.16.0, ty rev to v0.0.65
🔒 use extraheader instead of token-in-URL for deploy-docs auth
All checks were successful
/ gitleaks (pull_request) Successful in 21s
/ pr-review (pull_request) Successful in 40s
/ checks (pull_request) Successful in 3m47s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
6bc0947050
Author
Collaborator

.forgejo/workflows/ci.yml line 0

The Git remote URL includes a secret token in the command line

Fixed in commit 6bc0947 — replaced git remote set-url with git config --local http.extraHeader.

[`.forgejo/workflows/ci.yml` line 0](https://forge.marvin8.zone/marvin8/rainlog/pulls/17#issuecomment-672) > The Git remote URL includes a secret token in the command line ✅ Fixed in commit `6bc0947` — replaced `git remote set-url` with `git config --local http.extraHeader`.
revert untested extraheader change — restore working token-in-URL
Some checks failed
/ gitleaks (pull_request) Successful in 17s
/ pr-review (pull_request) Successful in 43s
/ checks (pull_request) Failing after 3m37s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
1e630a941f
Author
Collaborator

.forgejo/workflows/ci.yml line 0

The Git remote URL includes a secret token in the command line

🔴 Reverted in commit 1e630a9 — the extraheader format was untested and would likely break docs publishing. The token-in-URL pattern is pre-existing, working, and the deploy-docs job only runs on tag pushes (not PRs), so it was never verified. Better to keep the known-working pattern.

[`.forgejo/workflows/ci.yml` line 0](https://forge.marvin8.zone/marvin8/rainlog/pulls/17#issuecomment-672) > The Git remote URL includes a secret token in the command line 🔴 Reverted in commit `1e630a9` — the extraheader format was untested and would likely break docs publishing. The token-in-URL pattern is pre-existing, working, and the `deploy-docs` job only runs on tag pushes (not PRs), so it was never verified. Better to keep the known-working pattern.
forgejo-actions left a comment

WuMing

Found 1 issue(s). See inline comments below.

## WuMing Found **1** issue(s). See inline comments below.
@ -13,3 +13,3 @@
if: github.event_name == 'pull_request'
steps:
- uses: https://codeberg.org/marvin8/wuming@main
- uses: https://forge.marvin8.zone/marvin8/wuming@main

security [MEDIUM]

External GitHub Action fetched from a private domain (forge.marvin8.zone) without integrity verification (no pinned commit SHA or checksum). An attacker who controls this action could compromise the CI/CD pipeline and access secrets. Use a trusted source or pin to a specific commit hash. (A08: Software and Data Integrity Failures).

**security** [MEDIUM] External GitHub Action fetched from a private domain (forge.marvin8.zone) without integrity verification (no pinned commit SHA or checksum). An attacker who controls this action could compromise the CI/CD pipeline and access secrets. Use a trusted source or pin to a specific commit hash. (A08: Software and Data Integrity Failures). <!-- wuming:sha256:4717384c43089eea254f9cffdb6e73e15cc4fb8571083b07ca8a73b416117375 -->
marvin8 marked this conversation as resolved
⬆️ bump cyclopts to 4.22.3, ruff to 0.16.1 (aged past min-age)
All checks were successful
/ gitleaks (pull_request) Successful in 15s
/ pr-review (pull_request) Successful in 38s
/ checks (pull_request) Successful in 3m48s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
7b5be5bf54
forgejo-actions left a comment

WuMing

Found 1 issue(s). See inline comments below.

## WuMing Found **1** issue(s). See inline comments below.
@ -606,6 +606,7 @@ class StatsPanel(Widget):
period_total: float,
daily_average: float,
streak: tuple[str, int],
*,

tests [LOW]

Source file modified (function signature made keyword-only) without any corresponding test changes in the diff. Add or update tests that verify the updated call signature and behavior, especially coverage for callers relying on positional optional arguments.

**tests** [LOW] Source file modified (function signature made keyword-only) without any corresponding test changes in the diff. Add or update tests that verify the updated call signature and behavior, especially coverage for callers relying on positional optional arguments. <!-- wuming:sha256:539d70c03311a13e8a0b0af134e85aecbbb461b3e10a218e4238bfa093cb0e5a -->
marvin8 marked this conversation as resolved
Author
Collaborator

.forgejo/workflows/ci.yml line 0

External GitHub Action fetched from a private domain (forge.marvin8.zone) without integrity verification

🔴 Not actioned — the @main pattern is pre-existing (only the domain changed from codeberg.org in this PR). forge.marvin8.zone is your own instance, not an untrusted external source. Pinning commit SHAs across all actions is a separate concern.

[`.forgejo/workflows/ci.yml` line 0](https://forge.marvin8.zone/marvin8/rainlog/pulls/17#issuecomment-680) > External GitHub Action fetched from a private domain (forge.marvin8.zone) without integrity verification 🔴 Not actioned — the `@main` pattern is pre-existing (only the domain changed from codeberg.org in this PR). forge.marvin8.zone is your own instance, not an untrusted external source. Pinning commit SHAs across all actions is a separate concern.
Author
Collaborator

src/rainlog/tui.py line 0

Source file modified (function signature made keyword-only) without any corresponding test changes

🔴 Not actioned — all callers in both src/rainlog/tui.py and tests/test_tui_helpers.py already pass arguments by keyword. The * separator makes the existing convention mandatory but changes no behavior and requires no test updates.

[`src/rainlog/tui.py` line 0](https://forge.marvin8.zone/marvin8/rainlog/pulls/17#issuecomment-683) > Source file modified (function signature made keyword-only) without any corresponding test changes 🔴 Not actioned — all callers in both `src/rainlog/tui.py` and `tests/test_tui_helpers.py` already pass arguments by keyword. The `*` separator makes the existing convention mandatory but changes no behavior and requires no test updates.
marvin8 approved these changes 2026-08-06 20:25:07 +00:00
marvin8 manually merged commit 6c5a2198bf into main 2026-08-06 20:25:50 +00:00
marvin8 deleted branch feat/issue-16-migrate-to-forge 2026-08-06 20:26:14 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
marvin8/rainlog!17
No description provided.