mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-01-22 04:08:49 +02:00
6b645926a8
closes https://github.com/orgs/goreleaser/discussions/5004 --------- Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
59 lines
1.6 KiB
Markdown
59 lines
1.6 KiB
Markdown
---
|
|
search:
|
|
exclude: true
|
|
---
|
|
|
|
## Pull Requests
|
|
|
|
GoReleaser allows you to, instead of pushing directly to the main branch, push
|
|
to a feature branch, and open a pull requests with the changes.
|
|
|
|
### Templates
|
|
|
|
GoReleaser will check for a `.github/PULL_REQUEST_TEMPLATE.md`, and set it in
|
|
the pull request body if it exists.
|
|
|
|
We do that to prevent extra work for maintainers of things like `winget-pkgs`,
|
|
`nixpkgs`, and so on.
|
|
|
|
### Cross-repository pull requests
|
|
|
|
You can also push to a fork, and open the pull request in the original branch.
|
|
|
|
Here's an example on how to set it up:
|
|
|
|
```yaml
|
|
# .goreleaser.yml
|
|
# ...
|
|
something: # can be nix, brews, etc...
|
|
- repository:
|
|
owner: john
|
|
name: repo
|
|
branch: "{{.ProjectName}}-{{.Version}}"
|
|
pull_request:
|
|
enabled: true
|
|
base:
|
|
owner: mike
|
|
name: repo
|
|
branch: main
|
|
```
|
|
|
|
This will:
|
|
|
|
- Try to sync the `john/repo` fork with `mike/repo:main` (if on GitHub).
|
|
- Create the files into `john/repo`, in the branch `foo-1.2.3` (assuming
|
|
`ProjectName=foo` and `Version=1.2.3`). [^head]
|
|
- Open a pull request from `john/repo` into `mike/repo`, with the branch `main`
|
|
as target. [^base]
|
|
|
|
[^head]: In GitHub's terms, this means `head=john:repo:foo-1.2.3`
|
|
|
|
[^base]: In GitHub's terms, this means `base=mike:repo:main`
|
|
|
|
### Things that don't work
|
|
|
|
- Opening pull requests to a forked repository (`go-github` does not have the
|
|
required fields to do it).
|
|
- Since this can fail for a myriad of reasons, if an error happen, it'll log it
|
|
to the release output, but will not fail the pipeline.
|