buildkiterb 0.1.0 → 0.2.0

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: 8c74759ca24a01e1c3014a40e390bf0e6856f6f822afbe9b3ec04ce4eedf47a3
4
- data.tar.gz: 15155f0dd6b2925cd986ca1fe4f800070b14f532b26bdf75dd368c40996afdc0
3
+ metadata.gz: d17326f3ed42ef0a798a0716d1fa179f78ed88d9ba50e71577cd5178c3dd01ed
4
+ data.tar.gz: 389c4e4a122256db5c50c319ed842102f2590b85feb8ad46bef3074145ca77a1
5
5
  SHA512:
6
- metadata.gz: 6471e3269bedfda857df898a96435d6b71759720880d4707e95ee1e9dd1d1eb54539446c9a05ada092413c7bc67327414781153ffec061dad8136c39d753ae04
7
- data.tar.gz: 1424178e0527a785d2ac7b63d6632ee02fa7b8e19bae68e2a4a02dc15df3e0b04066395ba7de968a9db24df2c4be6f06dbaeb68a73b444e1fff65aa3cffe41be
6
+ metadata.gz: b9acd806d5629f3ecb086dc388eb3be47eead385a6e74f2b2af3cf7150192c655c559b79a938171aff07af389428d59554ebe9af8e60c2121f14ba3cc7bcaf74
7
+ data.tar.gz: 9936c96c5bc35e1d59e4b4d50c53c3d7b440e17762b833d6f477a8f00a18195c6a9a5ad940cb01ffe957e3ac1a79e3d22c815ca808688d7f3d787283f556f84c
data/.env.example CHANGED
@@ -1 +1 @@
1
- ACCESS_TOKEN=
1
+ API_TOKEN=
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- buildkiterb (0.1.0)
4
+ buildkiterb (0.2.0)
5
5
  faraday (~> 2.0)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -18,7 +18,17 @@ Firstly you'll need to create an API Token on [Buildkite](https://buildkite.com/
18
18
  and then set it like so:
19
19
 
20
20
  ```ruby
21
- @client = Buildkite::Client.new(access_token: "")
21
+ @client = Buildkite::Client.new(token: "abc123")
22
+ ```
23
+
24
+ ### Access Token
25
+
26
+ ```ruby
27
+ # Get details of the current token
28
+ @client.access_token.get
29
+
30
+ # Revoke the current token
31
+ @client.access_token.revoke
22
32
  ```
23
33
 
24
34
  ### Organizations
@@ -31,6 +41,140 @@ and then set it like so:
31
41
  @client.organizations.get slug: "my-org-slug"
32
42
  ```
33
43
 
44
+ ### Pipelines
45
+
46
+ ```ruby
47
+ # List all pipelines for an org
48
+ @client.pipelines.list org: "org-slug"
49
+ #=> #<Buildkite::Collection...
50
+
51
+ # Get a pipeline
52
+ @client.pipelines.get org: "org-slug", slug: "pipeline-slug"
53
+
54
+ # Create a Pipeline. View the 2 docs links for the correct params
55
+ # Docs: https://buildkite.com/docs/apis/rest-api/pipelines#create-a-yaml-pipeline
56
+ # Docs: https://buildkite.com/docs/apis/rest-api/pipelines#create-a-visual-step-pipeline
57
+ @client.pipelines.create org: "org-slug", name: "my pipeline", repository: "git@github.com:user/repo.git", configuration: {}
58
+
59
+ # Update a pipeline
60
+ # Docs: https://buildkite.com/docs/apis/rest-api/pipelines#update-a-pipeline
61
+ @client.pipelines.update org: "org-slug", slug: "my-pipeline", {}
62
+
63
+ # Archive a pipeline
64
+ @client.pipelines.archive org: "org-slug", slug: "my-pipeline"
65
+
66
+ # Unarchive a pipeline
67
+ @client.pipelines.unarchive org: "org-slug", slug: "my-pipeline"
68
+
69
+ # Delete a pipeline
70
+ @client.pipelines.delete org: "org-slug", slug: "my-pipeline"
71
+
72
+ # Setup automatic webhooks
73
+ # Returns 422 if not supported or cannot be done
74
+ @client.pipelines.webhook org: "org-slug", slug: "my-pipeline"
75
+ ```
76
+
77
+ ### Builds
78
+
79
+ ```ruby
80
+ # List all builds
81
+ @client.builds.list
82
+
83
+ # List all builds for an org
84
+ @client.builds.list org: "org-slug"
85
+
86
+ # List all builds for a pipeline
87
+ @client.builds.list org: "org-slug", pipeline: "pipeline-slug"
88
+
89
+ # Get a build
90
+ # The Build Number is used, not the ID
91
+ @client.builds.get org: "org-slug", pipeline: "pipeline-slug", number: 123
92
+
93
+ # Create a Build
94
+ # Docs: https://buildkite.com/docs/apis/rest-api/builds#create-a-build
95
+ @client.builds.create org: "org-slug", pipeline: "pipeline-slug", commit: "abc123", branch: "master"
96
+
97
+ # Cancel a build
98
+ @client.builds.cancel org: "org-slug", pipeline: "pipeline-slug", number: 123
99
+
100
+ # Rebuild a build
101
+ @client.builds.rebuild org: "org-slug", pipeline: "pipeline-slug", number: 123
102
+ ```
103
+
104
+ ### Agents
105
+
106
+ ```ruby
107
+ # List all agents for an org
108
+ @client.agents.list org: "org-slug"
109
+
110
+ # Get an agent
111
+ @client.agents.get org: "org-slug", id: "abc123"
112
+
113
+ # Stop an agent
114
+ # To force an agent to stop, add `force: true`
115
+ @client.agents.get org: "org-slug", id: "abc123"
116
+ ```
117
+
118
+ ### Jobs
119
+
120
+ ```ruby
121
+ # Retry a job
122
+ @client.jobs.retry org: "org-slug", pipeline: "pipeline-slug", number: 123, job: "abc123"
123
+
124
+ # Unblock a job
125
+ # Docs: https://buildkite.com/docs/apis/rest-api/jobs#unblock-a-job
126
+ @client.jobs.unblock org: "org-slug", pipeline: "pipeline-slug", number: 123, job: "abc123", {}
127
+
128
+ # Get a job's logs
129
+ @client.jobs.log org: "org-slug", pipeline: "pipeline-slug", number: 123, job: "abc123"
130
+
131
+ # Delete a job's log
132
+ @client.jobs.delete_log org: "org-slug", pipeline: "pipeline-slug", number: 123, job: "abc123"
133
+
134
+ # Get a job's environment variables
135
+ @client.jobs.env org: "org-slug", pipeline: "pipeline-slug", number: 123, job: "abc123"
136
+ ```
137
+
138
+ ### Annotations
139
+
140
+ ```ruby
141
+ # List annotations for a build
142
+ @client.annotations.list org: "org-slug", pipeline: "pipeline-slug", number: 123
143
+ ```
144
+
145
+ ### Artifacts
146
+
147
+ ```ruby
148
+ # List artifacts for a build
149
+ @client.artifacts.list org: "org-slug", pipeline: "pipeline-slug", number: 123
150
+
151
+ # List artifacts for a build job
152
+ @client.artifacts.list org: "org-slug", pipeline: "pipeline-slug", number: 123, job: "abc123"
153
+
154
+ # Get an artifact
155
+ @client.artifacts.get org: "org-slug", pipeline: "pipeline-slug", number: 123, job: "abc123", id: "123abc"
156
+
157
+ # Download an artifact
158
+ @client.artifacts.download org: "org-slug", pipeline: "pipeline-slug", number: 123, job: "abc123", id: "123abc"
159
+
160
+ # Delete an artifact
161
+ @client.artifacts.delete org: "org-slug", pipeline: "pipeline-slug", number: 123, job: "abc123", id: "123abc"
162
+ ```
163
+
164
+ ### Emojis
165
+
166
+ ```ruby
167
+ # List emojis for an organization
168
+ @client.emojis.list org: "org-slug"
169
+ ```
170
+
171
+ ### User
172
+
173
+ ```ruby
174
+ # Get the current user
175
+ @client.user.get
176
+ ```
177
+
34
178
  ## Contributing
35
179
 
36
180
  Bug reports and pull requests are welcome on GitHub at https://github.com/deanpcmad/buildkiterb.
data/bin/console CHANGED
@@ -13,7 +13,7 @@ require 'dotenv/load'
13
13
  # require "pry"
14
14
  # Pry.start
15
15
 
16
- @client = Buildkite::Client.new(access_token: ENV["ACCESS_TOKEN"])
16
+ @client = Buildkite::Client.new(token: ENV["API_TOKEN"])
17
17
 
18
18
  require "irb"
19
19
  IRB.start(__FILE__)
@@ -2,23 +2,59 @@ module Buildkite
2
2
  class Client
3
3
  BASE_URL = "https://api.buildkite.com/v2"
4
4
 
5
- attr_reader :access_token, :adapter
5
+ attr_reader :token, :adapter
6
6
 
7
- def initialize(access_token:, adapter: Faraday.default_adapter, stubs: nil)
8
- @access_token = access_token
7
+ def initialize(token:, adapter: Faraday.default_adapter, stubs: nil)
8
+ @token = token
9
9
  @adapter = adapter
10
10
 
11
11
  # Test stubs for requests
12
12
  @stubs = stubs
13
13
  end
14
14
 
15
+ def access_token
16
+ AccessTokenResource.new(self)
17
+ end
18
+
15
19
  def organizations
16
20
  OrganizationsResource.new(self)
17
21
  end
18
22
 
23
+ def pipelines
24
+ PipelinesResource.new(self)
25
+ end
26
+
27
+ def builds
28
+ BuildsResource.new(self)
29
+ end
30
+
31
+ def jobs
32
+ JobsResource.new(self)
33
+ end
34
+
35
+ def agents
36
+ AgentsResource.new(self)
37
+ end
38
+
39
+ def artifacts
40
+ ArtifactsResource.new(self)
41
+ end
42
+
43
+ def annotations
44
+ AnnotationsResource.new(self)
45
+ end
46
+
47
+ def emojis
48
+ EmojisResource.new(self)
49
+ end
50
+
51
+ def user
52
+ UserResource.new(self)
53
+ end
54
+
19
55
  def connection
20
56
  @connection ||= Faraday.new(BASE_URL) do |conn|
21
- conn.request :authorization, :Bearer, access_token
57
+ conn.request :authorization, :Bearer, token
22
58
 
23
59
  conn.headers = {
24
60
  "User-Agent" => "buildkiterb/v#{VERSION} (github.com/deanpcmad/buildkiterb)"
@@ -0,0 +1,4 @@
1
+ module Buildkite
2
+ class AccessToken < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Buildkite
2
+ class Agent < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Buildkite
2
+ class Annotation < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Buildkite
2
+ class Artifact < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Buildkite
2
+ class ArtifactDownload < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Buildkite
2
+ class Build < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Buildkite
2
+ class Emoji < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Buildkite
2
+ class Job < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Buildkite
2
+ class JobEnv < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Buildkite
2
+ class JobLog < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Buildkite
2
+ class Pipeline < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Buildkite
2
+ class User < Object
3
+ end
4
+ end
@@ -33,23 +33,23 @@ module Buildkite
33
33
  when 400
34
34
  raise Error, "Error 400: Your request was malformed. '#{response.body["message"]}'"
35
35
  when 401
36
- raise Error, "Error 401: You did not supply valid authentication credentials. '#{response.body["error"]}'"
36
+ raise Error, "Error 401: You did not supply valid authentication credentials. '#{response.body["message"]}'"
37
37
  when 403
38
- raise Error, "Error 403: You are not allowed to perform that action. '#{response.body["error"]}'"
38
+ raise Error, "Error 403: You are not allowed to perform that action. '#{response.body["message"]}'"
39
39
  when 404
40
- raise Error, "Error 404: No results were found for your request. '#{response.body["error"]}'"
40
+ raise Error, "Error 404: No results were found for your request. '#{response.body["message"]}'"
41
41
  when 409
42
42
  raise Error, "Error 409: Your request was a conflict. '#{response.body["message"]}'"
43
43
  when 422
44
44
  raise Error, "Error 422: Unprocessable Entity. '#{response.body["message"]}"
45
45
  when 429
46
- raise Error, "Error 429: Your request exceeded the API rate limit. '#{response.body["error"]}'"
46
+ raise Error, "Error 429: Your request exceeded the API rate limit. '#{response.body["message"]}'"
47
47
  when 500
48
- raise Error, "Error 500: We were unable to perform the request due to server-side problems. '#{response.body["error"]}'"
48
+ raise Error, "Error 500: We were unable to perform the request due to server-side problems. '#{response.body["message"]}'"
49
49
  when 503
50
- raise Error, "Error 503: You have been rate limited for sending more than 20 requests per second. '#{response.body["error"]}'"
50
+ raise Error, "Error 503: You have been rate limited for sending more than 20 requests per second. '#{response.body["message"]}'"
51
51
  when 204
52
- # 204 is a response for success on Twitch's API
52
+ # 204 is a response for success
53
53
  return true
54
54
  end
55
55
 
@@ -0,0 +1,13 @@
1
+ module Buildkite
2
+ class AccessTokenResource < Resource
3
+
4
+ def get
5
+ AccessToken.new get_request("access-token").body
6
+ end
7
+
8
+ def revoke
9
+ delete_request("access-token")
10
+ end
11
+
12
+ end
13
+ end
@@ -0,0 +1,18 @@
1
+ module Buildkite
2
+ class AgentsResource < Resource
3
+
4
+ def list(org:)
5
+ response = get_request("organizations/#{org}/agents")
6
+ Collection.from_response(response, type: Agent)
7
+ end
8
+
9
+ def get(org:, id:)
10
+ Agent.new get_request("organizations/#{org}/agents/#{id}").body
11
+ end
12
+
13
+ def stop(org:, id:, **args)
14
+ put_request("organizations/#{org}/agents/#{id}/stop", body: args)
15
+ end
16
+
17
+ end
18
+ end
@@ -0,0 +1,10 @@
1
+ module Buildkite
2
+ class AnnotationsResource < Resource
3
+
4
+ def list(org:, pipeline:, build:)
5
+ response = get_request("organizations/#{org}/pipelines/#{pipeline}/builds/#{build}/annotations")
6
+ Collection.from_response(response, type: Annotation)
7
+ end
8
+
9
+ end
10
+ end
@@ -0,0 +1,27 @@
1
+ module Buildkite
2
+ class ArtifactsResource < Resource
3
+
4
+ def list(org:, pipeline:, build:, job: nil)
5
+ if job
6
+ response = get_request("organizations/#{org}/pipelines/#{pipeline}/builds/#{build}/jobs/#{job}/artifacts")
7
+ else
8
+ response = get_request("organizations/#{org}/pipelines/#{pipeline}/builds/#{build}/artifacts")
9
+ end
10
+
11
+ Collection.from_response(response, type: Artifact)
12
+ end
13
+
14
+ def get(org:, pipeline:, build:, job:, id:)
15
+ Artifact.new get_request("organizations/#{org}/pipelines/#{pipeline}/builds/#{build}/jobs/#{job}/artifacts/#{id}").body
16
+ end
17
+
18
+ def download(org:, pipeline:, build:, job:, id:)
19
+ ArtifactDownload.new get_request("organizations/#{org}/pipelines/#{pipeline}/builds/#{build}/jobs/#{job}/artifacts/#{id}/download").body
20
+ end
21
+
22
+ def delete(org:, pipeline:, build:, job:, id:)
23
+ delete_request("organizations/#{org}/pipelines/#{pipeline}/builds/#{build}/jobs/#{job}/artifacts/#{id}")
24
+ end
25
+
26
+ end
27
+ end
@@ -0,0 +1,36 @@
1
+ module Buildkite
2
+ class BuildsResource < Resource
3
+
4
+ def list(org: nil, pipeline: nil)
5
+ if org && pipeline
6
+ response = get_request("organizations/#{org}/pipelines/#{pipeline}/builds")
7
+ elsif org
8
+ response = get_request("organizations/#{org}/builds")
9
+ else
10
+ response = get_request("builds")
11
+ end
12
+
13
+ if response
14
+ Collection.from_response(response, type: Build)
15
+ end
16
+ end
17
+
18
+ def get(org:, pipeline:, number:)
19
+ Build.new get_request("organizations/#{org}/pipelines/#{pipeline}/builds/#{number}").body
20
+ end
21
+
22
+ def create(org:, pipeline:, commit:, branch:, **args)
23
+ data = {commit: commit, branch: branch}
24
+ Build.new post_request("organizations/#{org}/pipelines/#{pipeline}/builds", body: data.merge(args)).body
25
+ end
26
+
27
+ def cancel(org:, pipeline:, number:)
28
+ Build.new put_request("organizations/#{org}/pipelines/#{pipeline}/builds/#{number}/cancel", body: {}).body
29
+ end
30
+
31
+ def rebuild(org:, pipeline:, number:)
32
+ Build.new put_request("organizations/#{org}/pipelines/#{pipeline}/builds/#{number}/rebuild", body: {}).body
33
+ end
34
+
35
+ end
36
+ end
@@ -0,0 +1,10 @@
1
+ module Buildkite
2
+ class EmojisResource < Resource
3
+
4
+ def list(org:)
5
+ response = get_request("organizations/#{org}/emojis")
6
+ Collection.from_response(response, type: Emoji)
7
+ end
8
+
9
+ end
10
+ end
@@ -0,0 +1,25 @@
1
+ module Buildkite
2
+ class JobsResource < Resource
3
+
4
+ def retry(org:, pipeline:, number:, job:)
5
+ Job.new put_request("organizations/#{org}/pipelines/#{pipeline}/builds/#{number}/jobs/#{job}/retry", body: {}).body
6
+ end
7
+
8
+ def unblock(org:, pipeline:, number:, job:, **args)
9
+ Job.new put_request("organizations/#{org}/pipelines/#{pipeline}/builds/#{number}/jobs/#{job}/unblock", body: args).body
10
+ end
11
+
12
+ def log(org:, pipeline:, number:, job:)
13
+ JobLog.new get_request("organizations/#{org}/pipelines/#{pipeline}/builds/#{number}/jobs/#{job}/log").body
14
+ end
15
+
16
+ def delete_log(org:, pipeline:, number:, job:)
17
+ delete_request("organizations/#{org}/pipelines/#{pipeline}/builds/#{number}/jobs/#{job}/log")
18
+ end
19
+
20
+ def env(org:, pipeline:, number:, job:)
21
+ JobEnv.new get_request("organizations/#{org}/pipelines/#{pipeline}/builds/#{number}/jobs/#{job}/env").body["env"]
22
+ end
23
+
24
+ end
25
+ end
@@ -0,0 +1,39 @@
1
+ module Buildkite
2
+ class PipelinesResource < Resource
3
+
4
+ def list(org:)
5
+ response = get_request("organizations/#{org}/pipelines")
6
+ Collection.from_response(response, type: Pipeline)
7
+ end
8
+
9
+ def get(org:, slug:)
10
+ Pipeline.new get_request("organizations/#{org}/pipelines/#{slug}").body
11
+ end
12
+
13
+ def create(org:, name:, repository:, configuration:, **args)
14
+ data = {name: name, repository: repository, configuration: configuration}
15
+ Pipeline.new post_request("organizations/#{org}/pipelines", body: data.merge(args)).body
16
+ end
17
+
18
+ def update(org:, slug:, **args)
19
+ Pipeline.new patch_request("organizations/#{org}/pipelines/#{slug}", body: args).body
20
+ end
21
+
22
+ def archive(org:, slug:)
23
+ Pipeline.new post_request("organizations/#{org}/pipelines/#{slug}/archive", body: {}).body
24
+ end
25
+
26
+ def unarchive(org:, slug:)
27
+ Pipeline.new post_request("organizations/#{org}/pipelines/#{slug}/unarchive", body: {}).body
28
+ end
29
+
30
+ def delete(org:, slug:)
31
+ delete_request("organizations/#{org}/pipelines/#{slug}")
32
+ end
33
+
34
+ def webhook(org:, slug:)
35
+ post_request("organizations/#{org}/pipelines/#{slug}/webhook", body: {})
36
+ end
37
+
38
+ end
39
+ end
@@ -0,0 +1,9 @@
1
+ module Buildkite
2
+ class UserResource < Resource
3
+
4
+ def get
5
+ User.new get_request("user").body
6
+ end
7
+
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module Buildkite
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/buildkite.rb CHANGED
@@ -10,9 +10,29 @@ module Buildkite
10
10
  autoload :Resource, "buildkite/resource"
11
11
  autoload :Object, "buildkite/object"
12
12
 
13
-
13
+ autoload :AccessTokenResource, "buildkite/resources/access_token"
14
14
  autoload :OrganizationsResource, "buildkite/resources/organizations"
15
+ autoload :PipelinesResource, "buildkite/resources/pipelines"
16
+ autoload :BuildsResource, "buildkite/resources/builds"
17
+ autoload :JobsResource, "buildkite/resources/jobs"
18
+ autoload :AgentsResource, "buildkite/resources/agents"
19
+ autoload :AnnotationsResource, "buildkite/resources/annotations"
20
+ autoload :ArtifactsResource, "buildkite/resources/artifacts"
21
+ autoload :EmojisResource, "buildkite/resources/emojis"
22
+ autoload :UserResource, "buildkite/resources/user"
15
23
 
24
+ autoload :AccessToken, "buildkite/objects/access_token"
16
25
  autoload :Organization, "buildkite/objects/organization"
26
+ autoload :Pipeline, "buildkite/objects/pipeline"
27
+ autoload :Build, "buildkite/objects/build"
28
+ autoload :Job, "buildkite/objects/job"
29
+ autoload :JobLog, "buildkite/objects/job_log"
30
+ autoload :JobEnv, "buildkite/objects/job_env"
31
+ autoload :Agent, "buildkite/objects/agent"
32
+ autoload :Annotation, "buildkite/objects/annotation"
33
+ autoload :Artifact, "buildkite/objects/artifact"
34
+ autoload :ArtifactDownload, "buildkite/objects/artifact_download"
35
+ autoload :Emoji, "buildkite/objects/emoji"
36
+ autoload :User, "buildkite/objects/user"
17
37
 
18
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: buildkiterb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dean Perry
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-06 00:00:00.000000000 Z
11
+ date: 2023-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -48,9 +48,30 @@ files:
48
48
  - lib/buildkite/collection.rb
49
49
  - lib/buildkite/error.rb
50
50
  - lib/buildkite/object.rb
51
+ - lib/buildkite/objects/access_token.rb
52
+ - lib/buildkite/objects/agent.rb
53
+ - lib/buildkite/objects/annotation.rb
54
+ - lib/buildkite/objects/artifact.rb
55
+ - lib/buildkite/objects/artifact_download.rb
56
+ - lib/buildkite/objects/build.rb
57
+ - lib/buildkite/objects/emoji.rb
58
+ - lib/buildkite/objects/job.rb
59
+ - lib/buildkite/objects/job_env.rb
60
+ - lib/buildkite/objects/job_log.rb
51
61
  - lib/buildkite/objects/organization.rb
62
+ - lib/buildkite/objects/pipeline.rb
63
+ - lib/buildkite/objects/user.rb
52
64
  - lib/buildkite/resource.rb
65
+ - lib/buildkite/resources/access_token.rb
66
+ - lib/buildkite/resources/agents.rb
67
+ - lib/buildkite/resources/annotations.rb
68
+ - lib/buildkite/resources/artifacts.rb
69
+ - lib/buildkite/resources/builds.rb
70
+ - lib/buildkite/resources/emojis.rb
71
+ - lib/buildkite/resources/jobs.rb
53
72
  - lib/buildkite/resources/organizations.rb
73
+ - lib/buildkite/resources/pipelines.rb
74
+ - lib/buildkite/resources/user.rb
54
75
  - lib/buildkite/version.rb
55
76
  - lib/buildkiterb.rb
56
77
  homepage: https://deanpcmad.com