mirror of
https://github.com/jlengrand/github-api.git
synced 2026-03-13 15:50:09 +00:00
Compare commits
25 Commits
github-api
...
github-api
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7b4d3a869b | ||
|
|
eeebb1b59f | ||
|
|
63136f64b7 | ||
|
|
1d2fbf2d92 | ||
|
|
1e52dded14 | ||
|
|
cfc7005275 | ||
|
|
f23afcd5aa | ||
|
|
4e88a0c91b | ||
|
|
d070f9deb0 | ||
|
|
b736e20a74 | ||
|
|
aad20d0a03 | ||
|
|
7ff97348d9 | ||
|
|
68dda3a46d | ||
|
|
2cd44f8c33 | ||
|
|
9775954aff | ||
|
|
1a071b0b54 | ||
|
|
8dcea59c74 | ||
|
|
f482f77871 | ||
|
|
b058c39ee1 | ||
|
|
b926b6c67f | ||
|
|
3fb8e5f799 | ||
|
|
9ebc9c0867 | ||
|
|
f1f96713a4 | ||
|
|
fc3b6d2c2e | ||
|
|
d0d0716b3b |
4
pom.xml
4
pom.xml
@@ -7,7 +7,7 @@
|
|||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>github-api</artifactId>
|
<artifactId>github-api</artifactId>
|
||||||
<version>1.66</version>
|
<version>1.68</version>
|
||||||
<name>GitHub API for Java</name>
|
<name>GitHub API for Java</name>
|
||||||
<url>http://github-api.kohsuke.org/</url>
|
<url>http://github-api.kohsuke.org/</url>
|
||||||
<description>GitHub API for Java</description>
|
<description>GitHub API for Java</description>
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
<connection>scm:git:git@github.com/kohsuke/${project.artifactId}.git</connection>
|
<connection>scm:git:git@github.com/kohsuke/${project.artifactId}.git</connection>
|
||||||
<developerConnection>scm:git:ssh://git@github.com/kohsuke/${project.artifactId}.git</developerConnection>
|
<developerConnection>scm:git:ssh://git@github.com/kohsuke/${project.artifactId}.git</developerConnection>
|
||||||
<url>http://${project.artifactId}.kohsuke.org/</url>
|
<url>http://${project.artifactId}.kohsuke.org/</url>
|
||||||
<tag>github-api-1.66</tag>
|
<tag>github-api-1.68</tag>
|
||||||
</scm>
|
</scm>
|
||||||
|
|
||||||
<distributionManagement>
|
<distributionManagement>
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.kohsuke.github;
|
package org.kohsuke.github;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.net.URL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Asset in a release.
|
* Asset in a release.
|
||||||
@@ -60,6 +61,14 @@ public class GHAsset extends GHObject {
|
|||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated This object has no HTML URL.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public URL getHtmlUrl() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public String getBrowserDownloadUrl() {
|
public String getBrowserDownloadUrl() {
|
||||||
return browser_download_url;
|
return browser_download_url;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import java.util.List;
|
|||||||
*
|
*
|
||||||
* @author janinko
|
* @author janinko
|
||||||
* @see GitHub#createToken(Collection, String, String)
|
* @see GitHub#createToken(Collection, String, String)
|
||||||
* @see http://developer.github.com/v3/oauth/#create-a-new-authorization
|
* @see <a href="http://developer.github.com/v3/oauth/#create-a-new-authorization">API documentation</a>
|
||||||
*/
|
*/
|
||||||
public class GHAuthorization extends GHObject {
|
public class GHAuthorization extends GHObject {
|
||||||
public static final String USER = "user";
|
public static final String USER = "user";
|
||||||
@@ -47,11 +47,11 @@ public class GHAuthorization extends GHObject {
|
|||||||
return scopes;
|
return scopes;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getToken(){
|
public String getToken() {
|
||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
|
|
||||||
public URL getAppUrl(){
|
public URL getAppUrl() {
|
||||||
return GitHub.parseURL(app.url);
|
return GitHub.parseURL(app.url);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,15 +59,23 @@ public class GHAuthorization extends GHObject {
|
|||||||
return app.name;
|
return app.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public URL getApiURL(){
|
public URL getApiURL() {
|
||||||
return GitHub.parseURL(url);
|
return GitHub.parseURL(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated This object has no HTML URL.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public URL getHtmlUrl() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public String getNote() {
|
public String getNote() {
|
||||||
return note;
|
return note;
|
||||||
}
|
}
|
||||||
|
|
||||||
public URL getNoteUrl(){
|
public URL getNoteUrl() {
|
||||||
return GitHub.parseURL(note_url);
|
return GitHub.parseURL(note_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,10 +85,7 @@ public class GHAuthorization extends GHObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static class App {
|
||||||
|
|
||||||
|
|
||||||
private static class App{
|
|
||||||
private String url;
|
private String url;
|
||||||
private String name;
|
private String name;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,12 +32,12 @@ public class GHCommit {
|
|||||||
|
|
||||||
private int comment_count;
|
private int comment_count;
|
||||||
|
|
||||||
@WithBridgeMethods(value=GHAuthor.class,castRequired=true)
|
@WithBridgeMethods(value = GHAuthor.class, castRequired = true)
|
||||||
public GitUser getAuthor() {
|
public GitUser getAuthor() {
|
||||||
return author;
|
return author;
|
||||||
}
|
}
|
||||||
|
|
||||||
@WithBridgeMethods(value=GHAuthor.class,castRequired=true)
|
@WithBridgeMethods(value = GHAuthor.class, castRequired = true)
|
||||||
public GitUser getCommitter() {
|
public GitUser getCommitter() {
|
||||||
return committer;
|
return committer;
|
||||||
}
|
}
|
||||||
@@ -155,7 +155,6 @@ public class GHCommit {
|
|||||||
User author,committer;
|
User author,committer;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public ShortInfo getCommitShortInfo() {
|
public ShortInfo getCommitShortInfo() {
|
||||||
return commit;
|
return commit;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
*/
|
*/
|
||||||
package org.kohsuke.github;
|
package org.kohsuke.github;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Identifies a commit in {@link GHPullRequest}.
|
* Identifies a commit in {@link GHPullRequest}.
|
||||||
*
|
*
|
||||||
@@ -69,6 +71,13 @@ public class GHCommitPointer {
|
|||||||
return label;
|
return label;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtains the commit that this pointer is referring to.
|
||||||
|
*/
|
||||||
|
public GHCommit getCommit() throws IOException {
|
||||||
|
return getRepository().getCommit(getSha());
|
||||||
|
}
|
||||||
|
|
||||||
void wrapUp(GitHub root) {
|
void wrapUp(GitHub root) {
|
||||||
if (user!=null) user.root = root;
|
if (user!=null) user.root = root;
|
||||||
if (repo!=null) repo.wrap(root);
|
if (repo!=null) repo.wrap(root);
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
package org.kohsuke.github;
|
package org.kohsuke.github;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.net.URL;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a status of a commit.
|
* Represents a status of a commit.
|
||||||
*
|
*
|
||||||
* @author Kohsuke Kawaguchi
|
* @author Kohsuke Kawaguchi
|
||||||
* @see GHRepository#getCommitStatus(String)
|
* @see GHRepository#getLastCommitStatus(String)
|
||||||
* @see GHCommit#getStatus()
|
* @see GHCommit#getLastStatus()
|
||||||
*/
|
*/
|
||||||
public class GHCommitStatus extends GHObject {
|
public class GHCommitStatus extends GHObject {
|
||||||
String state;
|
String state;
|
||||||
@@ -52,4 +53,12 @@ public class GHCommitStatus extends GHObject {
|
|||||||
public String getContext() {
|
public String getContext() {
|
||||||
return context;
|
return context;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated This object has no HTML URL.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public URL getHtmlUrl() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,4 +50,12 @@ public class GHDeployment extends GHObject {
|
|||||||
public String getSha(){
|
public String getSha(){
|
||||||
return sha;
|
return sha;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated This object has no HTML URL.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public URL getHtmlUrl() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,5 +32,11 @@ public class GHDeploymentStatus extends GHObject {
|
|||||||
return GHDeploymentState.valueOf(state.toUpperCase());
|
return GHDeploymentState.valueOf(state.toUpperCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated This object has no HTML URL.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public URL getHtmlUrl() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -165,6 +165,7 @@ public abstract class GHEventPayload {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
void wrapUp(GitHub root) {
|
void wrapUp(GitHub root) {
|
||||||
|
super.wrapUp(root);
|
||||||
if (repository!=null)
|
if (repository!=null)
|
||||||
repository.wrap(root);
|
repository.wrap(root);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package org.kohsuke.github;
|
|||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.net.URL;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -60,8 +61,8 @@ public class GHGist extends GHObject {
|
|||||||
return git_push_url;
|
return git_push_url;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getHtmlUrl() {
|
public URL getHtmlUrl() {
|
||||||
return html_url;
|
return GitHub.parseURL(html_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPublic() {
|
public boolean isPublic() {
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.kohsuke.github;
|
package org.kohsuke.github;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.net.URL;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -51,4 +52,12 @@ public class GHHook extends GHObject {
|
|||||||
public void delete() throws IOException {
|
public void delete() throws IOException {
|
||||||
new Requester(repository.root).method("DELETE").to(String.format("/repos/%s/%s/hooks/%d", repository.getOwnerName(), repository.getName(), id));
|
new Requester(repository.root).method("DELETE").to(String.format("/repos/%s/%s/hooks/%d", repository.getOwnerName(), repository.getName(), id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated This object has no HTML URL.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public URL getHtmlUrl() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,4 +71,12 @@ public class GHIssueComment extends GHObject {
|
|||||||
public GHUser getUser() throws IOException {
|
public GHUser getUser() throws IOException {
|
||||||
return owner.root.getUser(user.getLogin());
|
return owner.root.getUser(user.getLogin());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated This object has no HTML URL.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public URL getHtmlUrl() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.kohsuke.github;
|
package org.kohsuke.github;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.net.URL;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
@@ -14,7 +15,7 @@ public class GHMilestone extends GHObject {
|
|||||||
GHRepository owner;
|
GHRepository owner;
|
||||||
|
|
||||||
GHUser creator;
|
GHUser creator;
|
||||||
private String state, due_on, title, description;
|
private String state, due_on, title, description, html_url;
|
||||||
private int closed_issues, open_issues, number;
|
private int closed_issues, open_issues, number;
|
||||||
|
|
||||||
public GitHub getRoot() {
|
public GitHub getRoot() {
|
||||||
@@ -54,6 +55,10 @@ public class GHMilestone extends GHObject {
|
|||||||
return number;
|
return number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public URL getHtmlUrl() {
|
||||||
|
return GitHub.parseURL(html_url);
|
||||||
|
}
|
||||||
|
|
||||||
public GHMilestoneState getState() {
|
public GHMilestoneState getState() {
|
||||||
return Enum.valueOf(GHMilestoneState.class, state.toUpperCase(Locale.ENGLISH));
|
return Enum.valueOf(GHMilestoneState.class, state.toUpperCase(Locale.ENGLISH));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,6 +38,12 @@ public abstract class GHObject {
|
|||||||
return GitHub.parseURL(url);
|
return GitHub.parseURL(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* URL of this object for humans, which renders some HTML.
|
||||||
|
*/
|
||||||
|
@WithBridgeMethods(value=String.class, adapterMethod="urlToString")
|
||||||
|
public abstract URL getHtmlUrl();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* When was this resource last updated?
|
* When was this resource last updated?
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package org.kohsuke.github;
|
|||||||
|
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.net.URL;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@@ -214,8 +215,9 @@ public abstract class GHPerson extends GHObject {
|
|||||||
return blog;
|
return blog;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getHtmlUrl() {
|
@Override
|
||||||
return html_url;
|
public URL getHtmlUrl() {
|
||||||
|
return GitHub.parseURL(html_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ import java.io.IOException;
|
|||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A pull request.
|
* A pull request.
|
||||||
@@ -66,9 +65,9 @@ public class GHPullRequest extends GHIssue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
GHPullRequest wrapUp(GitHub root) {
|
GHPullRequest wrapUp(GitHub root) {
|
||||||
if (owner!=null) owner.wrap(root);
|
if (owner != null) owner.wrap(root);
|
||||||
if (base!=null) base.wrapUp(root);
|
if (base != null) base.wrapUp(root);
|
||||||
if (head!=null) head.wrapUp(root);
|
if (head != null) head.wrapUp(root);
|
||||||
if (merged_by != null) merged_by.wrapUp(root);
|
if (merged_by != null) merged_by.wrapUp(root);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -142,7 +141,7 @@ public class GHPullRequest extends GHIssue {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// details that are only available via get with ID
|
// details that are only available via get with ID
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
@@ -197,6 +196,39 @@ public class GHPullRequest extends GHIssue {
|
|||||||
root.retrieve().to(url, this).wrapUp(owner);
|
root.retrieve().to(url, this).wrapUp(owner);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves all the commits associated to this pull request.
|
||||||
|
*/
|
||||||
|
public PagedIterable<GHPullRequestFileDetail> listFiles() {
|
||||||
|
return new PagedIterable<GHPullRequestFileDetail>() {
|
||||||
|
public PagedIterator<GHPullRequestFileDetail> iterator() {
|
||||||
|
return new PagedIterator<GHPullRequestFileDetail>(root.retrieve().asIterator(String.format("%s/files", getApiURL()),
|
||||||
|
GHPullRequestFileDetail[].class)) {
|
||||||
|
@Override
|
||||||
|
protected void wrapUp(GHPullRequestFileDetail[] page) {
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtains all the review comments associated with this pull request.
|
||||||
|
*/
|
||||||
|
public PagedIterable<GHPullRequestReviewComment> listReviewComments() throws IOException {
|
||||||
|
return new PagedIterable<GHPullRequestReviewComment>() {
|
||||||
|
public PagedIterator<GHPullRequestReviewComment> iterator() {
|
||||||
|
return new PagedIterator<GHPullRequestReviewComment>(root.retrieve().asIterator(getApiRoute() + "/comments",
|
||||||
|
GHPullRequestReviewComment[].class)) {
|
||||||
|
protected void wrapUp(GHPullRequestReviewComment[] page) {
|
||||||
|
for (GHPullRequestReviewComment c : page)
|
||||||
|
c.wrapUp(GHPullRequest.this);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves all the commits associated to this pull request.
|
* Retrieves all the commits associated to this pull request.
|
||||||
*/
|
*/
|
||||||
@@ -208,12 +240,23 @@ public class GHPullRequest extends GHIssue {
|
|||||||
GHPullRequestCommitDetail[].class)) {
|
GHPullRequestCommitDetail[].class)) {
|
||||||
@Override
|
@Override
|
||||||
protected void wrapUp(GHPullRequestCommitDetail[] page) {
|
protected void wrapUp(GHPullRequestCommitDetail[] page) {
|
||||||
|
for (GHPullRequestCommitDetail c : page)
|
||||||
|
c.wrapUp(GHPullRequest.this);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public GHPullRequestReviewComment createReviewComment(String body, String sha, String path, int position) throws IOException {
|
||||||
|
return new Requester(root).method("POST")
|
||||||
|
.with("body", body)
|
||||||
|
.with("commit_id", sha)
|
||||||
|
.with("path", path)
|
||||||
|
.with("position", position)
|
||||||
|
.to(getApiRoute() + "/comments", GHPullRequestReviewComment.class).wrapUp(this);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Merge this pull request.
|
* Merge this pull request.
|
||||||
*
|
*
|
||||||
@@ -223,7 +266,21 @@ public class GHPullRequest extends GHIssue {
|
|||||||
* Commit message. If null, the default one will be used.
|
* Commit message. If null, the default one will be used.
|
||||||
*/
|
*/
|
||||||
public void merge(String msg) throws IOException {
|
public void merge(String msg) throws IOException {
|
||||||
new Requester(root).method("PUT").with("commit_message",msg).to(getApiRoute()+"/merge");
|
merge(msg,null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Merge this pull request.
|
||||||
|
*
|
||||||
|
* The equivalent of the big green "Merge pull request" button.
|
||||||
|
*
|
||||||
|
* @param msg
|
||||||
|
* Commit message. If null, the default one will be used.
|
||||||
|
* @param sha
|
||||||
|
* SHA that pull request head must match to allow merge.
|
||||||
|
*/
|
||||||
|
public void merge(String msg, String sha) throws IOException {
|
||||||
|
new Requester(root).method("PUT").with("commit_message",msg).with("sha",sha).to(getApiRoute()+"/merge");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void fetchIssue() throws IOException {
|
private void fetchIssue() throws IOException {
|
||||||
|
|||||||
@@ -31,13 +31,20 @@ import java.net.URL;
|
|||||||
* Commit detail inside a {@link GHPullRequest}.
|
* Commit detail inside a {@link GHPullRequest}.
|
||||||
*
|
*
|
||||||
* @author Luca Milanesio
|
* @author Luca Milanesio
|
||||||
|
* @see GHPullRequest#listCommits()
|
||||||
*/
|
*/
|
||||||
public class GHPullRequestCommitDetail {
|
public class GHPullRequestCommitDetail {
|
||||||
|
private GHPullRequest owner;
|
||||||
|
|
||||||
|
/*package*/ void wrapUp(GHPullRequest owner) {
|
||||||
|
this.owner = owner;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated Use {@link GitUser}
|
* @deprecated Use {@link GitUser}
|
||||||
*/
|
*/
|
||||||
public static class Authorship extends GitUser {}
|
public static class Authorship extends GitUser {
|
||||||
|
}
|
||||||
|
|
||||||
public static class Tree {
|
public static class Tree {
|
||||||
String sha;
|
String sha;
|
||||||
@@ -60,12 +67,12 @@ public class GHPullRequestCommitDetail {
|
|||||||
String url;
|
String url;
|
||||||
int comment_count;
|
int comment_count;
|
||||||
|
|
||||||
@WithBridgeMethods(value=Authorship.class,castRequired=true)
|
@WithBridgeMethods(value = Authorship.class, castRequired = true)
|
||||||
public GitUser getAuthor() {
|
public GitUser getAuthor() {
|
||||||
return author;
|
return author;
|
||||||
}
|
}
|
||||||
|
|
||||||
@WithBridgeMethods(value=Authorship.class,castRequired=true)
|
@WithBridgeMethods(value = Authorship.class, castRequired = true)
|
||||||
public GitUser getCommitter() {
|
public GitUser getCommitter() {
|
||||||
return committer;
|
return committer;
|
||||||
}
|
}
|
||||||
@@ -111,18 +118,23 @@ public class GHPullRequestCommitDetail {
|
|||||||
public String getSha() {
|
public String getSha() {
|
||||||
return sha;
|
return sha;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Commit getCommit() {
|
public Commit getCommit() {
|
||||||
return commit;
|
return commit;
|
||||||
}
|
}
|
||||||
|
|
||||||
public URL getApiUrl() {
|
public URL getApiUrl() {
|
||||||
return GitHub.parseURL(url);
|
return GitHub.parseURL(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
public URL getUrl() {
|
public URL getUrl() {
|
||||||
return GitHub.parseURL(html_url);
|
return GitHub.parseURL(html_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
public URL getCommentsUrl() {
|
public URL getCommentsUrl() {
|
||||||
return GitHub.parseURL(comments_url);
|
return GitHub.parseURL(comments_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CommitPointer[] getParents() {
|
public CommitPointer[] getParents() {
|
||||||
return parents;
|
return parents;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,86 @@
|
|||||||
|
/*
|
||||||
|
* The MIT License
|
||||||
|
*
|
||||||
|
* Copyright (c) 2015, Julien Henry
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*/
|
||||||
|
package org.kohsuke.github;
|
||||||
|
|
||||||
|
import java.net.URL;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* File detail inside a {@link GHPullRequest}.
|
||||||
|
*
|
||||||
|
* @author Julien Henry
|
||||||
|
* @see GHPullRequest#listFiles()
|
||||||
|
*/
|
||||||
|
public class GHPullRequestFileDetail {
|
||||||
|
|
||||||
|
String sha;
|
||||||
|
String filename;
|
||||||
|
String status;
|
||||||
|
int additions;
|
||||||
|
int deletions;
|
||||||
|
int changes;
|
||||||
|
String blob_url;
|
||||||
|
String raw_url;
|
||||||
|
String contents_url;
|
||||||
|
String patch;
|
||||||
|
|
||||||
|
public String getSha() {
|
||||||
|
return sha;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFilename() {
|
||||||
|
return filename;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStatus() {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAdditions() {
|
||||||
|
return additions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getDeletions() {
|
||||||
|
return deletions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getChanges() {
|
||||||
|
return changes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public URL getBlobUrl() {
|
||||||
|
return GitHub.parseURL(blob_url);
|
||||||
|
}
|
||||||
|
|
||||||
|
public URL getRawUrl() {
|
||||||
|
return GitHub.parseURL(raw_url);
|
||||||
|
}
|
||||||
|
|
||||||
|
public URL getContentsUrl() {
|
||||||
|
return GitHub.parseURL(contents_url);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPatch() {
|
||||||
|
return patch;
|
||||||
|
}
|
||||||
|
}
|
||||||
105
src/main/java/org/kohsuke/github/GHPullRequestReviewComment.java
Normal file
105
src/main/java/org/kohsuke/github/GHPullRequestReviewComment.java
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
/*
|
||||||
|
* The MIT License
|
||||||
|
*
|
||||||
|
* Copyright (c) 2010, Kohsuke Kawaguchi
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
package org.kohsuke.github;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.URL;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Review comment to the pull request
|
||||||
|
*
|
||||||
|
* @author Julien Henry
|
||||||
|
* @see GHPullRequest#listReviewComments()
|
||||||
|
* @see GHPullRequest#createReviewComment(String, String, String, int)
|
||||||
|
*/
|
||||||
|
public class GHPullRequestReviewComment extends GHObject {
|
||||||
|
GHPullRequest owner;
|
||||||
|
|
||||||
|
private String body;
|
||||||
|
private GHUser user;
|
||||||
|
private String path;
|
||||||
|
private int position;
|
||||||
|
private int originalPosition;
|
||||||
|
|
||||||
|
/*package*/ GHPullRequestReviewComment wrapUp(GHPullRequest owner) {
|
||||||
|
this.owner = owner;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the pull request to which this review comment is associated.
|
||||||
|
*/
|
||||||
|
public GHPullRequest getParent() {
|
||||||
|
return owner;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The comment itself.
|
||||||
|
*/
|
||||||
|
public String getBody() {
|
||||||
|
return body;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the user who posted this comment.
|
||||||
|
*/
|
||||||
|
public GHUser getUser() throws IOException {
|
||||||
|
return owner.root.getUser(user.getLogin());
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPath() {
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPosition() {
|
||||||
|
return position;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getOriginalPosition() {
|
||||||
|
return originalPosition;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public URL getHtmlUrl() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected String getApiRoute() {
|
||||||
|
return "/repos/"+owner.getRepository().getFullName()+"/comments/"+id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates the comment.
|
||||||
|
*/
|
||||||
|
public void update(String body) throws IOException {
|
||||||
|
new Requester(owner.root).method("PATCH").with("body", body).to(getApiRoute(),this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deletes this review comment.
|
||||||
|
*/
|
||||||
|
public void delete() throws IOException {
|
||||||
|
new Requester(owner.root).method("DELETE").to(getApiRoute());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@ package org.kohsuke.github;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.net.URL;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -44,8 +45,8 @@ public class GHRelease extends GHObject {
|
|||||||
return draft;
|
return draft;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getHtmlUrl() {
|
public URL getHtmlUrl() {
|
||||||
return html_url;
|
return GitHub.parseURL(html_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
|
|||||||
@@ -63,6 +63,8 @@ public class GHRepository extends GHObject {
|
|||||||
|
|
||||||
private GHRepoPermission permissions;
|
private GHRepoPermission permissions;
|
||||||
|
|
||||||
|
private GHRepository source, parent;
|
||||||
|
|
||||||
public GHDeploymentBuilder createDeployment(String ref) {
|
public GHDeploymentBuilder createDeployment(String ref) {
|
||||||
return new GHDeploymentBuilder(this,ref);
|
return new GHDeploymentBuilder(this,ref);
|
||||||
}
|
}
|
||||||
@@ -159,6 +161,10 @@ public class GHRepository extends GHObject {
|
|||||||
return ssh_url;
|
return ssh_url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public URL getHtmlUrl() {
|
||||||
|
return GitHub.parseURL(html_url);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Short repository name without the owner. For example 'jenkins' in case of http://github.com/jenkinsci/jenkins
|
* Short repository name without the owner. For example 'jenkins' in case of http://github.com/jenkinsci/jenkins
|
||||||
*/
|
*/
|
||||||
@@ -353,7 +359,7 @@ public class GHRepository extends GHObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the primary branch you'll configure in the "Admin > Options" config page.
|
* Returns the primary branch you'll configure in the "Admin > Options" config page.
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
* This field is null until the user explicitly configures the master branch.
|
* This field is null until the user explicitly configures the master branch.
|
||||||
@@ -780,7 +786,7 @@ public class GHRepository extends GHObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see {@link #createCommitStatus(String, GHCommitState,String,String,String) createCommitStatus}
|
* @see #createCommitStatus(String, GHCommitState,String,String,String)
|
||||||
*/
|
*/
|
||||||
public GHCommitStatus createCommitStatus(String sha1, GHCommitState state, String targetUrl, String description) throws IOException {
|
public GHCommitStatus createCommitStatus(String sha1, GHCommitState state, String targetUrl, String description) throws IOException {
|
||||||
return createCommitStatus(sha1, state, targetUrl, description,null);
|
return createCommitStatus(sha1, state, targetUrl, description,null);
|
||||||
@@ -1107,6 +1113,38 @@ public class GHRepository extends GHObject {
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Forked repositories have a 'source' attribute that specifies the ultimate source of the forking chain.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* {@link GHRepository} that points to the root repository where this repository is forked
|
||||||
|
* (indirectly or directly) from. Otherwise null.
|
||||||
|
* @see #getParent()
|
||||||
|
*/
|
||||||
|
public GHRepository getSource() throws IOException {
|
||||||
|
if (source == null) return null;
|
||||||
|
if (source.root == null)
|
||||||
|
source = root.getRepository(source.getFullName());
|
||||||
|
return source;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Forked repositories have a 'parent' attribute that specifies the repository this repository
|
||||||
|
* is directly forked from. If we keep traversing {@link #getParent()} until it returns null, that
|
||||||
|
* is {@link #getSource()}.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* {@link GHRepository} that points to the repository where this repository is forked
|
||||||
|
* directly from. Otherwise null.
|
||||||
|
* @see #getSource()
|
||||||
|
*/
|
||||||
|
public GHRepository getParent() throws IOException {
|
||||||
|
if (parent == null) return null;
|
||||||
|
if (parent.root == null)
|
||||||
|
parent = root.getRepository(parent.getFullName());
|
||||||
|
return parent;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Subscribes to this repository to get notifications.
|
* Subscribes to this repository to get notifications.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package org.kohsuke.github;
|
|||||||
|
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.net.URL;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -37,6 +38,14 @@ public class GHThread extends GHObject {
|
|||||||
return GitHub.parseDate(last_read_at);
|
return GitHub.parseDate(last_read_at);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated This object has no HTML URL.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public URL getHtmlUrl() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public String getReason() {
|
public String getReason() {
|
||||||
return reason;
|
return reason;
|
||||||
}
|
}
|
||||||
@@ -59,6 +68,41 @@ public class GHThread extends GHObject {
|
|||||||
return subject.type;
|
return subject.type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If this thread is about an issue, return that issue.
|
||||||
|
*
|
||||||
|
* @return null if this thread is not about an issue.
|
||||||
|
*/
|
||||||
|
public GHIssue getBoundIssue() throws IOException {
|
||||||
|
if (!"Issue".equals(subject.type) && "PullRequest".equals(subject.type))
|
||||||
|
return null;
|
||||||
|
return repository.getIssue(
|
||||||
|
Integer.parseInt(subject.url.substring(subject.url.lastIndexOf('/') + 1)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If this thread is about a pull request, return that pull request.
|
||||||
|
*
|
||||||
|
* @return null if this thread is not about a pull request.
|
||||||
|
*/
|
||||||
|
public GHPullRequest getBoundPullRequest() throws IOException {
|
||||||
|
if (!"PullRequest".equals(subject.type))
|
||||||
|
return null;
|
||||||
|
return repository.getPullRequest(
|
||||||
|
Integer.parseInt(subject.url.substring(subject.url.lastIndexOf('/') + 1)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If this thread is about a commit, return that commit.
|
||||||
|
*
|
||||||
|
* @return null if this thread is not about a commit.
|
||||||
|
*/
|
||||||
|
public GHCommit getBoundCommit() throws IOException {
|
||||||
|
if (!"Commit".equals(subject.type))
|
||||||
|
return null;
|
||||||
|
return repository.getCommit(subject.url.substring(subject.url.lastIndexOf('/') + 1));
|
||||||
|
}
|
||||||
|
|
||||||
/*package*/ GHThread wrap(GitHub root) {
|
/*package*/ GHThread wrap(GitHub root) {
|
||||||
this.root = root;
|
this.root = root;
|
||||||
if (this.repository!=null)
|
if (this.repository!=null)
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ import com.infradna.tool.bridge_method_injector.WithBridgeMethods;
|
|||||||
* <p>
|
* <p>
|
||||||
* This library aims to be safe for use by multiple threads concurrently, although
|
* This library aims to be safe for use by multiple threads concurrently, although
|
||||||
* the library itself makes no attempt to control/serialize potentially conflicting
|
* the library itself makes no attempt to control/serialize potentially conflicting
|
||||||
* operations to GitHub, such as updating & deleting a repository at the same time.
|
* operations to GitHub, such as updating & deleting a repository at the same time.
|
||||||
*
|
*
|
||||||
* @author Kohsuke Kawaguchi
|
* @author Kohsuke Kawaguchi
|
||||||
*/
|
*/
|
||||||
@@ -133,10 +133,11 @@ public class GitHub {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.rateLimitHandler = rateLimitHandler;
|
||||||
|
|
||||||
if (login==null && encodedAuthorization!=null)
|
if (login==null && encodedAuthorization!=null)
|
||||||
login = getMyself().getLogin();
|
login = getMyself().getLogin();
|
||||||
this.login = login;
|
this.login = login;
|
||||||
this.rateLimitHandler = rateLimitHandler;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -479,6 +479,9 @@ class Requester {
|
|||||||
* Handle API error by either throwing it or by returning normally to retry.
|
* Handle API error by either throwing it or by returning normally to retry.
|
||||||
*/
|
*/
|
||||||
/*package*/ void handleApiError(IOException e) throws IOException {
|
/*package*/ void handleApiError(IOException e) throws IOException {
|
||||||
|
if (uc.getResponseCode() == 401) // Unauthorized == bad creds
|
||||||
|
throw e;
|
||||||
|
|
||||||
if ("0".equals(uc.getHeaderField("X-RateLimit-Remaining"))) {
|
if ("0".equals(uc.getHeaderField("X-RateLimit-Remaining"))) {
|
||||||
root.rateLimitHandler.onError(e,uc);
|
root.rateLimitHandler.onError(e,uc);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,9 +19,9 @@ public abstract class AbstractGitHubApiTestBase extends Assert {
|
|||||||
if (f.exists()) {
|
if (f.exists()) {
|
||||||
// use the non-standard credential preferentially, so that developers of this library do not have
|
// use the non-standard credential preferentially, so that developers of this library do not have
|
||||||
// to clutter their event stream.
|
// to clutter their event stream.
|
||||||
gitHub = GitHubBuilder.fromPropertyFile(f.getPath()).build();
|
gitHub = GitHubBuilder.fromPropertyFile(f.getPath()).withRateLimitHandler(RateLimitHandler.FAIL).build();
|
||||||
} else {
|
} else {
|
||||||
gitHub = GitHub.connect();
|
gitHub = GitHubBuilder.fromCredentials().withRateLimitHandler(RateLimitHandler.FAIL).build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -674,7 +674,7 @@ public class AppTest extends AbstractGitHubApiTestBase {
|
|||||||
GHTree masterTree = gitHub.getRepository("kohsuke/github-api").getTree("master");
|
GHTree masterTree = gitHub.getRepository("kohsuke/github-api").getTree("master");
|
||||||
boolean foundReadme = false;
|
boolean foundReadme = false;
|
||||||
for(GHTreeEntry e : masterTree.getTree()){
|
for(GHTreeEntry e : masterTree.getTree()){
|
||||||
if("readme".equalsIgnoreCase(e.getPath().replaceAll(".md", ""))){
|
if("readme".equalsIgnoreCase(e.getPath().replaceAll("\\.md", ""))){
|
||||||
foundReadme = true;
|
foundReadme = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,8 +55,7 @@ public class GitHubTest extends TestCase {
|
|||||||
* Its used to wire in values for the github credentials to test that the GitHubBuilder works properly to resolve them.
|
* Its used to wire in values for the github credentials to test that the GitHubBuilder works properly to resolve them.
|
||||||
*/
|
*/
|
||||||
private void setupEnvironment(Map<String, String> newenv) {
|
private void setupEnvironment(Map<String, String> newenv) {
|
||||||
try
|
try {
|
||||||
{
|
|
||||||
Class<?> processEnvironmentClass = Class.forName("java.lang.ProcessEnvironment");
|
Class<?> processEnvironmentClass = Class.forName("java.lang.ProcessEnvironment");
|
||||||
Field theEnvironmentField = processEnvironmentClass.getDeclaredField("theEnvironment");
|
Field theEnvironmentField = processEnvironmentClass.getDeclaredField("theEnvironment");
|
||||||
theEnvironmentField.setAccessible(true);
|
theEnvironmentField.setAccessible(true);
|
||||||
@@ -66,14 +65,12 @@ public class GitHubTest extends TestCase {
|
|||||||
theCaseInsensitiveEnvironmentField.setAccessible(true);
|
theCaseInsensitiveEnvironmentField.setAccessible(true);
|
||||||
Map<String, String> cienv = (Map<String, String>) theCaseInsensitiveEnvironmentField.get(null);
|
Map<String, String> cienv = (Map<String, String>) theCaseInsensitiveEnvironmentField.get(null);
|
||||||
cienv.putAll(newenv);
|
cienv.putAll(newenv);
|
||||||
}
|
} catch (NoSuchFieldException e) {
|
||||||
catch (NoSuchFieldException e)
|
|
||||||
{
|
|
||||||
try {
|
try {
|
||||||
Class[] classes = Collections.class.getDeclaredClasses();
|
Class[] classes = Collections.class.getDeclaredClasses();
|
||||||
Map<String, String> env = System.getenv();
|
Map<String, String> env = System.getenv();
|
||||||
for(Class cl : classes) {
|
for (Class cl : classes) {
|
||||||
if("java.util.Collections$UnmodifiableMap".equals(cl.getName())) {
|
if ("java.util.Collections$UnmodifiableMap".equals(cl.getName())) {
|
||||||
Field field = cl.getDeclaredField("m");
|
Field field = cl.getDeclaredField("m");
|
||||||
field.setAccessible(true);
|
field.setAccessible(true);
|
||||||
Object obj = field.get(env);
|
Object obj = field.get(env);
|
||||||
@@ -88,12 +85,10 @@ public class GitHubTest extends TestCase {
|
|||||||
} catch (Exception e1) {
|
} catch (Exception e1) {
|
||||||
e1.printStackTrace();
|
e1.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testGitHubBuilderFromCustomEnvironment() throws IOException {
|
public void testGitHubBuilderFromCustomEnvironment() throws IOException {
|
||||||
|
Map<String, String> props = new HashMap<String, String>();
|
||||||
Map<String, String>props = new HashMap<String, String>();
|
|
||||||
|
|
||||||
props.put("customLogin", "bogusLogin");
|
props.put("customLogin", "bogusLogin");
|
||||||
props.put("customOauth", "bogusOauth");
|
props.put("customOauth", "bogusOauth");
|
||||||
|
|||||||
Reference in New Issue
Block a user