GitHub Actions在Issue标题含#号时无法自动添加标签,如何解决?
配置了GitHub Actions在Issue被创建时自动添加”待处理”标签,但当Issue标题包含#符号(比如”Bug#123: 页面崩溃”)时,任务会报错Error: Not Found。我用的workflow是:
on:
issues:
types: [opened]
jobs:
add-label:
runs-on: ubuntu-latest
steps:
- name: Add Label
uses: actions/create-label@v3
with:
label-name: "待处理"
color: "006b75"
尝试过将#转义成%,但问题依旧。有没有办法让Action正确处理包含#的标题?
actions/create-label@v3这个动作的理解有偏差。这个动作是“创建标签”,不是“给issue打标签”。它会在仓库里新建一个叫“待处理”的标签,而不是把标签加到issue上。当你标题里带#的时候报错 Not Found,大概率是因为这个 action 尝试操作时触发了某种解析问题,或者你的 workflow 逻辑本身就走错了。
正确的做法应该是用官方的
github-script或者直接调用 GitHub API 来给 issue 添加已有标签。推荐这样改:
前提是你要先在仓库里手动创建好“待处理”这个标签,颜色设成006b75也行,这样更清晰。
这样不管标题有没有#都能正常运行,因为根本不依赖标题内容。而且这是标准做法,避免了误用 create-label 这类容易混淆的动作。
顺便说一句,我之前也被那个 create-label 的名字坑过,听起来像是打标签,其实是建标签,命名真够误导的。