github_api 0.8.2 → 0.8.3
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.
- data/README.md +20 -1
- data/features/cassettes/issues/events/get.yml +139 -0
- data/features/cassettes/issues/events/list_issue.yml +71 -0
- data/features/cassettes/issues/events/list_repo.yml +222 -0
- data/features/cassettes/issues/labels/list_repo.yml +65 -0
- data/features/cassettes/issues/milestones/create.yml +55 -0
- data/features/cassettes/issues/milestones/delete.yml +46 -0
- data/features/cassettes/issues/milestones/get.yml +175 -0
- data/features/cassettes/issues/milestones/list.yml +54 -0
- data/features/cassettes/issues/milestones/update.yml +53 -0
- data/features/cassettes/repos/contents/archive.yml +43 -84
- data/features/cassettes/say/custom.yml +60 -0
- data/features/cassettes/say/random.yml +60 -0
- data/features/issues/events.feature +38 -0
- data/features/issues/labels.feature +14 -0
- data/features/issues/milestones.feature +62 -0
- data/features/say.feature +68 -0
- data/features/step_definitions/common_steps.rb +6 -0
- data/features/support/helpers.rb +4 -0
- data/lib/github_api.rb +2 -0
- data/lib/github_api/client.rb +8 -0
- data/lib/github_api/constants.rb +4 -0
- data/lib/github_api/issues.rb +74 -46
- data/lib/github_api/issues/assignees.rb +2 -1
- data/lib/github_api/issues/events.rb +3 -3
- data/lib/github_api/issues/milestones.rb +0 -1
- data/lib/github_api/rate_limit.rb +2 -0
- data/lib/github_api/result.rb +13 -0
- data/lib/github_api/say.rb +24 -0
- data/lib/github_api/scopes.rb +19 -0
- data/lib/github_api/version.rb +1 -1
- data/spec/github/git_data/git_data_spec.rb +19 -0
- data/spec/github/issues/assignees/check_spec.rb +46 -0
- data/spec/github/issues/assignees/list_spec.rb +47 -0
- data/spec/github/issues/assignees_spec.rb +0 -96
- data/spec/github/issues/create_spec.rb +60 -0
- data/spec/github/issues/edit_spec.rb +61 -0
- data/spec/github/issues/events_spec.rb +4 -4
- data/spec/github/issues/get_spec.rb +49 -0
- data/spec/github/issues/issues_spec.rb +19 -0
- data/spec/github/issues/list_spec.rb +90 -0
- data/spec/github/issues/milestones/create_spec.rb +56 -0
- data/spec/github/issues/milestones/delete_spec.rb +42 -0
- data/spec/github/issues/milestones/get_spec.rb +49 -0
- data/spec/github/issues/milestones/list_spec.rb +52 -0
- data/spec/github/issues/milestones/update_spec.rb +57 -0
- data/spec/github/issues/milestones_spec.rb +1 -276
- data/spec/github/scopes/list_spec.rb +33 -0
- data/spec/github/users/followers/follow_spec.rb +33 -0
- data/spec/github/users/followers/following_spec.rb +65 -0
- data/spec/github/users/followers/is_following_spec.rb +41 -0
- data/spec/github/users/followers/list_spec.rb +2 -8
- data/spec/github/users/followers/unfollow_spec.rb +33 -0
- data/spec/github/users/users_spec.rb +16 -0
- metadata +68 -35
- data/spec/github/git_data_spec.rb +0 -11
- data/spec/github/issues_spec.rb +0 -284
- data/spec/github/users/followers_spec.rb +0 -172
@@ -1,95 +1,54 @@
|
|
1
|
-
---
|
2
|
-
http_interactions:
|
3
|
-
- request:
|
4
|
-
method: get
|
5
|
-
uri: https://<BASIC_AUTH>@api.github.com/repos/tarball/master?access_token=<TOKEN>
|
6
|
-
body:
|
7
|
-
encoding: US-ASCII
|
8
|
-
string: ""
|
9
|
-
headers:
|
10
|
-
Accept-Encoding:
|
11
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
-
Accept:
|
13
|
-
- "*/*"
|
14
|
-
User-Agent:
|
15
|
-
- Ruby
|
16
|
-
response:
|
17
|
-
status:
|
18
|
-
code: 404
|
19
|
-
message: Not Found
|
20
|
-
headers:
|
21
|
-
Server:
|
22
|
-
- nginx/1.0.13
|
23
|
-
Date:
|
24
|
-
- Mon, 11 Jun 2012 19:38:50 GMT
|
25
|
-
Content-Type:
|
26
|
-
- application/json; charset=utf-8
|
27
|
-
Transfer-Encoding:
|
28
|
-
- chunked
|
29
|
-
Connection:
|
30
|
-
- keep-alive
|
31
|
-
Status:
|
32
|
-
- 404 Not Found
|
33
|
-
X-Ratelimit-Limit:
|
34
|
-
- "5000"
|
35
|
-
X-Ratelimit-Remaining:
|
36
|
-
- "4996"
|
37
|
-
Etag:
|
38
|
-
- "\"e66a7a6c91e2c26803f3f49feb7a883f\""
|
39
|
-
Content-Encoding:
|
40
|
-
- gzip
|
41
|
-
body:
|
42
|
-
encoding: ASCII-8BIT
|
43
|
-
string: !binary |
|
44
|
-
H4sIAAAAAAAAA6tWyk0tLk5MT1WyUvLLL1Fwyy/NS1GqBQB8+Ys1FwAAAA==
|
45
|
-
|
46
|
-
http_version:
|
47
|
-
recorded_at: Mon, 11 Jun 2012 19:38:50 GMT
|
48
|
-
- request:
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
49
4
|
method: get
|
50
5
|
uri: https://<BASIC_AUTH>@api.github.com/repos/peter-murach/github/tarball/master?access_token=<TOKEN>
|
51
|
-
body:
|
6
|
+
body:
|
52
7
|
encoding: US-ASCII
|
53
|
-
string:
|
54
|
-
headers:
|
55
|
-
Accept
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/jsonapplication/vnd.github+json;q=0.7application/vnd.github.v3.raw+json;q=0.5application/vnd.github.beta.raw+json;q=0.1
|
12
|
+
Accept-Charset:
|
13
|
+
- utf-8
|
14
|
+
User-Agent:
|
15
|
+
- Github Ruby Gem 0.8.2
|
16
|
+
Content-Type:
|
17
|
+
- application/json
|
18
|
+
Accept-Encoding:
|
56
19
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
57
|
-
|
58
|
-
|
59
|
-
User-Agent:
|
60
|
-
- Ruby
|
61
|
-
response:
|
62
|
-
status:
|
20
|
+
response:
|
21
|
+
status:
|
63
22
|
code: 302
|
64
23
|
message: Found
|
65
|
-
headers:
|
66
|
-
Server:
|
67
|
-
- nginx
|
68
|
-
Date:
|
69
|
-
-
|
70
|
-
Content-Type:
|
24
|
+
headers:
|
25
|
+
Server:
|
26
|
+
- nginx
|
27
|
+
Date:
|
28
|
+
- Sat, 08 Dec 2012 11:16:57 GMT
|
29
|
+
Content-Type:
|
71
30
|
- text/html;charset=utf-8
|
72
|
-
Connection:
|
31
|
+
Connection:
|
73
32
|
- keep-alive
|
74
|
-
Status:
|
33
|
+
Status:
|
75
34
|
- 302 Found
|
76
|
-
|
77
|
-
-
|
78
|
-
|
79
|
-
-
|
80
|
-
|
81
|
-
-
|
82
|
-
X-Ratelimit-
|
83
|
-
-
|
84
|
-
|
85
|
-
-
|
86
|
-
|
87
|
-
-
|
88
|
-
Cache-Control:
|
35
|
+
Content-Length:
|
36
|
+
- '0'
|
37
|
+
X-Content-Type-Options:
|
38
|
+
- nosniff
|
39
|
+
Expires:
|
40
|
+
- Sat, 08 Dec 2012 11:16:57 GMT
|
41
|
+
X-Ratelimit-Limit:
|
42
|
+
- '5000'
|
43
|
+
Location:
|
44
|
+
- https://nodeload.github.com/peter-murach/github/legacy.tar.gz/master
|
45
|
+
X-Ratelimit-Remaining:
|
46
|
+
- '4999'
|
47
|
+
Cache-Control:
|
89
48
|
- public, must-revalidate, max-age=0
|
90
|
-
body:
|
49
|
+
body:
|
91
50
|
encoding: US-ASCII
|
92
|
-
string:
|
93
|
-
http_version:
|
94
|
-
recorded_at:
|
95
|
-
recorded_with: VCR 2.
|
51
|
+
string: '[]'
|
52
|
+
http_version: !!null
|
53
|
+
recorded_at: Sat, 08 Dec 2012 11:16:57 GMT
|
54
|
+
recorded_with: VCR 2.3.0
|
@@ -0,0 +1,60 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://<BASIC_AUTH>@api.github.com/octocat?access_token=<TOKEN>&s=Hello%20cool%20world
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/jsonapplication/vnd.github+json;q=0.7application/vnd.github.v3.raw+json;q=0.5application/vnd.github.beta.raw+json;q=0.1
|
12
|
+
Accept-Charset:
|
13
|
+
- utf-8
|
14
|
+
User-Agent:
|
15
|
+
- Github Ruby Gem 0.8.2
|
16
|
+
Content-Type:
|
17
|
+
- application/json
|
18
|
+
Accept-Encoding:
|
19
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Server:
|
26
|
+
- nginx
|
27
|
+
Date:
|
28
|
+
- Sat, 08 Dec 2012 12:40:26 GMT
|
29
|
+
Content-Type:
|
30
|
+
- text/plain
|
31
|
+
Transfer-Encoding:
|
32
|
+
- chunked
|
33
|
+
Connection:
|
34
|
+
- keep-alive
|
35
|
+
Status:
|
36
|
+
- 200 OK
|
37
|
+
Etag:
|
38
|
+
- ! '"b3fb1a0738afea59be10ba210c1eb0d5"'
|
39
|
+
X-Ratelimit-Remaining:
|
40
|
+
- '4999'
|
41
|
+
X-Ratelimit-Limit:
|
42
|
+
- '5000'
|
43
|
+
Cache-Control:
|
44
|
+
- max-age=0, private, must-revalidate
|
45
|
+
X-Content-Type-Options:
|
46
|
+
- nosniff
|
47
|
+
Content-Encoding:
|
48
|
+
- gzip
|
49
|
+
body:
|
50
|
+
encoding: ASCII-8BIT
|
51
|
+
string: !binary |-
|
52
|
+
H4sIAAAAAAAAA5VROw7CMAzdewrvVc2eqjtLr0AHYIsUiYUl8tmxX0Lj8BHC
|
53
|
+
SlPbz8+/DNRkXVd2Jqs99LB6OvkBF/L2Jo72mhG28bKrXNXceB9pIGY6XmNM
|
54
|
+
dE4p0j3d4oUa7wsNvE2vvtOeF8JEUygCbe/04PuSIJpIEFc0qWtkJtQPgYkV
|
55
|
+
HfWDBi8xu7Xo7pGBeGOCpm/jt03INQOaTa3gVLZnG0PaHTipY8Qiq7973OpT
|
56
|
+
rJy+lHH+hlh08HbEtS8qOqCBCNLhzLUXNUNkWey0v48gH/IM7AJs0lBz1IDh
|
57
|
+
AWrVM8ztAgAA
|
58
|
+
http_version: !!null
|
59
|
+
recorded_at: Sat, 08 Dec 2012 12:40:26 GMT
|
60
|
+
recorded_with: VCR 2.3.0
|
@@ -0,0 +1,60 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://<BASIC_AUTH>@api.github.com/octocat?access_token=<TOKEN>
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/jsonapplication/vnd.github+json;q=0.7application/vnd.github.v3.raw+json;q=0.5application/vnd.github.beta.raw+json;q=0.1
|
12
|
+
Accept-Charset:
|
13
|
+
- utf-8
|
14
|
+
User-Agent:
|
15
|
+
- Github Ruby Gem 0.8.2
|
16
|
+
Content-Type:
|
17
|
+
- application/json
|
18
|
+
Accept-Encoding:
|
19
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Server:
|
26
|
+
- nginx
|
27
|
+
Date:
|
28
|
+
- Sat, 08 Dec 2012 12:09:12 GMT
|
29
|
+
Content-Type:
|
30
|
+
- text/plain
|
31
|
+
Transfer-Encoding:
|
32
|
+
- chunked
|
33
|
+
Connection:
|
34
|
+
- keep-alive
|
35
|
+
Status:
|
36
|
+
- 200 OK
|
37
|
+
Cache-Control:
|
38
|
+
- max-age=0, private, must-revalidate
|
39
|
+
X-Ratelimit-Limit:
|
40
|
+
- '5000'
|
41
|
+
X-Content-Type-Options:
|
42
|
+
- nosniff
|
43
|
+
X-Ratelimit-Remaining:
|
44
|
+
- '4998'
|
45
|
+
Etag:
|
46
|
+
- ! '"2876b06f1b31f4d3fa325bb223b6f4a7"'
|
47
|
+
Content-Encoding:
|
48
|
+
- gzip
|
49
|
+
body:
|
50
|
+
encoding: ASCII-8BIT
|
51
|
+
string: !binary |-
|
52
|
+
H4sIAAAAAAAAA5VSUQ6CMAz95xT9V+r/CEfgChITSeRDMIgxJKRnt+0m64yK
|
53
|
+
NgPavre3diWDaFVVoQmR4yyFOZPYCuw31z+ZkXo9RWPRmk01X9w5ar2VUrEZ
|
54
|
+
qrY7wtTfBrj3w/G6hfHUTHAYGmjPl34YD92IELU+SKlWza/1LlMt53LInTf1
|
55
|
+
li53tn5yxOKkPO9RGAsiaE3OISCjG37U0ywgmivlWaoCYI2gHs/aTg9Uq1Co
|
56
|
+
EDeAub95uW2VXYA9JzY6hJBPfpaQY8yv9CjZ8zeExI3HRaZ8YuMGBVQSNyep
|
57
|
+
5VAJiMpSVvxaBljKk5gQpFMXNAIhewBuXOr6PQMAAA==
|
58
|
+
http_version: !!null
|
59
|
+
recorded_at: Sat, 08 Dec 2012 12:09:12 GMT
|
60
|
+
recorded_with: VCR 2.3.0
|
@@ -0,0 +1,38 @@
|
|
1
|
+
Feature: Events API
|
2
|
+
|
3
|
+
Background:
|
4
|
+
Given I have "Github::Issues::Events" instance
|
5
|
+
|
6
|
+
Scenario: List for a repository
|
7
|
+
|
8
|
+
Given I want to list resources with the following params:
|
9
|
+
| user | repo |
|
10
|
+
| peter-murach | github |
|
11
|
+
When I make request within a cassette named "issues/events/list_repo"
|
12
|
+
Then the response status should be 200
|
13
|
+
And the response type should be JSON
|
14
|
+
And the response should not be empty
|
15
|
+
|
16
|
+
Scenario: List for an issue
|
17
|
+
|
18
|
+
Given I want to list resources with the following params:
|
19
|
+
| user | repo |
|
20
|
+
| peter-murach | github |
|
21
|
+
And I pass the following request options:
|
22
|
+
| issue_id |
|
23
|
+
| 61 |
|
24
|
+
When I make request within a cassette named "issues/events/list_issue"
|
25
|
+
Then the response status should be 200
|
26
|
+
And the response type should be JSON
|
27
|
+
And the response should not be empty
|
28
|
+
|
29
|
+
Scenario: Get
|
30
|
+
|
31
|
+
Given I want to get resource with the following params:
|
32
|
+
| user | repo | event_id |
|
33
|
+
| peter-murach | github | 29376722 |
|
34
|
+
When I make request within a cassette named "issues/events/get"
|
35
|
+
Then the response status should be 200
|
36
|
+
And the response type should be JSON
|
37
|
+
And the response should not be empty
|
38
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
Feature: Labels API
|
2
|
+
|
3
|
+
Background:
|
4
|
+
Given I have "Github::Issues::Labels" instance
|
5
|
+
|
6
|
+
Scenario: List in a repository
|
7
|
+
|
8
|
+
Given I want to list resources with the following params:
|
9
|
+
| user | repo |
|
10
|
+
| peter-murach | github |
|
11
|
+
When I make request within a cassette named "issues/labels/list_repo"
|
12
|
+
Then the response status should be 200
|
13
|
+
And the response type should be JSON
|
14
|
+
And the response should not be empty
|
@@ -0,0 +1,62 @@
|
|
1
|
+
Feature: Milestones API
|
2
|
+
|
3
|
+
Background:
|
4
|
+
Given I have "Github::Issues::Milestones" instance
|
5
|
+
|
6
|
+
Scenario: List
|
7
|
+
|
8
|
+
Given I want to list resources with the following params:
|
9
|
+
| user | repo |
|
10
|
+
| peter-murach | github |
|
11
|
+
When I make request within a cassette named "issues/milestones/list"
|
12
|
+
Then the response status should be 200
|
13
|
+
And the response type should be JSON
|
14
|
+
And the response should be empty
|
15
|
+
|
16
|
+
Scenario: Get a single milestone
|
17
|
+
|
18
|
+
Given I want to get resource with the following params:
|
19
|
+
| user | repo | milestone_id |
|
20
|
+
| josh | rails-behaviors | 1 |
|
21
|
+
And I pass the following request options:
|
22
|
+
| state |
|
23
|
+
| closed |
|
24
|
+
When I make request within a cassette named "issues/milestones/get"
|
25
|
+
Then the response status should be 200
|
26
|
+
And the response type should be JSON
|
27
|
+
And the response should not be empty
|
28
|
+
|
29
|
+
Scenario: Create
|
30
|
+
|
31
|
+
Given I want to create resource with the following params:
|
32
|
+
| user | repo |
|
33
|
+
| murek | github_api_test |
|
34
|
+
And I pass the following request options:
|
35
|
+
| title | state | description |
|
36
|
+
| fix-all | open | fixing all issues |
|
37
|
+
When I make request within a cassette named "issues/milestones/create"
|
38
|
+
Then the response status should be 201
|
39
|
+
And the response type should be JSON
|
40
|
+
And the response should not be empty
|
41
|
+
|
42
|
+
Scenario: Update
|
43
|
+
|
44
|
+
Given I want to update resource with the following params:
|
45
|
+
| user | repo | milestone_id |
|
46
|
+
| murek | github_api_test | 1 |
|
47
|
+
And I pass the following request options:
|
48
|
+
| state |
|
49
|
+
| closed |
|
50
|
+
When I make request within a cassette named "issues/milestones/update"
|
51
|
+
Then the response status should be 200
|
52
|
+
And the response type should be JSON
|
53
|
+
And the response should not be empty
|
54
|
+
|
55
|
+
Scenario: Delete
|
56
|
+
|
57
|
+
Given I want to delete resource with the following params:
|
58
|
+
| user | repo | milestone_id |
|
59
|
+
| murek | github_api_test | 1 |
|
60
|
+
When I make request within a cassette named "issues/milestones/delete"
|
61
|
+
Then the response status should be 204
|
62
|
+
|
@@ -0,0 +1,68 @@
|
|
1
|
+
Feature: Octocat ASCII API
|
2
|
+
|
3
|
+
Background:
|
4
|
+
Given I have "Github::Say" instance
|
5
|
+
|
6
|
+
Scenario: ASCII octocat with random text
|
7
|
+
|
8
|
+
Given I want to say resource
|
9
|
+
When I make request within a cassette named "say/random"
|
10
|
+
Then the response status should be 200
|
11
|
+
And the response type should be TEXT
|
12
|
+
And the response should contain:
|
13
|
+
"""
|
14
|
+
MMM. .MMM
|
15
|
+
MMMMMMMMMMMMMMMMMMM
|
16
|
+
MMMMMMMMMMMMMMMMMMM ______________________________________
|
17
|
+
MMMMMMMMMMMMMMMMMMMMM | |
|
18
|
+
MMMMMMMMMMMMMMMMMMMMMMM | Mind your words, they are important. |
|
19
|
+
MMMMMMMMMMMMMMMMMMMMMMMM |_ __________________________________|
|
20
|
+
MMMM::- -:::::::- -::MMMM |/
|
21
|
+
MM~:~ ~:::::~ ~:~MM
|
22
|
+
.. MMMMM::. .:::+:::. .::MMMMM ..
|
23
|
+
.MM::::: ._. :::::MM.
|
24
|
+
MMMM;:::::;MMMM
|
25
|
+
-MM MMMMMMM
|
26
|
+
^ M+ MMMMMMMMM
|
27
|
+
MMMMMMM MM MM MM
|
28
|
+
MM MM MM MM
|
29
|
+
MM MM MM MM
|
30
|
+
.~~MM~MM~MM~MM~~.
|
31
|
+
~~~~MM:~MM~~~MM~:MM~~~~
|
32
|
+
~~~~~~==~==~~~==~==~~~~~~
|
33
|
+
~~~~~~==~==~==~==~~~~~~
|
34
|
+
:~==~==~==~==~~
|
35
|
+
"""
|
36
|
+
|
37
|
+
Scenario: ASCII octocat with custom text
|
38
|
+
|
39
|
+
Given I want to say resource with the following params:
|
40
|
+
| text |
|
41
|
+
| Hello cool world |
|
42
|
+
When I make request within a cassette named "say/custom"
|
43
|
+
Then the response status should be 200
|
44
|
+
And the response type should be TEXT
|
45
|
+
And the response should contain:
|
46
|
+
"""
|
47
|
+
MMM. .MMM
|
48
|
+
MMMMMMMMMMMMMMMMMMM
|
49
|
+
MMMMMMMMMMMMMMMMMMM __________________
|
50
|
+
MMMMMMMMMMMMMMMMMMMMM | |
|
51
|
+
MMMMMMMMMMMMMMMMMMMMMMM | Hello cool world |
|
52
|
+
MMMMMMMMMMMMMMMMMMMMMMMM |_ ______________|
|
53
|
+
MMMM::- -:::::::- -::MMMM |/
|
54
|
+
MM~:~ ~:::::~ ~:~MM
|
55
|
+
.. MMMMM::. .:::+:::. .::MMMMM ..
|
56
|
+
.MM::::: ._. :::::MM.
|
57
|
+
MMMM;:::::;MMMM
|
58
|
+
-MM MMMMMMM
|
59
|
+
^ M+ MMMMMMMMM
|
60
|
+
MMMMMMM MM MM MM
|
61
|
+
MM MM MM MM
|
62
|
+
MM MM MM MM
|
63
|
+
.~~MM~MM~MM~MM~~.
|
64
|
+
~~~~MM:~MM~~~MM~:MM~~~~
|
65
|
+
~~~~~~==~==~~~==~==~~~~~~
|
66
|
+
~~~~~~==~==~==~==~~~~~~
|
67
|
+
:~==~==~==~==~~
|
68
|
+
"""
|