Skip to content

Forgejo

Not available until the next release main

Introduction

The Testcontainers module for Forgejo, a self-hosted Git forge. Forgejo is a community-driven fork of Gitea, providing a lightweight code hosting solution.

Adding this module to your project dependencies

Please run the following command to add the Forgejo module to your Go dependencies:

go get github.com/testcontainers/testcontainers-go/modules/forgejo

Usage example

ctx := context.Background()

forgejoContainer, err := forgejo.Run(ctx, "codeberg.org/forgejo/forgejo:11")
defer func() {
    if err := testcontainers.TerminateContainer(forgejoContainer); err != nil {
        log.Printf("failed to terminate container: %s", err)
    }
}()
if err != nil {
    log.Printf("failed to start container: %s", err)
    return
}

Module Reference

Run function

  • Not available until the next release main

The Forgejo module exposes one entrypoint function to create the Forgejo container, and this function receives three parameters:

func Run(ctx context.Context, img string, opts ...testcontainers.ContainerCustomizer) (*Container, error)
  • context.Context, the Go context.
  • string, the Docker image to use.
  • testcontainers.ContainerCustomizer, a variadic argument for passing options.

Image

Use the second argument in the Run function to set a valid Docker image. In example: Run(context.Background(), "codeberg.org/forgejo/forgejo:11").

Container Options

When starting the Forgejo container, you can pass options in a variadic way to configure it.

Admin Credentials

  • Not available until the next release main

Use WithAdminCredentials(username, password, email) to set the admin user credentials. An admin user is automatically created when the container starts. Default credentials are forgejo-admin / forgejo-admin.

Configuration via Environment

  • Not available until the next release main

Use WithConfig(section, key, value) to set Forgejo configuration values using the FORGEJO__section__key environment variable format. See the Forgejo Configuration Cheat Sheet for available options.

The following options are exposed by the testcontainers package.

Basic Options

Lifecycle Options

Files & Mounts Options

Build Options

Logging Options

Image Options

Networking Options

Advanced Options

Experimental Options

Container Methods

The Forgejo container exposes the following methods:

ConnectionString

  • Not available until the next release main

The ConnectionString method returns the HTTP URL for the Forgejo instance (e.g. http://localhost:12345).

SSHConnectionString

  • Not available until the next release main

The SSHConnectionString method returns the SSH endpoint for Git operations.