GitHub Action项目卡片移动触发工作流失效求助
解决GitHub项目卡片移动时工作流无法触发/执行失败的问题
针对你遇到的工作流异常情况,从核心排查点逐一修复:
1. 确认项目类型匹配触发事件
project_card事件仅支持GitHub经典项目(Classic Projects),如果使用的是新版Projects(v2),该事件不会触发。此时需替换为project_v2_item事件,示例触发配置:
on: project_v2_item: types: [moved]
新版项目的列判断逻辑需调整为检查field_value,可通过查看事件payload获取对应列ID。
2. 修正Column ID的类型判断
column_id是数字类型,原代码用字符串'192285912'比较可能导致匹配失败,改为数字比较:
if: ${{ github.event.project_card.column_id == 192285912 }}
3. 补充完整权限
若卡片关联Pull Request,仅issues: write权限不足以修改PR标签,需添加pull-requests: write:
permissions: issues: write pull-requests: write
4. 修复脚本中的API参数错误
原脚本调用github.rest.issues.addLabels时用了错误的参数名name,GitHub API要求的是labels数组;同时增加空值判断,避免无关联内容时报错:
const issue_num = context.payload.project_card.content_url?.split('/').pop(); if (!issue_num) { console.log('卡片未关联Issue/PR,跳过操作'); return; } await github.rest.issues.addLabels({ issue_number: issue_num, owner: context.repo.owner, repo: context.repo.repo, labels: ["in progress"] });
修复后的完整工作流代码
name: Update Label on Project Card Move on: project_card: types: [moved] jobs: update_label: if: ${{ github.event.project_card.column_id == 192285912 }} runs-on: ubuntu-latest permissions: issues: write pull-requests: write steps: - uses: actions/github-script@v6 with: script: | // 获取关联的Issue/PR编号 const issue_num = context.payload.project_card.content_url?.split('/').pop(); if (!issue_num) { console.log('卡片未关联Issue/PR,跳过操作'); return; } await github.rest.issues.addLabels({ issue_number: issue_num, owner: context.repo.owner, repo: context.repo.repo, labels: ["in progress"] })
测试时可手动触发工作流(通过Actions页面的"Run workflow"按钮),或查看工作流运行日志,确认是触发失败还是执行阶段报错,日志会给出具体错误信息。
内容的提问来源于stack exchange,提问作者VKR
相关产品推荐
相关产品推荐

