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--scopeoption is not specified, only:defaultscope 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
:defaultscope. - 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
:titleby default. This is to encourage users to follow conventional commit specs. To turn it off, pass the--ignore-conventional-commitsflag or addconventional_commitsto the list of validators in your config file or setignore_conventional_commits: truein 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.