Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .backportrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"branchLabelMapping": {
"^backport-to-(release/.+)$": "$1"
},
"prTitle": "{commitMessages} (backport to {targetBranch})",
"targetPRLabels": ["backport"],
"autoMerge": false
}
39 changes: 39 additions & 0 deletions .github/BACKPORT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Backporting to release branches

Backports merged `main` changes onto long-term `release/*` branches as PRs.
Config lives in `.backportrc.json` and is shared by both methods below.

## Immediate (one PR)

Add a label `backport-to-release/<branch>` to the PR (before or after merge),
e.g. `backport-to-release/1.14.x`. On merge, the Backport workflow opens a
backport PR to that branch. Add multiple labels to fan out to several branches.
A clean cherry-pick opens the PR automatically; a conflict instead comments on
the source PR (finish it with the CLI below).

> The label must exist before you can apply it. When labeling for a new branch
> the first time, create the label (the labels box offers "Create new label").

## Batch (many PRs at once)

One-time local auth: create `~/.backport/config.json` with
`{ "accessToken": "<a GitHub token with repo scope>" }`.

Then gather and select interactively (targets passed at runtime, so any
`release/*` works without editing config):

```bash
# By query, then arrow-key multi-select the PRs:
npx backport --pr-query "merged:>=2026-05-01 label:backport-pending" \
--branch release/1.15.0 --branch release/1.14.x
# Or by path / single PR:
npx backport --path en/use-dify --branch release/1.14.x
npx backport --pr 792 --branch release/1.14.x
```

## Finishing a conflicting backport

```bash
npx backport --pr <source-pr-number> --branch release/<branch>
# resolve the conflict when prompted; the CLI pushes and opens the PR
```
16 changes: 16 additions & 0 deletions .github/workflows/backport.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Backport merged PR
on:
pull_request_target:
types: [labeled, closed]
permissions:
contents: read
pull-requests: read
jobs:
backport:
if: github.event.pull_request.merged == true
runs-on: depot-ubuntu-24.04
Comment thread
RiskeyL marked this conversation as resolved.
steps:
- uses: sorenlouv/backport-github-action@v12
with:
github_token: ${{ secrets.BACKPORT_TOKEN }}
auto_backport_label_prefix: backport-to-
6 changes: 6 additions & 0 deletions .mintignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,9 @@
# Non-public utility files under public asset directories
/assets/migrate_weaviate_collections.py
/logo/convertor.html

# Internal contributor runbooks
/.github/BACKPORT.md

# Backport tooling config
/.backportrc.json
Loading