jive 0.4.3 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
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