Migrate yilan from Codeberg to forge.marvin8.zone #15

Manually merged
marvin8 merged 10 commits from feat/issue-14-migrate-to-forge into main 2026-08-07 01:57:19 +00:00
Collaborator

Closes #14

Summary

Migrates yilan from Codeberg.org to forge.marvin8.zone.

Changes

  • Remotes: origin → forge-marvin8, added forge-pi, removed claude
  • URLs: Updated all codeberg.org source references to forge.marvin8.zone
  • AGENTS.md: Removed codeberg-specific git identity; references global AGENTS.md
  • CI: Runner changed to suanni, wuming action updated to forge URL, grebedoc kept as-is
  • Deps: Bumped all non-up-to-date packages per zaojun
  • Migration tracker: yilan moved from NOT migrated to Migrated

Not changed

  • zaojun references in pre-commit-config.yaml and specs — zaojun not yet migrated
Closes #14 ## Summary Migrates yilan from Codeberg.org to forge.marvin8.zone. ### Changes - **Remotes**: origin → forge-marvin8, added forge-pi, removed claude - **URLs**: Updated all codeberg.org source references to forge.marvin8.zone - **AGENTS.md**: Removed codeberg-specific git identity; references global AGENTS.md - **CI**: Runner changed to suanni, wuming action updated to forge URL, grebedoc kept as-is - **Deps**: Bumped all non-up-to-date packages per zaojun - **Migration tracker**: yilan moved from NOT migrated to Migrated ### Not changed - zaojun references in pre-commit-config.yaml and specs — zaojun not yet migrated
- Update default API base_url and raw_url builder
- Update AGENTS.md: remove codeberg-specific git identity, reference global AGENTS.md
- Update README badges, clone URL, and links
- Update CI workflows: wuming action URL, deploy-docs remote, runner to suanni
- Update mkdocs.yml, Justfile, docs, specs, and test expectations
- Keep grebedoc action as-is (separate service)
⬆️ bump dependencies
Some checks failed
/ gitleaks (pull_request) Successful in 22s
/ pr-review (pull_request) Successful in 43s
/ checks (pull_request) Failing after 1m18s
/ deploy-docs (pull_request) Has been skipped
7c67151cb8
- certifi: ~=2026.7.22
- bump-my-version: ~=1.5.0 (aged)
- complexipy: ~=6.2.0
- mkdocs-material: ~=9.7.7
- mkdocstrings: ~=1.0.6
- prek: ~=0.4.11 (aged)
- ruff: ~=0.16.1
- ty: ~=0.0.65 (aged)
- uv: ~=0.12.0 (aged)
- Update pre-commit hook revisions to match
forgejo-actions left a comment

WuMing

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

## WuMing Found **1** issue(s). See inline comments below.
@ -67,3 +67,3 @@
Full URL to the raw file contents.
"""
return f"https://codeberg.org/{owner}/{repo}/raw/branch/main/{path}"
return f"https://forge.marvin8.zone/{owner}/{repo}/raw/branch/main/{path}"

code [LOW]

The raw URL domain is hardcoded separately from the API base URL. If the API base URL changes, this must also be updated, leading to potential inconsistency. Consider deriving the raw URL from the configured API base URL or a shared constant.

**code** [LOW] The raw URL domain is hardcoded separately from the API base URL. If the API base URL changes, this must also be updated, leading to potential inconsistency. Consider deriving the raw URL from the configured API base URL or a shared constant. <!-- wuming:sha256:d4349cd16158d0e42e0800e235d3f5ff1dfec047c0caf1f614b66fe45de7b66d -->
marvin8 marked this conversation as resolved
🔧 fix ruff 0.16.1 violations and configure isort
Some checks failed
/ gitleaks (pull_request) Successful in 19s
/ pr-review (pull_request) Successful in 43s
/ checks (pull_request) Failing after 1m9s
/ deploy-docs (pull_request) Has been skipped
5df65eb15a
- Add force-single-line isort config to match AGENTS.md import style
- Replace datetime.date.today() with datetime.datetime.now(datetime.UTC).date()
- Replace bare except Exception with specific urllib.error.URLError, OSError
🔒 pin pymdown-extensions>=11.0 to fix PYSEC-2026-3609
All checks were successful
/ gitleaks (pull_request) Successful in 20s
/ pr-review (pull_request) Successful in 41s
/ checks (pull_request) Successful in 1m35s
/ deploy-docs (pull_request) Has been skipped
47feffc500
🔒 constrain pymdown-extensions>=11.0 via tool.uv.constraint-dependencies
Some checks failed
/ deploy-docs (pull_request) Has been cancelled
/ pr-review (pull_request) Has been cancelled
/ gitleaks (pull_request) Has been cancelled
/ checks (pull_request) Has been cancelled
0bab6941b0
Fixes PYSEC-2026-3609 (MEDIUM) in transitive dependency.
agent-pi force-pushed feat/issue-14-migrate-to-forge from 0bab6941b0
Some checks failed
/ deploy-docs (pull_request) Has been cancelled
/ pr-review (pull_request) Has been cancelled
/ gitleaks (pull_request) Has been cancelled
/ checks (pull_request) Has been cancelled
to 3dce2f7879
All checks were successful
/ gitleaks (pull_request) Successful in 12s
/ pr-review (pull_request) Successful in 41s
/ checks (pull_request) Successful in 1m22s
/ deploy-docs (pull_request) Has been skipped
2026-08-06 23:42:09 +00:00
Compare
forgejo-actions left a comment

WuMing

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

## WuMing Found **2** 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 action referenced by branch name @main instead of a pinned commit SHA. The action could be silently modified, introducing malicious code. Pin to a full commit hash to ensure integrity. A08: Software and Data Integrity Failures.

**security** [MEDIUM] External action referenced by branch name `@main` instead of a pinned commit SHA. The action could be silently modified, introducing malicious code. Pin to a full commit hash to ensure integrity. A08: Software and Data Integrity Failures. <!-- wuming:sha256:4717384c43089eea254f9cffdb6e73e15cc4fb8571083b07ca8a73b416117375 -->
marvin8 marked this conversation as resolved
@ -84,3 +84,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/$REPOSITORY.git
git remote set-url origin https://x-token-auth:$FORGEJO_TOKEN@forge.marvin8.zone/$REPOSITORY.git

security [HIGH]

Password token exposed in URL via command-line argument. This can leak the token through CI log output, process listings, or shell history. Use environment variable substitution in a way that avoids embedding the secret directly in the command line, e.g., using git remote set-url origin https://x-token-auth:$(echo $FORGEJO_TOKEN)@... is still problematic; consider authenticating via a credential helper instead. A02: Cryptographic Failures.

**security** [HIGH] Password token exposed in URL via command-line argument. This can leak the token through CI log output, process listings, or shell history. Use environment variable substitution in a way that avoids embedding the secret directly in the command line, e.g., using `git remote set-url origin https://x-token-auth:$(echo $FORGEJO_TOKEN)@...` is still problematic; consider authenticating via a credential helper instead. A02: Cryptographic Failures. <!-- wuming:sha256:df48a82234f1389e01f845581036d1d91cd9399ad2663964d48e94f7dd3d98b9 -->
marvin8 marked this conversation as resolved
Author
Collaborator

src/yilan/http_client.py line 0

The raw URL domain is hardcoded separately from the API base URL…

🔴 Deferred to follow-up issue #16 — not in scope for this migration.

[`src/yilan/http_client.py` line 0](https://forge.marvin8.zone/marvin8/yilan/pulls/15#issuecomment-752) > The raw URL domain is hardcoded separately from the API base URL… 🔴 Deferred to follow-up issue #16 — not in scope for this migration.
Author
Collaborator

.forgejo/workflows/ci.yml line 0

Password token exposed in URL via command-line argument…

🔴 Not actioned — established pattern in Forgejo Actions deploy-docs workflows. The token comes from forge.token (built-in secret) and this is a self-hosted forge with minimal attack surface.

[`.forgejo/workflows/ci.yml` line 0](https://forge.marvin8.zone/marvin8/yilan/pulls/15#issuecomment-758) > Password token exposed in URL via command-line argument… 🔴 Not actioned — established pattern in Forgejo Actions deploy-docs workflows. The token comes from `forge.token` (built-in secret) and this is a self-hosted forge with minimal attack surface.
Author
Collaborator

.forgejo/workflows/ci.yml line 0

External action referenced by branch name @main instead of a pinned commit SHA…

🔴 Not actioned — established pattern. WuMing is a self-hosted action on the same forge instance. Pinning to a SHA would require manual updates on every WuMing release.

[`.forgejo/workflows/ci.yml` line 0](https://forge.marvin8.zone/marvin8/yilan/pulls/15#issuecomment-759) > External action referenced by branch name `@main` instead of a pinned commit SHA… 🔴 Not actioned — established pattern. WuMing is a self-hosted action on the same forge instance. Pinning to a SHA would require manual updates on every WuMing release.
🔧 fix uv constrained dep comment
All checks were successful
/ gitleaks (pull_request) Successful in 13s
/ pr-review (pull_request) Successful in 42s
/ checks (pull_request) Successful in 1m39s
/ deploy-docs (pull_request) Has been skipped
8cee078535
marvin8 approved these changes 2026-08-07 01:43:36 +00:00
marvin8 manually merged commit daaa45a8f9 into main 2026-08-07 01:57:19 +00:00
marvin8 deleted branch feat/issue-14-migrate-to-forge 2026-08-07 01:57:50 +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/yilan!15
No description provided.