sleet 0.3.3 → 0.3.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: 8e5378bcb98986a685c8f0711fb18b23da95a880bc1e72ba291033168f76f839
4
- data.tar.gz: 5306953ddf25adc7367d367f1b2c3e1a4b132efeded68af5bf8847a7b9868f3f
3
+ metadata.gz: 80cad44120cf0a7c36a746f8bf76bd4164b349b2f7da0263dce63fc945ce2f20
4
+ data.tar.gz: 3e1f4ace18363872b5d630d70950166088bd29a469ad7428feef18db378fd33a
5
5
  SHA512:
6
- metadata.gz: a9fde7dd6815ed0dfd348a80c90e2754666abc3531544eb2c34e54f50ee8c1c161683b3f4b5987258d8aa49e70fc5eb0391af9a445097fec2197ca2ae539ac44
7
- data.tar.gz: e365aa4011e0ca73c9867a847766fa72bbc1d8303dbef91a66f271cb90433ed3d691b9c4b31a6263afdbc27e7c78c3d388d65bd9ed27f4d157ed44a2885e9b2c
6
+ metadata.gz: dc9d1b16768e0faab3667a46ce3b43afc9c53e4568110cba635ff7b71a4d260c2feaafaeca6d2a3e6dc88de6df2fa83e46ae6fa56d7c9d15928d5c43bda25cb5
7
+ data.tar.gz: '0194667dc3eaf4902e2f32d2c1c073596b31e85c03550e2cece9926e26482ca41c7fdd7edb20e08c0b390c01ea751d7663707a9bfe29963a4d9cd1d13e346174'
data/.rubocop_todo.yml CHANGED
@@ -1,12 +1,41 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2018-01-15 00:27:38 -0500 using RuboCop version 0.52.1.
3
+ # on 2018-01-16 22:17:20 -0500 using RuboCop version 0.52.1.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
9
  # Offense count: 1
10
+ # Cop supports --auto-correct.
11
+ # Configuration parameters: AllowAdjacentOneLineDefs, NumberOfEmptyLines.
12
+ Layout/EmptyLineBetweenDefs:
13
+ Exclude:
14
+ - 'lib/sleet/fetcher.rb'
15
+
16
+ # Offense count: 1
17
+ # Cop supports --auto-correct.
18
+ Layout/EmptyLines:
19
+ Exclude:
20
+ - 'lib/sleet/fetcher.rb'
21
+
22
+ # Offense count: 1
23
+ # Configuration parameters: CountComments.
24
+ Metrics/ClassLength:
25
+ Max: 107
26
+
27
+ # Offense count: 1
28
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
29
+ # URISchemes: http, https
30
+ Metrics/LineLength:
31
+ Max: 128
32
+
33
+ # Offense count: 2
10
34
  # Configuration parameters: CountComments.
11
35
  Metrics/MethodLength:
12
36
  Max: 15
37
+
38
+ # Offense count: 1
39
+ # Configuration parameters: CountKeywordArgs.
40
+ Metrics/ParameterLists:
41
+ Max: 7
data/CHANGELOG.md CHANGED
@@ -1,6 +1,14 @@
1
1
  # Change Log
2
2
 
3
- ## [v0.3.3](https://github.com/coreyja/sleet/tree/v0.3.3) (2018-01-15)
3
+ ## [v0.3.4](https://github.com/coreyja/sleet/tree/v0.3.4) (2018-01-16)
4
+ [Full Changelog](https://github.com/coreyja/sleet/compare/v0.3.3...v0.3.4)
5
+
6
+ **Merged pull requests:**
7
+
8
+ - Only Fetch Branch Once [\#12](https://github.com/coreyja/sleet/pull/12) ([coreyja](https://github.com/coreyja))
9
+ - Fix Auth [\#11](https://github.com/coreyja/sleet/pull/11) ([coreyja](https://github.com/coreyja))
10
+
11
+ ## [v0.3.3](https://github.com/coreyja/sleet/tree/v0.3.3) (2018-01-16)
4
12
  [Full Changelog](https://github.com/coreyja/sleet/compare/v0.3.2...v0.3.3)
5
13
 
6
14
  **Merged pull requests:**
data/README.md CHANGED
@@ -1,4 +1,8 @@
1
- # Sleet
1
+ # Sleet ☁️ ❄️
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/sleet.svg)](https://badge.fury.io/rb/sleet)
4
+ [![Maintainability](https://api.codeclimate.com/v1/badges/7f346b368d72b53ef630/maintainability)](https://codeclimate.com/github/coreyja/sleet/maintainability)
5
+ [![CircleCI](https://circleci.com/gh/coreyja/sleet.svg?style=svg)](https://circleci.com/gh/coreyja/sleet)
2
6
 
3
7
  ## Background and Problem
4
8
 
@@ -10,12 +10,18 @@ module Sleet
10
10
  @_token ||= File.read("#{Dir.home}/.circleci.token").strip
11
11
  end
12
12
 
13
- def get(url)
14
- Faraday.get(url, circleci_token: token)
13
+ def get(*args, &block)
14
+ connection.get(*args, &block)
15
15
  end
16
16
 
17
17
  def self.get(url)
18
18
  instance.get(url)
19
19
  end
20
+
21
+ private
22
+
23
+ def connection
24
+ @_connection ||= Faraday.new.tap { |c| c.basic_auth(token, '') }
25
+ end
20
26
  end
21
27
  end
@@ -9,7 +9,7 @@ module Sleet
9
9
  end
10
10
 
11
11
  def builds
12
- @_builds ||= JSON.parse(Sleet::CircleCi.get(url).body)
12
+ @_builds ||= JSON.parse(Sleet::CircleCi.get(url, filter: :completed).body)
13
13
  end
14
14
 
15
15
  def builds_with_artificats
@@ -19,7 +19,7 @@ module Sleet
19
19
  attr_reader :github_user, :github_repo
20
20
 
21
21
  def url
22
- "https://circleci.com/api/v1.1/project/github/#{github_user}/#{github_repo}/#{build_num}/artifacts?filter=completed" # rubocop:disable Metrics/LineLength
22
+ "https://circleci.com/api/v1.1/project/github/#{github_user}/#{github_repo}/#{build_num}/artifacts" # rubocop:disable Metrics/LineLength
23
23
  end
24
24
  end
25
25
  end
data/lib/sleet/cli.rb CHANGED
@@ -24,11 +24,17 @@ module Sleet
24
24
  To use Sleet with CircleCI Workflows you need to tell Sleet which build(s) to look in, and where each output should be saved. The input is a hash, where the key is the build name and the value is the output_file for that build. Sleet supports saving the artifacts to multiple builds, meaning it can support a mono-repo setup.
25
25
  DESC
26
26
  def fetch
27
+ must_be_on_branch!
28
+ must_have_an_upstream_branch!
29
+ upstream_remote_must_be_github!
27
30
  if options[:workflows]
28
31
  workflow_fetch
29
32
  else
30
33
  single_fetch
31
34
  end
35
+ rescue Sleet::Error => e
36
+ error(e.message)
37
+ exit 1
32
38
  end
33
39
 
34
40
  desc 'version', 'Display the version'
@@ -67,10 +73,40 @@ module Sleet
67
73
  exit 1 if failed
68
74
  end
69
75
 
76
+ def circle_ci_branch
77
+ @_circle_ci_branch ||= Sleet::CircleCiBranch.new(
78
+ github_user: repo.github_user,
79
+ github_repo: repo.github_repo,
80
+ branch: repo.remote_branch
81
+ )
82
+ end
83
+
84
+ def must_be_on_branch!
85
+ repo.on_branch? ||
86
+ error('Not on a branch')
87
+ end
88
+
89
+ def must_have_an_upstream_branch!
90
+ repo.remote? ||
91
+ error("No upstream branch set for the current branch of #{repo.current_branch_name}")
92
+ end
93
+
94
+ def upstream_remote_must_be_github!
95
+ repo.github? ||
96
+ error('Upstream remote is not GitHub')
97
+ end
98
+
99
+ def repo
100
+ @_repo ||= Sleet::Repo.from_dir(options.fetch(:source_dir, default_dir))
101
+ end
102
+
70
103
  def base_fetcher_params
71
104
  {
72
105
  source_dir: options.fetch(:source_dir, default_dir),
73
- input_filename: options.fetch(:input_file, '.rspec_example_statuses')
106
+ circle_ci_branch: circle_ci_branch,
107
+ input_filename: options.fetch(:input_file, '.rspec_example_statuses'),
108
+ github_user: repo.github_user,
109
+ github_repo: repo.github_repo
74
110
  }
75
111
  end
76
112
 
data/lib/sleet/fetcher.rb CHANGED
@@ -4,11 +4,14 @@ module Sleet
4
4
  class Fetcher
5
5
  class Error < ::Sleet::Error; end
6
6
 
7
- def initialize(source_dir:, input_filename:, output_filename:, job_name: nil)
7
+ def initialize(source_dir:, circle_ci_branch:, input_filename:, output_filename:, github_user:, github_repo:, job_name: nil) # rubocop:disable Metrics/LineLength
8
8
  @source_dir = source_dir
9
+ @circle_ci_branch = circle_ci_branch
9
10
  @input_filename = input_filename
10
11
  @output_filename = output_filename
11
12
  @job_name = job_name
13
+ @github_user = github_user
14
+ @github_repo = github_repo
12
15
  end
13
16
 
14
17
  def do!
@@ -17,9 +20,6 @@ module Sleet
17
20
  end
18
21
 
19
22
  def validate!
20
- must_be_on_branch!
21
- must_have_an_upstream_branch!
22
- upstream_remote_must_be_github!
23
23
  must_find_a_build_with_artifacts!
24
24
  chosen_build_must_have_input_file!
25
25
  true
@@ -34,7 +34,7 @@ module Sleet
34
34
 
35
35
  private
36
36
 
37
- attr_reader :source_dir, :input_filename, :output_filename, :job_name
37
+ attr_reader :input_filename, :output_filename, :job_name, :circle_ci_branch, :github_user, :github_repo, :source_dir
38
38
 
39
39
  def error(msg)
40
40
  raise Error, msg
@@ -53,16 +53,12 @@ module Sleet
53
53
 
54
54
  def circle_ci_build
55
55
  @_circle_ci_build ||= Sleet::CircleCiBuild.new(
56
- github_user: repo.github_user,
57
- github_repo: repo.github_repo,
56
+ github_user: github_user,
57
+ github_repo: github_repo,
58
58
  build_num: chosen_build_json['build_num']
59
59
  )
60
60
  end
61
61
 
62
- def repo
63
- @_repo ||= Sleet::Repo.from_dir(source_dir)
64
- end
65
-
66
62
  def chosen_build_json
67
63
  if job_name
68
64
  circle_ci_branch.builds_with_artificats.find { |b| b.fetch('workflows', {})&.fetch('job_name', {}) == job_name }
@@ -71,28 +67,6 @@ module Sleet
71
67
  end
72
68
  end
73
69
 
74
- def circle_ci_branch
75
- @_circle_ci_branch ||= Sleet::CircleCiBranch.new(
76
- github_user: repo.github_user,
77
- github_repo: repo.github_repo,
78
- branch: repo.remote_branch
79
- )
80
- end
81
-
82
- def must_be_on_branch!
83
- repo.on_branch? ||
84
- error('Not on a branch')
85
- end
86
-
87
- def must_have_an_upstream_branch!
88
- repo.remote? ||
89
- error("No upstream branch set for the current branch of #{repo.current_branch_name}")
90
- end
91
-
92
- def upstream_remote_must_be_github!
93
- repo.github? ||
94
- error('Upstream remote is not GitHub')
95
- end
96
70
 
97
71
  def must_find_a_build_with_artifacts!
98
72
  !chosen_build_json.nil? ||
data/lib/sleet/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Sleet
4
- VERSION = '0.3.3'
4
+ VERSION = '0.3.4'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sleet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Corey Alexander
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-16 00:00:00.000000000 Z
11
+ date: 2018-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize