Quarkus JGit

The Quarkus JGit extension enables the use of Eclipse JGit in a native executable.

Configuration

Once you have your Quarkus project configured you can add the jgit extension to your project by running the following command in your project base directory:

./mvnw quarkus:add-extension -Dextensions="jgit"

This will add the following to your pom.xml:

<dependency>
    <groupId>io.quarkiverse.jgit</groupId>
    <artifactId>quarkus-jgit</artifactId>
    <version>3.3.0</version>
</dependency>

Usage

The JGit dependency is resolved transitively when the extension is added to your project. Here is an example using it in a JAX-RS endpoint:

    @GET
    @Path("/clone")
    @Produces(MediaType.TEXT_PLAIN)
    public String cloneRepository(@QueryParam("url") String url) throws Exception {
        File tmpDir = Files.createTempDirectory("tmpgit").toFile();
        try (Git git = Git.cloneRepository().setDirectory(tmpDir).setURI(url).call()) {
            return tmpDir.toString();
        }
    }

When building a native executable, make sure that the SSL support is configured appropriately.

DevServices

JGit starts a Gitea server for testing purposes. The server is disabled by default when running tests. To enable it, set the quarkus.jgit.devservices.enabled configuration property to true.

An admin user is created with the following credentials:

  • Username: quarkus

  • Password: quarkus

Configuration properties

Configuration property fixed at build time - All other configuration properties are overridable at runtime

Configuration property

Type

Default

Whether devservice is enabled.

Environment variable: QUARKUS_JGIT_DEVSERVICES_ENABLED

boolean

false

If logs should be shown from the Gitea container.

Environment variable: QUARKUS_JGIT_DEVSERVICES_SHOW_LOGS

boolean

false

The exposed HTTP port for the Gitea container. If not specified, it will pick a random port

Environment variable: QUARKUS_JGIT_DEVSERVICES_HTTP_PORT

int

The Admin username for the Gitea container.

Environment variable: QUARKUS_JGIT_DEVSERVICES_ADMIN_USERNAME

string

quarkus

The Admin password for the Gitea container.

Environment variable: QUARKUS_JGIT_DEVSERVICES_ADMIN_PASSWORD

string

quarkus

Should the container be reused?

Environment variable: QUARKUS_JGIT_DEVSERVICES_REUSE

boolean

false

The HTTP URL of the dev services. Generated once the service is up and running.

Environment variable: QUARKUS_JGIT_DEVSERVICES_HTTP_URL

URI