A lightweight ruby gem that pushes current local branch to remote with upstream at origin/[local-branch-name]. It also opens a new pull request browser window at a URL with customized query params, based on specified options, which pre-populates certain fields in the pull request. This is especially useful when supporting multiple PR templates within a code base.
Inspired by GitHub's documentation on using query params to create pull requets
Add this line to your application's Gemfile:
gem 'pr-with-params'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install pr-with-params
NOTE: CLI name has changed as of v2.0.0 from pr-with-params
to pr-wip
along with some other breaking changes. See changelog for more details
Assuming you've committed your changes and your local branch is ready to be pushed, run:
$ pr-wip -t new_feature_template.md -l 'work in progress'
For a full list of options, run $ pr-wip -h
Gem supports defining options in a yaml file (.yaml
, .yml
) like so:
default:
validators:
- conventional_commits
base_branch: main
template: new_feature_template.md
assignees: 2k-joker
labels: enhancement
bug_fix:
template: bug_fix_template.md
labels: bug,urgent
- To run with config file, use
$ pr-wip --config_path='path/to/file.yml' --scope=bug_fix
. If--scope
option is not specified, only:default
scope will apply. - If you specify a config file (
--config_path
) and also pass options by flag (e.g--base-branch=develop
), the flag value will override the config value. - All your defaults go in the
:default
scope. - Only fields defined in another scope will override the defaults. In the example above, the final list of configs will be:
{ validators: ['conventional_commits'], base_branch: 'main', template: 'bug_fix_template.md', assignees: '2k-joker', labels: 'bug,urgent' }
Supported configs
Config | Type | Example |
---|---|---|
validators | Array |
`[conventional_commits]` |
ignore_conventional_commits | Boolean |
true |
base_branch | String |
develop |
template | String |
new_feature_template.md |
title | String |
'Update login screen' |
lables | String |
frontend,WIP |
assignees | String |
2k-joker |
- Conventional Commits: Gem supports validation of conventional commits for PR
:title
by default. This is to encourage users to follow conventional commit specs. To turn it off, pass the--ignore-conventional-commits
flag or addconventional_commits
to the list of validators in your config file or setignore_conventional_commits: true
in your config file.
After checking out the repo, run bin/setup
to install dependencies. Then, run rake test
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and the created tag, and push the .gem
file to rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/pr-with-params.