如何使用github action 在满足issue创建/修改/删除时,如果label包含某个值的时候创建任务

创建时间:2023-07-14T02:49:58Z评论数:0
如何使用github action 在满足issue创建/修改/删除时,如果label包含某个值的时候创建任务

要在满足issue创建/修改/删除时,如果label包含某个值的情况下,创建任务,你可以使用GitHub Actions来实现。

首先,你需要在存储库中创建一个.github/workflows目录,并在该目录中创建一个YML文件(例如create-task.yml)来定义你的工作流程。

以下是示例工作流程的步骤:

name: 创建任务

on:
  issues:
    types: [opened, edited, deleted]

jobs:
  create_task:
    runs-on: ubuntu-latest
    
    steps:
      - name: 检查标签
        id: check_labels
        uses: actions/github-script@v5
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          script: |
            const labels = context.payload.issue.labels.map(label => label.name);
            const containsMyLabel = labels.includes('my-label');
            console.log(`Issue中是否包含"my-label": ${containsMyLabel}`);
            return containsMyLabel
      
      - name: 创建新的任务
        if: steps.check_labels.outputs.result == 'true'
        run: |
          # 这里可以执行创建任务的命令或脚本
          echo "创建一个任务..."

上述示例工作流程会在满足以下条件时触发:

  • 当创建一个新的issue时
  • 当编辑一个已存在的issue时
  • 当删除一个issue时

然后,它会检查issue中的标签是否包含名为my-label的标签。如果包含该标签,则会执行指定的命令或脚本来创建一个新的任务。

确保将上述YAML代码保存为 .github/workflows/create-task.yaml 并提交到你的存储库中。GitHub Actions会自动检测并执行该工作流程。

on事件中为什么是使用issue而不是issue_commit

在软件开发中,"issue"(问题)和"issue_commit"(问题提交)是不同的概念。

  • Issue:表示一个在软件开发过程中发现的问题、建议或需求。这些问题可以由团队成员或用户报告。通常,在项目的问题跟踪系统(例如GitHub的issue tracker)中进行创建和管理。等待解决的问题可能包括 bug 报告、功能请求、文档改进等。

  • Issue commit:指与某个问题相关的代码提交。当解决一个问题时,通常会创建一个关联的代码提交,以修复该问题。这样可以跟踪和追溯特定问题的解决方案。

所以,在事件中使用"issue"一词更准确,因为它广义上涵盖了所有问题阶段的描述,而不仅仅局限于与问题相关的代码提交。

一个评论都没有呢。。。。。。