Skip to content

Commit

Permalink
added code search
Browse files Browse the repository at this point in the history
  • Loading branch information
kohsuke committed Mar 22, 2015
1 parent 7b436ff commit 5e08b34
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 1 deletion.
74 changes: 74 additions & 0 deletions src/main/java/org/kohsuke/github/GHContentSearchBuilder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package org.kohsuke.github;

/**
* Search code for {@link GHContent}.
*
* @author Kohsuke Kawaguchi
* @see GitHub#searchContent()
*/
public class GHContentSearchBuilder extends GHSearchBuilder<GHContent> {
/*package*/ GHContentSearchBuilder(GitHub root) {
super(root,ContentSearchResult.class);
}

/**
* Search terms.
*/
public GHContentSearchBuilder q(String term) {
super.q(term);
return this;
}

public GHContentSearchBuilder in(String v) {
return q("in:"+v);
}

public GHContentSearchBuilder language(String v) {
return q("language:"+v);
}

public GHContentSearchBuilder fork(String v) {
return q("fork:"+v);
}

public GHContentSearchBuilder size(String v) {
return q("size:"+v);
}

public GHContentSearchBuilder path(String v) {
return q("path:"+v);
}

public GHContentSearchBuilder filename(String v) {
return q("filename:"+v);
}

public GHContentSearchBuilder extension(String v) {
return q("extension:"+v);
}

public GHContentSearchBuilder user(String v) {
return q("user:"+v);
}


public GHContentSearchBuilder repo(String v) {
return q("repo:"+v);
}

private static class ContentSearchResult extends SearchResult<GHContent> {
private GHContent[] items;

@Override
/*package*/ GHContent[] getItems(GitHub root) {
for (GHContent item : items)
item.wrap(root);
return items;
}
}

@Override
protected String getApiUrl() {
return "/search/code";
}
}
7 changes: 7 additions & 0 deletions src/main/java/org/kohsuke/github/GitHub.java
Original file line number Diff line number Diff line change
Expand Up @@ -457,6 +457,13 @@ public GHRepositorySearchBuilder searchRepositories() {
return new GHRepositorySearchBuilder(this);
}

/**
* Search content.
*/
public GHContentSearchBuilder searchContent() {
return new GHContentSearchBuilder(this);
}

/**
* This provides a dump of every public repository, in the order that they were created.
* @see <a href="https://developer.github.com/v3/repos/#list-all-public-repositories">documentation</a>
Expand Down
13 changes: 12 additions & 1 deletion src/test/java/org/kohsuke/github/AppTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -792,7 +792,18 @@ public void searchRepositories() throws Exception {
GHRepository u = r.iterator().next();
System.out.println(u.getName());
assertNotNull(u.getId());
assertEquals("Assembly",u.getLanguage());
assertEquals("Assembly", u.getLanguage());
assertTrue(r.getTotalCount() > 0);
}

@Test
public void searchContent() throws Exception {
PagedSearchIterable<GHContent> r = gitHub.searchContent().q("addClass").in("file").language("js").repo("jquery/jquery").list();
GHContent c = r.iterator().next();
System.out.println(c.getName());
assertNotNull(c.getDownloadUrl());
assertNotNull(c.getOwner());
assertEquals("jquery/jquery",c.getOwner().getFullName());
assertTrue(r.getTotalCount() > 0);
}

Expand Down

0 comments on commit 5e08b34

Please sign in to comment.