Loading .gitignore 0 → 100644 +8 −0 Original line number Diff line number Diff line # Maven target # Eclipse .project .classpath .settings pom.xml 0 → 100644 +77 −0 Original line number Diff line number Diff line <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>me.brianlong</groupId> <artifactId>github-api</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>GitHub API & Utilities</name> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit</artifactId> <version>5.9.0.202009080501-r</version> </dependency> <dependency> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit.ssh.jsch</artifactId> <version>5.9.0.202009080501-r</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.12</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> <version>2.11.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> <version>2.11.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>2.13.2</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <executions> <execution> <id>unit-tests</id> <phase>test</phase> <goals><goal>test</goal></goals> <configuration> <excludes> <exclude>**/*IT.class</exclude> </excludes> </configuration> </execution> </executions> </plugin> </plugins> </build> </project> src/jetty/log4j2.xml 0 → 100644 +16 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="STDOUT" target="SYSTEM_OUT"> <PatternLayout pattern="[%t] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <Logger name="me.brianlong" level="trace" additivity="false"> <AppenderRef ref="STDOUT" /> </Logger> <Root level="trace"> <AppenderRef ref="STDOUT"/> </Root> </Loggers> </Configuration> src/main/java/me/brianlong/git/CachedGit.java 0 → 100644 +29 −0 Original line number Diff line number Diff line package me.brianlong.git; import org.eclipse.jgit.api.CloneCommand; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.api.errors.InvalidRemoteException; import org.eclipse.jgit.api.errors.TransportException; import org.eclipse.jgit.lib.Repository; public class CachedGit extends Git { public CachedGit(Git git) { super(git.getRepository()); } public CachedGit(CloneCommand clone) throws TransportException, InvalidRemoteException, GitAPIException { super(clone.call().getRepository()); } public CachedGit(Repository repo) { super(repo); } @Override public void close() { LocalRepositoryCache.getInstance().release(this); } } src/main/java/me/brianlong/git/CredentialedGit.java 0 → 100644 +53 −0 Original line number Diff line number Diff line package me.brianlong.git; import org.eclipse.jgit.api.CloneCommand; import org.eclipse.jgit.api.FetchCommand; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.LsRemoteCommand; import org.eclipse.jgit.api.PullCommand; import org.eclipse.jgit.api.PushCommand; import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.api.errors.InvalidRemoteException; import org.eclipse.jgit.api.errors.TransportException; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.transport.CredentialsProvider; public class CredentialedGit extends CachedGit { private CredentialsProvider credProvider; public CredentialedGit(CloneCommand clone, GitCredentials creds) throws TransportException, InvalidRemoteException, GitAPIException { this(clone.setCredentialsProvider(creds.toJGitCredentialsProvider()).call(), creds); } public CredentialedGit(Git git, GitCredentials creds) { super(git.getRepository()); this.credProvider = creds.toJGitCredentialsProvider(); } public CredentialedGit(Repository repo, GitCredentials creds) { super(repo); this.credProvider = creds.toJGitCredentialsProvider(); } @Override public FetchCommand fetch() { return super.fetch().setCredentialsProvider(this.credProvider); } @Override public LsRemoteCommand lsRemote() { return super.lsRemote().setCredentialsProvider(this.credProvider); } @Override public PullCommand pull() { return super.pull().setCredentialsProvider(this.credProvider); } @Override public PushCommand push() { return super.push().setCredentialsProvider(this.credProvider); } } Loading
.gitignore 0 → 100644 +8 −0 Original line number Diff line number Diff line # Maven target # Eclipse .project .classpath .settings
pom.xml 0 → 100644 +77 −0 Original line number Diff line number Diff line <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>me.brianlong</groupId> <artifactId>github-api</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>GitHub API & Utilities</name> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit</artifactId> <version>5.9.0.202009080501-r</version> </dependency> <dependency> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit.ssh.jsch</artifactId> <version>5.9.0.202009080501-r</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.12</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> <version>2.11.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> <version>2.11.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>2.13.2</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <executions> <execution> <id>unit-tests</id> <phase>test</phase> <goals><goal>test</goal></goals> <configuration> <excludes> <exclude>**/*IT.class</exclude> </excludes> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
src/jetty/log4j2.xml 0 → 100644 +16 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="STDOUT" target="SYSTEM_OUT"> <PatternLayout pattern="[%t] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <Logger name="me.brianlong" level="trace" additivity="false"> <AppenderRef ref="STDOUT" /> </Logger> <Root level="trace"> <AppenderRef ref="STDOUT"/> </Root> </Loggers> </Configuration>
src/main/java/me/brianlong/git/CachedGit.java 0 → 100644 +29 −0 Original line number Diff line number Diff line package me.brianlong.git; import org.eclipse.jgit.api.CloneCommand; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.api.errors.InvalidRemoteException; import org.eclipse.jgit.api.errors.TransportException; import org.eclipse.jgit.lib.Repository; public class CachedGit extends Git { public CachedGit(Git git) { super(git.getRepository()); } public CachedGit(CloneCommand clone) throws TransportException, InvalidRemoteException, GitAPIException { super(clone.call().getRepository()); } public CachedGit(Repository repo) { super(repo); } @Override public void close() { LocalRepositoryCache.getInstance().release(this); } }
src/main/java/me/brianlong/git/CredentialedGit.java 0 → 100644 +53 −0 Original line number Diff line number Diff line package me.brianlong.git; import org.eclipse.jgit.api.CloneCommand; import org.eclipse.jgit.api.FetchCommand; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.LsRemoteCommand; import org.eclipse.jgit.api.PullCommand; import org.eclipse.jgit.api.PushCommand; import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.api.errors.InvalidRemoteException; import org.eclipse.jgit.api.errors.TransportException; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.transport.CredentialsProvider; public class CredentialedGit extends CachedGit { private CredentialsProvider credProvider; public CredentialedGit(CloneCommand clone, GitCredentials creds) throws TransportException, InvalidRemoteException, GitAPIException { this(clone.setCredentialsProvider(creds.toJGitCredentialsProvider()).call(), creds); } public CredentialedGit(Git git, GitCredentials creds) { super(git.getRepository()); this.credProvider = creds.toJGitCredentialsProvider(); } public CredentialedGit(Repository repo, GitCredentials creds) { super(repo); this.credProvider = creds.toJGitCredentialsProvider(); } @Override public FetchCommand fetch() { return super.fetch().setCredentialsProvider(this.credProvider); } @Override public LsRemoteCommand lsRemote() { return super.lsRemote().setCredentialsProvider(this.credProvider); } @Override public PullCommand pull() { return super.pull().setCredentialsProvider(this.credProvider); } @Override public PushCommand push() { return super.push().setCredentialsProvider(this.credProvider); } }