jive 0.4.3 → 0.4.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0de5a5c10effc047408eda530074a15d321d59a65c100962ed08bedd829a1df9
4
- data.tar.gz: 7eaa04d703606ae3372b4b9f745a1ae5de07a59f76e132f25e3b62a639b2d508
3
+ metadata.gz: a034483cc87f821d9da5acd3205a179fbbcc28a9f91b8ef491e9e95802272d2f
4
+ data.tar.gz: 30712e04895db03f07c1ea07d784a7f0ca39f6ecd7e6b8cf8fcb455e97f6f23f
5
5
  SHA512:
6
- metadata.gz: 9901cbd13070928ed326639396afa77da9e8217dcdc6a116a24dff7738a422681458e554d34bbf73d2602f6bc6cd7285e72b52ef3efbd2361dcc23d6a288e192
7
- data.tar.gz: 46f9cdf14e601c40e3033f9cf555e3c38f27318580ce97144ef93d7d0812a167e7d1d6d412a9ddf92a37a299b0a07b1d18a6231ed1a8524dbc4ef53c83e787d0
6
+ metadata.gz: 53f26b41d34b6e58f68aac53a4618daddba1380a7d8a0e1f5c1cf3b1f0ea9401d4d0ef04a66ea67c6e6d5ef924bf8aa75099f43f0a9c17002266d42e2384f385
7
+ data.tar.gz: 3815d23eb9aee2d09fda3784e7bd0f35f0721648b14a3e266f6c5606747efe21049425553f20017730d7eb345da3b5e507f882fae75fd4231251ad12f9d6a8ee
data/jive.gemspec CHANGED
@@ -30,6 +30,7 @@ Gem::Specification.new do |spec|
30
30
  $ jive setup
31
31
  MESSAGE
32
32
 
33
+ spec.add_dependency "rugged", "~> 1.1"
33
34
  spec.add_dependency "thor", "~> 1.1"
34
35
  spec.add_development_dependency "minitest", "~> 5.0"
35
36
  spec.add_development_dependency "rake", "~> 13.0"
data/lib/jive.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require "fileutils"
4
4
  require "open3"
5
+ require "rugged"
5
6
  require "uri"
6
7
 
7
8
  require "jive/batch_runner"
@@ -10,6 +11,7 @@ require "jive/git"
10
11
  require "jive/popen"
11
12
  require "jive/project"
12
13
  require "jive/pull_request"
14
+ require "jive/repo"
13
15
  require "jive/runner"
14
16
  require "jive/shell"
15
17
  require "jive/version"
data/lib/jive/cli.rb CHANGED
@@ -75,7 +75,9 @@ module Jive
75
75
  end
76
76
 
77
77
  desc "pr URL", "pull request"
78
- def pr(url)
78
+ def pr(url = Repo.current.canonical_url)
79
+ return say("Invalid url") && exit(1) unless url
80
+
79
81
  pr = PullRequest.new(url)
80
82
  pr.edit(ENV["EDITOR"])
81
83
  end
data/lib/jive/repo.rb ADDED
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Jive
4
+ class Repo
5
+ SSH_REGEX = %r{\Agit@(?<host>.+):(?<account>.+)/(?<repo>.+)\z}.freeze
6
+
7
+ def initialize(path)
8
+ @repo = Rugged::Repository.new(path.to_s)
9
+ end
10
+
11
+ def canonical_url
12
+ remote = @repo.remotes.find { |x| x.name == "origin" }
13
+ return if remote.nil?
14
+
15
+ ssh?(remote) ? url_for_ssh(remote) : url_for(remote)
16
+ end
17
+
18
+ class << self
19
+ def current
20
+ @current ||= new(Pathname.pwd)
21
+ end
22
+ end
23
+
24
+ private
25
+
26
+ def ssh?(remote)
27
+ remote.url.match?(SSH_REGEX)
28
+ end
29
+
30
+ def url_for_ssh(remote)
31
+ match = remote.url.match(SSH_REGEX)
32
+ [
33
+ "https:/",
34
+ match[:host],
35
+ match[:account],
36
+ match[:repo],
37
+ @repo.head.name
38
+ ].join("/")
39
+ end
40
+
41
+ def url_for(remote)
42
+ uri = URI.parse(remote.url)
43
+ [uri.host, uri.path, @repo.head.name].join("/")
44
+ end
45
+ end
46
+ end
data/lib/jive/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jive
4
- VERSION = "0.4.3"
4
+ VERSION = "0.4.4"
5
5
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jive
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - mo khan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-01 00:00:00.000000000 Z
11
+ date: 2021-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rugged
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.1'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: thor
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -115,6 +129,7 @@ files:
115
129
  - lib/jive/popen.rb
116
130
  - lib/jive/project.rb
117
131
  - lib/jive/pull_request.rb
132
+ - lib/jive/repo.rb
118
133
  - lib/jive/runner.rb
119
134
  - lib/jive/shell.rb
120
135
  - lib/jive/templates/pull_request_template.md