More details are here: github.jcabi.com. Also, read this blog post: Object-Oriented Github API.
Set of classes in com.jcabi.github
package is
an object oriented API of Github:
public class Main {
public static void main(String[] args) throws IOException {
Github github = new RtGithub(".. your OAuth token ..");
Repo repo = github.repos().get(
new Coordinates.Simple("jcabi/jcabi-github")
);
Issue issue = repo.issues().create("How are you?", "Please tell me...");
issue.comments().post("My first comment!");
}
}
We also provide MkGithub
, a mock version of Github server, which
you can use in unit tests, for example:
public class FooTest {
public void submitsCommentToGithubIssue() {
final Repo repo = new MkGithub().repos().create(
Json.createObjectBuilder().add("name", "test").build()
);
final Issue issue = repo.issues().create("how are you?", "");
new Foo(issue).doSomething(); // should post a message to the issue
MasterAssert.assertThat(
issue.comments().iterate(),
Matchers.iterableWithSize(1)
);
}
}
If you have any questions about the framework, or something doesn't work as expected, please submit an issue here.
Fork the repository, make changes, submit a pull request.
We promise to review your changes same day and apply to
the master
branch, if they look correct.
Please run Maven (3.1 or higher!) build before submitting a pull request:
$ mvn clean install -Pqulice
There are many integration tests that check our classes against live Github accounts. In order to run them, you should create a new Github OAuth access token (how?), and provide it in command line, like this:
$ mvn clean install -Dit.test=RtGistITCase -Dfailsafe.github.key=<token> -Dfailsafe.github.repo=<repo>
Replace <token>
with the OAuth access token, and <repo>
with the name of
repository you create in your account (for test purposes only), for example yegor256/test
.
RtForksITCase requires additional parameter -Dfailsafe.github.organization=
where is an organization name to fork test github repository.
In order to run static analysis checks only use this:
$ mvn clean install -DskipTests -Dinvoker.skip=true -Pqulice