Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 61 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# testcontainers-git
[![codecov](https://codecov.io/gh/sparsick/testcontainers-git/branch/main/graph/badge.svg?token=F9R60M53IL)](https://codecov.io/gh/sparsick/testcontainers-git)
[![Java CI with Maven](https://github.com/sparsick/testcontainers-git/actions/workflows/maven.yml/badge.svg?branch=main)](https://github.com/sparsick/testcontainers-git/actions/workflows/maven.yml)
![Maven Central Version](https://img.shields.io/maven-central/v/io.github.sparsick.testcontainers.gitserver/testcontainers-git-parent)
![Maven Central Version](https://img.shields.io/maven-central/v/dev.parsick.testcontainers.gitserver/testcontainers-git-parent)


This project contains [Testcontainers](https://www.testcontainers.org/) implementations for several git (management) server:
Expand All @@ -22,7 +22,7 @@ The port is set by testcontainers' mechanism.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.github.sparsick.testcontainers.gitserver</groupId>
<groupId>dev.parsick.testcontainers.gitserver</groupId>
<artifactId>testcontainers-git-bom</artifactId>
<version>RELEASE</version>
<type>pom</type>
Expand All @@ -33,17 +33,17 @@ The port is set by testcontainers' mechanism.

<dependencies>
<dependency>
<groupId>io.github.sparsick.testcontainers.gitserver</groupId>
<groupId>dev.parsick.testcontainers.gitserver</groupId>
<artifactId>testcontainers-gitserver</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.github.sparsick.testcontainers.gitserver</groupId>
<groupId>dev.parsick.testcontainers.gitserver</groupId>
<artifactId>testcontainers-forgejo</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.github.sparsick.testcontainers.gitserver</groupId>
<groupId>dev.parsick.testcontainers.gitserver</groupId>
<artifactId>testcontainers-gitea</artifactId>
<scope>test</scope>
</dependency>
Expand All @@ -54,14 +54,14 @@ The port is set by testcontainers' mechanism.
```groovy
dependencyManagement {
imports {
mavenBom("io.github.sparsick.testcontainers.gitserver:testcontainers-git-bom:RELEASE")
mavenBom("dev.parsick.testcontainers.gitserver:testcontainers-git-bom:RELEASE")
}


dependencies {
testImplementation 'io.github.sparsick.testcontainers.gitserver:testcontainers-gitserver'
testImplementation 'io.github.sparsick.testcontainers.gitserver:testcontainers-forgejo'
testImplementation 'io.github.sparsick.testcontainers.gitserver:testcontainers-gitea'
testImplementation 'dev.parsick.testcontainers.gitserver:testcontainers-gitserver'
testImplementation 'dev.parsick.testcontainers.gitserver:testcontainers-forgejo'
testImplementation 'dev.parsick.testcontainers.gitserver:testcontainers-gitea'
}
```

Expand All @@ -77,10 +77,10 @@ Currently, there exists two flavour:
#### Git Server via SSH
The following sample shows how to use the git server container via SSH in a JUnit 5 test:
````java
import com.github.sparsick.testcontainers.gitserver.GitServerVersions;
import com.github.sparsick.testcontainers.gitserver.plain.GitServerContainer;
import com.github.sparsick.testcontainers.gitserver.plain.SshHostKey;
import com.github.sparsick.testcontainers.gitserver.plain.SshIdentity;
import dev.parsick.testcontainers.gitserver.GitServerVersions;
import plain.dev.parsick.testcontainers.gitserver.GitServerContainer;
import plain.dev.parsick.testcontainers.gitserver.SshHostKey;
import plain.dev.parsick.testcontainers.gitserver.SshIdentity;

@Testcontainers
public class GitServerContainerUsedInJUnit5Test {
Expand Down Expand Up @@ -117,8 +117,8 @@ public class GitServerContainerUsedInJUnit5Test {
The following sample shows how to use the git server container via HTTP without Basic Authentication in a JUnit 5 test:

````java
import com.github.sparsick.testcontainers.gitserver.GitServerVersions;
import com.github.sparsick.testcontainers.gitserver.http.GitHttpServerContainer;
import dev.parsick.testcontainers.gitserver.GitServerVersions;
import http.dev.parsick.testcontainers.gitserver.GitHttpServerContainer;

@Testcontainers
public class GitHttpServerContainerUsedInJUnit5Test {
Expand All @@ -139,9 +139,9 @@ public class GitHttpServerContainerUsedInJUnit5Test {
The next sample shows how to use the git server container via HTTP with Basic Authentication in a JUnit 5 test:

````java
import com.github.sparsick.testcontainers.gitserver.GitServerVersions;
import com.github.sparsick.testcontainers.gitserver.http.BasicAuthenticationCredentials;
import com.github.sparsick.testcontainers.gitserver.http.GitHttpServerContainer;
import dev.parsick.testcontainers.gitserver.GitServerVersions;
import http.dev.parsick.testcontainers.gitserver.BasicAuthenticationCredentials;
import http.dev.parsick.testcontainers.gitserver.GitHttpServerContainer;

@Testcontainers
public class GitHttpServerContainerUsedInJUnit5Test {
Expand All @@ -166,8 +166,8 @@ public class GitHttpServerContainerUsedInJUnit5Test {
Since 0.9.0 it is possible to configure HTTP proxy, programmatically.

````java
import com.github.sparsick.testcontainers.gitserver.GitServerVersions;
import com.github.sparsick.testcontainers.gitserver.http.GitHttpServerContainer;
import dev.parsick.testcontainers.gitserver.GitServerVersions;
import http.dev.parsick.testcontainers.gitserver.GitHttpServerContainer;

@Testcontainers
public class GitHttpServerContainerUsedInJUnit5Test {
Expand Down Expand Up @@ -200,8 +200,8 @@ The container exposes two protocols:
#### Cloning via HTTP

````java
import io.github.sparsick.testcontainers.gitserver.forgejo.ForgejoContainer;
import io.github.sparsick.testcontainers.gitserver.forgejo.ForgejoVersions;
import forgejo.dev.parsick.testcontainers.gitserver.ForgejoContainer;
import forgejo.dev.parsick.testcontainers.gitserver.ForgejoVersions;

@Testcontainers
public class ForgejoContainerUsedInJUnit5Test {
Expand Down Expand Up @@ -231,9 +231,9 @@ SSH public key authentication must be enabled explicitly with `.withSshKeyAuth()
The container registers the built-in key pair with Forgejo automatically on startup.

````java
import io.github.sparsick.testcontainers.gitserver.forgejo.ForgejoContainer;
import io.github.sparsick.testcontainers.gitserver.forgejo.ForgejoVersions;
import io.github.sparsick.testcontainers.gitserver.forgejo.SshIdentity;
import forgejo.dev.parsick.testcontainers.gitserver.ForgejoContainer;
import forgejo.dev.parsick.testcontainers.gitserver.ForgejoVersions;
import forgejo.dev.parsick.testcontainers.gitserver.SshIdentity;

@Testcontainers
public class ForgejoContainerUsedInJUnit5Test {
Expand Down Expand Up @@ -333,12 +333,45 @@ new GiteaContainer(GiteaVersions.V1_13_0.getDockerImageName())

In 0.5.x the package structure has changed.
The package `com.github.sparsick.testcontainers.gitserver` is split in `com.github.sparsick.testcontainers.gitserver.plain` and `com.github.sparsick.testcontainers.gitserver.http`.
Making this migration easier, an OpenRewrite recipe `io.github.sparsick.testcontainers.gitserver.rewrite.recipe.SplitPackage` is provided.
Making this migration easier, an OpenRewrite recipe `dev.parsick.testcontainers.gitserver.rewrite.recipe.SplitPackage` is provided.

````shell
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.recipeArtifactCoordinates=io.github.sparsick.testcontainers.gitserver:rewrite-testcontainers-gitserver:RELEASE \
-Drewrite.activeRecipes=io.github.sparsick.testcontainers.gitserver.rewrite.recipe.SplitPackage
-Drewrite.recipeArtifactCoordinates=dev.parsick.testcontainers.gitserver:rewrite-testcontainers-gitserver:RELEASE \
-Drewrite.activeRecipes=dev.parsick.testcontainers.gitserver.rewrite.recipe.SplitPackage
````

### Migration from 0.15.x to 0.16.x

In 0.16.x the Maven group id and Java package names have been relocated to `dev.parsick`.

Update the Maven coordinates from:

````xml
<groupId>io.github.sparsick.testcontainers.gitserver</groupId>
````

to:

````xml
<groupId>dev.parsick.testcontainers.gitserver</groupId>
````

Update imports from the old package names to the new `dev.parsick` package names, for example:

````java
import dev.parsick.testcontainers.gitserver.http.GitHttpServerContainer;
import dev.parsick.testcontainers.gitserver.plain.GitServerContainer;
import dev.parsick.testcontainers.gitserver.forgejo.ForgejoContainer;
import dev.parsick.testcontainers.gitserver.gitea.GiteaContainer;
````

An OpenRewrite recipe is provided to automate the migration:

````shell
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.recipeArtifactCoordinates=dev.parsick.testcontainers.gitserver:rewrite-testcontainers-gitserver:RELEASE \
-Drewrite.activeRecipes=dev.parsick.testcontainers.gitserver.rewrite.recipe.Relocation
````

## License
Expand Down
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>io.github.sparsick.testcontainers.gitserver</groupId>
<groupId>dev.parsick.testcontainers.gitserver</groupId>
<artifactId>testcontainers-git-parent</artifactId>
<version>0.16.0-SNAPSHOT</version>

Expand Down Expand Up @@ -208,7 +208,7 @@
<artifactId>spotbugs-maven-plugin</artifactId>
<version>4.9.8.4</version>
<configuration>
<onlyAnalyze>io.github.sparsick.testcontainers.gitserver.*</onlyAnalyze>
<onlyAnalyze>dev.parsick.testcontainers.gitserver.*</onlyAnalyze>
</configuration>
<executions>
<execution>
Expand Down
20 changes: 19 additions & 1 deletion rewrite-testcontainers-gitserver/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,27 @@
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>io.github.sparsick.testcontainers.gitserver</groupId>
<groupId>dev.parsick.testcontainers.gitserver</groupId>
<artifactId>testcontainers-git-parent</artifactId>
<version>0.16.0-SNAPSHOT</version>
</parent>

<artifactId>rewrite-testcontainers-gitserver</artifactId>
<name>Rewrite for Git Server for Testcontainers</name>

<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>META-INF/rewrite/classpath/**</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>

<dependencies>
<dependency>
Expand Down Expand Up @@ -47,6 +60,11 @@
<artifactId>rewrite-java-21</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.openrewrite</groupId>
<artifactId>rewrite-xml</artifactId>
<scope>runtime</scope>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.github.sparsick.testcontainers.gitserver.rewrite.recipe;
package dev.parsick.testcontainers.gitserver.rewrite.recipe;

import com.fasterxml.jackson.annotation.JsonCreator;
import java.util.Set;
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
type: specs.openrewrite.org/v1beta/recipe
name: io.github.sparsick.testcontainers.gitserver.rewrite.recipe.RenamePackageOfBasicAuthenticationCredentials
name: dev.parsick.testcontainers.gitserver.rewrite.recipe.RenamePackageOfBasicAuthenticationCredentials
displayName: Rename package of BasicAuthenticationCredentials
recipeList:
- org.openrewrite.java.ChangeType:
Expand All @@ -10,7 +10,7 @@ recipeList:

---
type: specs.openrewrite.org/v1beta/recipe
name: io.github.sparsick.testcontainers.gitserver.rewrite.recipe.RenamePackageOfGitServerContainer
name: dev.parsick.testcontainers.gitserver.rewrite.recipe.RenamePackageOfGitServerContainer
displayName: Rename package of GitServerContainer
recipeList:
- org.openrewrite.java.ChangeType:
Expand All @@ -20,7 +20,7 @@ recipeList:

---
type: specs.openrewrite.org/v1beta/recipe
name: io.github.sparsick.testcontainers.gitserver.rewrite.recipe.RenamePackageOfSshHostKey
name: dev.parsick.testcontainers.gitserver.rewrite.recipe.RenamePackageOfSshHostKey
displayName: Rename package of SshHostKey
recipeList:
- org.openrewrite.java.ChangeType:
Expand All @@ -30,7 +30,7 @@ recipeList:

---
type: specs.openrewrite.org/v1beta/recipe
name: io.github.sparsick.testcontainers.gitserver.rewrite.recipe.RenamePackageOfSshIdentity
name: dev.parsick.testcontainers.gitserver.rewrite.recipe.RenamePackageOfSshIdentity
displayName: Rename package of SshIdentity
recipeList:
- org.openrewrite.java.ChangeType:
Expand All @@ -40,12 +40,49 @@ recipeList:
---

type: specs.openrewrite.org/v1beta/recipe
name: io.github.sparsick.testcontainers.gitserver.rewrite.recipe.SplitPackage
name: dev.parsick.testcontainers.gitserver.rewrite.recipe.SplitPackage
description: Splitting origin package into plain and http specific ones.
displayName: Split package
recipeList:
- io.github.sparsick.testcontainers.gitserver.rewrite.recipe.RenamePackageOfSshIdentity
- io.github.sparsick.testcontainers.gitserver.rewrite.recipe.RenamePackageOfSshHostKey
- io.github.sparsick.testcontainers.gitserver.rewrite.recipe.RenamePackageOfGitServerContainer
- io.github.sparsick.testcontainers.gitserver.rewrite.recipe.RenamePackageOfBasicAuthenticationCredentials
- io.github.sparsick.testcontainers.gitserver.rewrite.recipe.RenamePackageOfGitHttpServerContainer
- dev.parsick.testcontainers.gitserver.rewrite.recipe.RenamePackageOfSshIdentity
- dev.parsick.testcontainers.gitserver.rewrite.recipe.RenamePackageOfSshHostKey
- dev.parsick.testcontainers.gitserver.rewrite.recipe.RenamePackageOfGitServerContainer
- dev.parsick.testcontainers.gitserver.rewrite.recipe.RenamePackageOfBasicAuthenticationCredentials
- dev.parsick.testcontainers.gitserver.rewrite.recipe.RenamePackageOfGitHttpServerContainer

---

type: specs.openrewrite.org/v1beta/recipe
name: dev.parsick.testcontainers.gitserver.rewrite.recipe.Relocation
description: Relocate package name and groupid to dev.parsick.
displayName: Relocate packages and groupid
recipeList:
- dev.parsick.testcontainers.gitserver.rewrite.recipe.RenameComPackage
- dev.parsick.testcontainers.gitserver.rewrite.recipe.RenameIoPackage
- org.openrewrite.xml.ChangeTagValue:
elementName: groupId
oldValue: io.github.sparsick.testcontainers.gitserver
newValue: dev.parsick.testcontainers.gitserver



---
type: specs.openrewrite.org/v1beta/recipe
name: dev.parsick.testcontainers.gitserver.rewrite.recipe.RenameComPackage
displayName: Rename package name example
recipeList:
- org.openrewrite.java.ChangePackage:
oldPackageName: com.github.sparsick
newPackageName: dev.parsick
recursive: true

---
type: specs.openrewrite.org/v1beta/recipe
name: dev.parsick.testcontainers.gitserver.rewrite.recipe.RenameIoPackage
displayName: Rename package name example
recipeList:
- org.openrewrite.java.ChangePackage:
oldPackageName: io.github.sparsick
newPackageName: dev.parsick
recursive: true

Loading