actions runs raw_json: Forgejo ignores limit, so raw_json returns every run (1.4 MB) #505

Open
opened 2026-09-15 21:44:25 +00:00 by hexajon · 0 comments
Owner

What happens

madt_actions action=runs limit=25 raw_json=true on sixfold-space/madtea returned all 217 runs, about 1.4 MB. event_payload was already stripped, so the size is 217 full run objects, each with its own nested repository object.

Live check, 2026-09-15:

  • Forgejo 15.0.6: GET /repos/sixfold-space/madtea/actions/runs?limit=3 returns total_count: 217 and 217 runs. The server ignores limit on this endpoint.
  • Gitea 1.27.3: GET /repos/{owner}/{repo}/actions/runs?limit=2 on a repo with 20 runs returns 2. Gitea honors it.

Text mode is correct on Forgejo (limit=4 prints "Showing 4 of 213"), so madtea already trims the list itself there. raw_json passes the full server response through instead.

Ask

  • Apply limit and page to the raw_json result the same way text mode does, when the server ignores them.
  • Drop or summarize the nested repository object per run in raw_json.

Acceptance

  • runs limit=N raw_json=true returns at most N runs on Forgejo and on Gitea.
  • The raw_json result for 25 runs stays small.

Related: #466 already suggests a leaner raw_json. This issue is the specific limit defect.

## What happens `madt_actions action=runs limit=25 raw_json=true` on `sixfold-space/madtea` returned all 217 runs, about 1.4 MB. `event_payload` was already stripped, so the size is 217 full run objects, each with its own nested `repository` object. Live check, 2026-09-15: - Forgejo 15.0.6: `GET /repos/sixfold-space/madtea/actions/runs?limit=3` returns `total_count: 217` and 217 runs. The server ignores `limit` on this endpoint. - Gitea 1.27.3: `GET /repos/{owner}/{repo}/actions/runs?limit=2` on a repo with 20 runs returns 2. Gitea honors it. Text mode is correct on Forgejo (`limit=4` prints "Showing 4 of 213"), so madtea already trims the list itself there. `raw_json` passes the full server response through instead. ## Ask - Apply `limit` and `page` to the `raw_json` result the same way text mode does, when the server ignores them. - Drop or summarize the nested `repository` object per run in `raw_json`. ## Acceptance - `runs limit=N raw_json=true` returns at most N runs on Forgejo and on Gitea. - The `raw_json` result for 25 runs stays small. Related: #466 already suggests a leaner `raw_json`. This issue is the specific `limit` defect.
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
sixfold-space/madtea#505
No description provided.