SCM (Source control management) connection

In Release, you can store template versions inside a folder in a Source Control Management (SCM) tool. This provides easier management of all the artifacts, and provides the possibility to store them together with Releasefiles and Jenkinsfiles, and to configure and to use them from a release pipeline. You can define an SCM connection on a folder level or on a global level in Release.

Folder level configuration

To configure automatic synchronization in Release on a folder level:

  1. In the top navigation bar, click Design.
  2. Click Folders.
  3. Select a folder.
  4. Click Configurations.
  5. Under Properties, click the plus icon next to Source Control Management. The following options are available:

    • GitHub - template changes will be pushed to the configured GitHub repository.
    • BitBucket Cloud - template changes will be pushed to the configured BitBucket Cloud repository.
    • GitLab - template changes will be pushed to the configured GitLab repository.
    • Git - template changes will be pushed to the configured generic Git repository.
  6. Click Save.

Automatic synchronization

The selected template changes will be pushed to the configured repository when the new version of the template is created on the Version control page.

Global level configuration

To configure an SCM connection on a global level that is available throughout Release:

  1. In the top navigation bar, click Settings.
  2. Click Shared configuration.
  3. Under Properties, click the plus icon next to Source Control Management. The following options are available:

    • GitHub - template changes will be pushed to the configured GitHub repository.
    • BitBucket Cloud - template changes will be pushed to the configured BitBucket Cloud repository.
    • GitLab - template changes will be pushed to the configured GitLab repository.
    • Git - template changes will be pushed to the configured generic Git repository.
  4. Click Save.

For more information about configuration settings shared between folders and tasks, see Create custom configuration types.

GitHub connection options

To setup a GitHub connection:

  1. In the Title field, enter a symbolic name for the SCM configuration.
  2. In the Repository full name field, enter the qualified name of the GitHub repository (<organization_name>/<project_name>).
  3. In the Branch field, enter the name of the branch to which changes will be pushed. The default value is master.
  4. In the Credentials section, select one of the following:

    • Personal access token - Create your own personal access token in GitHub settings.
    • Username and password - Provide the username and password to access GitHub.
  5. Click Save.

BitBucket connection options

To setup a BitBucket connection:

  1. In the Title field, enter a symbolic name for the SCM configuration.
  2. In the Repository full name field, enter the qualified name of the BitBucket repository (<organization_name>/<project_name>).
  3. In the Branch field, enter the name of the branch to which changes will be pushed. The default value is master.
  4. In the Credentials section, select one of the following:

    • API key - Provide the BitBucket team name and API key.
    • Username and password - Provide the login username and password to access BitBucket.
    • App password - Provide the username and app password for BitBucket.
  5. Click Save.

GitLab connection options

To setup a GitLab connection:

  1. In the Title field, enter a symbolic name for the SCM configuration.
  2. In the Repository full name field, enter the qualified name of the GitLab repository (<organization_name>/<project_name>).
  3. In the Branch field, enter the name of the branch to which changes will be pushed. The default value is master.
  4. In the Credentials section, select :

  5. Click Save.

Git connection options

To setup a generic Git connection:

  1. In the Title field, type the name of the repository.
  2. In the Repository URL field, type the full repository address (<http_address_of_the_server>/<organization_name>/<project_name>).
  3. In the Branch field, select the repository branch to push to. Note that the branch has to exist on the remote repository beforehand. The default value is master.
  4. In the Username and Password fields, enter the server log-in user ID and password.
  5. Click Save.

This connection differs from others in that it will work with any remote git repository, because it uses the git protocol, but it will clone the remote repository locally before being able to push. In cluster mode, this means each node will have its own clone of the repository. It is possible to specify the directory that the repositories will be saved to locally, by setting the property xl.scm.workdir-path in the configuration file XL_RELEASE_SERVER_HOME/conf/xl-release.conf. By default, the property is ${xl.repository.workDir}/scm_repos. See The Release work directory for more information about Release work directory.