circleci 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +61 -153
- data/lib/circleci.rb +1 -14
- data/lib/circleci/config.rb +2 -1
- data/lib/circleci/http.rb +8 -3
- data/lib/circleci/project.rb +3 -2
- data/lib/circleci/recent_builds.rb +17 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2b593d6e0bcf64fc14fb6ad923be106b6909cbd3
|
4
|
+
data.tar.gz: 702ed7c6b41beef442a87c7d1f6ce0139a0fd51e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a13042709bc07021325712265b2060d7b9fa4551bfd78163b90f337d6008c52d77cfe201f11d1a3f3331c3aafe705337e49f6064ca8bb89af870c4c97447772a
|
7
|
+
data.tar.gz: b795a0a4b3bbff5acac6b7bd8441e82859ae4e9a696df45b1fc86c189c185de0991c5ccbbf4ce5a478ac788729f94d1c1460df6453dfd292b4bbce9daf7e06e0
|
data/README.md
CHANGED
@@ -44,6 +44,17 @@ CircleCi.configure do |config|
|
|
44
44
|
end
|
45
45
|
```
|
46
46
|
|
47
|
+
Overriding request settings such as not verifying SSL
|
48
|
+
|
49
|
+
```ruby
|
50
|
+
CircleCi.configure do |config|
|
51
|
+
config.token = ENV['CIRCLECI_TOKEN']
|
52
|
+
config.request_overrides = {
|
53
|
+
verify_ssl: false
|
54
|
+
}
|
55
|
+
end
|
56
|
+
```
|
57
|
+
|
47
58
|
## API Endpoints
|
48
59
|
|
49
60
|
* [User](#user)
|
@@ -61,7 +72,7 @@ end
|
|
61
72
|
* [Get Checkout Key](#get_checkout_key)
|
62
73
|
* [List Checkout Keys](#list_checkout_keys)
|
63
74
|
* [New Checkout Key](#new_checkout_key)
|
64
|
-
* [Recent Builds](#
|
75
|
+
* [Recent Builds](#project_recent_builds)
|
65
76
|
* [Recent Builds Branch](#recent_builds_branch)
|
66
77
|
* [Settings](#settings)
|
67
78
|
* [Set Envvar](#set_envvar)
|
@@ -73,7 +84,8 @@ end
|
|
73
84
|
* [Get](#get)
|
74
85
|
* [Retry](#retry)
|
75
86
|
* [Tests](#tests)
|
76
|
-
* [
|
87
|
+
* [Recent Builds](#recent_builds)
|
88
|
+
* [Get](#recent_builds_get)
|
77
89
|
|
78
90
|
### [User](#user)
|
79
91
|
|
@@ -516,7 +528,7 @@ Example response
|
|
516
528
|
}
|
517
529
|
```
|
518
530
|
|
519
|
-
#### [recent_builds](#
|
531
|
+
#### [recent_builds](#project_recent_builds)
|
520
532
|
|
521
533
|
Endpoint: `/project/:username/:repository`
|
522
534
|
|
@@ -524,6 +536,13 @@ Build summary for each of the last 30 recent builds, ordered by build_num.
|
|
524
536
|
|
525
537
|
```ruby
|
526
538
|
res = CircleCi::Project.recent_builds 'username', 'reponame'
|
539
|
+
|
540
|
+
# Use params to filter by status
|
541
|
+
# res = CircleCi::Project.recent_builds 'username', 'reponame', filter: 'failed'
|
542
|
+
|
543
|
+
# Use params to limit and give an offset
|
544
|
+
# res = CircleCi::Project.recent_builds 'username', 'reponame', limit: 10, offset: 50
|
545
|
+
|
527
546
|
res.success?
|
528
547
|
res.body
|
529
548
|
```
|
@@ -977,170 +996,59 @@ res.body
|
|
977
996
|
]
|
978
997
|
```
|
979
998
|
|
980
|
-
### [
|
999
|
+
### [Recent Builds](#recent_builds)
|
981
1000
|
|
982
|
-
|
1001
|
+
#### [get](#recent_builds_get)
|
983
1002
|
|
984
|
-
|
1003
|
+
Endpoint: `/recent-builds`
|
1004
|
+
|
1005
|
+
Build summary for each of the last 30 recent builds, ordered by build_num.
|
985
1006
|
|
986
1007
|
```ruby
|
987
|
-
res = CircleCi.
|
988
|
-
|
1008
|
+
res = CircleCi::RecentBuilds.get
|
1009
|
+
|
1010
|
+
# Params of limit and offset can be passed in
|
1011
|
+
# res = CircleCi::RecentBuilds.get limit: 10, offset: 50
|
1012
|
+
|
1013
|
+
res.success?
|
989
1014
|
res.body
|
990
1015
|
```
|
991
1016
|
|
992
1017
|
```javascript
|
993
|
-
[
|
994
|
-
|
995
|
-
|
996
|
-
|
997
|
-
|
998
|
-
|
999
|
-
|
1000
|
-
|
1001
|
-
|
1002
|
-
|
1003
|
-
|
1004
|
-
|
1005
|
-
|
1006
|
-
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1010
|
-
|
1011
|
-
|
1012
|
-
|
1013
|
-
|
1014
|
-
|
1015
|
-
|
1016
|
-
|
1017
|
-
|
1018
|
-
|
1019
|
-
"stop_time":"2014-04-12T10:30:15.895Z",
|
1020
|
-
"lifecycle":"finished",
|
1021
|
-
"user":{
|
1022
|
-
"is_user":true,
|
1023
|
-
"login":"hwartig",
|
1024
|
-
"name":"Harald Wartig",
|
1025
|
-
"email":"hwartig@users.noreply.github.com"
|
1026
|
-
},
|
1027
|
-
"subject":"Merge pull request #4 from Alex-Poon/master",
|
1028
|
-
"messages":[
|
1029
|
-
|
1030
|
-
],
|
1031
|
-
"job_name":null,
|
1032
|
-
"retry_of":1,
|
1033
|
-
"previous_successful_build":{
|
1034
|
-
"build_time_millis":37685,
|
1035
|
-
"status":"success",
|
1036
|
-
"build_num":1
|
1037
|
-
},
|
1038
|
-
"outcome":"success",
|
1039
|
-
"status":"success",
|
1040
|
-
"vcs_revision":"f33617404dc392ddd676fdde87cd5c87369e1857",
|
1041
|
-
"build_num":2,
|
1042
|
-
"username":"hwartigcom",
|
1043
|
-
"vcs_url":"https://github.com/hwartigcom/circleci",
|
1044
|
-
"timedout":false,
|
1045
|
-
"previous":{
|
1046
|
-
"build_time_millis":37685,
|
1047
|
-
"status":"success",
|
1048
|
-
"build_num":1
|
1049
|
-
},
|
1050
|
-
"canceled":false,
|
1051
|
-
"infrastructure_fail":false,
|
1052
|
-
"failed":null,
|
1053
|
-
"reponame":"circleci",
|
1054
|
-
"build_url":"https://circleci.com/gh/hwartigcom/circleci/2",
|
1055
|
-
"feature_flags":{
|
1056
|
-
|
1057
|
-
},
|
1058
|
-
"author_name":"Chavez",
|
1059
|
-
"queued_at":"2014-04-12T10:29:59.517Z"
|
1060
|
-
},
|
1061
|
-
{
|
1062
|
-
"dont_build":null,
|
1063
|
-
"committer_name":"Chavez",
|
1064
|
-
"usage_queued_at":"2014-04-08T06:58:09.522Z",
|
1065
|
-
"branch":"master",
|
1066
|
-
"body":"Update Missing ''e'' in CircleCi in README.md",
|
1067
|
-
"author_date":"2014-03-12T23:14:53Z",
|
1068
|
-
"node":[
|
1069
|
-
{
|
1070
|
-
"username":"ubuntu",
|
1071
|
-
"ssh_enabled":null,
|
1072
|
-
"port":64775,
|
1073
|
-
"public_ip_addr":"54.198.9.232"
|
1074
|
-
}
|
1075
|
-
],
|
1076
|
-
"committer_date":"2014-03-12T23:14:53Z",
|
1077
|
-
"compare":null,
|
1078
|
-
"retries":[
|
1079
|
-
2
|
1080
|
-
],
|
1081
|
-
"parallel":1,
|
1082
|
-
"committer_email":"mtchavez@users.noreply.github.com",
|
1083
|
-
"build_time_millis":37685,
|
1084
|
-
"why":"first-build",
|
1085
|
-
"author_email":"mtchavez@users.noreply.github.com",
|
1086
|
-
"ssh_enabled":null,
|
1087
|
-
"start_time":"2014-04-08T06:58:09.868Z",
|
1088
|
-
"stop_time":"2014-04-08T06:58:47.553Z",
|
1089
|
-
"lifecycle":"finished",
|
1090
|
-
"user":{
|
1091
|
-
"is_user":true,
|
1092
|
-
"login":"hwartig",
|
1093
|
-
"name":"Harald Wartig",
|
1094
|
-
"email":"hwartig@users.noreply.github.com"
|
1095
|
-
},
|
1096
|
-
"subject":"Merge pull request #4 from Alex-Poon/master",
|
1097
|
-
"messages":[
|
1098
|
-
|
1099
|
-
],
|
1100
|
-
"job_name":null,
|
1101
|
-
"retry_of":null,
|
1102
|
-
"previous_successful_build":null,
|
1103
|
-
"outcome":"success",
|
1104
|
-
"status":"success",
|
1105
|
-
"vcs_revision":"f33617404dc392ddd676fdde87cd5c87369e1857",
|
1106
|
-
"build_num":1,
|
1107
|
-
"username":"hwartigcom",
|
1108
|
-
"vcs_url":"https://github.com/hwartigcom/circleci",
|
1109
|
-
"timedout":false,
|
1110
|
-
"previous":null,
|
1111
|
-
"all_commit_details":[
|
1112
|
-
{
|
1113
|
-
"committer_name":"Chavez",
|
1114
|
-
"body":"Update Missing ''e'' in CircleCi in README.md",
|
1115
|
-
"author_date":"2014-03-12T23:14:53Z",
|
1116
|
-
"committer_date":"2014-03-12T23:14:53Z",
|
1117
|
-
"commit_url":"https://github.com/hwartigcom/circleci/commit/f33617404dc392ddd676fdde87cd5c87369e1857",
|
1118
|
-
"committer_email":"mtchavez@users.noreply.github.com",
|
1119
|
-
"author_email":"mtchavez@users.noreply.github.com",
|
1120
|
-
"subject":"Merge pull request #4 from Alex-Poon/master",
|
1121
|
-
"commit":"f33617404dc392ddd676fdde87cd5c87369e1857",
|
1122
|
-
"author_name":"Chavez"
|
1123
|
-
}
|
1124
|
-
],
|
1125
|
-
"canceled":false,
|
1126
|
-
"infrastructure_fail":false,
|
1127
|
-
"failed":null,
|
1128
|
-
"reponame":"circleci",
|
1129
|
-
"build_url":"https://circleci.com/gh/hwartigcom/circleci/1",
|
1130
|
-
"feature_flags":{
|
1131
|
-
|
1132
|
-
},
|
1133
|
-
"author_name":"Chavez",
|
1134
|
-
"queued_at":"2014-04-08T06:58:09.739Z"
|
1135
|
-
}
|
1136
|
-
]
|
1018
|
+
[ {
|
1019
|
+
"vcs_url" : "https://github.com/circleci/mongofinil",
|
1020
|
+
"build_url" : "https://circleci.com/gh/circleci/mongofinil/22",
|
1021
|
+
"build_num" : 22,
|
1022
|
+
"branch" : "master",
|
1023
|
+
"vcs_revision" : "1d231626ba1d2838e599c5c598d28e2306ad4e48",
|
1024
|
+
"committer_name" : "Allen Rohner",
|
1025
|
+
"committer_email" : "arohner@gmail.com",
|
1026
|
+
"subject" : "Don't explode when the system clock shifts backwards",
|
1027
|
+
"body" : "", // commit message body
|
1028
|
+
"why" : "github", // short string explaining the reason we built
|
1029
|
+
"dont_build" : null, // reason why we didn't build, if we didn't build
|
1030
|
+
"queued_at" : "2013-02-12T21:33:30Z" // time build was queued
|
1031
|
+
"start_time" : "2013-02-12T21:33:38Z", // time build started
|
1032
|
+
"stop_time" : "2013-02-12T21:34:01Z", // time build finished
|
1033
|
+
"build_time_millis" : 23505,
|
1034
|
+
"username" : "circleci",
|
1035
|
+
"reponame" : "mongofinil",
|
1036
|
+
"lifecycle" : "finished", // :queued, :scheduled, :not_run, :not_running, :running or :finished
|
1037
|
+
"outcome" : "failed", // :canceled, :infrastructure_fail, :timedout, :failed, :no_tests or :success
|
1038
|
+
"status" : "failed", // :retried, :canceled, :infrastructure_fail, :timedout, :not_run, :running, :failed, :queued, :scheduled, :not_running, :no_tests, :fixed, :success
|
1039
|
+
"retry_of" : null, // build_num of the build this is a retry of
|
1040
|
+
"previous" : { // previous build
|
1041
|
+
"status" : "failed",
|
1042
|
+
"build_num" : 21
|
1043
|
+
}, ... ]
|
1137
1044
|
```
|
1138
1045
|
|
1139
1046
|
### Tests
|
1140
1047
|
|
1141
1048
|
Tests are ran using Rspec and VCR for API interaction recording.
|
1142
1049
|
Run using `rake` or `rspec`. Please add tests for any new features or
|
1143
|
-
endpoints added if you are contributing.
|
1050
|
+
endpoints added if you are contributing. Code styling is enforced with RuboCop
|
1051
|
+
and uses a checked in `.rubocop.yml` for this project.
|
1144
1052
|
|
1145
1053
|
Tests are using a live CircleCi API token for this repository. Any tests
|
1146
1054
|
should be using this key, which is in the `.env` file. You should not have
|
data/lib/circleci.rb
CHANGED
@@ -7,6 +7,7 @@ files = %w[
|
|
7
7
|
config
|
8
8
|
http
|
9
9
|
project
|
10
|
+
recent_builds
|
10
11
|
request_error
|
11
12
|
response
|
12
13
|
user
|
@@ -42,18 +43,4 @@ module CircleCi
|
|
42
43
|
def http # @private
|
43
44
|
Http.new(config)
|
44
45
|
end
|
45
|
-
|
46
|
-
##
|
47
|
-
#
|
48
|
-
# Get recent builds for an organization
|
49
|
-
#
|
50
|
-
# @param name [String] Name of the organization. Currently CircleCi treats
|
51
|
-
# the name case sensetive so make sure the spelling is the same
|
52
|
-
# as the github organisation.
|
53
|
-
# @param params [Hash] Additional query params.
|
54
|
-
# @return [CircleCi::Response] - Response object.
|
55
|
-
|
56
|
-
def organization(name, params = {})
|
57
|
-
http.get "/organization/#{name}", params
|
58
|
-
end
|
59
46
|
end
|
data/lib/circleci/config.rb
CHANGED
@@ -9,7 +9,7 @@ module CircleCi
|
|
9
9
|
DEFAULT_URI = "#{DEFAULT_HOST}/api/#{DEFAULT_VERSION}".freeze
|
10
10
|
DEFAULT_PORT = 80
|
11
11
|
|
12
|
-
attr_accessor :token, :host, :port, :version
|
12
|
+
attr_accessor :token, :host, :port, :request_overrides, :version
|
13
13
|
|
14
14
|
##
|
15
15
|
#
|
@@ -19,6 +19,7 @@ module CircleCi
|
|
19
19
|
@host = DEFAULT_HOST
|
20
20
|
@port = DEFAULT_PORT
|
21
21
|
@version = DEFAULT_VERSION
|
22
|
+
@request_overrides = {}
|
22
23
|
end
|
23
24
|
|
24
25
|
def uri
|
data/lib/circleci/http.rb
CHANGED
@@ -36,15 +36,20 @@ module CircleCi
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def create_request_args(http_verb, url, body)
|
39
|
-
|
40
|
-
|
39
|
+
args = {
|
40
|
+
method: http_verb.to_sym,
|
41
|
+
url: url,
|
42
|
+
headers: headers }
|
43
|
+
args[:payload] = body if http_verb == 'post'
|
44
|
+
args.merge!(@config.request_overrides)
|
45
|
+
args
|
41
46
|
end
|
42
47
|
|
43
48
|
def request(http_verb, path, body = {})
|
44
49
|
url = "#{@config.uri}#{path}"
|
45
50
|
args = create_request_args http_verb, url, body
|
46
51
|
|
47
|
-
RestClient.
|
52
|
+
RestClient::Request.execute(args) do |res, _, raw_res|
|
48
53
|
body = res.body.to_s
|
49
54
|
body.force_encoding(Encoding::UTF_8)
|
50
55
|
code = raw_res.code.to_i
|
data/lib/circleci/project.rb
CHANGED
@@ -177,10 +177,11 @@ module CircleCi
|
|
177
177
|
#
|
178
178
|
# @param username [String] - User or org name who owns project
|
179
179
|
# @param project [String] - Name of project
|
180
|
+
# @param params [Hash] - Parameters for builds (limit, offset, filter)
|
180
181
|
# @return [CircleCi::Response] - Response object
|
181
182
|
|
182
|
-
def self.recent_builds(username, project)
|
183
|
-
CircleCi.http.get "/project/#{username}/#{project}"
|
183
|
+
def self.recent_builds(username, project, params = {})
|
184
|
+
CircleCi.http.get "/project/#{username}/#{project}", params
|
184
185
|
end
|
185
186
|
|
186
187
|
##
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module CircleCi
|
2
|
+
##
|
3
|
+
#
|
4
|
+
# Class for interacting with recent builds
|
5
|
+
class RecentBuilds
|
6
|
+
##
|
7
|
+
#
|
8
|
+
# Get get recent builds for your account
|
9
|
+
#
|
10
|
+
# @param params [Hash] - Params to send for recent builds (limit, offset)
|
11
|
+
# @return [CircleCi::Response] - Response object
|
12
|
+
|
13
|
+
def self.get(params = {})
|
14
|
+
CircleCi.http.get '/recent-builds', params
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: circleci
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chavez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-03-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -317,6 +317,7 @@ files:
|
|
317
317
|
- lib/circleci/config.rb
|
318
318
|
- lib/circleci/http.rb
|
319
319
|
- lib/circleci/project.rb
|
320
|
+
- lib/circleci/recent_builds.rb
|
320
321
|
- lib/circleci/request_error.rb
|
321
322
|
- lib/circleci/response.rb
|
322
323
|
- lib/circleci/user.rb
|