avm-git 0.14.0 → 0.16.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5b8398e0b296b1b152268e3e75893239fdbf76ea35198a090b5a32c0b50c29ce
4
- data.tar.gz: 1a3d77ec717bededa720a46b50d44dbe8cf098dc829adfce891e66880669024c
3
+ metadata.gz: b3a1afddf99ac275f4fefaa59f5214ef2fa6658c8de08f9cdf0084ac3595fef4
4
+ data.tar.gz: 4a05f201ba0f62f69690dd40d4bd3327b4a63bd466beefdbc207f439753a0c6f
5
5
  SHA512:
6
- metadata.gz: f6b6a7480886329c0d8d430ad2d3617e94a3775beee1812bf9d5a95bf5e56c0dad34dc9d4cfa437dfe0b3c9d73657960eefc149e7595d10b9f45fd3bc58d8cdc
7
- data.tar.gz: a37e788e6f4c18b11c556c0bab148968e448915a34aa36e09810578c11f2b8ee9313882762a5ecc500b88d874407cd9f0cb09dbb945a9974ab59364317c0ccac
6
+ metadata.gz: 31447cd67d5af7667435e88a5a0c568813f6267a5da4a6a6f340fa79270d744d9cf6cb04aac72f8d514b56df9e235b54004edfd6d3e095fceaf36f557a474d79
7
+ data.tar.gz: 2ce2db890f802d7029714bdd9f3e4419605ac8b3d45eb09b3e91799409d2ed9c47d51994273358585c95aaacb0cb515ff37ed39059839dc948a1ef8ae71c73df
@@ -1,17 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'clipboard'
4
-
5
3
  module Avm
6
4
  module Git
7
5
  module Issue
8
6
  class Complete
9
7
  module Tracker
10
- def clipboard_copy_tracker_message
11
- ::Clipboard.copy(textile_tracker_message)
12
- infov 'Copied to clipboard', textile_tracker_message
13
- end
14
-
15
8
  private
16
9
 
17
10
  def textile_tracker_message_uncached
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/tools/core_ext'
3
+ require 'eac_cli/core_ext'
4
4
  require 'eac_git/local'
5
5
 
6
6
  module Avm
@@ -11,17 +11,21 @@ module Avm
11
11
  enable_simple_cache
12
12
  enable_speaker
13
13
 
14
- BRANCH_NAME_ISSUE_ID_PATTERN =
14
+ attr_reader :scm, :skip_validations
15
15
 
16
- attr_reader :dir, :skip_validations
17
-
18
- def initialize(options)
16
+ def initialize(scm, options)
17
+ @scm = scm
19
18
  consumer = ::EacRubyUtils::OptionsConsumer.new(options)
20
- @dir, @skip_validations = consumer.consume_all(:dir, :skip_validations)
19
+ @skip_validations = consumer.consume(:skip_validations)
21
20
  validate_skip_validations
22
21
  consumer.validate
23
22
  end
24
23
 
24
+ # @return [String]
25
+ def dir
26
+ scm.path.to_path
27
+ end
28
+
25
29
  def start_banner
26
30
  validations_banner
27
31
  end
@@ -32,7 +36,6 @@ module Avm
32
36
  assert_tag
33
37
  push
34
38
  remove_local_branch
35
- clipboard_copy_tracker_message
36
39
  true
37
40
  end
38
41
 
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/scms/branch'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module Git
8
+ module Scms
9
+ class Git < ::Avm::Scms::Base
10
+ class Branch < ::Avm::Scms::Branch
11
+ common_constructor :scm, :eac_git_branch
12
+
13
+ # @return [Avm::Git::Scms::Git::Commit]
14
+ def head_commit
15
+ ::Avm::Git::Scms::Git::Commit.new(scm, eac_git_branch.head_commit)
16
+ end
17
+
18
+ # @return [String]
19
+ def id
20
+ eac_git_branch.name
21
+ end
22
+
23
+ # @param remote [Avm::Git::Scms::Git::Remote]
24
+ def push(remote)
25
+ eac_git_branch.push(remote.eac_git_remote, force: true)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/scms/commit'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module Git
8
+ module Scms
9
+ class Git < ::Avm::Scms::Base
10
+ module Branches
11
+ # @return [Avm::Git::Scms::Git::Branch]
12
+ def head_branch
13
+ ::Avm::Git::Scms::Git::Branch.new(self,
14
+ git_repo.current_branch)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/scms/remote'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module Git
8
+ module Scms
9
+ class Git < ::Avm::Scms::Base
10
+ class Remote < ::Avm::Scms::Remote
11
+ common_constructor :scm, :eac_git_remote
12
+
13
+ # @return [String]
14
+ def id
15
+ nyi eac_git_remote
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/scms/git/remote'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module Git
8
+ module Scms
9
+ class Git < ::Avm::Scms::Base
10
+ module Remotes
11
+ DEFAULT_REMOTE_ID = 'origin'
12
+
13
+ # @return [Avm::Git::Scms::Git::Remote]
14
+ def default_remote
15
+ remote(default_remote_id)
16
+ end
17
+
18
+ # @return [String]
19
+ def default_remote_id
20
+ DEFAULT_REMOTE_ID
21
+ end
22
+
23
+ # @param id [String]
24
+ # @return [Avm::Git::Scms::Git::Remote]
25
+ def remote(id)
26
+ ::Avm::Git::Scms::Git::Remote.new(self, git_repo.remote(id))
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'avm/git/issue/complete'
3
4
  require 'avm/git/scms/git_subrepo'
4
5
  require 'avm/scms/base'
5
6
  require 'eac_ruby_utils/core_ext'
@@ -17,6 +18,12 @@ module Avm
17
18
  git_repo <=> other.git_repo
18
19
  end
19
20
 
21
+ # @param options [Hash<Symbol, Object>]
22
+ # @return [Avm::Git::Issues::Complete]
23
+ def completer(options = {})
24
+ ::Avm::Git::Issue::Complete.new(self, options)
25
+ end
26
+
20
27
  def git_repo
21
28
  @git_repo ||= ::EacGit::Local.new(path)
22
29
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module Git
5
- VERSION = '0.14.0'
5
+ VERSION = '0.16.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm-git
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Put here the authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-04 00:00:00.000000000 Z
11
+ date: 2024-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm
@@ -16,88 +16,76 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.82'
19
+ version: '0.86'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.82'
26
+ version: '0.86'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: avm-files
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.6'
34
- - - ">="
35
- - !ruby/object:Gem::Version
36
- version: 0.6.2
33
+ version: '0.7'
37
34
  type: :runtime
38
35
  prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
40
37
  requirements:
41
38
  - - "~>"
42
39
  - !ruby/object:Gem::Version
43
- version: '0.6'
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: 0.6.2
40
+ version: '0.7'
47
41
  - !ruby/object:Gem::Dependency
48
42
  name: eac_git
49
43
  requirement: !ruby/object:Gem::Requirement
50
44
  requirements:
51
45
  - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: '0.14'
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: 0.14.1
47
+ version: '0.16'
57
48
  type: :runtime
58
49
  prerelease: false
59
50
  version_requirements: !ruby/object:Gem::Requirement
60
51
  requirements:
61
52
  - - "~>"
62
53
  - !ruby/object:Gem::Version
63
- version: '0.14'
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: 0.14.1
54
+ version: '0.16'
67
55
  - !ruby/object:Gem::Dependency
68
56
  name: eac_ruby_utils
69
57
  requirement: !ruby/object:Gem::Requirement
70
58
  requirements:
71
59
  - - "~>"
72
60
  - !ruby/object:Gem::Version
73
- version: '0.119'
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- version: 0.119.2
61
+ version: '0.121'
77
62
  type: :runtime
78
63
  prerelease: false
79
64
  version_requirements: !ruby/object:Gem::Requirement
80
65
  requirements:
81
66
  - - "~>"
82
67
  - !ruby/object:Gem::Version
83
- version: '0.119'
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- version: 0.119.2
68
+ version: '0.121'
87
69
  - !ruby/object:Gem::Dependency
88
70
  name: git
89
71
  requirement: !ruby/object:Gem::Requirement
90
72
  requirements:
91
73
  - - "~>"
92
74
  - !ruby/object:Gem::Version
93
- version: '1.18'
75
+ version: '1.19'
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: 1.19.1
94
79
  type: :runtime
95
80
  prerelease: false
96
81
  version_requirements: !ruby/object:Gem::Requirement
97
82
  requirements:
98
83
  - - "~>"
99
84
  - !ruby/object:Gem::Version
100
- version: '1.18'
85
+ version: '1.19'
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 1.19.1
101
89
  - !ruby/object:Gem::Dependency
102
90
  name: eac_ruby_gem_support
103
91
  requirement: !ruby/object:Gem::Requirement
@@ -139,7 +127,6 @@ files:
139
127
  - lib/avm/git/issue/complete/validation.rb
140
128
  - lib/avm/git/issue/complete/validations.rb
141
129
  - lib/avm/git/issue/complete/working_tree.rb
142
- - lib/avm/git/issue/deliver.rb
143
130
  - lib/avm/git/launcher.rb
144
131
  - lib/avm/git/launcher/base.rb
145
132
  - lib/avm/git/launcher/base/class_methods.rb
@@ -171,6 +158,8 @@ files:
171
158
  - lib/avm/git/revision_test.rb
172
159
  - lib/avm/git/scms.rb
173
160
  - lib/avm/git/scms/git.rb
161
+ - lib/avm/git/scms/git/branch.rb
162
+ - lib/avm/git/scms/git/branches.rb
174
163
  - lib/avm/git/scms/git/change_tracker.rb
175
164
  - lib/avm/git/scms/git/changed_file.rb
176
165
  - lib/avm/git/scms/git/changed_files.rb
@@ -181,6 +170,8 @@ files:
181
170
  - lib/avm/git/scms/git/commits.rb
182
171
  - lib/avm/git/scms/git/interval.rb
183
172
  - lib/avm/git/scms/git/milestones.rb
173
+ - lib/avm/git/scms/git/remote.rb
174
+ - lib/avm/git/scms/git/remotes.rb
184
175
  - lib/avm/git/scms/git/run_commit.rb
185
176
  - lib/avm/git/scms/git_sub_base.rb
186
177
  - lib/avm/git/scms/git_sub_base/changed_file.rb
@@ -1,56 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/tools/core_ext'
4
- require 'clipboard'
5
-
6
- module Avm
7
- module Git
8
- module Issue
9
- class Deliver
10
- enable_simple_cache
11
- enable_speaker
12
-
13
- common_constructor :git_repo
14
-
15
- def run
16
- push
17
- clipboard_copy_tracker_message
18
- true
19
- end
20
-
21
- def start_banner
22
- infov 'Branch name', branch_name
23
- infov 'Commit ID', branch_commit_id
24
- infov 'Push arguments', ::Shellwords.join(push_args)
25
- end
26
-
27
- private
28
-
29
- def branch_commit_id
30
- git_repo.rev_parse(branch_name)
31
- end
32
-
33
- def branch_name_uncached
34
- git_repo.command('rev-parse', '--abbrev-ref', 'HEAD').execute!.strip
35
- end
36
-
37
- def clipboard_copy_tracker_message
38
- ::Clipboard.copy(textile_tracker_message)
39
- infov 'Copied to clipboard', textile_tracker_message
40
- end
41
-
42
- def push
43
- git_repo.command(*push_args).system!
44
- end
45
-
46
- def push_args
47
- %w[push origin --force] + ["#{branch_name}:refs/heads/#{branch_name}"]
48
- end
49
-
50
- def textile_tracker_message
51
- "#{branch_name}: commit:#{branch_commit_id}."
52
- end
53
- end
54
- end
55
- end
56
- end