gpt4 book ai didi

github - 使用 GitHub 操作自动向 GitHub 存储库发出拉取请求

转载 作者:行者123 更新时间:2023-12-01 07:44:14 28 4
gpt4 key购买 nike

我在 GitHub 存储库中有一个文件,需要通过运行命令偶尔更新。

作为 GitHub Workflows 的一部分,我想让一个机器人运行一个命令,并查看它是否在 repo 上创建了一个差异,如果是,则自动向存储库发出拉取请求。

我怀疑 GitHub Workflows可以帮助我做到这一点,因为 GitHub 现在允许人们运行任意容器(“操作”),这些容器可以在存储库中进行构建等操作。我在这里看到一些官方自动化工作流程,可以让您“标记”和“评论”问题等:https://github.com/actions/starter-workflows/tree/master/automation

如果我想运行任意命令并对存储库进行 PR,我应该查看哪些 GitHub Actions 而不是重新发明我自己的 Actions?任何指针表示赞赏。

最佳答案

我做了一个 GitHub Action,我认为它会帮助你解决这个用例。
https://github.com/peter-evans/create-pull-requestcreate-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范围 token 。 [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"}'
有关更多示例,请查看 documentation here .

关于github - 使用 GitHub 操作自动向 GitHub 存储库发出拉取请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57503578/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com