mirror of
https://github.com/jlengrand/github-api.git
synced 2026-03-24 08:21:27 +00:00
272 lines
6.1 KiB
Java
272 lines
6.1 KiB
Java
package org.kohsuke.github;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
import java.io.IOException;
|
|
|
|
/**
|
|
* Search commits.
|
|
*
|
|
* @author Marc de Verdelhan
|
|
* @see GitHub#searchCommits() GitHub#searchCommits()
|
|
*/
|
|
@Preview(Previews.CLOAK)
|
|
@Deprecated
|
|
public class GHCommitSearchBuilder extends GHSearchBuilder<GHCommit> {
|
|
GHCommitSearchBuilder(GitHub root) {
|
|
super(root, CommitSearchResult.class);
|
|
req.withPreview(Previews.CLOAK);
|
|
}
|
|
|
|
/**
|
|
* Search terms.
|
|
*/
|
|
public GHCommitSearchBuilder q(String term) {
|
|
super.q(term);
|
|
return this;
|
|
}
|
|
|
|
/**
|
|
* Author gh commit search builder.
|
|
*
|
|
* @param v
|
|
* the v
|
|
* @return the gh commit search builder
|
|
*/
|
|
public GHCommitSearchBuilder author(String v) {
|
|
return q("author:" + v);
|
|
}
|
|
|
|
/**
|
|
* Committer gh commit search builder.
|
|
*
|
|
* @param v
|
|
* the v
|
|
* @return the gh commit search builder
|
|
*/
|
|
public GHCommitSearchBuilder committer(String v) {
|
|
return q("committer:" + v);
|
|
}
|
|
|
|
/**
|
|
* Author name gh commit search builder.
|
|
*
|
|
* @param v
|
|
* the v
|
|
* @return the gh commit search builder
|
|
*/
|
|
public GHCommitSearchBuilder authorName(String v) {
|
|
return q("author-name:" + v);
|
|
}
|
|
|
|
/**
|
|
* Committer name gh commit search builder.
|
|
*
|
|
* @param v
|
|
* the v
|
|
* @return the gh commit search builder
|
|
*/
|
|
public GHCommitSearchBuilder committerName(String v) {
|
|
return q("committer-name:" + v);
|
|
}
|
|
|
|
/**
|
|
* Author email gh commit search builder.
|
|
*
|
|
* @param v
|
|
* the v
|
|
* @return the gh commit search builder
|
|
*/
|
|
public GHCommitSearchBuilder authorEmail(String v) {
|
|
return q("author-email:" + v);
|
|
}
|
|
|
|
/**
|
|
* Committer email gh commit search builder.
|
|
*
|
|
* @param v
|
|
* the v
|
|
* @return the gh commit search builder
|
|
*/
|
|
public GHCommitSearchBuilder committerEmail(String v) {
|
|
return q("committer-email:" + v);
|
|
}
|
|
|
|
/**
|
|
* Author date gh commit search builder.
|
|
*
|
|
* @param v
|
|
* the v
|
|
* @return the gh commit search builder
|
|
*/
|
|
public GHCommitSearchBuilder authorDate(String v) {
|
|
return q("author-date:" + v);
|
|
}
|
|
|
|
/**
|
|
* Committer date gh commit search builder.
|
|
*
|
|
* @param v
|
|
* the v
|
|
* @return the gh commit search builder
|
|
*/
|
|
public GHCommitSearchBuilder committerDate(String v) {
|
|
return q("committer-date:" + v);
|
|
}
|
|
|
|
/**
|
|
* Merge gh commit search builder.
|
|
*
|
|
* @param merge
|
|
* the merge
|
|
* @return the gh commit search builder
|
|
*/
|
|
public GHCommitSearchBuilder merge(boolean merge) {
|
|
return q("merge:" + Boolean.valueOf(merge).toString().toLowerCase());
|
|
}
|
|
|
|
/**
|
|
* Hash gh commit search builder.
|
|
*
|
|
* @param v
|
|
* the v
|
|
* @return the gh commit search builder
|
|
*/
|
|
public GHCommitSearchBuilder hash(String v) {
|
|
return q("hash:" + v);
|
|
}
|
|
|
|
/**
|
|
* Parent gh commit search builder.
|
|
*
|
|
* @param v
|
|
* the v
|
|
* @return the gh commit search builder
|
|
*/
|
|
public GHCommitSearchBuilder parent(String v) {
|
|
return q("parent:" + v);
|
|
}
|
|
|
|
/**
|
|
* Tree gh commit search builder.
|
|
*
|
|
* @param v
|
|
* the v
|
|
* @return the gh commit search builder
|
|
*/
|
|
public GHCommitSearchBuilder tree(String v) {
|
|
return q("tree:" + v);
|
|
}
|
|
|
|
/**
|
|
* Is gh commit search builder.
|
|
*
|
|
* @param v
|
|
* the v
|
|
* @return the gh commit search builder
|
|
*/
|
|
public GHCommitSearchBuilder is(String v) {
|
|
return q("is:" + v);
|
|
}
|
|
|
|
/**
|
|
* User gh commit search builder.
|
|
*
|
|
* @param v
|
|
* the v
|
|
* @return the gh commit search builder
|
|
*/
|
|
public GHCommitSearchBuilder user(String v) {
|
|
return q("user:" + v);
|
|
}
|
|
|
|
/**
|
|
* Org gh commit search builder.
|
|
*
|
|
* @param v
|
|
* the v
|
|
* @return the gh commit search builder
|
|
*/
|
|
public GHCommitSearchBuilder org(String v) {
|
|
return q("org:" + v);
|
|
}
|
|
|
|
/**
|
|
* Repo gh commit search builder.
|
|
*
|
|
* @param v
|
|
* the v
|
|
* @return the gh commit search builder
|
|
*/
|
|
public GHCommitSearchBuilder repo(String v) {
|
|
return q("repo:" + v);
|
|
}
|
|
|
|
/**
|
|
* Order gh commit search builder.
|
|
*
|
|
* @param v
|
|
* the v
|
|
* @return the gh commit search builder
|
|
*/
|
|
public GHCommitSearchBuilder order(GHDirection v) {
|
|
req.with("order", v);
|
|
return this;
|
|
}
|
|
|
|
/**
|
|
* Sort gh commit search builder.
|
|
*
|
|
* @param sort
|
|
* the sort
|
|
* @return the gh commit search builder
|
|
*/
|
|
public GHCommitSearchBuilder sort(Sort sort) {
|
|
req.with("sort", sort);
|
|
return this;
|
|
}
|
|
|
|
/**
|
|
* The enum Sort.
|
|
*/
|
|
public enum Sort {
|
|
AUTHOR_DATE, COMMITTER_DATE
|
|
}
|
|
|
|
private static class CommitSearchResult extends SearchResult<GHCommit> {
|
|
private GHCommit[] items;
|
|
|
|
@Override
|
|
GHCommit[] getItems(GitHub root) {
|
|
for (GHCommit commit : items) {
|
|
String repoName = getRepoName(commit.url);
|
|
try {
|
|
GHRepository repo = root.getRepository(repoName);
|
|
commit.wrapUp(repo);
|
|
} catch (IOException ioe) {
|
|
}
|
|
}
|
|
return items;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param commitUrl
|
|
* a commit URL
|
|
* @return the repo name ("username/reponame")
|
|
*/
|
|
private static String getRepoName(String commitUrl) {
|
|
if (StringUtils.isBlank(commitUrl)) {
|
|
return null;
|
|
}
|
|
int indexOfUsername = (GitHubClient.GITHUB_URL + "/repos/").length();
|
|
String[] tokens = commitUrl.substring(indexOfUsername).split("/", 3);
|
|
return tokens[0] + '/' + tokens[1];
|
|
}
|
|
|
|
@Override
|
|
protected String getApiUrl() {
|
|
return "/search/commits";
|
|
}
|
|
}
|