codecov 0.4.0 → 0.5.1

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: 28cb9ca7e98d8d586f0c8118cc099def187c61c2cd1bc36882dd835959030404
4
- data.tar.gz: 2ae5223947def7a015e0b92fb591f1090cb086406d7f44e284a241a022a54fa4
3
+ metadata.gz: eda9a2c15cf9bca5603e8da966b08f4e74a880d225b1e367581f231c41bc6c54
4
+ data.tar.gz: dd8dfbafe0b700149632bcc252154b64d56324e7539ff535cd1a5a354c93485d
5
5
  SHA512:
6
- metadata.gz: f43851f9d6c5b8603bea783df5f52dfc40cc5290dfeb741cee23639bd00a60ab1916b73001f7b17652b11839f995b8bc963b151a71e4a7615510f1f129fe6d28
7
- data.tar.gz: '082f364e342d308a06b25c7955949e225bc8c93d730cbb86d1542c881175441740ffd802e070c071a65f45a8e5df4a536fd4811ef0fc18d732d9e04a8dc046bb'
6
+ metadata.gz: 84fb4095ba5a0a99f7a4089ca1f391f32703aa5ce8f5e31bb2de1a59dd6b559609d7ca83fa33b44695d9b6b3d34f6828b63435665142ac94a3750c0947895978
7
+ data.tar.gz: 1278f5daa1420a6926352164efec3922099d81fce34f6dc6140aa7166ebc54f8ffd3c47c781c3d07ca3d7bbbf4eb589c3ca12145458d1f6edfa0a3c4c43a5184
data/CHANGELOG.md ADDED
@@ -0,0 +1,130 @@
1
+ ### `0.5.1`
2
+ - #138 Update pass_ci_if_error flag
3
+
4
+ ### `0.5.0`
5
+ - #137 Place uploader in try/rescue block and add pass_ci_if_error flag
6
+
7
+ ### `0.4.3`
8
+ - #135 Shorten coverage message on formatter
9
+
10
+ ### `0.4.2`
11
+ - #134 Wrap file creation in try/catch
12
+
13
+ ### `0.4.1`
14
+ - #133 Write down to file when using the formatter
15
+
16
+ ### `0.4.0`
17
+ - #130 Split uploader from formatter
18
+
19
+ ### `0.3.0`
20
+ - #124 Ruby 3.0 support
21
+ - #125 open simplecov requirement to 0.21.x
22
+
23
+ ### `0.2.15`
24
+ - #118 Include codecov/version in the gem
25
+
26
+ ### `0.2.14`
27
+ - #107 Add EditorConfig file
28
+ - #113 Return version constant, don't duplicate version value
29
+ - #117 Update simplecov dependency versions
30
+
31
+ ### `0.2.13`
32
+ - [#105](https://github.com/codecov/codecov-ruby/pull/105) Remove unnecessary dependency for ruby standard gem
33
+ - [#110](https://github.com/codecov/codecov-ruby/pull/110) Fix GitHub Actions
34
+ - [#111](https://github.com/codecov/codecov-ruby/pull/111) Fix branch name detection for GitHub Actions CI
35
+
36
+ ### `0.2.12`
37
+ - [#102](https://github.com/codecov/codecov-ruby/pull/102) Fix value of params[:pr] when useing CodeBuild
38
+
39
+ ### `0.2.11`
40
+ - Add vendor/ to invalid directories
41
+
42
+ ### `0.2.10`
43
+ - Adds better logging on error cases
44
+ - Add more invalid directories in the network
45
+
46
+ ### `0.2.9`
47
+ - Remove `String` specific colors
48
+ - Add support for Codebuild CI
49
+
50
+ ### `0.2.8`
51
+ - Remove `colorize` dependency
52
+
53
+ ### `0.2.7`
54
+ - Fix for enterprise users unable to upload using the v4 uploader
55
+
56
+ ### `0.2.6`
57
+ - Fix issue with `push` events on GitHub Actions
58
+
59
+ ### `0.2.5`
60
+ - Revert single use of VERSION
61
+
62
+ ### `0.2.4`
63
+ - Adds support for GitHub Actions CI
64
+
65
+ ### `0.2.3`
66
+ - Support uploads for jruby 9.1 and 9.2
67
+
68
+ ### `0.2.2`
69
+ - Handle SocketError and better error handling of v4 failures
70
+
71
+ ### `0.2.1`
72
+ - Properly handle 400 cases when using the v4 endpoint
73
+
74
+ ### `0.2.0`
75
+ - move to the v4 upload endpoint with the v2 as a fallback
76
+
77
+ ### `0.1.20`
78
+ - fix critical upload issues on V2 endpoint
79
+
80
+ ### `0.1.19`
81
+ - fix colorize
82
+
83
+ ### `0.1.18`
84
+ - refactor and move to use v2 endpoint
85
+ - use Timeout::Error
86
+
87
+ ### `0.1.17`
88
+ - refactor upload method and add more logging
89
+
90
+ ### `0.1.10`
91
+ - update numerous ci environments
92
+ - dont fail if cannot upload to codecov
93
+
94
+ ### `0.1.3`
95
+ - add buildkite
96
+
97
+ ### `0.1.2`
98
+ - add slug argument
99
+ - use slug for uploading
100
+ - add Accept to uploads
101
+
102
+ ### `0.1.1`
103
+ - fix #6, thanks @justmatt
104
+ - add semaphore thread number
105
+
106
+ ### `0.1.0`
107
+ - added more CircleCI env
108
+
109
+ ### `0.0.11`
110
+ - send AppVeyor pr# with reports
111
+
112
+ ### `0.0.10`
113
+ - fix AppVeyor for public repos
114
+
115
+ ### `0.0.9`
116
+ - remove tmp.json creation
117
+
118
+ ### `0.0.8`
119
+ - added more jenkins environment references
120
+
121
+ ### `0.0.7`
122
+ - added GitLab CI Runner support
123
+
124
+ ### `0.0.5`
125
+ - added line messages by @coderanger
126
+ - fixed skip lines during reporting by @coderanger
127
+
128
+ ### `0.0.4`
129
+ - added more test
130
+ - added more CI providers
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License (MIT)
2
+
3
+ Copyright (c) 2015 Codecov
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,111 @@
1
+ # Codecov Ruby Uploader
2
+
3
+ ## DEPRECATION WARNING
4
+
5
+ All versions of the Ruby uploader prior to `0.2.0` will no longer be supported
6
+ and will be removed from public use on or after *2020-08-17*.
7
+ Please upgrade to the latest versions to continue using this uploader.
8
+
9
+ [![Codecov](https://codecov.io/github/codecov/codecov-ruby/coverage.svg?branch=master)](https://codecov.io/github/codecov/codecov-ruby?branch=master)
10
+ [![Gem Version](https://badge.fury.io/rb/codecov.svg)](https://rubygems.org/gems/codecov)
11
+ [![Build Status](https://secure.travis-ci.org/codecov/codecov-ruby.svg?branch=master)](http://travis-ci.org/codecov/codecov-ruby)
12
+ [![Codecov](https://circleci.com/gh/codecov/codecov-ruby.svg?style=svg)](https://circleci.com/gh/codecov/codecov-ruby)
13
+ [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fcodecov%2Fcodecov-ruby.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fcodecov%2Fcodecov-ruby?ref=badge_shield)
14
+
15
+
16
+ [Codecov.io](https://codecov.io/) upload support for Ruby.
17
+
18
+ ## Quick Start
19
+
20
+ Add to your `Gemfile`:
21
+
22
+ ```ruby
23
+ gem 'codecov', require: false, group: 'test'
24
+ ```
25
+
26
+ Add to the top of your `tests/helper.rb` file:
27
+
28
+ ```ruby
29
+ require 'simplecov'
30
+ SimpleCov.start
31
+
32
+ require 'codecov'
33
+ SimpleCov.formatter = SimpleCov::Formatter::Codecov
34
+ ```
35
+
36
+ Add CI Environment Variable:
37
+
38
+ ```sh
39
+ CODECOV_TOKEN="your repo token"
40
+ ```
41
+
42
+ Find you repo token on your repo page at [codecov.io](https://codecov.io).
43
+ Repo tokens are **not** required for public repos on Travis-Ci, CircleCI, or AppVeyor CI.
44
+
45
+ ## Supported CIs
46
+ | CI/CD |
47
+ | ----- |
48
+ | [AppVeyor CI](https://www.appveyor.com/) |
49
+ | [Azure Pipelines](https://azure.microsoft.com/en-us/services/devops/pipelines/) |
50
+ | [Bitbucket Pipelines](https://bitbucket.org/product/features/pipelines) |
51
+ | [Bitrise CI](https://www.bitrise.io/) |
52
+ | [Buildkite CI](https://buildkite.com/) |
53
+ | [CodeBuild CI](https://aws.amazon.com/codebuild/) |
54
+ | [CodePipeline](https://aws.amazon.com/codepipeline/) |
55
+ | [Circle CI](https://circleci.com/) |
56
+ | [Codeship CI](https://codeship.com/) |
57
+ | [Drone CI](https://drone.io/) |
58
+ | [GitLab CI](https://docs.gitlab.com/ee/ci/) |
59
+ | [Heroku CI](https://www.heroku.com/continuous-integration) |
60
+ | [Jenkins CI](https://www.jenkins.io/) |
61
+ | [Semaphore CI](https://semaphoreci.com/) |
62
+ | [Shippable](https://www.shippable.com/) |
63
+ | [Solano CI](https://xebialabs.com/technology/solano-ci/) |
64
+ | [TeamCity CI](https://www.jetbrains.com/teamcity/) |
65
+ | [Travis CI](https://travis-ci.org/) |
66
+ | [Wercker CI](https://devcenter.wercker.com/) |
67
+
68
+ ## Advanced Usage
69
+
70
+ #### Submit only in CI example
71
+
72
+ ```ruby
73
+ if ENV['CI'] == 'true'
74
+ require 'codecov'
75
+ SimpleCov.formatter = SimpleCov::Formatter::Codecov
76
+ end
77
+ ```
78
+
79
+ ## Useful Links
80
+
81
+ [FAQ](https://docs.codecov.io/docs/frequently-asked-questions)
82
+ [Recipe List](https://docs.codecov.io/docs/common-recipe-list)
83
+ [Error Reference](https://docs.codecov.io/docs/error-reference)
84
+ [Changelog](./CHANGELOG.md)
85
+ [Support](https://codecov.io/support)
86
+ [Community Boards](https://community.codecov.io)
87
+
88
+ ## Caveats
89
+
90
+ 1. There are known issues when `Simplecov.track_files` is enabled. We recommend that you require all code files in your tests so that SimpleCov can provide Codecov with properly mapped coverage report metrics. [codecov/support#133]( https://github.com/codecov/support/issues/133)
91
+ - https://github.com/colszowka/simplecov/blob/master/README.md#default-root-filter-and-coverage-for-things-outside-of-it
92
+ 2. `git` must be installed.
93
+ - https://github.com/codecov/codecov-ruby/blob/5e3dae3/lib/codecov.rb#L284-L295
94
+
95
+ ## Maintainers
96
+
97
+ - [thomasrockhu](https://github.com/thomasrockhu)
98
+
99
+ ## Enterprise
100
+
101
+ For companies using Codecov Enterprise you will need to specify the following parameters:
102
+
103
+ ```sh
104
+ CODECOV_URL="https://codecov.mycompany.com"
105
+ CODECOV_SLUG="owner/repo"
106
+ CODECOV_TOKEN="repository token or global token"
107
+ ```
108
+
109
+
110
+ ## License
111
+ [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fcodecov%2Fcodecov-ruby.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fcodecov%2Fcodecov-ruby?ref=badge_large)
data/lib/codecov.rb CHANGED
@@ -11,7 +11,7 @@ require_relative 'codecov/uploader'
11
11
 
12
12
  class SimpleCov::Formatter::Codecov
13
13
  def format(result, disable_net_blockers = true)
14
- report = Codecov::SimpleCov::Formatter.format(result)
14
+ report = Codecov::SimpleCov::Formatter.new.format(result)
15
15
  Codecov::Uploader.upload(report, disable_net_blockers)
16
16
  end
17
17
  end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Codecov
4
+ module Configuration
5
+ attr_accessor :pass_ci_if_error
6
+ end
7
+ end
@@ -4,122 +4,123 @@ require 'simplecov'
4
4
 
5
5
  require_relative 'version'
6
6
 
7
- module Codecov::SimpleCov
8
- class Formatter
9
- def self.format(report)
10
- result = {
11
- 'meta' => {
12
- 'version' => "codecov-ruby/v#{::Codecov::VERSION}"
7
+ module Codecov
8
+ module SimpleCov
9
+ class Formatter
10
+ RESULT_FILE_NAME = 'codecov-result.json'
11
+
12
+ def format(report)
13
+ result = {
14
+ 'meta' => {
15
+ 'version' => "codecov-ruby/v#{::Codecov::VERSION}"
16
+ }
13
17
  }
14
- }
15
- result.update(result_to_codecov(report))
16
- result
17
- end
18
+ result.update(result_to_codecov(report))
19
+
20
+ begin
21
+ result_path = File.join(::SimpleCov.coverage_path, RESULT_FILE_NAME)
22
+ File.write(result_path, result['codecov'])
23
+ overflow = result['coverage'].to_s.length > 256 ? '...' : ''
24
+ puts "Coverage report generated to #{result_path}.\n#{result['coverage'].to_s.[](0, 255)}#{overflow}"
25
+ rescue Errno::ENOENT => e
26
+ puts e
27
+ puts "Could not write coverage report to file.\n#{result}"
28
+ end
18
29
 
19
- private
20
-
21
- # Format SimpleCov coverage data for the Codecov.io API.
22
- #
23
- # @param result [SimpleCov::Result] The coverage data to process.
24
- # @return [Hash]
25
- def self.result_to_codecov(result)
26
- {
27
- 'codecov' => result_to_codecov_report(result),
28
- 'coverage' => result_to_codecov_coverage(result),
29
- 'messages' => result_to_codecov_messages(result)
30
- }
31
- end
30
+ result
31
+ end
32
32
 
33
- def self.result_to_codecov_report(result)
34
- report = file_network.join("\n").concat("\n")
35
- report.concat({ 'coverage' => result_to_codecov_coverage(result) }.to_json)
36
- end
33
+ private
34
+
35
+ # Format SimpleCov coverage data for the Codecov.io API.
36
+ #
37
+ # @param result [SimpleCov::Result] The coverage data to process.
38
+ # @return [Hash]
39
+ def result_to_codecov(result)
40
+ {
41
+ 'codecov' => result_to_codecov_report(result),
42
+ 'coverage' => result_to_codecov_coverage(result),
43
+ 'messages' => result_to_codecov_messages(result)
44
+ }
45
+ end
37
46
 
38
- def self.file_network
39
- invalid_file_types = [
40
- 'woff', 'eot', 'otf', # fonts
41
- 'gif', 'png', 'jpg', 'jpeg', 'psd', # images
42
- 'ptt', 'pptx', 'numbers', 'pages', 'md', 'txt', 'xlsx', 'docx', 'doc', 'pdf', 'csv', # docs
43
- 'yml', 'yaml', '.gitignore'
44
- ].freeze
45
-
46
- invalid_directories = [
47
- 'node_modules/',
48
- 'public/',
49
- 'storage/',
50
- 'tmp/',
51
- 'vendor/'
52
- ]
53
-
54
- puts [green('==>'), 'Appending file network'].join(' ')
55
- network = []
56
- Dir['**/*'].keep_if do |file|
57
- if File.file?(file) && !file.end_with?(*invalid_file_types) && invalid_directories.none? { |dir| file.include?(dir) }
58
- network.push(file)
59
- end
47
+ def result_to_codecov_report(result)
48
+ report = file_network.join("\n").concat("\n")
49
+ report.concat({ 'coverage' => result_to_codecov_coverage(result) }.to_json)
60
50
  end
61
51
 
62
- network.push('<<<<<< network')
63
- network
64
- end
52
+ def file_network
53
+ invalid_file_types = [
54
+ 'woff', 'eot', 'otf', # fonts
55
+ 'gif', 'png', 'jpg', 'jpeg', 'psd', # images
56
+ 'ptt', 'pptx', 'numbers', 'pages', 'md', 'txt', 'xlsx', 'docx', 'doc', 'pdf', 'csv', # docs
57
+ 'yml', 'yaml', '.gitignore'
58
+ ].freeze
59
+
60
+ invalid_directories = [
61
+ 'node_modules/',
62
+ 'public/',
63
+ 'storage/',
64
+ 'tmp/',
65
+ 'vendor/'
66
+ ]
67
+
68
+ network = []
69
+ Dir['**/*'].keep_if do |file|
70
+ if File.file?(file) && !file.end_with?(*invalid_file_types) && invalid_directories.none? { |dir| file.include?(dir) }
71
+ network.push(file)
72
+ end
73
+ end
65
74
 
66
- # Format SimpleCov coverage data for the Codecov.io coverage API.
67
- #
68
- # @param result [SimpleCov::Result] The coverage data to process.
69
- # @return [Hash<String, Array>]
70
- def self.result_to_codecov_coverage(result)
71
- result.files.each_with_object({}) do |file, memo|
72
- memo[shortened_filename(file)] = file_to_codecov(file)
75
+ network.push('<<<<<< network')
76
+ network
73
77
  end
74
- end
75
78
 
76
- # Format SimpleCov coverage data for the Codecov.io messages API.
77
- #
78
- # @param result [SimpleCov::Result] The coverage data to process.
79
- # @return [Hash<String, Hash>]
80
- def self.result_to_codecov_messages(result)
81
- result.files.each_with_object({}) do |file, memo|
82
- memo[shortened_filename(file)] = file.lines.each_with_object({}) do |line, lines_memo|
83
- lines_memo[line.line_number.to_s] = 'skipped' if line.skipped?
79
+ # Format SimpleCov coverage data for the Codecov.io coverage API.
80
+ #
81
+ # @param result [SimpleCov::Result] The coverage data to process.
82
+ # @return [Hash<String, Array>]
83
+ def result_to_codecov_coverage(result)
84
+ result.files.each_with_object({}) do |file, memo|
85
+ memo[shortened_filename(file)] = file_to_codecov(file)
84
86
  end
85
87
  end
86
- end
87
88
 
88
- # Format coverage data for a single file for the Codecov.io API.
89
- #
90
- # @param file [SimpleCov::SourceFile] The file to process.
91
- # @return [Array<nil, Integer>]
92
- def self.file_to_codecov(file)
93
- # Initial nil is required to offset line numbers.
94
- [nil] + file.lines.map do |line|
95
- if line.skipped?
96
- nil
97
- else
98
- line.coverage
89
+ # Format SimpleCov coverage data for the Codecov.io messages API.
90
+ #
91
+ # @param result [SimpleCov::Result] The coverage data to process.
92
+ # @return [Hash<String, Hash>]
93
+ def result_to_codecov_messages(result)
94
+ result.files.each_with_object({}) do |file, memo|
95
+ memo[shortened_filename(file)] = file.lines.each_with_object({}) do |line, lines_memo|
96
+ lines_memo[line.line_number.to_s] = 'skipped' if line.skipped?
97
+ end
99
98
  end
100
99
  end
101
- end
102
-
103
- # Get a filename relative to the project root. Based on
104
- # https://github.com/colszowka/simplecov-html, copyright Christoph Olszowka.
105
- #
106
- # @param file [SimpleCov::SourceFile] The file to use.
107
- # @return [String]
108
- def self.shortened_filename(file)
109
- file.filename.gsub(/^#{SimpleCov.root}/, '.').gsub(%r{^\./}, '')
110
- end
111
-
112
- # Convenience color methods
113
- def self.black(str)
114
- str.nil? ? '' : "\e[30m#{str}\e[0m"
115
- end
116
100
 
117
- def self.red(str)
118
- str.nil? ? '' : "\e[31m#{str}\e[0m"
119
- end
101
+ # Format coverage data for a single file for the Codecov.io API.
102
+ #
103
+ # @param file [SimpleCov::SourceFile] The file to process.
104
+ # @return [Array<nil, Integer>]
105
+ def file_to_codecov(file)
106
+ # Initial nil is required to offset line numbers.
107
+ [nil] + file.lines.map do |line|
108
+ if line.skipped?
109
+ nil
110
+ else
111
+ line.coverage
112
+ end
113
+ end
114
+ end
120
115
 
121
- def self.green(str)
122
- str.nil? ? '' : "\e[32m#{str}\e[0m"
116
+ # Get a filename relative to the project root. Based on
117
+ # https://github.com/colszowka/simplecov-html, copyright Christoph Olszowka.
118
+ #
119
+ # @param file [SimpleCov::SourceFile] The file to use.
120
+ # @return [String]
121
+ def shortened_filename(file)
122
+ file.filename.gsub(/^#{::SimpleCov.root}/, '.').gsub(%r{^\./}, '')
123
+ end
123
124
  end
124
125
  end
125
126
  end
@@ -37,7 +37,17 @@ class Codecov::Uploader
37
37
 
38
38
  display_header
39
39
  ci = detect_ci
40
- response = upload_to_codecov(ci, report)
40
+
41
+ begin
42
+ response = upload_to_codecov(ci, report)
43
+ rescue StandardError => e
44
+ puts `#{e.message}`
45
+ puts `#{e.backtrace.join("\n")}`
46
+ raise e unless ::Codecov.pass_ci_if_error
47
+
48
+ response = false
49
+ end
50
+
41
51
  if response == false
42
52
  report['result'] = { 'uploaded' => false }
43
53
  return report
@@ -180,16 +190,29 @@ class Codecov::Uploader
180
190
  params[:commit] = ENV['CIRCLE_SHA1']
181
191
  when CODEBUILD
182
192
  # https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html
193
+ # To use CodePipeline as CodeBuild source which sets no branch and slug variable:
194
+ #
195
+ # 1. Set up CodeStarSourceConnection as source action provider
196
+ # https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html
197
+ # 2. Add a Namespace to your source action. Example: "CodeStar".
198
+ # https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-variables.html#reference-variables-concepts-namespaces
199
+ # 3. Add these environment variables to your CodeBuild action:
200
+ # - CODESTAR_BRANCH_NAME: #{CodeStar.BranchName}
201
+ # - CODESTAR_FULL_REPOSITORY_NAME: #{CodeStar.FullRepositoryName} (optional)
202
+ # https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodeBuild.html#action-reference-CodeBuild-config
203
+ #
204
+ # PRs are not supported with CodePipeline.
183
205
  params[:service] = 'codebuild'
184
- params[:branch] = ENV['CODEBUILD_WEBHOOK_HEAD_REF'].split('/')[2]
206
+ params[:branch] = ENV['CODEBUILD_WEBHOOK_HEAD_REF']&.split('/')&.[](2) || ENV['CODESTAR_BRANCH_NAME']
185
207
  params[:build] = ENV['CODEBUILD_BUILD_ID']
186
208
  params[:commit] = ENV['CODEBUILD_RESOLVED_SOURCE_VERSION']
187
209
  params[:job] = ENV['CODEBUILD_BUILD_ID']
188
- params[:slug] = ENV['CODEBUILD_SOURCE_REPO_URL'].match(/.*github.com\/(?<slug>.*).git/)['slug']
189
- params[:pr] = if ENV['CODEBUILD_SOURCE_VERSION']
210
+ params[:slug] = ENV['CODEBUILD_SOURCE_REPO_URL']&.match(/.*github.com\/(?<slug>.*).git/)&.[]('slug') || ENV['CODESTAR_FULL_REPOSITORY_NAME']
211
+ params[:pr] = if ENV['CODEBUILD_SOURCE_VERSION'] && !(ENV['CODEBUILD_INITIATOR'] =~ /codepipeline/)
190
212
  matched = ENV['CODEBUILD_SOURCE_VERSION'].match(%r{pr/(?<pr>.*)})
191
213
  matched.nil? ? ENV['CODEBUILD_SOURCE_VERSION'] : matched['pr']
192
214
  end
215
+ params[:build_url] = ENV['CODEBUILD_BUILD_URL']
193
216
  when CODESHIP
194
217
  # https://www.codeship.io/documentation/continuous-integration/set-environment-variables/
195
218
  params[:service] = 'codeship'
@@ -521,3 +544,6 @@ class Codecov::Uploader
521
544
  str.nil? ? '' : "\e[32m#{str}\e[0m"
522
545
  end
523
546
  end
547
+
548
+ require_relative 'configuration'
549
+ Codecov.extend Codecov::Configuration
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Codecov
4
- VERSION = '0.4.0'
4
+ VERSION = '0.5.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codecov
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Peak
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-01-25 00:00:00.000000000 Z
12
+ date: 2021-03-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: simplecov
@@ -122,14 +122,23 @@ executables: []
122
122
  extensions: []
123
123
  extra_rdoc_files: []
124
124
  files:
125
+ - CHANGELOG.md
126
+ - LICENSE
127
+ - README.md
125
128
  - lib/codecov.rb
129
+ - lib/codecov/configuration.rb
126
130
  - lib/codecov/formatter.rb
127
131
  - lib/codecov/uploader.rb
128
132
  - lib/codecov/version.rb
129
133
  homepage: https://github.com/codecov/codecov-ruby
130
134
  licenses:
131
135
  - MIT
132
- metadata: {}
136
+ metadata:
137
+ bug_tracker_uri: https://github.com/codecov/codecov-ruby/issues
138
+ changelog_uri: https://github.com/codecov/codecov-ruby/blob/v0.5.1/CHANGELOG.md
139
+ documentation_uri: http://www.rubydoc.info/gems/codecov/0.5.1
140
+ homepage_uri: https://github.com/codecov/codecov-ruby
141
+ source_code_uri: https://github.com/codecov/codecov-ruby
133
142
  post_install_message:
134
143
  rdoc_options: []
135
144
  require_paths: