= PRM - Pull Request Manager
image:https://travis-ci.org/ldez/prm.svg?branch=master["Build Status", link="https://travis-ci.org/ldez/prm"]
If you are a maintainer of Open Source Software, you need to review a lot of PR, this tool is made for you.
With the GitHub feature (link:https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/["repository maintainer permissions on existing pull requests"]), now we can edit real PR branch.
This tool allow to easily manage PR branches and remotes.
image:https://asciinema.org/a/158378.png["prm", link="https://asciinema.org/a/158378"]
Feature:
* Checkout a PR by his number.
* Checkout (get) a PR into a list of PRs from GitHub.
* Remove (clean) a PR by his number.
* Remove (clean) all PR for a project.
* Push force a PR (auto).
* Manage all your repositories.
* Save your configuration: `~/.prm`
* Only works with GitHub.
== How to Install
[source, shell]
----
go get -u github.com/ldez/prm
----
or
* Download `prm` from link:https://github.com/ldez/prm/releases[releases].
* Rename `prm_<OS>-<ARCH>` to `prm`.
* add `prm` in your `PATH`.
== Checkout
=== By Number
[source, shell]
----
prm c -n 1234
# or
prm c --number=1234
----
* Add the user git remote named with the user login.
* Checkout the PR branch named like that: `<PR_NUMBER>--<BRANCH_NAME>`
+
ex: `1234\--myBranch`
=== Interactive (Local)
[source, shell]
----
prm
----
* Choose a PR between all "local" PRs.
* Checkout the PR branch named like that: `<PR_NUMBER>--<BRANCH_NAME>`
+
ex: `1234\--myBranch`
=== Interactive (Remote)
[source, shell]
----
prm g
----
* Add the user git remote named with the user login.
* Display the last 25 PRs from GitHub.
* Checkout the PR branch named like that: `<PR_NUMBER>--<BRANCH_NAME>`
+
ex: `1234\--myBranch`
== Remove
=== By Number
[source, shell]
----
prm rm -n 1234
# or
prm rm --number=1234
----
* Remove the local branch.
* Remove the user git remote if necessary.
=== All
Only for the current project. (not all PR for all your projects)
[source, shell]
----
prm rm --all
----
* Remove all PR related local branches.
* Remove all PR related git remote.
=== Interactive
Only for the current project.
[source, shell]
----
prm rm
----
* Display all "local" PRs.
* Remove by one or remove all.
== Push
[source, shell]
----
prm push
----
* Push to the PR related branch.
* Detect the PR number from the branch name.
== Push Force
[source, shell]
----
prm pf
----
* Push force the PR related branch.
* Detect the PR number from the branch name.
== List
[source, shell]
----
# display local branches related to PR. (current project only)
prm list
# display local branches related to PR. (all projects)
prm list --all
----
* Display local branches related to PR for:
** current project
** all projects
== Help
[source, shell]
----
prm -h
----