accesslint-ci 0.1.10 → 0.2.1

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
  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