pull-request 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/publish.yml +16 -0
- data/.ruby-version +1 -0
- data/README.md +4 -6
- data/exe/pr +33 -15
- data/pullrequest.gemspec +1 -1
- metadata +9 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47bc3713218fc982a1c0194c811be0c87c6b10689b6724644fc786c00b14dad3
|
4
|
+
data.tar.gz: cb56af729482bfe0836989ba9365f7538c4c8265410c3088a21ca7ffdcd259b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b64964a0ad5ffa1b04a537ed53a1cbe1eb3f893a348e20856b5bac2f3473eee239a763b16457b97a6063f4bec99ec4577cd70a45014355df568af9a03f06c2f8
|
7
|
+
data.tar.gz: bf3a4d8b62903d52470c6807cc2eb94a41c2c85ccc5b2b8964c40bc0d7c450434b8b1a5f6fd89090047c7e21d00b9116d35e9185f3c7b0fd45af18376434241c
|
@@ -0,0 +1,16 @@
|
|
1
|
+
name: Publish to RubyGems
|
2
|
+
on:
|
3
|
+
release:
|
4
|
+
types: [created]
|
5
|
+
jobs:
|
6
|
+
gem:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
steps:
|
9
|
+
- uses: actions/checkout@v2
|
10
|
+
- name: Set up Ruby
|
11
|
+
uses: ruby/setup-ruby@v1
|
12
|
+
- run: sed -i "s/0.0.1/$(echo $GITHUB_REF_NAME | cut -c 2-)/" pullrequest.gemspec
|
13
|
+
- name: Publish gem
|
14
|
+
uses: dawidd6/action-publish-gem@v1
|
15
|
+
with:
|
16
|
+
api_key: ${{secrets.RUBYGEMS_API_KEY}}
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
3.1.2
|
data/README.md
CHANGED
@@ -6,12 +6,12 @@ Automatically branch and create an empty pull request, automating an early-revie
|
|
6
6
|
|
7
7
|
### Requirements
|
8
8
|
|
9
|
-
####
|
9
|
+
#### GitHub CLI
|
10
10
|
|
11
|
-
[GitHub's
|
11
|
+
[GitHub's CLI](https://cli.github.com//) (aka `gh`) is required. On _macOS_, simply install it through _HomeBrew_.
|
12
12
|
|
13
13
|
```bash
|
14
|
-
brew install
|
14
|
+
brew install gh
|
15
15
|
```
|
16
16
|
|
17
17
|
### Installing pr (pull-request) as part of your application
|
@@ -34,7 +34,7 @@ Install it yourself as:
|
|
34
34
|
|
35
35
|
```bash
|
36
36
|
gem install pull-request
|
37
|
-
|
37
|
+
```
|
38
38
|
|
39
39
|
## Usage
|
40
40
|
|
@@ -69,8 +69,6 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
69
69
|
|
70
70
|
Bug reports and pull requests are welcome on GitHub at https://github.com/Jens Ravens/pullrequest. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
71
71
|
|
72
|
-
|
73
72
|
## License
|
74
73
|
|
75
74
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
76
|
-
|
data/exe/pr
CHANGED
@@ -12,6 +12,12 @@ def error(title)
|
|
12
12
|
exit 1
|
13
13
|
end
|
14
14
|
|
15
|
+
def confirm(title)
|
16
|
+
printf "#{title}\npress 'y' to continue: "
|
17
|
+
prompt = STDIN.gets.chomp
|
18
|
+
prompt == 'y'
|
19
|
+
end
|
20
|
+
|
15
21
|
def sh(command)
|
16
22
|
return puts "▶️ #{command}" if @simulate
|
17
23
|
|
@@ -22,11 +28,22 @@ def sh_get(command)
|
|
22
28
|
value = `#{command}`
|
23
29
|
error "could not execute '#{command}'" unless $? == 0
|
24
30
|
|
25
|
-
value
|
31
|
+
value.strip
|
32
|
+
end
|
33
|
+
|
34
|
+
def current_branch
|
35
|
+
sh_get "git rev-parse --abbrev-ref HEAD"
|
36
|
+
end
|
37
|
+
|
38
|
+
def issue_json
|
39
|
+
@issue_json ||= begin
|
40
|
+
error "can't get issue information from GitHub unless the '-i' options is used" unless @issue_number.present?
|
41
|
+
JSON.parse(sh_get("gh issue view #{@issue_number} --json title"))
|
42
|
+
end
|
26
43
|
end
|
27
44
|
|
28
45
|
OptionParser.new do |opts|
|
29
|
-
opts.banner = "Usage: pr [options] [
|
46
|
+
opts.banner = "Usage: pr [options] [title]\nDefaults: pr" + File::SEPARATOR
|
30
47
|
opts.on("-e", "--estimation ESTIMATION", Integer, "Estimated time in hours.") do |e|
|
31
48
|
@estimation = e.presence
|
32
49
|
end
|
@@ -38,32 +55,33 @@ OptionParser.new do |opts|
|
|
38
55
|
end
|
39
56
|
end.parse!
|
40
57
|
|
41
|
-
name =
|
42
|
-
|
43
|
-
sh_get("hub issue show #{@issue_number} -f %t")
|
44
|
-
else
|
45
|
-
ARGV.join(" ")
|
46
|
-
end
|
47
|
-
error "Please specify a name for your Pull Request" if name.blank?
|
48
|
-
|
49
|
-
title = name
|
50
|
-
title += " [#{@estimation}]" if @estimation
|
51
|
-
title += "\n\nfixes ##{@issue_number}" if @issue_number
|
58
|
+
name = @issue_number ? issue_json["title"] : ARGV.join(" ")
|
59
|
+
error "Please specify a title for your Pull Request" if name.blank?
|
52
60
|
|
53
61
|
branch = "feature/"
|
54
62
|
branch += "#{@issue_number}_" if @issue_number
|
55
63
|
branch += name.parameterize.underscore
|
56
64
|
|
65
|
+
title = name
|
66
|
+
title += " [#{@estimation}]" if @estimation
|
67
|
+
|
68
|
+
body_lines = []
|
69
|
+
body_lines.push "fixes ##{@issue_number}" if @issue_number
|
70
|
+
body = body_lines.join("\n")
|
71
|
+
|
72
|
+
base_branch = current_branch
|
73
|
+
exit 1 unless ["master", "main", "develop"].include?(base_branch) || confirm("Your base branch #{base_branch} doesn't seem to be a common base branch name. Do you want to continue?")
|
74
|
+
|
57
75
|
puts "Creating new PR for feature '#{title}'"
|
58
76
|
|
59
77
|
puts "Creating branch #{branch}"
|
60
78
|
sh "git checkout -b #{branch}"
|
61
79
|
|
62
80
|
puts "Creating empty commit"
|
63
|
-
sh "git commit -m 'initial commit for #{
|
81
|
+
sh "git commit -m 'initial commit for #{title}' --allow-empty"
|
64
82
|
|
65
83
|
puts "Pushing to origin"
|
66
84
|
sh "git push -u origin #{branch}"
|
67
85
|
|
68
86
|
puts "Creating pull request"
|
69
|
-
sh "
|
87
|
+
sh "gh pr create --draft --title '#{title}' --body '#{body}' --base #{base_branch}"
|
data/pullrequest.gemspec
CHANGED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pull-request
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jens Ravens
|
8
8
|
- David Dufour-Boivin
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-11-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
|
-
description:
|
56
|
+
description:
|
57
57
|
email:
|
58
58
|
- jens@nerdgeschoss.de
|
59
59
|
- david@nerdgeschoss.de
|
@@ -62,8 +62,10 @@ executables:
|
|
62
62
|
extensions: []
|
63
63
|
extra_rdoc_files: []
|
64
64
|
files:
|
65
|
+
- ".github/workflows/publish.yml"
|
65
66
|
- ".gitignore"
|
66
67
|
- ".rubocop.yml"
|
68
|
+
- ".ruby-version"
|
67
69
|
- CODE_OF_CONDUCT.md
|
68
70
|
- Gemfile
|
69
71
|
- LICENSE.txt
|
@@ -77,7 +79,7 @@ homepage: https://nerdgeschoss.de
|
|
77
79
|
licenses:
|
78
80
|
- MIT
|
79
81
|
metadata: {}
|
80
|
-
post_install_message:
|
82
|
+
post_install_message:
|
81
83
|
rdoc_options: []
|
82
84
|
require_paths:
|
83
85
|
- lib
|
@@ -92,8 +94,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
94
|
- !ruby/object:Gem::Version
|
93
95
|
version: '0'
|
94
96
|
requirements: []
|
95
|
-
rubygems_version: 3.
|
96
|
-
signing_key:
|
97
|
+
rubygems_version: 3.3.7
|
98
|
+
signing_key:
|
97
99
|
specification_version: 4
|
98
100
|
summary: Automatically create PRs for GitHub Flow
|
99
101
|
test_files: []
|