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.6.1</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:  | boolean | 
 | 
| If logs should be shown from the Gitea container. Environment variable:  | boolean | 
 | 
| The exposed HTTP port for the Gitea container. If not specified, it will pick a random port Environment variable:  | int | |
| The Admin username for the Gitea container. Environment variable:  | string | 
 | 
| The Admin password for the Gitea container. Environment variable:  | string | 
 | 
| The organization to be created when the Dev Service starts. Environment variable:  | list of string | |
| Repositories to be created when the Dev Service starts. A repository may optionally include an organization reference. For example, "my-org/my-repo" will create a repository named "my-repo" in the "my-org" organization. The organization will be created if missing. If no organization is specified, the repository will be created as a user repository. Environment variable:  | list of string | 
 | 
| Should the container be reused? Environment variable:  | boolean | 
 | 
| The network alias for the container. Other containers in the same network can use this alias to connect to this container. Environment variable:  | string | |
| The HTTP URL of the dev services. Generated once the service is up and running. Environment variable:  |