如何使用github action 在满足issue创建/修改/删除时,如果label包含某个值的时候创建任务
创建时间:2023-07-14T02:49:58Z评论数:0
要在满足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"一词更准确,因为它广义上涵盖了所有问题阶段的描述,而不仅仅局限于与问题相关的代码提交。
一个评论都没有呢。。。。。。