fix(coverage): set a stable User-Agent for trusted uv bootstrap - #943
fix(coverage): set a stable User-Agent for trusted uv bootstrap#943seonghobae wants to merge 5 commits into
Conversation
|
Warning Review limit reached
Next review available in: 50 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthrough신뢰된 uv 아카이브 다운로드에 고정된 저장소 소유 Changes신뢰된 uv 다운로드
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related issues
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Current-head verification record (2026-08-12):
|
|
Current-head verification record (updated 2026-08-12):
|
|
Current-head verification record (updated 2026-08-12):
|
|
@opencode-agent review Review exact current head |
|
@coderabbitai review Review exact current head |
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
expected_head='601b254f3a8ea4cc593e7089d6baeadd9d8d3ee4'
base='6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba'
repo='ContextualWisdomLab/.github'
pr='943'
echo '== Checkout commit =='
git rev-parse HEAD
git status --short
git cat-file -e "${expected_head}^{commit}"
git cat-file -e "${base}^{commit}"
echo '== Changed files against specified base =='
git diff --name-status "$base" "$expected_head"
echo '== Diff stat =='
git diff --stat "$base" "$expected_head"
echo '== Full scoped diff =='
git diff --find-renames --find-copies --unified=80 "$base" "$expected_head" -- \
scripts/ci/materialize_base_python_requirements.py \
scripts/ci/test_materialize_base_python_requirements.py \
scripts/ci
echo '== Candidate source and test files =='
fd -t f 'materialize_base_python_requirements' .
echo '== Source outline =='
ast-grep outline scripts/ci/materialize_base_python_requirements.py --items all || true
echo '== Source and focused test contents =='
for f in $(fd -t f 'materialize_base_python_requirements' .); do
echo "--- $f ---"
cat -n "$f"
done
echo '== PR metadata, files, reviews, and workflow runs =='
gh pr view "$pr" --repo "$repo" --json number,headRefOid,baseRefOid,changedFiles,files,reviews,reviewDecision,statusCheckRollup,url
gh api "repos/$repo/pulls/$pr/comments?per_page=100"
gh api "repos/$repo/issues/$pr/comments?per_page=100"
gh api "repos/$repo/commits/$expected_head/check-runs?per_page=100"Length of output: 201980 🏁 Script executed: #!/bin/bash
set -euo pipefail
head='601b254f3a8ea4cc593e7089d6baeadd9d8d3ee4'
base='6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba'
repo='ContextualWisdomLab/.github'
pr='943'
echo '== Exact head and base =='
printf 'HEAD checkout: '; git rev-parse HEAD
printf 'Requested head: '; git rev-parse "$head"
printf 'Specified base: '; git rev-parse "$base"
echo '== Exact changed-file scope =='
git diff --name-status "$base" "$head"
echo '== Changed hunks only =='
git diff --unified=12 "$base" "$head"
echo '== Materializer: constants, request construction, transport, and verification controls =='
rg -n -C 8 \
'URL|USER_AGENT|Request|build_opener|ProxyHandler|HTTPRedirectHandler|urlopen|read\(|Content-Length|MAX|sha256|tarfile|isfile|extractfile|member' \
scripts/ci/materialize_base_python_requirements.py
echo '== Focused regression tests =='
cat -n tests/test_materialize_base_python_requirements.py
echo '== Doctoring record =='
cat -n docs/doctoring/trusted-uv-lock-materialization.md
echo '== Unresolved review threads only =='
gh api graphql \
-F owner='ContextualWisdomLab' \
-F name='.github' \
-F number="$pr" \
-f query='
query($owner: String!, $name: String!, $number: Int!) {
repository(owner: $owner, name: $name) {
pullRequest(number: $number) {
reviewThreads(first: 100) {
nodes {
isResolved
path
line
comments(first: 1) { nodes { author { login } body } }
}
}
}
}
}' \
--jq '.data.repository.pullRequest.reviewThreads.nodes
| map(select(.isResolved == false))
| map({path, line, author: .comments.nodes[0].author.login, body: .comments.nodes[0].body})'Length of output: 73624
I reviewed exact head The scope contains four files only. The request uses one literal Astral HTTPS URL and the fixed repository-owned The no-proxy and no-redirect controls remain active. The response-origin validation, bounded download, SHA-256 pin, exact regular archive-member check, and member-size validation remain active. The focused behavioral regression validates the URL and User-Agent. The AST contract requires one static GitHub returned no unresolved review threads. I applied the existing exact-current-head evidence criterion. I did not count skipped or neutral results as passing evidence. The relevant current-head quality, security, and supply-chain checks shown in the returned data succeeded. This review does not approve, merge, release, or change protection. 🧠 Learnings used✅ Action performedReview finished.
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/doctoring/trusted-uv-lock-materialization.md`:
- Around line 117-118: Update the documentation sentence describing the download
opener so the fixed repository-owned User-Agent is attributed to
urllib.request.Request, while the opener is described only as cached,
proxy-disabled, and redirect-rejecting. Preserve the existing responsibilities
and wording for proxy and redirect handling.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 370ae23f-af3e-4030-92ec-63a4539f9c07
📒 Files selected for processing (4)
docs/doctoring/trusted-uv-lock-materialization.mdscripts/ci/materialize_base_python_requirements.pytests/test_materialize_base_python_requirements.pytests/test_trusted_uv_download_contract.py
|
@opencode-agent review Review exact current head |
|
Closing as superseded by #939. The canonical branch already contains the same fixed-origin static |
Root cause
The central OpenCode coverage-evidence job failed while materializing a trusted base Python lock:
trusted uv archive download failed: HTTPErrorFix
Validation
The failure was reproduced locally with Python direct networking and resolved by the static User-Agent. Hosted checks must rerun on this current head before merge.
Summary by CodeRabbit
개선 사항
User-Agent가 적용되어 일부 릴리스 호스트의 HTTP 403 응답을 방지합니다.문서
User-Agent사용과 관련 검증 기준을 문서화하고 RFC 9110 참고문헌을 추가했습니다.테스트