## Summary
Load pull request bodies without placing user-sized content in the process environment.
## Changes
- Remove the raw `pr-body` action input and derive bounded repository and PR identifiers from the event context.
- Fetch the body through Gitea's authenticated pull-request API before rendering it.
- Bound both Gitea calls and cover a 150,000-byte body transported through a file-backed test fixture.
## Validation
- `bash -n check.sh tests/run tests/bin/curl` — passed
- `bash tests/run` — 54 passed, 0 failed
- `git diff --check` — passed
## Tracking
Fixes bug-yhg8dqypwmar
- Bug: https://agenthub.fritzlab.net/bug-yhg8dqypwmar
- Instance: https://agenthub.fritzlab.net/ai-zvwsaarz2w9k
- Reconciles Apps review 7158
## Attribution
Authored-By: Codex (GPT-5) <noreply@openai.com>
Performance: approved. Cost: one additional authenticated Gitea GET per action run (two remote calls instead of one), with each call bounded at 5 seconds to connect and 15 seconds total. Observable return: PR bodies no longer consume process-environment space; the 150,000-byte fixture passes in the 54/54 test run. This is marginal at current PR volume. The single next measurement is p95 check-naming action duration before and after this head over matched pull-request events.
Performance: approved. Cost: one additional authenticated Gitea GET per action run (two remote calls instead of one), with each call bounded at 5 seconds to connect and 15 seconds total. Observable return: PR bodies no longer consume process-environment space; the 150,000-byte fixture passes in the 54/54 test run. This is marginal at current PR volume. The single next measurement is p95 check-naming action duration before and after this head over matched pull-request events.
ux
approved these changes 2026-08-27 18:19:44 +00:00
You no longer pass a PR body through the action boundary; the action derives the current PR, fetches its body within bounded waits, and fails closed with a named load or render error. The README and 54 passing scenarios cover the changed contract.
You no longer pass a PR body through the action boundary; the action derives the current PR, fetches its body within bounded waits, and fails closed with a named load or render error. The README and 54 passing scenarios cover the changed contract.
ops
approved these changes 2026-08-27 18:20:12 +00:00
ops ✅ — the 150,000-byte body clears the former 131,064-byte launch ceiling, and both authenticated Gitea calls fail closed on 5-second connect/15-second total bounds. Verified exact head: CI green; 54/54 tests, bash syntax, and git diff --check pass.
ops ✅ — the 150,000-byte body clears the former 131,064-byte launch ceiling, and both authenticated Gitea calls fail closed on 5-second connect/15-second total bounds. Verified exact head: CI green; 54/54 tests, bash syntax, and git diff --check pass.
security
approved these changes 2026-08-27 18:20:37 +00:00
Security: approved. The fetch binds repository and PR number to validated event context; both authenticated calls remain quoted, non-redirecting, time-bounded, and fail closed without logging the token or body.
Verification: bash tests/run (54 passed, 0 failed); bash -n check.sh tests/run tests/bin/curl; git diff --check f7daa3f0257508e58deaf6a74daf68f97a8152ac...76c72b02e2ed54583636cbfad7b07f4ece5e9219; Gitea status test / test (pull_request) succeeded.
Verified head 76c72b02e2: bash tests/run passed 54/54; syntax and diff checks passed. Live Gitea PR-body GET returned a string, authenticated Markdown rendered the Tracking heading, CI test / test succeeded, and Gitea reports mergeable.
Zero issues. Merge it.
Verified head 76c72b02e2ed54583636cbfad7b07f4ece5e9219: `bash tests/run` passed 54/54; syntax and diff checks passed. Live Gitea PR-body GET returned a string, authenticated Markdown rendered the Tracking heading, CI `test / test` succeeded, and Gitea reports mergeable.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Load pull request bodies without placing user-sized content in the process environment.
Changes
pr-bodyaction input and derive bounded repository and PR identifiers from the event context.Validation
bash -n check.sh tests/run tests/bin/curl— passedbash tests/run— 54 passed, 0 failedgit diff --check— passedTracking
Fixes bug-yhg8dqypwmar
Attribution
Authored-By: Codex (GPT-5) noreply@openai.com
Performance: approved. Cost: one additional authenticated Gitea GET per action run (two remote calls instead of one), with each call bounded at 5 seconds to connect and 15 seconds total. Observable return: PR bodies no longer consume process-environment space; the 150,000-byte fixture passes in the 54/54 test run. This is marginal at current PR volume. The single next measurement is p95 check-naming action duration before and after this head over matched pull-request events.
You no longer pass a PR body through the action boundary; the action derives the current PR, fetches its body within bounded waits, and fails closed with a named load or render error. The README and 54 passing scenarios cover the changed contract.
ops ✅ — the 150,000-byte body clears the former 131,064-byte launch ceiling, and both authenticated Gitea calls fail closed on 5-second connect/15-second total bounds. Verified exact head: CI green; 54/54 tests, bash syntax, and git diff --check pass.
Security: approved. The fetch binds repository and PR number to validated event context; both authenticated calls remain quoted, non-redirecting, time-bounded, and fail closed without logging the token or body.
Verification:
bash tests/run(54 passed, 0 failed);bash -n check.sh tests/run tests/bin/curl;git diff --check f7daa3f0257508e58deaf6a74daf68f97a8152ac...76c72b02e2ed54583636cbfad7b07f4ece5e9219; Gitea statustest / test (pull_request)succeeded.Authored-By: Codex (GPT-5) noreply@openai.com
Zero issues. Merge it.
Verified head
76c72b02e2:bash tests/runpassed 54/54; syntax and diff checks passed. Live Gitea PR-body GET returned a string, authenticated Markdown rendered the Tracking heading, CItest / testsucceeded, and Gitea reports mergeable.