mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-08-31 05:02:10 +00:00
This script was trying to be too smart, make it more straightforward and
less error-prone so that i could be used by the backport bot too
ideally.
- Always delete the backport branch so that script is idempotent in this
regard
- Remove the push functionality, it's best done by the user because only
they know the remote name
- Remove reading docs/config.yaml, it no longer exists
- Remove version detection, version is now a required argument
- Remove opening the pull request with xdg-open, xdg-open is not
portable
- Remove continue from failed cherry pick. It's best to reset manually
in this case
- Clean up the console logging
Example run:
```
$ go run ./contrib/backport --version v1.21 27503
* Backporting 27503 to origin/release/v1.21 as backport-27503-v1.21
* `git fetch origin main`
* `git fetch origin release/v1.21`
* `git branch -D backport-27503-v1.21`
* `git checkout -b backport-27503-v1.21 origin/release/v1.21`
* Attempting git cherry-pick
|
||
---|---|---|
.. | ||
backport.go | ||
README |
`backport` ========== `backport` is a command to help create backports of PRs. It backports a provided PR from main on to a released version. It will create a backport branch, cherry-pick the PR's merge commit, adjust the commit message and then push this back up to your fork's remote. The default version will read from `docs/config.yml`. You can override this using the option `--version`. The upstream branches will be fetched, using the remote `origin`. This can be overrided using `--upstream`, and fetching can be avoided using `--no-fetch`. By default the branch created will be called `backport-$PR-$VERSION`. You can override this using the option `--backport-branch`. This branch will be created from `--release-branch` which is `release/$(VERSION)` by default and will be pulled from `$(UPSTREAM)`. The merge-commit as determined by the github API will be used as the SHA to cherry-pick. You can override this using `--cherry-pick`. The commit message will be amended to add the `Backport` header. `--no-amend-message` can be set to stop this from happening. If cherry-pick is successful the backported branch will be pushed up to your fork using your remote. These will be determined using `git remote -v`. You can set your fork name using `--fork-user` and your remote name using `--remote`. You can avoid pushing using `--no-push`. If the push is successful, `xdg-open` will be called to open a backport url. You can stop this using `--no-xdg-open`. Installation ============ ```bash go install contrib/backport/backport.go ```