git_lib 2.0.0 → 2.1.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: 6b9dccbf7c310da40e58f42cad51a67c49ba61affccf9dea50214546b20e1bd7
4
- data.tar.gz: 646b9386a32a7afc892fcac283247fa634cc6bbd2d315c85ae11d570d34fd0d9
3
+ metadata.gz: f83b697a51aa8d99736c92879bb28d0e59f8635e7d32a9e0d9de5c9b6a0a2dc9
4
+ data.tar.gz: 62649c6cbe804f091acc15cf96e47cbb13521afd44a4cad571e378cbdd051719
5
5
  SHA512:
6
- metadata.gz: 34dae70fb09a618d5d8ab12f2894b66a897ea73acea8963c6247868487339e51cf8376d7ac548cf28e351979e052e9f44fed514b4abbb6b390ca09c75638692e
7
- data.tar.gz: b9b35fa82b1a14f49053f161b565f8d9a7404d76e2c06f4ffe5228ada30aeb1839ad04156bdc745e8dcb2e4938f1fe11c60e6c02205631704a35fe5e08ead970
6
+ metadata.gz: 7a4caae1a2a43f7602ff8b2b0d5d4db07565e2702cc497aabd781e95fff12a845d9568f33ea91db142a0caf8644b6fb7e024fd4cf3bcbf78a1f19a01519f8062
7
+ data.tar.gz: 3556c067c8d47dcbb0bf641800cf8f095d3fa994830c57169792fa85b6f04dd0720b87a3d8c8bd724d622054dc3c4efb0361ff0384909555109cb38d1abb7ff8
data/CHANGELOG.md CHANGED
@@ -4,6 +4,10 @@ Inspired by [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
5
  Note: this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [2.1.0] - 2021-12-13
8
+ ### Changed
9
+ - Changed `commit_diff_refs` to handle the `nil` case for `ancestor_ref`
10
+
7
11
  ## [2.0.0] - 2021-08-24
8
12
  ### Changed
9
13
  - Add required `repository:` to `GitCommit`.
@@ -24,6 +28,7 @@ Note: this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0
24
28
  - Add magic frozen_string_literal: true comment everywhere.
25
29
  - Clean up Rakefile.
26
30
 
31
+ [2.1.0]: https://github.com/Invoca/git_lib/compare/v2.0.0...v2.1.0
27
32
  [2.0.0]: https://github.com/Invoca/git_lib/compare/v1.2.0...v2.0.0
28
33
  [1.2.0]: https://github.com/Invoca/git_lib/compare/v1.1.1...v1.2.0
29
34
  [1.1.1]: https://github.com/Invoca/git_lib/compare/v1.1.0...v1.1.1
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- git_lib (2.0.0)
4
+ git_lib (2.1.0)
5
5
  activesupport (>= 4.2, < 7)
6
6
 
7
7
  GEM
data/lib/git/git.rb CHANGED
@@ -150,17 +150,25 @@ module Git
150
150
  raw_output.split("\n")
151
151
  end
152
152
 
153
+ def sha_list_for_ref_range(ref, ancestor_ref, fetch: false)
154
+ commit_diff_refs(ref, ancestor_ref, fetch: fetch).map(&:sha)
155
+ end
156
+
153
157
  def commit_diff_refs(ref, ancestor_ref, fetch: false)
154
158
  if fetch
155
159
  fetch_all
156
160
  end
157
- ref_prefix = 'origin/' unless self.class.is_git_sha?(ref)
161
+
162
+ ref_prefix = 'origin/' unless self.class.is_git_sha?(ref)
158
163
  ancestor_ref_prefix = 'origin/' unless self.class.is_git_sha?(ancestor_ref)
159
164
 
160
- raw_output = execute(
161
- "log --format=%H\t%an\t%ae\t%aI\t%s " \
162
- "--no-color #{ancestor_ref_prefix}#{Shellwords.escape(ancestor_ref)}..#{ref_prefix}#{Shellwords.escape(ref)}"
163
- )
165
+ sha_range = if ancestor_ref
166
+ "#{ancestor_ref_prefix}#{Shellwords.escape(ancestor_ref)}..#{ref_prefix}#{Shellwords.escape(ref)}"
167
+ else
168
+ "#{ref_prefix}#{Shellwords.escape(ref)}"
169
+ end
170
+
171
+ raw_output = execute("log --format=%H\t%an\t%ae\t%aI\t%s --no-color #{sha_range}")
164
172
  raw_output.split("\n").map do |row|
165
173
  commit_data = row.split("\t")
166
174
  GitCommit.new(commit_data[0], commit_data[4], DateTime.iso8601(commit_data[3]), commit_data[1], commit_data[2], repository_name: @repository_name)
data/lib/git/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Git
4
- VERSION = '2.0.0'
4
+ VERSION = '2.1.0'
5
5
  end
@@ -426,6 +426,18 @@ RSpec.describe 'Git::Git' do
426
426
  )
427
427
  @git.commit_diff_refs('branch`name', 'ancestor`_branch')
428
428
  end
429
+
430
+ it 'can get a list of shas given start and end refs' do
431
+ mocked_output = ["efd778098239838c165ffab2f12ad293f32824c8\tAuthor 1\tauthor1@email.com\t2016-07-14T10:09:45-07:00\tMerge branch 'production'\n",
432
+ "667f3e5347c48c04663209682642fd8d6d93fde2\tAuthor 2\tauthor2@email.com\t2016-07-14T16:46:35-07:00\tMerge pull request #5584 from Owner/repo/dimension_repair\n"].join
433
+ expected_array = ["efd778098239838c165ffab2f12ad293f32824c8", "667f3e5347c48c04663209682642fd8d6d93fde2"]
434
+ mock_execute(
435
+ mocked_output,
436
+ 1,
437
+ expected_command: "/usr/bin/git log --format=%H\t%an\t%ae\t%aI\t%s --no-color efd778098239838c165ffab2f12ad293f32824c8..667f3e5347c48c04663209682642fd8d6d93fde2"
438
+ )
439
+ expect(@git.sha_list_for_ref_range("667f3e5347c48c04663209682642fd8d6d93fde2", "efd778098239838c165ffab2f12ad293f32824c8")).to eq(expected_array)
440
+ end
429
441
  end
430
442
 
431
443
  describe 'get_current_branch_name' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git_lib
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Invoca Development
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-24 00:00:00.000000000 Z
11
+ date: 2021-12-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -30,7 +30,7 @@ dependencies:
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '7'
33
- description:
33
+ description:
34
34
  email:
35
35
  - development@invoca.com
36
36
  executables: []
@@ -73,7 +73,7 @@ homepage: https://github.com/Invoca/git_lib
73
73
  licenses: []
74
74
  metadata:
75
75
  allowed_push_host: https://rubygems.org
76
- post_install_message:
76
+ post_install_message:
77
77
  rdoc_options: []
78
78
  require_paths:
79
79
  - lib
@@ -89,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
89
  version: '0'
90
90
  requirements: []
91
91
  rubygems_version: 3.0.1
92
- signing_key:
92
+ signing_key:
93
93
  specification_version: 4
94
94
  summary: Git wrapper library.
95
95
  test_files: