forked from Gitlink/gitlink-cli
Compare commits
1 Commits
master
...
fix/pr-det
| Author | SHA1 | Date |
|---|---|---|
|
|
3a1565422c |
|
|
@ -25,13 +25,16 @@ PRS=$(gitlink-cli pr +list --owner "$OWNER" --repo "$REPO" --state open --format
|
||||||
}
|
}
|
||||||
echo "$PRS" > "$OUTPUT_DIR/prs-open.json"
|
echo "$PRS" > "$OUTPUT_DIR/prs-open.json"
|
||||||
|
|
||||||
# 过滤真实 PR(pull_request_status=0 表示打开中的 PR)
|
# 过滤打开的 PR(status 可能是数字 0 或字符串 "open"/"opened")
|
||||||
REAL_PRS=$(echo "$PRS" | node -e "
|
REAL_PRS=$(echo "$PRS" | node -e "
|
||||||
let s='';
|
let s='';
|
||||||
process.stdin.on('data',d=>s+=d).on('end',()=>{
|
process.stdin.on('data',d=>s+=d).on('end',()=>{
|
||||||
const d=JSON.parse(s).data||[];
|
const d=JSON.parse(s).data||{};
|
||||||
const items=Array.isArray(d)?d:(d.pull_requests||d);
|
const items=Array.isArray(d)?d:(d.pulls||d.pull_requests||[]);
|
||||||
const real=items.filter(p=>(p.pull_request_status||p.status||0)==0);
|
const real=items.filter(p=>{
|
||||||
|
const st=p.pull_request_status||p.status||'';
|
||||||
|
return st===0||st==='0'||st==='open'||st==='opened';
|
||||||
|
});
|
||||||
process.stdout.write(JSON.stringify(real));
|
process.stdout.write(JSON.stringify(real));
|
||||||
});
|
});
|
||||||
" 2>/dev/null || echo "[]")
|
" 2>/dev/null || echo "[]")
|
||||||
|
|
|
||||||
|
|
@ -27,14 +27,14 @@ echo "▸ Phase 1/4: PR 采集"
|
||||||
bash "$SCRIPT_DIR/01-collect-prs.sh" "$OWNER" "$REPO"
|
bash "$SCRIPT_DIR/01-collect-prs.sh" "$OWNER" "$REPO"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# 读取待审 PR 列表
|
# 读取待审 PR 列表(用相对路径避免 MSYS 路径问题)
|
||||||
PR_LIST="$OUTPUT_DIR/prs-to-review.json"
|
PR_REL="skills/gitlink-quality-gate/scripts/_output/prs-to-review.json"
|
||||||
if [ ! -f "$PR_LIST" ]; then
|
if [ ! -f "$PR_REL" ]; then
|
||||||
echo "[ERROR] 未找到 PR 列表,请先运行 Phase 1"
|
echo "[ERROR] 未找到 PR 列表,请先运行 Phase 1"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PR_COUNT=$(node -e "const d=require('fs').readFileSync('$PR_LIST','utf8');process.stdout.write(String(JSON.parse(d).length))" 2>/dev/null || echo "0")
|
PR_COUNT=$(node -e "const d=require('fs').readFileSync('$PR_REL','utf8');process.stdout.write(String(JSON.parse(d).length))" 2>/dev/null || echo "0")
|
||||||
|
|
||||||
if [ "$PR_COUNT" -eq 0 ]; then
|
if [ "$PR_COUNT" -eq 0 ]; then
|
||||||
echo "[INFO] 没有待审 PR,流程结束"
|
echo "[INFO] 没有待审 PR,流程结束"
|
||||||
|
|
@ -45,7 +45,7 @@ echo "[INFO] 共 $PR_COUNT 个 PR 需要审查"
|
||||||
|
|
||||||
# 遍历每个 PR
|
# 遍历每个 PR
|
||||||
for i in $(seq 0 $((PR_COUNT - 1))); do
|
for i in $(seq 0 $((PR_COUNT - 1))); do
|
||||||
PR_ID=$(node -e "const d=require('fs').readFileSync('$PR_LIST','utf8');const items=JSON.parse(d);process.stdout.write(String(items[$i].id))" 2>/dev/null || echo "")
|
PR_ID=$(node -e "const d=require('fs').readFileSync('$PR_REL','utf8');const items=JSON.parse(d);process.stdout.write(String(items[$i].id))" 2>/dev/null || echo "")
|
||||||
|
|
||||||
if [ -z "$PR_ID" ]; then
|
if [ -z "$PR_ID" ]; then
|
||||||
echo "[WARN] PR #$i: 无法解析 PR ID,跳过"
|
echo "[WARN] PR #$i: 无法解析 PR ID,跳过"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue