我做了一个 GitHub Action,我认为它可以帮助你解决这个用例。
https://github.com/peter-evans/create-pull-request
create-pull-request
操作需要与修改或添加文件到存储库的其他操作或步骤一起运行。更改将自动提交到新分支并创建拉取请求。
这是一个设置大部分主要输入的示例。
on:
repository_dispatch:
types: [create-pull-request]
name: Create Pull Request
jobs:
createPullRequest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Create report file
run: date +%s > report.txt
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Add report file
committer: Peter Evans <peter-evans@users.noreply.github.com>
body: |
New report
- Contains *today's* date
- Auto-generated by [create-pull-request][1]
[1]: https://github.com/peter-evans/create-pull-request
title: '[Example] Add report file'
labels: report, automated pr
assignees: peter-evans
reviewers: peter-evans
milestone: 1
branch: example-patches
要使其类似于机器人,您可以定期触发工作流程。
on:
schedule:
- cron: '*/5 * * * *'
或者,您可以将工作流设置为通过 webhook 触发,如上例所示。
on:
repository_dispatch:
types: [create-pull-request]
要触发工作流,请调用以下命令。[username]
是一个 GitHub 用户名。[token]
是一个repo
作用域令牌。[repository]
是工作流所在的存储库的名称。
curl -XPOST -u "[username]:[token]" -H "Accept: application/vnd.github.everest-preview+json" -H "Content-Type: application/json" https://api.github.com/repos/[username]/[repository]/dispatches --data '{"event_type": "create-pull-request"}'
如需更多示例,请查看此处的文档。