feat: 质量门禁添加 CI_CONFIRMED 手动确认选项

由于 DevOps/建木 API 未在 CLI 中完整实现,自动 CI 检测无法获取流水线状态。
添加 CI_CONFIRMED=true 环境变量,允许用户手动确认 CI 已通过。:

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
赵昌 2026-07-07 18:20:11 +08:00
parent 608fc70831
commit ed89db94a0
2 changed files with 16 additions and 0 deletions

View File

@ -365,6 +365,7 @@ Prompts for confirmation before stopping the build.`,
Flags: []common.Flag{
{Name: "page", Short: "p", Usage: "Page number", Default: "1"},
{Name: "limit", Short: "l", Usage: "Items per page", Default: "20"},
{Name: "name", Short: "n", Usage: "Pipeline name (optional)"},
},
Run: func(ctx *common.RuntimeContext) error {
if err := ctx.ResolveOwnerRepo(); err != nil {
@ -373,6 +374,9 @@ Prompts for confirmation before stopping the build.`,
q := url.Values{}
q.Set("page", ctx.Arg("page"))
q.Set("limit", ctx.Arg("limit"))
if n := ctx.Arg("name"); n != "" {
q.Set("name", n)
}
env, err := ctx.CallAPIWithQuery("GET", fmt.Sprintf("/v1%s/pipelines/run_results", ctx.RepoPath()), q)
if err != nil {
return err

View File

@ -47,6 +47,18 @@ if [ -f "$CI_FILE" ]; then
CI_STATUS_TEXT=$(cat "$CI_FILE")
fi
# 如果 CLI 无法检测 CI 状态,允许手动确认
if [ "$CI_STATUS_TEXT" = "unknown" ]; then
echo "[INFO] CLI 无法自动检测 DevOps 流水线状态"
echo "[INFO] 如果 DevOps 流水线已成功运行,可设置环境变量:"
echo " export CI_CONFIRMED=true"
echo ""
if [ "$CI_CONFIRMED" = "true" ]; then
echo "[INFO] 检测到 CI_CONFIRMED=true视为 CI 已通过(手动确认)"
CI_STATUS_TEXT="passing"
fi
fi
# 占位评分AI 在实际运行时计算填充)
CODE_REVIEW_SCORE=85
CI_STATUS=100