Skip to content

Commit 64e3be3

Browse files
authored
Merge branch 'master' into cache-fix
2 parents 47e0d77 + 4c82d1c commit 64e3be3

8 files changed

Lines changed: 119 additions & 5 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@
220220
<dependency>
221221
<groupId>com.github.tomakehurst</groupId>
222222
<artifactId>wiremock-jre8-standalone</artifactId>
223-
<version>2.24.1</version>
223+
<version>2.25.0</version>
224224
<scope>test</scope>
225225
</dependency>
226226
</dependencies>

src/main/java/org/kohsuke/github/GHUser.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@
2626
import com.infradna.tool.bridge_method_injector.WithBridgeMethods;
2727

2828
import java.io.IOException;
29-
import java.util.HashSet;
30-
import java.util.Set;
29+
import java.util.*;
3130

3231
/**
3332
* Represents an user of GitHub.
@@ -36,6 +35,10 @@
3635
*/
3736
public class GHUser extends GHPerson {
3837

38+
public List<GHKey> getKeys() throws IOException {
39+
return Collections.unmodifiableList(Arrays.asList(root.retrieve().to(getApiTailUrl("keys"), GHKey[].class)));
40+
}
41+
3942
/**
4043
* Follow this user.
4144
*/

src/test/java/org/kohsuke/github/UserTest.java

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
import org.junit.Test;
44

55
import java.io.IOException;
6-
import java.util.HashSet;
7-
import java.util.Set;
6+
import java.util.*;
87

98
/**
109
* @author Kohsuke Kawaguchi
@@ -27,4 +26,27 @@ private Set<GHUser> count30(PagedIterable<GHUser> l) {
2726
assertEquals(30, users.size());
2827
return users;
2928
}
29+
30+
@Test
31+
public void getKeys() throws IOException {
32+
GHUser u = gitHub.getUser("rtyler");
33+
List<GHKey> ghKeys = new ArrayList<>(u.getKeys());
34+
35+
assertEquals(3, ghKeys.size());
36+
Collections.sort(ghKeys, new Comparator<GHKey>() {
37+
@Override
38+
public int compare(GHKey ghKey, GHKey t1) {
39+
return ghKey.getId() - t1.getId();
40+
}
41+
});
42+
assertEquals(1066173, ghKeys.get(0).getId());
43+
assertEquals("ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAueiy12T5bvFhsc9YjfLc3aVIxgySd3gDxQWy/bletIoZL8omKmzocBYJ7F58U1asoyfWsy2ToTOY8jJp1eToXmbD6L5+xvHba0A7djYh9aQRrFam7doKQ0zp0ZSUF6+R1v0OM4nnWqK4n2ECIYd+Bdzrp+xA5+XlW3ZSNzlnW2BeWznzmgRMcp6wI+zQ9GMHWviR1cxpml5Z6wrxTZ0aX91btvnNPqoOGva976B6e6403FOEkkIFTk6CC1TFKwc/VjbqxYBg4kU0JhiTP+iEZibcQrYjWdYUgAotYbFVe5/DneHMLNsMPdeihba4PUwt62rXyNegenuCRmCntLcaFQ==",
44+
ghKeys.get(0).getKey());
45+
assertEquals(28136459, ghKeys.get(1 ).getId());
46+
assertEquals( "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTU0s5OKCC6VpKZGL9NJD4mNLY0AtujkVB1JkkuQ4OkMi2YGUHJtGhTbTwEVhNxpm0x2dM5KSzse6MLDYuGBW0qkE/VVuD9+9I73hbq461KqP0+WlupNh+Qc86kbiLBDv64+vWc+50mp1dbINpoM5xvaPYxgjnemydPv7vu5bhCHBugW7aN8VcLgfFgcp8vZCEanMtd3hIRjRU8v8Skk233ZGu1bXkG8iIOBQPabvEtZ0VDMg9pT3Q1R6lnnKqfCwHXd6zP6uAtejFSxvKRGKpu3OLGQMHwk7NlImVuhkVdaEFBq7pQtpOaGuP2eLKcN1wy5jsTYE+ZB6pvHCi2ecb",
47+
ghKeys.get(1).getKey());
48+
assertEquals(31452581, ghKeys.get(2).getId());
49+
assertEquals("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC3JhH2FZBDmHLjXTcBoV6tdcYKmsQ7sgu8k1RsUhwxGsXm65+Cuas6GcMVoA1DncKfJGQkulHDFiTxIROIBmedh9/otHWBlZ4HqYZ4MQ1A8W5quULkXwX/kF+UdRBUxFvjigibEbuHB+LARVxRRzFlPnTSE9rAfAv8OOEsb3lNUGT/IGhN8w1vwe8GclB90tgqN1RBDgrVqwLFwn5AfrW9kUIa2f2oT4RjYu1OrhKhVIIzfHADo85aD+s8wEhqwI96BCJG3qTWrypoHwBUoj1O6Ak5CGc1iKz9o8XyTMjudRt2ddCjfOtxsuwSlTbVtQXJGIpgKviX1sgh4pPvGh7BVAFP+mdAK4F+mEugDnuj47GO/K5KGGDRCL56kh9+h28l4q/+fZvp7DhtmSN2EzrVAdQFskF8yY/6Xit/aAvjeKm03DcjbylSXbG26EJefaLHlwYFq2mUFRMak25wuuCZS71GF3RC3Sl/bMoxBKRYkyfYtGafeaYTFNGn8Dbd+hfVUCz31ebI8cvmlQR5b5AbCre3T7HTVgw8FKbAxWRf1Fio56PnqHsj+sT1KVj255Zo1F8iD9GrgERSVAlkh5bY/CKszQ8ZSd01c9Qp2a47/gR7XAAbxhzGHP+cSOlrqDlJ24fbPtcpVsM0llqKUcxpmoOBFNboRmE1QqnSmAf9ww==",
50+
ghKeys.get(2).getKey());
51+
}
3052
}

src/test/java/org/kohsuke/github/junit/WireMockRule.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,18 @@ public FindRequestsResult findUnmatchedRequests() {
443443
return wireMockServer.findUnmatchedRequests();
444444
}
445445

446+
public void removeServeEvent(UUID uuid) {
447+
wireMockServer.removeServeEvent(uuid);
448+
}
449+
450+
public FindServeEventsResult removeServeEventsMatching(RequestPattern requestPattern) {
451+
return wireMockServer.removeServeEventsMatching(requestPattern);
452+
}
453+
454+
public FindServeEventsResult removeServeEventsForStubsMatchingMetadata(StringValuePattern stringValuePattern) {
455+
return wireMockServer.removeServeEventsForStubsMatchingMetadata(stringValuePattern);
456+
}
457+
446458
public void updateGlobalSettings(GlobalSettings newSettings) {
447459
wireMockServer.updateGlobalSettings(newSettings);
448460
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"login":"rtyler","id":26594,"node_id":"MDQ6VXNlcjI2NTk0","avatar_url":"https://avatars0.githubusercontent.com/u/26594?v=4","gravatar_id":"","url":"https://api.github.com/users/rtyler","html_url":"https://github.com/rtyler","followers_url":"https://api.github.com/users/rtyler/followers","following_url":"https://api.github.com/users/rtyler/following{/other_user}","gists_url":"https://api.github.com/users/rtyler/gists{/gist_id}","starred_url":"https://api.github.com/users/rtyler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtyler/subscriptions","organizations_url":"https://api.github.com/users/rtyler/orgs","repos_url":"https://api.github.com/users/rtyler/repos","events_url":"https://api.github.com/users/rtyler/events{/privacy}","received_events_url":"https://api.github.com/users/rtyler/received_events","type":"User","site_admin":false,"name":"R. Tyler Croy","company":null,"blog":"https://brokenco.de/","location":"California","email":null,"hireable":null,"bio":"person","public_repos":239,"public_gists":470,"followers":397,"following":41,"created_at":"2008-09-28T07:28:42Z","updated_at":"2019-04-24T00:04:36Z"}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[{"id":1066173,"key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAueiy12T5bvFhsc9YjfLc3aVIxgySd3gDxQWy/bletIoZL8omKmzocBYJ7F58U1asoyfWsy2ToTOY8jJp1eToXmbD6L5+xvHba0A7djYh9aQRrFam7doKQ0zp0ZSUF6+R1v0OM4nnWqK4n2ECIYd+Bdzrp+xA5+XlW3ZSNzlnW2BeWznzmgRMcp6wI+zQ9GMHWviR1cxpml5Z6wrxTZ0aX91btvnNPqoOGva976B6e6403FOEkkIFTk6CC1TFKwc/VjbqxYBg4kU0JhiTP+iEZibcQrYjWdYUgAotYbFVe5/DneHMLNsMPdeihba4PUwt62rXyNegenuCRmCntLcaFQ=="},{"id":28136459,"key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTU0s5OKCC6VpKZGL9NJD4mNLY0AtujkVB1JkkuQ4OkMi2YGUHJtGhTbTwEVhNxpm0x2dM5KSzse6MLDYuGBW0qkE/VVuD9+9I73hbq461KqP0+WlupNh+Qc86kbiLBDv64+vWc+50mp1dbINpoM5xvaPYxgjnemydPv7vu5bhCHBugW7aN8VcLgfFgcp8vZCEanMtd3hIRjRU8v8Skk233ZGu1bXkG8iIOBQPabvEtZ0VDMg9pT3Q1R6lnnKqfCwHXd6zP6uAtejFSxvKRGKpu3OLGQMHwk7NlImVuhkVdaEFBq7pQtpOaGuP2eLKcN1wy5jsTYE+ZB6pvHCi2ecb"},{"id":31452581,"key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC3JhH2FZBDmHLjXTcBoV6tdcYKmsQ7sgu8k1RsUhwxGsXm65+Cuas6GcMVoA1DncKfJGQkulHDFiTxIROIBmedh9/otHWBlZ4HqYZ4MQ1A8W5quULkXwX/kF+UdRBUxFvjigibEbuHB+LARVxRRzFlPnTSE9rAfAv8OOEsb3lNUGT/IGhN8w1vwe8GclB90tgqN1RBDgrVqwLFwn5AfrW9kUIa2f2oT4RjYu1OrhKhVIIzfHADo85aD+s8wEhqwI96BCJG3qTWrypoHwBUoj1O6Ak5CGc1iKz9o8XyTMjudRt2ddCjfOtxsuwSlTbVtQXJGIpgKviX1sgh4pPvGh7BVAFP+mdAK4F+mEugDnuj47GO/K5KGGDRCL56kh9+h28l4q/+fZvp7DhtmSN2EzrVAdQFskF8yY/6Xit/aAvjeKm03DcjbylSXbG26EJefaLHlwYFq2mUFRMak25wuuCZS71GF3RC3Sl/bMoxBKRYkyfYtGafeaYTFNGn8Dbd+hfVUCz31ebI8cvmlQR5b5AbCre3T7HTVgw8FKbAxWRf1Fio56PnqHsj+sT1KVj255Zo1F8iD9GrgERSVAlkh5bY/CKszQ8ZSd01c9Qp2a47/gR7XAAbxhzGHP+cSOlrqDlJ24fbPtcpVsM0llqKUcxpmoOBFNboRmE1QqnSmAf9ww=="}]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"id" : "11f4235a-9149-4727-bb9b-91b6dce384b5",
3+
"name" : "users_rtyler",
4+
"request" : {
5+
"url" : "/users/rtyler",
6+
"method" : "GET"
7+
},
8+
"response" : {
9+
"status" : 200,
10+
"bodyFileName" : "users_rtyler-11f4235a-9149-4727-bb9b-91b6dce384b5.json",
11+
"headers" : {
12+
"Date" : "Tue, 17 Sep 2019 12:55:38 GMT",
13+
"Content-Type" : "application/json; charset=utf-8",
14+
"Server" : "GitHub.com",
15+
"Status" : "200 OK",
16+
"X-RateLimit-Limit" : "60",
17+
"X-RateLimit-Remaining" : "42",
18+
"X-RateLimit-Reset" : "1568727505",
19+
"Cache-Control" : "public, max-age=60, s-maxage=60",
20+
"Vary" : [ "Accept", "Accept-Encoding" ],
21+
"ETag" : "W/\"c51918a9f877202da96a3904b2445a4f\"",
22+
"Last-Modified" : "Wed, 24 Apr 2019 00:04:36 GMT",
23+
"X-GitHub-Media-Type" : "unknown, github.v3",
24+
"Access-Control-Expose-Headers" : "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
25+
"Access-Control-Allow-Origin" : "*",
26+
"Strict-Transport-Security" : "max-age=31536000; includeSubdomains; preload",
27+
"X-Frame-Options" : "deny",
28+
"X-Content-Type-Options" : "nosniff",
29+
"X-XSS-Protection" : "1; mode=block",
30+
"Referrer-Policy" : "origin-when-cross-origin, strict-origin-when-cross-origin",
31+
"Content-Security-Policy" : "default-src 'none'",
32+
"X-GitHub-Request-Id" : "EA4A:354F9:5E84C1B:7289588:5D80D7C9"
33+
}
34+
},
35+
"uuid" : "11f4235a-9149-4727-bb9b-91b6dce384b5",
36+
"persistent" : true,
37+
"insertionIndex" : 1
38+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"id" : "395dc00a-5234-4866-815c-d7b49cdd0157",
3+
"name" : "users_rtyler_keys",
4+
"request" : {
5+
"url" : "/users/rtyler/keys",
6+
"method" : "GET"
7+
},
8+
"response" : {
9+
"status" : 200,
10+
"bodyFileName" : "users_rtyler_keys-395dc00a-5234-4866-815c-d7b49cdd0157.json",
11+
"headers" : {
12+
"Date" : "Tue, 17 Sep 2019 12:55:38 GMT",
13+
"Content-Type" : "application/json; charset=utf-8",
14+
"Server" : "GitHub.com",
15+
"Status" : "200 OK",
16+
"X-RateLimit-Limit" : "60",
17+
"X-RateLimit-Remaining" : "41",
18+
"X-RateLimit-Reset" : "1568727505",
19+
"Cache-Control" : "public, max-age=60, s-maxage=60",
20+
"Vary" : [ "Accept", "Accept-Encoding" ],
21+
"ETag" : "W/\"257fbc4218f6908012a1054fb084df45\"",
22+
"X-GitHub-Media-Type" : "unknown, github.v3",
23+
"Access-Control-Expose-Headers" : "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
24+
"Access-Control-Allow-Origin" : "*",
25+
"Strict-Transport-Security" : "max-age=31536000; includeSubdomains; preload",
26+
"X-Frame-Options" : "deny",
27+
"X-Content-Type-Options" : "nosniff",
28+
"X-XSS-Protection" : "1; mode=block",
29+
"Referrer-Policy" : "origin-when-cross-origin, strict-origin-when-cross-origin",
30+
"Content-Security-Policy" : "default-src 'none'",
31+
"X-GitHub-Request-Id" : "EA4A:354F9:5E84CA9:7289633:5D80D7CA"
32+
}
33+
},
34+
"uuid" : "395dc00a-5234-4866-815c-d7b49cdd0157",
35+
"persistent" : true,
36+
"insertionIndex" : 2
37+
}

0 commit comments

Comments
 (0)