accesslint-ci 0.1.10 → 0.2.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
  SHA1:
3
- metadata.gz: 32d1a4462f8e21525f57f7b101b9cb3d7d7c2dd5
4
- data.tar.gz: f6f6de0991859d1bcb9d0c786b68374e79f8b5ce
3
+ metadata.gz: 0f1db830fb2a79fb494a3989ca2617fd4754f05c
4
+ data.tar.gz: 58d1cea942713bae8067dd9925ea0285baef9a97
5
5
  SHA512:
6
- metadata.gz: 8e4219c9c8cc64ef1cedaa6f586e77480806870a4279f82549e518c7d0e0f99faa3efdbeed18aa432fff358675c8b18a3f52fd49b7c26c8799bae17c28f257a7
7
- data.tar.gz: cb4b977cc80bcb05d06add9ac2396af0239840f02f177e8e8d3ec3edfb595a74af9693efbc28da3438e5ba39f1089ee250d3bcb8d5714ffac31f51125dffcc64
6
+ metadata.gz: e88421d424996769be09d4dc30aeb9c13b0547a957bb01d61385279381dfce3b9aad93ca472b22e411c1ff5ed9eaca6ff9fdeb63542d76838b634789da4c3570
7
+ data.tar.gz: a795fdf4c7a53781d362b1506eb93c25b9f697d2f38bfbc318228bc8f0278dd0361cd57af82cbb95177cd0fe12213167954f2f095cd2641e8656b26775288aa8
data/.env.test CHANGED
@@ -2,4 +2,5 @@ CIRCLE_BRANCH=example-branch
2
2
  CIRCLE_PROJECT_REPONAME=accesslint-ci
3
3
  CIRCLE_PROJECT_USERNAME=accesslint
4
4
  CIRCLE_TOKEN=ABC123
5
- ACCESSLINT_GITHUB_TOKEN=ABC456
5
+ ACCESSLINT_API_TOKEN=ABC456
6
+ ACCESSLINT_GITHUB_USER=example-user
data/README.md CHANGED
@@ -11,10 +11,7 @@ the pull request that initiated the build in CircleCI.
11
11
 
12
12
  ## Installation
13
13
 
14
- ### Command line (without CircleCI and GitHub)
15
-
16
- 1. `gem install accesslint-ci`
17
- 1. `accesslint-ci scan --skip-ci <url>`
14
+ 1. Authenticate with GitHub at https://accesslint.com to get an API token.
18
15
 
19
16
  ### Circle CI
20
17
 
@@ -33,7 +30,8 @@ general:
33
30
  machine:
34
31
  environment:
35
32
  CIRCLE_TOKEN: <CircleCI API token>
36
- ACCESSLINT_GITHUB_TOKEN: <GitHub Personal Access Token>
33
+ ACCESSLINT_TOKEN: <API token from https://accesslint.com>
34
+ ACCESSLINT_GITHUB_USER: <GitHub user authenticated at https://accesslint.com>
37
35
  node:
38
36
  version: 6.1.0
39
37
 
@@ -20,11 +20,12 @@ Gem::Specification.new do |spec|
20
20
  spec.require_paths = ["lib"]
21
21
 
22
22
  spec.add_development_dependency "bundler", "~> 1.12"
23
- spec.add_development_dependency "pry-byebug"
23
+ spec.add_development_dependency "climate_control", "~> 0.0.3"
24
+ spec.add_development_dependency "dotenv", "~> 2.1.1"
25
+ spec.add_development_dependency "pry-byebug", "~> 3.3.0"
24
26
  spec.add_development_dependency "rake", "~> 10.0"
25
27
  spec.add_development_dependency "rspec", "~> 3.0"
26
- spec.add_development_dependency "dotenv"
27
28
 
28
- spec.add_dependency "rest-client"
29
- spec.add_dependency "thor"
29
+ spec.add_dependency "rest-client", "~> 2.0"
30
+ spec.add_dependency "thor", "~> 0.19"
30
31
  end
@@ -3,79 +3,64 @@ require "rest-client"
3
3
  module Accesslint
4
4
  module Ci
5
5
  class Commenter
6
+ class CommenterError < StandardError; end
7
+
6
8
  def self.perform(*args)
7
9
  new(*args).perform
8
10
  end
9
11
 
10
- def initialize(diff)
11
- @diff = diff
12
+ def initialize(errors)
13
+ @errors = errors
12
14
  end
13
15
 
14
16
  def perform
15
- RestClient.post(github_uri, payload)
17
+ RestClient.post(accesslint_service_url, body: payload)
18
+ rescue CommenterError => e
19
+ puts e.message
16
20
  end
17
21
 
18
22
  private
19
23
 
20
- attr_reader :diff
21
-
22
- def github_uri
23
- @github_uri ||= "#{github_host}/issues/#{pull_request_number}/comments"
24
- end
25
-
26
- def github_host
27
- URI.join(
28
- "https://#{auth}@api.github.com/",
29
- "repos/",
30
- project_path,
31
- )
24
+ attr_reader :errors
25
+
26
+ def accesslint_service_url
27
+ @accesslint_service_url ||= URI(
28
+ File.join([
29
+ "https://#{authentication}@accesslint.com/api/v1/projects/",
30
+ project_path,
31
+ "pulls",
32
+ pull_request_number,
33
+ "comments",
34
+ ])
35
+ ).to_s
32
36
  end
33
37
 
34
- def auth
35
- "accesslint-ci:#{ENV.fetch('ACCESSLINT_GITHUB_TOKEN')}"
38
+ def authentication
39
+ "#{ENV.fetch('ACCESSLINT_GITHUB_USER')}:#{ENV.fetch('ACCESSLINT_API_TOKEN')}"
36
40
  end
37
41
 
38
42
  def pull_request_number
39
43
  if ENV["CI_PULL_REQUEST"]
40
44
  ENV.fetch("CI_PULL_REQUEST").match(/(\d+)/)[0]
41
45
  else
42
- pull_requests[0].fetch("number")
46
+ raise CommenterError.new("Failed to comment: missing CI_PULL_REQUEST.")
43
47
  end
44
48
  end
45
49
 
46
- def pull_requests
47
- @prs ||= JSON.parse(
48
- RestClient.get(
49
- "#{github_host}/pulls?head=#{pull_request_head}"
50
- )
51
- )
52
- end
53
-
54
- def pull_request_head
55
- "#{ENV.fetch('CIRCLE_PROJECT_USERNAME')}:#{ENV.fetch('CIRCLE_BRANCH')}"
56
- end
57
-
58
50
  def payload
59
- {
60
- body: message,
61
- }.to_json
51
+ { errors: errors }.to_json
62
52
  end
63
53
 
64
- def message
65
- "Found #{diff.count} new accessibility issues: \n```\n#{snippet}\n```"
66
- end
67
-
68
- def snippet
69
- diff.join("\n")
54
+ def github_user
55
+ ENV.fetch("CIRCLE_PROJECT_USERNAME")
70
56
  end
71
57
 
72
58
  def project_path
73
59
  [
74
- ENV.fetch("CIRCLE_PROJECT_USERNAME"),
60
+ github_user,
75
61
  ENV.fetch("CIRCLE_PROJECT_REPONAME"),
76
62
  ].join("/")
77
63
  end
78
64
  end
79
65
  end
80
66
  end
81
-
@@ -33,7 +33,9 @@ module Accesslint
33
33
  end
34
34
 
35
35
  def artifacts
36
- @artifacts ||= JSON.parse(RestClient.get("#{artifacts_uri}?#{query}"))
36
+ @artifacts ||= JSON.parse(
37
+ RestClient.get("#{artifacts_uri}?#{query}")
38
+ )
37
39
  rescue RestClient::NotFound
38
40
  raise MissingArtifactError.new("No existing artifacts.")
39
41
  end
@@ -1,5 +1,5 @@
1
1
  module Accesslint
2
2
  module Ci
3
- VERSION = "0.1.10"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: accesslint-ci
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cameron Cundiff
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-27 00:00:00.000000000 Z
11
+ date: 2016-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -25,89 +25,103 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.12'
27
27
  - !ruby/object:Gem::Dependency
28
- name: pry-byebug
28
+ name: climate_control
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 0.0.3
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 0.0.3
41
41
  - !ruby/object:Gem::Dependency
42
- name: rake
42
+ name: dotenv
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: 2.1.1
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '10.0'
54
+ version: 2.1.1
55
55
  - !ruby/object:Gem::Dependency
56
- name: rspec
56
+ name: pry-byebug
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '3.0'
61
+ version: 3.3.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '3.0'
68
+ version: 3.3.0
69
69
  - !ruby/object:Gem::Dependency
70
- name: dotenv
70
+ name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: '10.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '10.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rest-client
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - ">="
101
+ - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: '0'
103
+ version: '2.0'
90
104
  type: :runtime
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - ">="
108
+ - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: '0'
110
+ version: '2.0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: thor
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - ">="
115
+ - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '0'
117
+ version: '0.19'
104
118
  type: :runtime
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
- - - ">="
122
+ - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '0'
124
+ version: '0.19'
111
125
  description: accesslint-ci runs accessibility tests in CircleCI and comments on corresponding
112
126
  GitHub pull requests
113
127
  email:
@@ -159,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
159
173
  version: '0'
160
174
  requirements: []
161
175
  rubyforge_project:
162
- rubygems_version: 2.5.1
176
+ rubygems_version: 2.6.8
163
177
  signing_key:
164
178
  specification_version: 4
165
179
  summary: Run accessibility tests in CircleCI builds