Links

Configure an agent with GitLab

In order to view recipe results and commit changes from a recipe back to GitLab, you'll need to create a GitLab OAuth app and configure the Moderne agent with the appropriate variables.
To assist with that, this guide will:

Prerequisites

  • You will need administrator access to your organization's GitLab account

GitLab configuration

Step 1: Create an OAuth application

  1. 1.
    Navigate to the Applications page for your organization: https://gitlab.com/groups/<yourorg>/-/settings/applications
  2. 2.
    Provide an application name and redirect URI. The redirect URI will be in this format: https://<tenantname>.moderne.io:
  3. 3.
    Pick the following scopes:
  4. 4.
    Click the Save application button
  5. 5.
    Copy the Application ID and Secret from this page; they will be used as arguments for the Moderne Agent:

Agent configuration

Step 2: Configure the Moderne Agent

The following table contains all of the variables/arguments you need to add to your Moderne agent run command in order for it to work with your GitLab instance. Please note that these variables/arguments must be combined with ones found in other steps in the Configuring the Moderne agent guide.
You can configure multiple GitLab OAuth apps by including multiple entries, each with a different {index}.
OCI Container
Executable JAR
Variables:
  • MODERNE_AGENT_GITLAB_{index}_OAUTH_CLIENTIDThe application id configured in GitLab.
  • MODERNE_AGENT_GITLAB_{index}_OAUTH_CLIENTSECRETThe secret configured in GitLab.
  • MODERNE_AGENT_GITLAB_{index}_URLThe fully-qualified hostname of your GitLab instance.
  • MODERNE_AGENT_BITBUCKET_{index}_SKIPSSL(Optional) Specifies whether or not to skip SSL validation for HTTP connections to this GitLab instance. This must be set to true if you use a self-signed SSL/TLS certificate. Defaults to false.
  • MODERNE_AGENT_GITLAB_{index}_SSH_PRIVATEKEY(Optional) The SSH private key used to establish a SSH connection with GitLab.
  • MODERNE_AGENT_GITLAB_{index}_SSH_PASSPHRASE(Required if the SSH private key is specified and encrypted with a passphrase) The passphrase used to encrypt the SSH private key.
  • MODERNE_AGENT_GITLAB_{index}_SSH_SSHFILENAME(Required if the SSH private key is specified) The file name of the private key, which the agent will store locally.
  • MODERNE_AGENT_GITLAB_{index}_SSH_USER(Required if the SSH private key is specified) The username used for SSH communication with GitLab.
  • MODERNE_AGENT_GITLAB_{index}_SSH_PORT(Optional) The port used to communicate via SSH with GitLab. Defaults to 7999.
Example:
docker run \
# ... Existing variables
-e MODERNE_AGENT_GITLAB_0_OAUTH_CLIENTID=yourClientId \
-e MODERNE_AGENT_GITLAB_0_OAUTH_CLIENTSECRET=yourClientSecret \
-e MODERNE_AGENT_GITLAB_0_URL=https://your-gitlab.com \
# ... Additional variables
Arguments:
  • --moderne.agent.gitlab[{index}].oauth.clientIdThe application id configured in GitLab.
  • --moderne.agent.gitlab[{index}].oauth.clientSecretThe secret configured in GitLab.
  • --moderne.agent.gitlab[{index}].urlThe fully-qualified hostname of your GitLab instance.
  • --moderne.agent.gitlab[{index}].skipSsl(Optional) Specifies whether or not to skip SSL validation for HTTP connections to this GitLab instance. This must be set to true if you use a self-signed SSL/TLS certificate. Defaults to false.
  • --moderne.agent.gitlab[{index}].oauth.includePrivateRepos(Optional) By default, the OAuth app will only have access to public repositories within your organization(s). To provide the OAuth app access to private repositories, you can set this to true.
  • --moderne.agent.gitlab[{index}].ssh.privateKey(Optional) The SSH private key used to establish a SSH connection with GitLab.
  • --moderne.agent.gitlab[{index}].ssh.passphrase(Required if the SSH private key is specified and encrypted with a passphrase) The passphrase used to encrypt the SSH private key.
  • --moderne.agent.gitlab[{index}].ssh.sshFileName(Required if the SSH private key is specified) The file name of the private key, which the agent will store locally.
  • --moderne.agent.gitlab[{index}].ssh.user(Required if the SSH private key is specified) The username used for SSH communication with GitLab.
  • --moderne.agent.gitlab[{index}].ssh.port(Optional) The port used to communicate via SSH with GitLab. Defaults to 7999.
Example:
java -jar moderne-agent-{version}.jar \
# ... Existing arguments
--moderne.agent.gitlab[0].oauth.clientId=yourClientId \
--moderne.agent.gitlab[0].oauth.clientSecret=yourClientSecret \
--moderne.agent.gitlab[0].url=https://your-gitlab.com \
# ... Additional arguments