mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Github: Add API function for loading Commit Comments
This commit is contained in:
@@ -616,6 +616,32 @@ public class GithubApiUtil {
|
||||
return createDataFromRaw(fromJson(result, GithubCommitRaw.class), GithubCommitDetailed.class);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static List<GithubCommitComment> getCommitComments(@NotNull GithubAuthData auth,
|
||||
@NotNull String user,
|
||||
@NotNull String repo,
|
||||
@NotNull String sha) throws IOException {
|
||||
String path = "/repos/" + user + "/" + repo + "/commits/" + sha + "/comments";
|
||||
|
||||
PagedRequest<GithubCommitComment> request =
|
||||
new PagedRequest<GithubCommitComment>(path, GithubCommitComment.class, GithubCommitCommentRaw[].class, ACCEPT_HTML_BODY_MARKUP);
|
||||
|
||||
return request.getAll(auth);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static List<GithubCommitComment> getPullRequestComments(@NotNull GithubAuthData auth,
|
||||
@NotNull String user,
|
||||
@NotNull String repo,
|
||||
long id) throws IOException {
|
||||
String path = "/repos/" + user + "/" + repo + "/pulls/" + id + "/comments";
|
||||
|
||||
PagedRequest<GithubCommitComment> request =
|
||||
new PagedRequest<GithubCommitComment>(path, GithubCommitComment.class, GithubCommitCommentRaw[].class, ACCEPT_HTML_BODY_MARKUP);
|
||||
|
||||
return request.getAll(auth);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static GithubPullRequest getPullRequest(@NotNull GithubAuthData auth, @NotNull String user, @NotNull String repo, int id)
|
||||
throws IOException {
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.jetbrains.plugins.github.api;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author Aleksey Pivovarov
|
||||
*/
|
||||
@SuppressWarnings("UnusedDeclaration")
|
||||
public class GithubCommitComment {
|
||||
@NotNull private final String myHtmlUrl;
|
||||
|
||||
private final long myId;
|
||||
@NotNull private final String mySha;
|
||||
@NotNull private final String myPath;
|
||||
private final long myPosition; // line number in diff
|
||||
@NotNull private final String myBodyHtml;
|
||||
|
||||
@NotNull private final GithubUser myUser;
|
||||
|
||||
@NotNull private final Date myCreatedAt;
|
||||
@NotNull private final Date myUpdatedAt;
|
||||
|
||||
public GithubCommitComment(@NotNull String htmlUrl,
|
||||
long id,
|
||||
@NotNull String sha,
|
||||
@NotNull String path,
|
||||
long position,
|
||||
@NotNull String bodyHtml,
|
||||
@NotNull GithubUser user,
|
||||
@NotNull Date createdAt,
|
||||
@NotNull Date updatedAt) {
|
||||
myHtmlUrl = htmlUrl;
|
||||
myId = id;
|
||||
mySha = sha;
|
||||
myPath = path;
|
||||
myPosition = position;
|
||||
myBodyHtml = bodyHtml;
|
||||
myUser = user;
|
||||
myCreatedAt = createdAt;
|
||||
myUpdatedAt = updatedAt;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getHtmlUrl() {
|
||||
return myHtmlUrl;
|
||||
}
|
||||
|
||||
public long getId() {
|
||||
return myId;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getSha() {
|
||||
return mySha;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getPath() {
|
||||
return myPath;
|
||||
}
|
||||
|
||||
public long getPosition() {
|
||||
return myPosition;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getBodyHtml() {
|
||||
return myBodyHtml;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public GithubUser getUser() {
|
||||
return myUser;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Date getCreatedAt() {
|
||||
return myCreatedAt;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Date getUpdatedAt() {
|
||||
return myUpdatedAt;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.jetbrains.plugins.github.api;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author Aleksey Pivovarov
|
||||
*/
|
||||
class GithubCommitCommentRaw implements DataConstructor {
|
||||
@Nullable public String htmlUrl;
|
||||
@Nullable public String url;
|
||||
|
||||
@Nullable public Long id;
|
||||
@Nullable public String commitId;
|
||||
@Nullable public String path;
|
||||
@Nullable public Long position;
|
||||
@Nullable public Long line;
|
||||
@Nullable public String body;
|
||||
@Nullable public String bodyHtml;
|
||||
|
||||
@Nullable public GithubUserRaw user;
|
||||
|
||||
@Nullable public Date createdAt;
|
||||
@Nullable public Date updatedAt;
|
||||
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
@NotNull
|
||||
public GithubCommitComment createCommitComment() {
|
||||
return new GithubCommitComment(htmlUrl, id, commitId, path, position, bodyHtml, user.createUser(), createdAt, updatedAt);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@NotNull
|
||||
@Override
|
||||
public <T> T create(@NotNull Class<T> resultClass) {
|
||||
if (resultClass.isAssignableFrom(GithubCommitComment.class)) {
|
||||
return (T)createCommitComment();
|
||||
}
|
||||
|
||||
throw new ClassCastException(this.getClass().getName() + ": bad class type: " + resultClass.getName());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user