8 stable releases

1.3.4 Jul 18, 2022
1.3.3 Jun 27, 2022
1.2.4 May 26, 2022

#2009 in Development tools

MIT license

1MB
45K SLoC

GraphQL 42K SLoC Rust 3K SLoC // 0.1% comments

spr

spr · GitHub GitHub release crates.io GitHub Repo stars

A command-line tool for submitting and updating GitHub Pull Requests from local Git commits that may be amended and rebased. Pull Requests can be stacked to allow for a series of code reviews of interdependent code.

spr is pronounced /ˈsuːpəɹ/, like the English word 'super'.

Documentation

Comprehensive documentation is available here: https://getcord.github.io/spr/

Installation

Binary Installation

Using Homebrew

brew install getcord/tap/spr

Using Nix

nix-channel --update && nix-env -i spr

Using Cargo

If you have Cargo installed (the Rust build tool), you can install spr by running

cargo install spr

Install from Source

spr is written in Rust. You need a Rust toolchain to build from source. See rustup.rs for information on how to install Rust if you have not got a Rust toolchain on your system already.

With Rust all set up, clone this repository and run cargo build --release. The spr binary will be in the target/release directory.

Quickstart

To use spr, run spr init inside a local checkout of a GitHub-backed git repository. You will be asked for a GitHub PAT (Personal Access Token), which spr will use to make calls to the GitHub API in order to create and merge pull requests.

To submit a commit for pull request, run spr diff.

If you want to make changes to the pull request, amend your local commit (and/or rebase it) and call spr diff again. When updating an existing pull request, spr will ask you for a short message to describe the update.

To squash-merge an open pull request, run spr land.

For more information on spr commands and options, run spr help. For more information on a specific spr command, run spr help <COMMAND> (e.g. spr help diff).

Contributing

Feel free to submit an issue on GitHub if you have found a problem. If you can even provide a fix, please raise a pull request!

If there are larger changes or features that you would like to work on, please raise an issue on GitHub first to discuss.

License

spr is MIT licensed.

Dependencies

~34–49MB
~1M SLoC