A simple CLI tool that automates the process of backporting commits on a GitHub repo
8.1.0 changes (https://github.com/sqren/backport/pull/319)
ci
with interactive
publishStatusCommentOnSuccess
,publishStatusCommentOnFailure
and publishStatusCommentOnAbort
HandledError
to BackportError
Fix formatting of github comment (https://github.com/sqren/backport/pull/317)
New signature of backportRun
const result = await backportRun({
options: {
accessToken: '...',
repoOwner: 'elastic',
repoName: 'kibana',
pullNumber: 12
}
});
Other improvements
exitCodeOnFailure
to prevent the process from setting a non-zero exit code on failureexec
with slightly more secure spawn
Don’t exit with error if individual backports fail (https://github.com/sqren/backport/pull/316)
This limits the usage of process.exit(1)
to only be used in cli mode and only for unexpected/critical errors.
git config user.email
and git config user.name
(https://github.com/sqren/backport/pull/307)--ci
mode (#300)Improve clone speed for big repos (https://github.com/sqren/backport/pull/293) When initiating the backport process from an existing repository, the clone process can be sped significantly by cloning the local repository instead of the remote repository. For big repositories this changed the clone time from 15 minutes to less than 1 minute.
Bug fix: Show commits in list regardless of merge method (https://github.com/sqren/backport/pull/297) A bug introduced previously caused some commits to not show up if the resulting pull request was merged or rebased, as opposed to squash merged. With the fix all commits should again be displayed regardless of merge method.
--until
and --since
flags (https://github.com/sqren/backport/pull/286)Ability to filter commits by date
backport --all --since "2020-02-03" --until "2020-02-04"
--dir
flag (https://github.com/sqren/backport/pull/288)By default the temporary repo will be checked out in ~/.backport/repositories/{project}
. This option allows the user to specify the location of the temporary repository for the project.
--publishStatusComment
(https://github.com/sqren/backport/pull/288)This setting makes it possible to disable posting of status comments on source pull requests
username
is no longer required but instead inferred from accessToken
upstream
has been replaced by repoOwner
and repoName
--all
has been changed to a cli-only flag. It now simply sets author=null
.Public API:
getCommits
API: Retrieve information about commits and whether they are backportedrun
to backportRun
Add support for multiple path
properties (https://github.com/sqren/backport/pull/273)
This feature makes it possible to list commits that only touch certain files. This is useful in monorepos where many developers work on different projects within a single repo.
backport --path my/project1 --path my/project2
Or via the config file:
{
"commitPaths": ["my/project1", "my/project2"]
}
Show hint about missing backports (https://github.com/sqren/backport/pull/276, https://github.com/sqren/backport/pull/282)
Sometimes it is not possible to backport a change cleanly due to conflicts. In many cases the conflicts are caused by missing backports. It is often easier and safer to perform the missing backports than manually resolving the conflict. To help the user do this the backport tool will now suggest what is causing the conflict, and which backports are missing.
Details view (https://github.com/sqren/backport/pull/277)
The new details view shows the usual interactive list view but with a little more info and clickable links, enabling the user to jump straight to existing pull requests.
backport --details
Add --reviewer
option (https://github.com/sqren/backport/pull/280)
This option makes it possible to request a review when creating the backport:
backport --reviewer sqren
Add status comment to source pull request (https://github.com/sqren/backport/pull/281)
This will add a comment to the source pull request (the pull request that was backported) to indicate the resulting backport pull requests.
Other changes: