ci: PAT via extraHeader + --data@file
This commit is contained in:
@@ -18,7 +18,7 @@ jobs:
|
|||||||
IS_SANDBOX: "1" # CI 容器以 root 运行,需此项才能用 --dangerously-skip-permissions
|
IS_SANDBOX: "1" # CI 容器以 root 运行,需此项才能用 --dangerously-skip-permissions
|
||||||
steps:
|
steps:
|
||||||
- name: 检出代码
|
- name: 检出代码
|
||||||
# 手动克隆,避免从 github.com 下载 actions/checkout(内网不可达)
|
# 用 http.extraHeader 传凭据,避免 PAT 出现在 clone URL(防日志/报错泄漏)
|
||||||
env:
|
env:
|
||||||
REVIEW_PAT: ${{ secrets.REVIEW_PAT }}
|
REVIEW_PAT: ${{ secrets.REVIEW_PAT }}
|
||||||
run: |
|
run: |
|
||||||
@@ -27,7 +27,8 @@ jobs:
|
|||||||
echo "SKIP_REVIEW=1" >> "$GITHUB_ENV"
|
echo "SKIP_REVIEW=1" >> "$GITHUB_ENV"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
git clone "http://oauth2:${REVIEW_PAT}@gitea:3000/${{ gitea.repository }}.git" .
|
git config --global http.extraHeader "Authorization: Basic $(printf 'oauth2:%s' "$REVIEW_PAT" | base64 -w0)"
|
||||||
|
git clone "http://gitea:3000/${{ gitea.repository }}.git" .
|
||||||
git checkout "${{ gitea.event.pull_request.head.ref }}"
|
git checkout "${{ gitea.event.pull_request.head.ref }}"
|
||||||
|
|
||||||
- name: 生成 PR diff
|
- name: 生成 PR diff
|
||||||
@@ -66,11 +67,12 @@ jobs:
|
|||||||
PR: ${{ gitea.event.pull_request.number }}
|
PR: ${{ gitea.event.pull_request.number }}
|
||||||
run: |
|
run: |
|
||||||
if [ -s review.md ]; then
|
if [ -s review.md ]; then
|
||||||
BODY=$(node -e 'let d="";process.stdin.on("data",c=>d+=c).on("end",()=>process.stdout.write(JSON.stringify({body:d})))' < review.md)
|
# 写到临时文件再 --data @,避免超长 review 触发 ARG_MAX
|
||||||
|
node -e 'let d="";process.stdin.on("data",c=>d+=c).on("end",()=>process.stdout.write(JSON.stringify({body:d})))' < review.md > /tmp/body.json
|
||||||
curl -fsS -X POST "$API/repos/$REPO/issues/$PR/comments" \
|
curl -fsS -X POST "$API/repos/$REPO/issues/$PR/comments" \
|
||||||
-H "Authorization: token $REVIEW_PAT" \
|
-H "Authorization: token $REVIEW_PAT" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d "$BODY"
|
--data @/tmp/body.json
|
||||||
else
|
else
|
||||||
echo "review.md 为空,跳过评论"
|
echo "review.md 为空,跳过评论"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user