也许这是开箱即用的,也许不是。但我在任何文件中都找不到这个。
我知道你可以跳过Push和Pull_Request的工作流。但是,当通过RESTneneneba API更新Issues时,我需要跳过工作流。
我当前的工作流程yaml如下所示:
on:
schedule:
- cron: '10/15 * * * *'
issues:
types: [opened, closed, deleted, reopened, edited, labeled, unlabeled, assigned, unassigned]
issue_comment:
types: [created]
schedule
作业通过利用GitHub/OOctokit REST API的自定义操作来对问题进行一些清理。
如果问题通过API更新,是否有方法可以阻止工作流运行?
@GuiFalourd在评论中指出,我认为您需要使用工作流表达式。为了区分GitHub API调用和用户交互调用,我不确定是否有正式的方法,我会在GitHub社区中打开一个问题。我相信他们会帮你的。
我想到的几个解决方法是使用一个特殊的"问题标签"来标记何时使用GitHub API,这样你就可以进行相应的过滤(不是这个解决方案的粉丝(。
此外,如果您使用某个GitHub用户执行API请求,则可以使用GitHub上下文中的github.actor
和github.triggering_actor
来识别触发事件的用户。
以下是一份关于我的方法的草案:
steps:
- uses: actions/hello-world-javascript-action@v1.1
if: ${{ contains(fromJson('["push", "pull_request"]'), github.event_name) && github.actor == <your_actor_name> }}