Git

Disclaimer

Your use of this download is governed by Stonebranch’s Terms of Use, which are available at https://www.stonebranch.com/integration-hub/Terms-and-Privacy/Terms-of-Use/.

Overview

Code is stored in repositories. One of the most popular source control tools is Git.

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

With Universal Automation Center, you can securely automate the synchronization of your local repositories with the cloud or internal repository servers.

Software Requirements

This integration requires a Universal Agent and a Python runtime to execute the Universal Task.

Software Requirements for Universal Template and Universal Task

Requires Python 3.7.0 or higher. Tested with the Universal Agent bundled Python distribution.

Software Requirements for Universal Agent

Either:

  • Universal Agent for Windows x64 Version 7.0.0.0 and later with python options installed.
  • Universal Agent for Linux Version 7.0.0.0 and later with python options installed.

Software Requirements for Universal Controller

Universal Controller Version 7.0.0.0 and later.

Software Requirements for the Application to be Scheduled

Git 1.7.0 or newer is required to be installed where Universal Agent is running.

Key Features

The Universal Extension for Git allows you to securely sync a branch from a remote repository to a local one.

The Universal Extension for Git supports the following main features:

  • Cloning a repository locally if it does not exist. Otherwise, a pull request is issued to get the latest changes from the specified remote branch of the selected repository.

  • Authentication:

    • HTTP/ HTTPS (User & Password)
    • Token (Access Token)
    • SSH (Supporting Passphrase) - Linux OS Only

Import Universal Template

To use this downloadable Universal Template, you first must perform the following steps:

  1. This Universal Task requires the Resolvable Credentials feature. Check that the Resolvable Credentials Permitted system property has been set to true.
  2. To import the Universal Template into your Controller, follow the instructions here.
  3. When the files have been imported successfully, refresh the Universal Templates list; the Universal Template will appear on the list.

Configure Universal Task

For the new Universal Task type, create a new task and enter the task-specific details that were created in the Universal Template

Input Fields

The input fields for this Universal Extension are described below.

FieldInput typeDefault valueTypeDescription
ActionRequiredCheckoutChoice

Available Action is:

  • CHECKOUT

Checkout action clones a Git repository branch locally if the target directory pointed by Path does not exist. The new directory is named after the repository name.

If the repository exist in the Path, git pull <repository> operation is performed to bring the latest revision locally. If differences exist between local and remote repositories, the remote repository will overwrite the local directory.

Authentication methodRequiredHTTPChoice

Available authentication methods are :

  • HTTP/HTTPS (Access Token)
  • HTTP/HTTPS (User and Password)
  • SSH

SSH authentication is available only on Linux Agents.
Repository URLRequired-Text

Repository's URL:

  • When the authentication method is HTTP/HTTPS (Access Token) or HTTP/HTTPS (User and Password) , the valid format of repository url is : https://host/path/to/repo.git
  • When the authentication method is SSH, the valid format of repository is : user@host/path/to/repo.git
Branch NameRequired-Choice

Branch name.

A dynamic drop-down list with all the branches from the remote repository. The agent and Credentials on which the task runs on should be specified, so that it looks up the branches on the repository

PathRequired-Text

Local path where the repository directory will be created. The local path resides on the execution environment of the Universal Agent.

Be sure to check your access rights on this location.

Access TokenConditional-Credentials

Access Token to be used to establish a Token Based authentication. Mandatory only for HTTP/HTTPS (Access Token) authentication method.

The Token field is not available on UAC7.0 or Agents 7.0. Please use the Runtime Password field to enter the Token. There is backwards compatibility from UAC7.1 to UAC7.0

HTTP(S) CredentialsConditional-CredentialsCredentials (User/Password) to be used for HTTP or HTTPS authentication to the Repository Service. Mandatory only for HTTP/HTTPS (User and Password) authentication method
SSH keyConditional-Credentials

SSH Credentials include the Key Location of the Private Key, with chmod permission 400 and a Passphrase if set.

Key Location field can be left empty only in case the user requires the key to be retrieved by the default user SSH key location (the user's .ssh folder) and the key is created without a passphrase.

Available only for Linux Agents:
Mandatory only for SSH Authentication Method

Accept HostkeyConditionalNoBoolean

Applicable only for SSH authentication method.

  • If "No" is selected, ssh will not automatically add host keys to the known_hosts file, and refuses to connect to hosts whose host key has changed.
  • If "Yes" is selected, ssh will automatically add new host keys to the user known_hosts files

Output Only Fields

The output fields for this Universal Extension are described below.

FieldTypeDescription
Commit idTextLast commit revision during the Checkout action.

Task Examples

Checkout action with Access Token

Checkout action with HTTP(s) User and Password

Checkout action with SSH

Credential Fields

Depending on the Authentication Method (Access Token, SSH, User and Password) use the respective fields as noted in the parenthesis below. Make sure to fill the required fields(*). All fields also can be filled if required.

  • The Token field is not present on UAC7.0 or Agents 7.0. Please use the Runtime Password field instead to enter the Token.

Branch Field Dialog

After pressing the search icon of branch field , and fill the fields as seen below, wait few second for the branch fields list to be populated.

Branch Field Choice Population dialog with Access Token

Task Output

Exit Codes

The exit codes are described below.

Exit CodeStatus Classification CodeStatus Description
0SUCCESSSUCCESS: Successful Task execution.
1FAILFAIL: < Error Description >.
20DATA_VALIDATION_ERRORDATA_VALIDATION_ERROR: Validation error. < Error Description >

Extension Output

The Extension Output for the Universal Task successful execution is described below.

{
   "exit_code":0,
   "status_description":"SUCCESS: Successful Execution",
   "changed":false,
   "invocation":{
      "extension":"ue-git-new",
      "version":"1.1.0",
      "fields":{
         "action":"checkout",
         "authentication_method":"http_access_token",
         "access_token_credentials":"****",
         "access_token_credentials_password":"****",
         "http_credentials_user":null,
         "http_credentials_password":null,
         "ssh_key_keyLocation":null,
         "ssh_key_pasphrase":null,
         "accept_hostkey":false,
         "repository":"https://gitlab.com/https_clone_address",
         "branch_name":"main",
         "path":"path/where/repo/folder/will/be/created"
      }
   },
   "result":{
      "commit_id":"afce61fd4e66823e588e17b8571c754323ac984599"
   }
}

Document References

This document references the following documents:

NameDescription
Universal TemplatesUser documentation for creating Universal Templates in the Universal Controller user interface.
Universal TasksUser documentation for creating Universal Tasks in the Universal Controller user interface.