Иго*_*ски 29 github pull-request github-actions
我试图让它发挥作用,但我也很困惑,在触发彼得埃文斯公关之前,它之间缺少什么。
这个场景非常简单,我喜欢在任何 feature/* 分支上推送,自动创建 PR,但相反,我遇到了奇怪的场景,其中开发更改应用于 feature/* 分支之上。有人可以给我提示吗?
name: Pull Request Action
on:
push:
branches:
- feature/*
jobs:
create-pull-request:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v2
with:
fetch-depth: 0
ref: develop
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3.10.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Simple demo
title: '[Example] Simple demo'
body: >
This PR is auto-generated by
[create-pull-request](https://github.com/peter-evans/create-pull-request).
labels: feature, automated pr
branch: feature/workflow-demo
Run Code Online (Sandbox Code Playgroud)
Sco*_*bey 80
我知道这个问题已经有一年了,询问的是操作create-pull-request,但对于那些不想使用第三方操作的人来说,如果您使用 Github 托管的运行器,Github 操作现在原生支持Github 命令行。请参阅:在工作流程中使用 Github CLI
这使得使用gh pr create命令创建拉取请求变得非常容易
像这样的东西:
steps:
- name: create pull request
run: gh pr create -B base_branch -H branch_to_merge --title 'Merge branch_to_merge into base_branch' --body 'Created by Github action'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Run Code Online (Sandbox Code Playgroud)
Gra*_*fus 36
只是将其作为替代解决方案发布。如果您不想使用任何第三方操作,您可以使用 来实现这一点actions/github-script,它只需要更多的编码。
就目前情况而言,如果功能分支已经有一个开放的 PR,则该操作将会出错。如果这是一个问题,您可以使用该方法检查现有 PR github.rest.pulls.list,并通过两者进行过滤head,base因此它只会返回一个 PR 或不返回任何 PR。
name: Pull Request Action
on:
push:
branches:
- feature/*
jobs:
create-pull-request:
runs-on: ubuntu-latest
steps:
- name: Create Pull Request
uses: actions/github-script@v6
with:
script: |
const { repo, owner } = context.repo;
const result = await github.rest.pulls.create({
title: '[Example] Simple demo',
owner,
repo,
head: '${{ github.ref_name }}',
base: 'develop',
body: [
'This PR is auto-generated by',
'[actions/github-script](https://github.com/actions/github-script).'
].join('\n')
});
github.rest.issues.addLabels({
owner,
repo,
issue_number: result.data.number,
labels: ['feature', 'automated pr']
});
Run Code Online (Sandbox Code Playgroud)
通读自述文件,彼得·埃文斯的行动不符合您想要实现的目标。但是您可以使用repo-sync 的 pull-request 操作:
name: Pull Request Action
on:
push:
branches:
- feature/*
jobs:
create-pull-request:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v2
- name: pull-request
uses: repo-sync/pull-request@v2
with:
destination_branch: "develop"
github_token: ${{ secrets.GITHUB_TOKEN }}
pr_label: "feature, automated pr"
pr_title: "[Example] Simple demo"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34295 次 |
| 最近记录: |