Compare commits

...

1 Commits

Author SHA1 Message Date
xiaoxia c4f00c44e0 ci: 自动修复区分Agent/人提交,人提交的PR仅诊断不自动修
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 44s
AI Code Review / AI Code Review (pull_request) Successful in 4m0s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 6m50s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 21m35s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 22s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 1358h11m44s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 1358h12m11s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1358h12m13s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 1358h12m19s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1358h12m15s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 1358h14m10s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 1358h14m14s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 1358h15m43s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 1358h15m47s
CI/CD Pipeline / Check if frontend-only change (pull_request) Has been skipped
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1358h44m29s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 1358h46m24s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1358h44m21s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 1358h47m57s
2026-07-22 01:12:21 +08:00
+42
View File
@@ -168,6 +168,28 @@ def main():
return
api_url = os.environ.get("GITHUB_API_URL", "")
# 获取PR作者信息,判断是人还是Agent提交的
pr_info_url = f"{api_url}/repos/{repo}/pulls/{pr_number}"
req_pr = urllib.request.Request(pr_info_url, headers={"Authorization": f"token {token}"})
with urllib.request.urlopen(req_pr) as resp:
pr_info = json.loads(resp.read())
pr_author = pr_info.get("user", {}).get("login", "")
print(f"PR作者: {pr_author}")
# 判断是否为Agent提交的PR
# Agent账号:actions, auto-approve-bot 等bot用户
# 人提交的PR(如xiaoxia):只诊断不自动修
agent_authors = {"actions", "auto-approve-bot", "gitea-actions"}
is_agent_pr = pr_author in agent_authors or "bot" in pr_author.lower()
if is_agent_pr:
print(f"检测到Agent提交的PR(作者: {pr_author}),将自动修复并推送")
fix_mode = "auto_fix_and_push"
else:
print(f"检测到人提交的PR(作者: {pr_author}),仅诊断不自动修改")
print("(如需自动修复,请用Agent账号提交PR,或手动运行格式化脚本)")
fix_mode = "diagnose_only"
repo = os.environ.get("GITHUB_REPOSITORY", "")
token = os.environ.get("GITHUB_TOKEN", "")
scan_mode = os.environ.get("SCAN_MODE", "full")
@@ -231,6 +253,26 @@ def main():
print("没有需要提交的格式改动")
return
# 诊断模式:只报告问题,不修改不推送
if fix_mode == "diagnose_only":
print()
print("=" * 50)
print("📋 格式问题诊断报告(人提交的PR,仅诊断不自动修复)")
print("=" * 50)
print()
print("以下文件存在格式问题,建议手动修复:")
for line in result.stdout.strip().split("\n"):
print(f" {line}")
print()
print("修复方式:")
print(" 后端(Python): 运行 black + isort")
print(" 前端: 运行 prettier --write")
print(" 或使用 scripts/agent-commit.sh 提交(自动格式化)")
print()
print("=" * 50)
# 以非0状态码退出,让CI继续报失败(因为问题没修)
sys.exit(1)
print()
print("变更文件:")
for line in result.stdout.strip().split("\n"):