GitHub Actions在Issue标题含#号时无法自动添加标签,如何解决?

Good“俊瑶 阅读 26

配置了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正确处理包含#的标题?

我来解答 赞 6 收藏
二维码
手机扫码查看
1 条解答
设计师熙妍
你遇到的问题其实和GitHub Actions本身无关,而是对 actions/create-label@v3 这个动作的理解有偏差。这个动作是“创建标签”,不是“给issue打标签”。它会在仓库里新建一个叫“待处理”的标签,而不是把标签加到issue上。

当你标题里带#的时候报错 Not Found,大概率是因为这个 action 尝试操作时触发了某种解析问题,或者你的 workflow 逻辑本身就走错了。

正确的做法应该是用官方的 github-script 或者直接调用 GitHub API 来给 issue 添加已有标签。

推荐这样改:

on:
issues:
types: [opened]

jobs:
add-label:
runs-on: ubuntu-latest
steps:
- name: Add '待处理' label
uses: actions/github-script@v6
with:
script: |
github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
labels: ['待处理']
})


前提是你要先在仓库里手动创建好“待处理”这个标签,颜色设成006b75也行,这样更清晰。

这样不管标题有没有#都能正常运行,因为根本不依赖标题内容。而且这是标准做法,避免了误用 create-label 这类容易混淆的动作。

顺便说一句,我之前也被那个 create-label 的名字坑过,听起来像是打标签,其实是建标签,命名真够误导的。
点赞 1
2026-02-12 04:03