Implement Forgejo read-only export #2

Closed
opened 2026-05-28 21:41:04 +02:00 by codex · 2 comments
Collaborator

Goal

Build a read-only Forgejo export for open issues and pull requests.

Acceptance

  • CLI can fetch open issues and open PRs from configured repos.
  • Export includes number, kind, title, body hash or compact body excerpt, labels, state, updated timestamp, comments metadata, and latest openclaw.judge.v0 comment if present.
  • No merge, approval, close, delete, or label mutation endpoints are called.
  • Output is deterministic JSON suitable for downstream planning.
  • Secrets and tokens are never printed.

First dogfood repos

  • pdurlej/platform
  • pdurlej/patchwarden
  • pdurlej/iskra-openclaw
## Goal Build a read-only Forgejo export for open issues and pull requests. ## Acceptance - CLI can fetch open issues and open PRs from configured repos. - Export includes number, kind, title, body hash or compact body excerpt, labels, state, updated timestamp, comments metadata, and latest `openclaw.judge.v0` comment if present. - No merge, approval, close, delete, or label mutation endpoints are called. - Output is deterministic JSON suitable for downstream planning. - Secrets and tokens are never printed. ## First dogfood repos - `pdurlej/platform` - `pdurlej/patchwarden` - `pdurlej/iskra-openclaw`
Collaborator

{
"confidence": 5,
"effort_hint": "medium",
"escalation": {
"kind": "none",
"reason": ""
},
"evidence_refs": [
{
"note": "Issue requests a read-only Forgejo export for open issues and pull requests.",
"type": "forgejo",
"value": "issue-title-body-labels-and-target-snapshot"
},
{
"note": "Acceptance requires deterministic JSON, latest judge comment metadata, and no mutation endpoints.",
"type": "forgejo",
"value": "issue-body-acceptance"
},
{
"note": "First dogfood repos are platform, patchwarden, and iskra-openclaw.",
"type": "forgejo",
"value": "issue-body-dogfood-repos"
}
],
"impact": 5,
"judge_actor": {
"name": "iskra",
"runtime": "openclaw"
},
"judged_at": "2026-05-29T06:43:00Z",
"labels_to_apply": [
"judge/p1",
"judge/codex-candidate"
],
"piotr_fit": "high",
"priority": "p1",
"rationale_summary": "A read-only deterministic Forgejo export is a core substrate for safe downstream judging and planning automation.",
"reach": 5,
"recommended_next_action": "codex_candidate",
"rerun_reason": "no_prior_judgment",
"schema": "openclaw.judge.v0",
"target": {
"kind": "issue",
"number": 2,
"repo": "pdurlej/judging-claw"
},
"target_snapshot": {
"body_hash": "sha256:7a933d546add8efe1032ff767156368e02701ee3f5eefa235bec69993f25abe6",
"commit_count": null,
"evidence_hash": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"head_sha": null,
"labels": [],
"labels_hash": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"state": "open",
"title_hash": "sha256:374cd35cff9d192fc815fa9a80ba59ef54621dfd9bd1db5c7d7666853ba7da2a",
"updated_at": "2026-05-28T21:41:04+02:00"
},
"top_caveat": "Read-only behavior must be enforced by implementation structure, not just documented intent."
}

<!-- openclaw.judge.v0 --> { "confidence": 5, "effort_hint": "medium", "escalation": { "kind": "none", "reason": "" }, "evidence_refs": [ { "note": "Issue requests a read-only Forgejo export for open issues and pull requests.", "type": "forgejo", "value": "issue-title-body-labels-and-target-snapshot" }, { "note": "Acceptance requires deterministic JSON, latest judge comment metadata, and no mutation endpoints.", "type": "forgejo", "value": "issue-body-acceptance" }, { "note": "First dogfood repos are platform, patchwarden, and iskra-openclaw.", "type": "forgejo", "value": "issue-body-dogfood-repos" } ], "impact": 5, "judge_actor": { "name": "iskra", "runtime": "openclaw" }, "judged_at": "2026-05-29T06:43:00Z", "labels_to_apply": [ "judge/p1", "judge/codex-candidate" ], "piotr_fit": "high", "priority": "p1", "rationale_summary": "A read-only deterministic Forgejo export is a core substrate for safe downstream judging and planning automation.", "reach": 5, "recommended_next_action": "codex_candidate", "rerun_reason": "no_prior_judgment", "schema": "openclaw.judge.v0", "target": { "kind": "issue", "number": 2, "repo": "pdurlej/judging-claw" }, "target_snapshot": { "body_hash": "sha256:7a933d546add8efe1032ff767156368e02701ee3f5eefa235bec69993f25abe6", "commit_count": null, "evidence_hash": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "head_sha": null, "labels": [], "labels_hash": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "state": "open", "title_hash": "sha256:374cd35cff9d192fc815fa9a80ba59ef54621dfd9bd1db5c7d7666853ba7da2a", "updated_at": "2026-05-28T21:41:04+02:00" }, "top_caveat": "Read-only behavior must be enforced by implementation structure, not just documented intent." } <!-- /openclaw.judge.v0 -->
Author
Collaborator

Implemented and verified in Judging Claw v1 production rollout.

Proof:

  • merged main: 1145fb5
  • local tests: python3 -m unittest -> 75 OK; python3 -m py_compile judging_claw/*.py OK
  • VPS tests: 75 OK; py_compile OK
  • production dry-run artifact: /home/openclaw/.openclaw/workspace/judging-claw-runs/2026-05-29-192057

Closing as completed; #10 remains open for the broader OpenClaw-family secret-injection contract.

Implemented and verified in Judging Claw v1 production rollout. Proof: - merged main: `1145fb5` - local tests: `python3 -m unittest` -> 75 OK; `python3 -m py_compile judging_claw/*.py` OK - VPS tests: 75 OK; `py_compile` OK - production dry-run artifact: `/home/openclaw/.openclaw/workspace/judging-claw-runs/2026-05-29-192057` Closing as completed; #10 remains open for the broader OpenClaw-family secret-injection contract.
codex closed this issue 2026-05-29 19:29:18 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
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
pdurlej/judging-claw#2
No description provided.