test_file_finder 0.1.1 → 0.1.3

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: f430ea47bf579ef3674aaf0e0dc9cd41dcb667496e095fe5186a3fdf4763e3d0
4
- data.tar.gz: f22662e4c8e9e20af318eeca9d6a6de2f24ef494a962406e202781c464cd38c9
3
+ metadata.gz: 395e0c675e1c2f892395a6706c5c0505f8bf53a28416b3d60f424613b6eaefd1
4
+ data.tar.gz: 7d574bfda0a48abce40083fbaed0ab007e56ea051bcb1a056dfee1ef6dc2f052
5
5
  SHA512:
6
- metadata.gz: 01da410e1a12bd34d58d0d3d0212d793ba99bdaef7d7b97d3fb03fb68a9b059af700a4da5a695be1976a61ef0dec7385f19e89660630b219acaf88be4b4e7601
7
- data.tar.gz: 3e3cf7a6f6a74a7d7fcef43b462ad0b78e971cc1f1116ddf37607aa2837dce44e1b42635b7d0e275929f3d74146ba74151d3c32f717c6bdb151c49ec4afc73bb
6
+ metadata.gz: f15af7348a90fd1f3eb13b48359f57db714e7f4badce355544b35fe1a261fe7881555f6852415fdcdc4544f49341efb8ffac968675c36a355530a6d4c86cb20f
7
+ data.tar.gz: 2e7592eb12c547e5346362cdef16e3356d75b2cee3156390e720c55a0c45428b4a8f004dfe4750c9429b89d6fef9ca2b2a134d27493c3d3e15104b049586d0e6
data/.gitlab-ci.yml CHANGED
@@ -1,3 +1,9 @@
1
+ image: ruby:2.7.2
2
+
3
+ stages:
4
+ - test
5
+ - deploy
6
+
1
7
  rspec:
2
8
  script: bundle; bundle exec rspec
3
9
  rules:
@@ -7,3 +13,7 @@ check-executable:
7
13
  script: bundle; bundle exec rspec feature
8
14
  rules:
9
15
  - if: $CI
16
+
17
+ include:
18
+ - project: 'gitlab-org/quality/pipeline-common'
19
+ file: '/ci/gem-release.yml'
@@ -0,0 +1,35 @@
1
+ <!-- Replace `v4.5.0` with the previous release here, and `e18d76b309e42888759c1effe96767f13e34ae55`
2
+ with the latest commit from https://gitlab.com/gitlab-org/ci-cd/test_file_finder/commits/master that will be included in the release. -->
3
+ - Diff: https://gitlab.com/gitlab-org/ci-cd/test_file_finder/compare/v4.5.0...e18d76b309e42888759c1effe96767f13e34ae55
4
+
5
+ - Release notes:
6
+
7
+ <!-- Keep the sections order but remove the empty sections -->
8
+
9
+ ```markdown
10
+ ### New features and features updates
11
+
12
+ - !aaa <Title of the aaa MR>.
13
+
14
+ ### Fixes
15
+
16
+ - !bbb <Title of the bbb MR>.
17
+
18
+ ### Doc changes
19
+
20
+ - !ccc <Title of the ccc MR>.
21
+
22
+ ### Other changes (tooling, technical debt)
23
+
24
+ - !ddd <Title of the ddd MR>.
25
+ ```
26
+
27
+ - Checklist before merging:
28
+ - [ ] Diff link is up-to-date.
29
+ - [ ] Based on the diff, `lib/test_file_finder/version.rb` is updated, according to [SemVer](https://semver.org).
30
+ - [ ] Release notes are accurate.
31
+
32
+ - Checklist after merging:
33
+ - [ ] [Update the release notes for the newly created tag](docs/release_process.md#how-to).
34
+
35
+ /label ~tooling ~"tooling::workflow"
data/Gemfile.lock CHANGED
@@ -1,13 +1,22 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- test_file_finder (0.1.1)
4
+ test_file_finder (0.1.3)
5
+ faraday (~> 1.0.1)
5
6
 
6
7
  GEM
7
8
  remote: https://rubygems.org/
8
9
  specs:
10
+ addressable (2.7.0)
11
+ public_suffix (>= 2.0.2, < 5.0)
9
12
  byebug (11.1.3)
13
+ crack (0.4.4)
10
14
  diff-lcs (1.3)
15
+ faraday (1.0.1)
16
+ multipart-post (>= 1.2, < 3)
17
+ hashdiff (1.0.1)
18
+ multipart-post (2.1.1)
19
+ public_suffix (4.0.6)
11
20
  rake (10.5.0)
12
21
  rspec (3.9.0)
13
22
  rspec-core (~> 3.9.0)
@@ -22,6 +31,10 @@ GEM
22
31
  diff-lcs (>= 1.2.0, < 2.0)
23
32
  rspec-support (~> 3.9.0)
24
33
  rspec-support (3.9.3)
34
+ webmock (3.12.1)
35
+ addressable (>= 2.3.6)
36
+ crack (>= 0.3.2)
37
+ hashdiff (>= 0.4.0, < 2.0.0)
25
38
 
26
39
  PLATFORMS
27
40
  ruby
@@ -32,6 +45,7 @@ DEPENDENCIES
32
45
  rake (~> 10.0)
33
46
  rspec (~> 3.0)
34
47
  test_file_finder!
48
+ webmock (~> 3.12)
35
49
 
36
50
  BUNDLED WITH
37
- 1.17.3
51
+ 2.1.4
data/README.md CHANGED
@@ -119,6 +119,25 @@ tff.test_files
119
119
 
120
120
  An example mapping file is available in `fixtures/mapping.json`.
121
121
 
122
+ ##### `--project-path project_path` and `--merge-request-iid merge_request_iid`
123
+
124
+ `TestFileFinder` can be used with both GitLab project path and merge request IID to get the test files that failed in the project merge request.
125
+
126
+ Command line example:
127
+
128
+ ```bash
129
+ $ tff --project-path project/path --merge-request-iid 123
130
+ spec/models/widget_spec.rb
131
+ ```
132
+
133
+ Ruby example:
134
+
135
+ ```ruby
136
+ tff = TestFileFinder::FileFinder.new(paths: file_paths)
137
+ tff.use TestFileFinder::MappingStrategies::GitlabMergeRequestRspecFailure.new(project_path: 'project/path', merge_request_iid: 123)
138
+ tff.test_files
139
+ ```
140
+
122
141
  ## Development
123
142
 
124
143
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -0,0 +1,34 @@
1
+ # Release Process
2
+
3
+ ## Versioning
4
+
5
+ We follow [Semantic Versioning](https://semver.org). In short, this means that the new version should reflect the types of changes that are about to be released.
6
+
7
+ *summary from semver.org*
8
+
9
+ MAJOR.MINOR.PATCH
10
+
11
+ - MAJOR version when you make incompatible API changes,
12
+ - MINOR version when you add functionality in a backwards compatible manner, and
13
+ - PATCH version when you make backwards compatible bug fixes.
14
+
15
+ ## When we release
16
+
17
+ We release `gitlab-triage` on an ad-hoc basis. There is no regularity to when we release, we just release
18
+ when we make a change - no matter the size of the change.
19
+
20
+ ## How-to
21
+
22
+ - Check if there is an [open merge request to bump the version](https://gitlab.com/gitlab-org/ci-cd/test_file_finder/merge_requests?scope=all&utf8=%E2%9C%93&state=opened&search=bump+version) (to avoid creating a duplicate).
23
+ - If there is one, update it if necessary.
24
+ - If not, update [`lib/test_file_finder/version.rb`] to an appropriate [semantic version](https://semver.org) in a new merge request using the [release template](https://gitlab.com/gitlab-org/ci-cd/test_file_finder/blob/master/.gitlab/merge_request_templates/Release.md)
25
+ and title the MR like `"Bump version to <version>"`.
26
+ - Merge the merge request.
27
+ - The new version should automatically be tagged and pushed to Rubygems by the `release` job in the merge commit pipeline.
28
+ - Update the release notes for the newly created tag (https://gitlab.com/gitlab-org/ci-cd/test_file_finder/-/tags):
29
+ * **Release notes**: Copy the release notes from the merge request.
30
+
31
+ Note: The `bundle exec release` command uses the `GEM_HOST_API_KEY` environment variable to authenticate against the
32
+ `rubygems.org`.
33
+
34
+ [`lib/test_file_finder/version.rb`]: https://gitlab.com/gitlab-org/ci-cd/test_file_finder/blob/master/lib/test_file_finder/version.rb#L2
data/exe/tff CHANGED
@@ -10,6 +10,9 @@ TestFileFinder::FileFinder.new(paths: ARGV).tap do |file_finder|
10
10
  if options.mapping_file
11
11
  file_finder.use TestFileFinder::MappingStrategies::PatternMatching.load(options.mapping_file)
12
12
  end
13
+ if options.project_path && options.merge_request_iid
14
+ file_finder.use TestFileFinder::MappingStrategies::GitlabMergeRequestRspecFailure.new(project_path: options.project_path, merge_request_iid: options.merge_request_iid)
15
+ end
13
16
 
14
17
  if file_finder.strategies.empty?
15
18
  file_finder.use TestFileFinder::MappingStrategies::PatternMatching.default_rails_mapping
@@ -0,0 +1,194 @@
1
+ {
2
+ "status": "failed",
3
+ "summary": {
4
+ "total": 262819,
5
+ "resolved": 0,
6
+ "failed": 1,
7
+ "errored": 0
8
+ },
9
+ "suites": [
10
+ {
11
+ "name": "jest",
12
+ "status": "success",
13
+ "summary": {
14
+ "total": 27913,
15
+ "resolved": 0,
16
+ "failed": 0,
17
+ "errored": 0
18
+ },
19
+ "new_failures": [
20
+ {
21
+ "status": "failed",
22
+ "name": "javascript test",
23
+ "classname": "javascript.test",
24
+ "file": "./spec/frontend/javascript_spec.js",
25
+ "execution_time": 0.1,
26
+ "system_output": "Test failure",
27
+ "stack_trace": null,
28
+ "recent_failures": {
29
+ "count": 1,
30
+ "base_branch": "master"
31
+ }
32
+ }
33
+ ],
34
+ "existing_failures": [],
35
+ "resolved_failures": [],
36
+ "new_errors": [],
37
+ "existing_errors": [],
38
+ "resolved_errors": [],
39
+ "suite_errors": null
40
+ },
41
+ {
42
+ "name": "rspec unit pg11",
43
+ "status": "success",
44
+ "summary": {
45
+ "total": 70649,
46
+ "resolved": 0,
47
+ "failed": 0,
48
+ "errored": 0
49
+ },
50
+ "new_failures": [
51
+ {
52
+ "status": "failed",
53
+ "name": "rspec unit pg 11 test",
54
+ "classname": "rspec.unit.pg.11.test",
55
+ "file": "./spec/app/rspec_unit_pg11_spec.rb",
56
+ "execution_time": 0.534931,
57
+ "system_output": "Failure/Error",
58
+ "stack_trace": null,
59
+ "recent_failures": {
60
+ "count": 6,
61
+ "base_branch": "master"
62
+ }
63
+ }
64
+ ],
65
+ "existing_failures": [],
66
+ "resolved_failures": [
67
+ {
68
+ "status": "success",
69
+ "name": "resolved rspec unit pg 11 test",
70
+ "classname": "resolved.rspec.unit.pg.11.test",
71
+ "file": "./spec/resolved/rspec_unit_pg11_spec.rb",
72
+ "execution_time": 0.534931,
73
+ "system_output": "Failure/Error",
74
+ "stack_trace": null,
75
+ "recent_failures": {
76
+ "count": 6,
77
+ "base_branch": "master"
78
+ }
79
+ }
80
+ ],
81
+ "new_errors": [],
82
+ "existing_errors": [],
83
+ "resolved_errors": [],
84
+ "suite_errors": null
85
+ },
86
+ {
87
+ "name": "rspec system pg11-as-if-foss",
88
+ "status": "success",
89
+ "summary": {
90
+ "total": 6735,
91
+ "resolved": 0,
92
+ "failed": 0,
93
+ "errored": 0
94
+ },
95
+ "new_failures": [],
96
+ "existing_failures": [
97
+ {
98
+ "status": "failed",
99
+ "name": "rspec system pg 11 as if foss test",
100
+ "classname": "rspec.system.pg.11.as.if.foss.test",
101
+ "file": "./spec/features/rspec_system_pg11_as_if_foss_spec.rb",
102
+ "execution_time": 0.534931,
103
+ "system_output": "Failure/Error",
104
+ "stack_trace": null,
105
+ "recent_failures": {
106
+ "count": 6,
107
+ "base_branch": "master"
108
+ }
109
+ }
110
+ ],
111
+ "resolved_failures": [],
112
+ "new_errors": [],
113
+ "existing_errors": [],
114
+ "resolved_errors": [],
115
+ "suite_errors": null
116
+ },
117
+ {
118
+ "name": "rspec-ee integration pg11",
119
+ "status": "failed",
120
+ "summary": {
121
+ "total": 5713,
122
+ "resolved": 0,
123
+ "failed": 1,
124
+ "errored": 0
125
+ },
126
+ "new_failures": [
127
+ {
128
+ "status": "failed",
129
+ "name": "rspec-ee integration pg 11 test",
130
+ "classname": "rspec-ee.integration.pg.11.test",
131
+ "file": "./ee/spec/rspec_integration_pg11_spec.rb",
132
+ "execution_time": 0.534931,
133
+ "system_output": "Failure/Error",
134
+ "stack_trace": null,
135
+ "recent_failures": {
136
+ "count": 6,
137
+ "base_branch": "master"
138
+ }
139
+ }
140
+ ],
141
+ "existing_failures": [],
142
+ "resolved_failures": [],
143
+ "new_errors": [],
144
+ "existing_errors": [],
145
+ "resolved_errors": [],
146
+ "suite_errors": null
147
+ },
148
+ {
149
+ "name": "rspec-ee system pg11",
150
+ "status": "success",
151
+ "summary": {
152
+ "total": 1993,
153
+ "resolved": 0,
154
+ "failed": 0,
155
+ "errored": 0
156
+ },
157
+ "new_failures": [],
158
+ "existing_failures": [
159
+ {
160
+ "status": "failed",
161
+ "name": "rspec-ee system pg 11 test",
162
+ "classname": "rspec-ee.system.pg.11.test",
163
+ "file": "./ee/spec/features/rspec_system_pg11_spec.rb",
164
+ "execution_time": 0.534931,
165
+ "system_output": "Failure/Error",
166
+ "stack_trace": null,
167
+ "recent_failures": {
168
+ "count": 6,
169
+ "base_branch": "master"
170
+ }
171
+ }
172
+ ],
173
+ "resolved_failures": [
174
+ {
175
+ "status": "success",
176
+ "name": "resolved rspec system pg 11 test",
177
+ "classname": "resolved.rspec.system.pg.11.test",
178
+ "file": "./ee/spec/features/resolved/rspec_system_pg11_spec.rb",
179
+ "execution_time": 0.534931,
180
+ "system_output": "Failure/Error",
181
+ "stack_trace": null,
182
+ "recent_failures": {
183
+ "count": 6,
184
+ "base_branch": "master"
185
+ }
186
+ }
187
+ ],
188
+ "new_errors": [],
189
+ "existing_errors": [],
190
+ "resolved_errors": [],
191
+ "suite_errors": null
192
+ }
193
+ ]
194
+ }
@@ -8,4 +8,5 @@ module TestFileFinder
8
8
  class Error < StandardError; end
9
9
 
10
10
  InvalidMappingFileError = Class.new(Error)
11
+ TestReportError = Class.new(Error)
11
12
  end
@@ -1,4 +1,5 @@
1
1
  require 'test_file_finder/mapping_strategies/direct_matching'
2
+ require 'test_file_finder/mapping_strategies/gitlab_merge_request_rspec_failure'
2
3
  require 'test_file_finder/mapping_strategies/pattern_matching'
3
4
 
4
5
  module TestFileFinder
@@ -0,0 +1,78 @@
1
+ require 'faraday'
2
+ require 'json'
3
+ require 'set'
4
+
5
+ module TestFileFinder
6
+ module MappingStrategies
7
+ ##
8
+ # GitlabMergeRequestRSpecFailure strategy finds test files that failed
9
+ # in a GitLab merge request, using the Unit Test Reports feature
10
+ # https://docs.gitlab.com/ee/ci/unit_test_reports.html
11
+ #
12
+ # It uses the project path and merge request iid to fetch
13
+ # the test report of the merge request, which contains the test suites
14
+ # that ran in the CI pipeline.
15
+ #
16
+ # It returns file names of rspec failures in the pipeline.
17
+ class GitlabMergeRequestRspecFailure
18
+ TEST_REPORTS_URL_TEMPLATE = 'https://gitlab.com/%{project_path}/-/merge_requests/%{merge_request_iid}/test_reports.json'.freeze
19
+
20
+ attr_reader :project_path, :merge_request_iid
21
+
22
+ def initialize(project_path:, merge_request_iid:)
23
+ @project_path = project_path
24
+ @merge_request_iid = merge_request_iid
25
+ end
26
+
27
+ def match(_files = nil)
28
+ test_suites.each_with_object(Set.new) do |suite, result|
29
+ unresolved_failures(suite).each do |failure|
30
+ rspec_file(failure) do |spec|
31
+ result << spec
32
+ end
33
+ end
34
+ end.to_a
35
+ end
36
+
37
+ private
38
+
39
+ def test_suites
40
+ return to_enum(__method__) unless block_given?
41
+
42
+ @test_suites ||= merge_request_test_reports['suites']
43
+ @test_suites.each { |suite| yield suite }
44
+ end
45
+
46
+ def unresolved_failures(suite)
47
+ return to_enum(__method__, suite) unless block_given?
48
+
49
+ suite['new_failures'].each { |failure| yield failure }
50
+ suite['existing_failures'].each { |failure| yield failure }
51
+ end
52
+
53
+ def rspec_file(failure)
54
+ file = failure['file'].sub('./', '')
55
+
56
+ if file.end_with?('spec.rb')
57
+ yield file
58
+ end
59
+ end
60
+
61
+ def merge_request_test_reports
62
+ test_reports_url = format(TEST_REPORTS_URL_TEMPLATE, { project_path: project_path, merge_request_iid: merge_request_iid })
63
+
64
+ response = Faraday.get(test_reports_url, {}, {'Accept' => 'application/json'})
65
+
66
+ if response.status == 204
67
+ raise TestFileFinder::TestReportError, "Test report for merge request #{merge_request_iid} is not ready, please try again later."
68
+ elsif response.status == 400
69
+ raise TestFileFinder::TestReportError, "The project #{project_path} does not have test reports configured."
70
+ elsif response.status == 500
71
+ raise TestFileFinder::TestReportError, 'Unable to retrieve test report, please try again later.'
72
+ end
73
+
74
+ JSON.parse(response.body)
75
+ end
76
+ end
77
+ end
78
+ end
@@ -1,7 +1,7 @@
1
1
  require 'optparse'
2
2
 
3
3
  module TestFileFinder
4
- Options = Struct.new(:mapping_file, :json)
4
+ Options = Struct.new(:mapping_file, :json, :project_path, :merge_request_iid)
5
5
 
6
6
  class OptionParser
7
7
  def self.parse!(argv)
@@ -20,6 +20,14 @@ module TestFileFinder
20
20
  opts.on('--json FILE', String, 'Use a JSON mapping file') do |json|
21
21
  options.json = json
22
22
  end
23
+
24
+ opts.on('--project-path PROJECT_PATH', String, 'Path of GitLab project, e.g `gitlab-org/gitlab`') do |project_path|
25
+ options.project_path = project_path
26
+ end
27
+
28
+ opts.on('--merge-request-iid MERGE_REQUEST_IID', Integer, 'Merge request internal id') do |merge_request_iid|
29
+ options.merge_request_iid = merge_request_iid
30
+ end
23
31
  end.parse!(argv)
24
32
  end
25
33
  end
@@ -1,3 +1,3 @@
1
1
  module TestFileFinder
2
- VERSION = '0.1.1'
2
+ VERSION = '0.1.3'
3
3
  end
@@ -33,8 +33,11 @@ Gem::Specification.new do |spec|
33
33
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
34
34
  spec.require_paths = ['lib']
35
35
 
36
+ spec.add_runtime_dependency 'faraday', '~> 1.0.1'
37
+
36
38
  spec.add_development_dependency 'bundler', '~> 1.17'
39
+ spec.add_development_dependency 'byebug'
37
40
  spec.add_development_dependency 'rake', '~> 10.0'
38
41
  spec.add_development_dependency 'rspec', '~> 3.0'
39
- spec.add_development_dependency 'byebug'
42
+ spec.add_development_dependency 'webmock', '~> 3.12'
40
43
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test_file_finder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitLab
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-13 00:00:00.000000000 Z
11
+ date: 2021-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 1.0.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.0.1
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -24,6 +38,20 @@ dependencies:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
40
  version: '1.17'
41
+ - !ruby/object:Gem::Dependency
42
+ name: byebug
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: rake
29
57
  requirement: !ruby/object:Gem::Requirement
@@ -53,19 +81,19 @@ dependencies:
53
81
  - !ruby/object:Gem::Version
54
82
  version: '3.0'
55
83
  - !ruby/object:Gem::Dependency
56
- name: byebug
84
+ name: webmock
57
85
  requirement: !ruby/object:Gem::Requirement
58
86
  requirements:
59
- - - ">="
87
+ - - "~>"
60
88
  - !ruby/object:Gem::Version
61
- version: '0'
89
+ version: '3.12'
62
90
  type: :development
63
91
  prerelease: false
64
92
  version_requirements: !ruby/object:Gem::Requirement
65
93
  requirements:
66
- - - ">="
94
+ - - "~>"
67
95
  - !ruby/object:Gem::Version
68
- version: '0'
96
+ version: '3.12'
69
97
  description: A command-line tool for guessing which spec files are relavant to a passed-in
70
98
  set of file paths.
71
99
  email:
@@ -77,6 +105,7 @@ extra_rdoc_files: []
77
105
  files:
78
106
  - ".gitignore"
79
107
  - ".gitlab-ci.yml"
108
+ - ".gitlab/merge_request_templates/Release.md"
80
109
  - ".rspec"
81
110
  - Gemfile
82
111
  - Gemfile.lock
@@ -84,6 +113,7 @@ files:
84
113
  - Rakefile
85
114
  - bin/console
86
115
  - bin/setup
116
+ - docs/release_process.md
87
117
  - exe/tff
88
118
  - feature/tff_exe_spec.rb
89
119
  - fixtures/mapping.json
@@ -92,11 +122,13 @@ files:
92
122
  - fixtures/spec/db/schema_spec.rb
93
123
  - fixtures/spec/models/project_spec.rb
94
124
  - fixtures/spec/models/test_file_finder_gem_executable_widget_spec.rb
125
+ - fixtures/test_reports.json
95
126
  - lib/test_file_finder.rb
96
127
  - lib/test_file_finder/file_finder.rb
97
128
  - lib/test_file_finder/mapping.rb
98
129
  - lib/test_file_finder/mapping_strategies.rb
99
130
  - lib/test_file_finder/mapping_strategies/direct_matching.rb
131
+ - lib/test_file_finder/mapping_strategies/gitlab_merge_request_rspec_failure.rb
100
132
  - lib/test_file_finder/mapping_strategies/pattern_matching.rb
101
133
  - lib/test_file_finder/option_parser.rb
102
134
  - lib/test_file_finder/version.rb
@@ -109,7 +141,7 @@ metadata:
109
141
  homepage_uri: https://gitlab.com/gitlab-org/ci-cd/test_file_finder
110
142
  source_code_uri: https://gitlab.com/gitlab-org/ci-cd/test_file_finder
111
143
  changelog_uri: https://gitlab.com/gitlab-org/ci-cd/test_file_finder/-/blob/master/CHANGELOG.md
112
- post_install_message:
144
+ post_install_message:
113
145
  rdoc_options: []
114
146
  require_paths:
115
147
  - lib
@@ -124,8 +156,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
156
  - !ruby/object:Gem::Version
125
157
  version: '0'
126
158
  requirements: []
127
- rubygems_version: 3.0.3
128
- signing_key:
159
+ rubygems_version: 3.1.4
160
+ signing_key:
129
161
  specification_version: 4
130
162
  summary: Guesses spec file paths given input file paths.
131
163
  test_files: []