Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Panel

Table of Contents
maxLevel2

...

Your use of this download is governed by Stonebranch’s Terms of Use, which are available at  Stonebranch Integration Hub - Terms of Use.

Version Information

...

Overview

Jobs

...

-

...

as-code

...

Refer to Changelog for version history information.

Overview

Jobs-as-code is an approach to automating software delivery pipelines in which the job configuration is managed as code. This approach allows developers to manage job configurations just like they manage their application code complete with version control, testing, and continuous integration.

Regardless of whether you create your Universal Automation Center (UAC) job definitions using the drag-and-drop designer or as code in a development environment, the UAC jobs-as-code solution provides guidance and tools to integrate those definitions with a Git repository.

Key Features

...

 Software Requirements

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

...

Area

...

Description

...

Python Version

...

Requires Python version 3.7.  Tested with the Universal Agent bundled Python distribution (python version 3.7.16)

...

Python Libraries

...

  • PyGithub: For exporting and importing UAC Definitions from GitHub

  • ruamel.yaml : The installation of the package is recommended but not mandatory for the "Export to Git Repository" action in YAML format. This package ensures that the exported UAC definitions are well-structured with optimal layout and indentation.

...

Universal Agent

...

Both Windows and Linux agents are supported:

  • Universal Agent for Windows x64 Version >= 7.2.0.0

  • Universal Agent for Linux Version >= 7.2.0.0

...

Universal Controller

...

Universal Controller Version >= 7.2.0.0

...

Network and Connectivity

...

This integration needs outbound HTTPS connectivity with GitLab, GitHub, or Bitbucket Cloud for exporting and importing UAC Definitions in addition to HTTPS outbound connectivity to the Universal Controller for retrieving the UAC Definitions and importing them from Git.

...

GitLab

...

Supported editions:

  • GitLab Community Edition (REST API v16.6)

  • GitLab Enterprise Edition (REST API v16.6)

...

GitHub

Supported plans:

...

Version Information

Template NameExtension NameExtension Version
Jobs As Codeue-jobs-as-code1.2.1

Refer to ChangeLog for version history information.

Anchor
Software Requirements
Software Requirements

Software Requirements

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

Area

Description

Python Version

Requires Python version 3.7.  Tested with the Universal Agent bundled Python distribution (python version 3.7.16)

Python Libraries

  • PyGithub: For exporting and importing UAC Definitions from GitHub

  • ruamel.yaml : The installation of the package is recommended but not mandatory for the "Export to Git Repository" action in YAML format. This package ensures that the exported UAC definitions are well-structured with optimal layout and indentation.

Universal Agent

Both Windows and Linux agents are supported:

  • Universal Agent for Windows x64 Version >= 7.2.0.0

  • Universal Agent for Linux Version >= 7.2.0.0

Universal Controller

Universal Controller Version >= 7.2.0.0

Network and Connectivity

This integration needs outbound HTTPS connectivity with GitLab, GitHub, or Bitbucket Cloud for exporting and importing UAC Definitions in addition to HTTPS outbound connectivity to the Universal Controller for retrieving the UAC Definitions and importing them from Git.

GitLab

Supported editions:

  • GitLab Community Edition (REST API v16.6)

  • GitLab Enterprise Edition (REST API v16.6)

GitHub

Supported plans:

  • GitHub Free (X-GitHub-Api-Version:2022-11-28)

  • GitHub Pro (X-GitHub-Api-Version:2022-11-28)

  • GitHub Team (X-GitHub-Api-Version:2022-11-28)
  • GitHub Enterprise Cloud (X-GitHub-Api-Version:2022-11-28)

BitBucket

Support plans:

  • Bit Bucket Cloud

Azure DevOps

Supported plans:

Azure DevOps Services (Cloud Version) for Git Repos hosted on Azure DevOps Platform

  • Azure DevOps Services (Cloud Version) for Git Repos hosted on Azure DevOps Platform

Key Features

FeatureDescription
List UAC DefinitionsQuery UAC definitions prior to running an actual export to Git, to validate the selection criteria, without any write operations in the target repository. This feature should provide a list of UC 
definitions that can then be exported to a Git repository.
Export to Git RepositoryExport selected UAC Definitions to the selected Git Repository. By using this feature, the UAC user will be able to export the selected UAC Definitions to an external Git repository.
After the export, this repository can be used as a backup or as a basis for developer collaboration on top of a source version control system.
Import from Git RepositoryImport selected UAC Definitions. stored already in Git, back to the selected Universal Controller. This feature provides the opportunity for restoration of the UC server (recovery scenarios)
or for updating UAC Definitions. 
For UC version 7.3, or higher, the import feature can be triggered by using webhooks.


Supported Actions

Action: List UAC Definitions

Query UAC definitions prior to running an actual export to Git, to validate the selection criteria, without any write operations in the target repository. This feature should provide a list of UC 
definitions that can later be exported to a Git repository.

Configuration examples


User Scenario: Query all UAC Definitions are stored in UAC except Scripts and Custom Days, without a proxy connection.User Scenario: Query all UAC Definitions that are part of a workflow with the name 'test-workflow', with a proxy connection.

...

Export selected UAC Definitions to the selected Git Repository. By using this feature, the UAC user can export the selected UAC Definitions to an external Git repository. After the export, this repository can be used as a backup or as a basis for developer collaboration on top of a source control versioning system.

Configuration examples


User Scenario: Export to Gitlab UAC Definitions contained in Bundle with name uc_bundle except for Email and Peoplesoft Connections. The selected definitions will be stored under the "/export folder" under the "export/7.3" branch in .yaml format.

User Scenario: Export to Azure DevOps UAC Definitions. Organization and repository names must be included in the Git Service Provider 
URL.

...

Import UC definitions manually

User ScenarioImport the specified files stored in the corresponding paths of Add, Modify, and Remove Definitions Lists from GitHub to UAC. Files under the Add list will be added to UAC, and files under the Modify list will modify existing definitions. Definitions of their paths under the Remove list will be deleted from UAC.User Scenario: Import from GitHub all the files that are stored under the "export/7.3" branch and modify the existing corresponding UAC Definitions.

...

  1. Create a new Global Event Template that shall receive the Git provider’s Webhook payload. Set option "Unmapped Attributes Policy" to "Include Attributes".

  2. Create a Universal Monitor and link it with the Global Event Template created in Step 1.

  3. Create a Universal Monitor Trigger assigning to it

    1. the Universal Monitor created in Step 2

    2. a Jobs as Code Task that should be triggered when a new Git Webhook is invoked. The integration task should be configured to utilize the event’s webhook payload (see sections Parse GitLab/GitHub Webhook Payload, Parse Bit Bucket and Azure DevOps Webhook Payload), stored in UAC built-in variable ${ops_trigger_<universal_monitor_name>_payload}.

  4. Set up a repository Webhook in the integrated GitLab/GitHub/BitBucket platform and select the "Push" trigger option. Link the Webhook to the Universal Controller Event created in Step 1 as follows:

    1. If the controller URL is https://somehost.yourdomain.com/uc/, the Webhook’s target URL should be https://<uc_user>:<us_password>@somehost.yourdomain.com/uc/resources/universalevent/push/<name of the event>.
      A Webhook can also be configured with a secret token for enhanced security. More information about this feature can be found for GitHub and GitLab providers.11.

...

Field

Default value

Type

Required

Description

Introduced In Version

Action

List UAC Definitions

Choice

Required

Action performed upon the task execution. Available actions are as follows.

  • List UAC Definitions

  • Export to Git Repository

  • Import from Git Repository

1.0.0

Universal Controller URL

-

Text

Required

The Universal Controller URL will be used to query and import UC Definitions.

1.0.0

Universal Controller Credentials

-

Credentials

Required

Universal Controller credentials that provide access to the Universal Controller Web Services.

The user should be configured with "Web Service Access=True".

1.0.0

UC SSL Certificate Verification

True

Boolean

Required

Enables/Disables certificate verification against Universal Controller URL. For example, if self-signed certificates are used to connect with UAC.

1.0.0

Selection Method

Business Service

Choice

Required

Select or filter specific UC Definitions for listing or exporting to Git repository. 
The available options are as follows.

  • Business Service

  • Bundle

  • Definition Name (Regex)

  • Workflow

  • Trigger

Visible only when the selected action is List UAC Definitions or Export to Git Repository.

1.0.0

Selection Name

-

Dynamic Choice

Required

The corresponding filter value for the Selection Method Field. When the selected Selection Method is Definition Name, the value provided in the
field works as a filter applied on UC Definitions name. The value should be a regex as well as a free text. For example, if the selection name is
"jobs-as-code" then all the definitions that contain this name will be listed. On the other hand, if the value is ".*" then the all supported definitions
of UC will be listed (or exported).

Visible only when the selected action is List UAC Definitions or Export to Git Repository.

1.0.0

Selection Exclude List

-

Choice

Optional

Exclude various UC Definition types of resources from the selection.

Visible only when the selected action is List UAC Definitions or Export to Git Repository.

1.0.0

Git SSL Certificate Verification

True

Boolean

Optional

Enables/Disables certificate verification against Git Service Provider URL. 

Visible only when the selected action is Import from Git Repository or Export to Git Repository.

1.0.0

Git Service Provider

GitLab

Choice

Optional

The Git service provider the task is using.
The available options are as follows.

  • GitLab

  • GitHub

  • Bitbucket

  • Azure DevOps 

Visible only when the selected action is Import from Git Repository or Export to Git Repository.

1.0.0

Git Service Provider URL

-

Text

Optional

The Git service provider URL the task is using. 

Examples for each Git Provider Version:

Visible only when the selected action is Import from Git Repository or Export to Git Repository.

1.0.0

Git Credentials

-

Credentials

Optional

The credentials that should be used to access the Git repository. The Credentials definition should be as follows.

  • A username of your choice is "Runtime username".

  • Git Service Provider "Token" as "Token".

Visible only when the selected action is Import from Git Repository or Export to Git Repository.

1.0.0

Git Repository

-

Dynamic Choice

Optional

The repository the task will use to import or export UAC Definitions. The list of values is retrieved from the Git Service Provider.
Accepts also UC variables set with Set Variable Action

Visible only when the selected action is Import from Git Repository or Export to Git Repository.

1.0.0

Git Repository Branch

-

Dynamic Choice

Optional

The repository branch that the task will use to import or export UAC Definitions. The list of values is retrieved from the Git Service Provider.
Accepts also UC variables set with Set Variable Action

Visible only when the selected action is Import from Git Repository or Export to Git Repository.

1.0.0

Git Repository Path

-

Text

Optional

  • For Export: Specify a specific path in a repository as a target.

  • For Import: validate the Git files against the Git folder path they belong to, or leave them empty for no validation.

Visible only when the selected action is Import from Git Repository or Export to Git Repository.

1.0.0

Git Repository File Format

Yaml

Choice

Required

The file format is used to read and write in the Git repository. The available options are as follows.

  • Yaml

  • JSON

Visible only when the selected action is Import from Git Repository or Export to Git Repository.

1.0.0

Git Commit Message

-

Text

Optional

The optional git commit message for the commits that will take place during export. The commit message
that will be displayed in the Git provider will have [uac push] as prefix. For example, if the commit message is "test export" the
resulting commit message that will be displayed on the Git provider will be "[uac push] test_export".

Visible only when the selected action is Export to Git Repository.

1.0.0

Add UC Definitions List

-

Text

Optional

The comma-separated list of Git file paths that should be used to create UC Definitions. Type "*" to select all files from Git provider and 
add them to UAC.
Accept UC variables as input.

Visible only when the selected action is Import from Git Repository.

1.0.0

Modify UC Definitions List

-

Text

optional

The comma-separated list of Git file paths that should be used to modify UC Definitions. Type "*" to select all files from Git provider and 
modify the corresponding definitions of UAC.
Accept UC variables as input.

Visible only when the selected action is Import from Git Repository.

1.0.0

Remove UC Definitions List

-

Text

Optional

The comma-separated list of Git file paths that should be used to remove UC Definitions. Type "*" to select all files from Git provider and 
remove the corresponding definitions of UAC.
Accept UC variables as input.

Visible only when the selected action is Import from Git Repository.

1.0.0

Proxy Type

-- None --

Choice

Optional

What type of proxy is in use (if any). The available options are as follows.

  • -- None --

  • HTTP

  • HTTPS

  • HTTPS With Credentials

1.0.0

Proxy

-

Text

Optional

Proxy server and port.

1.0.0

Proxy Credentials

-

Credentials

Optional

Credentials to be used for the proxy when the selected Proxy Type is HTTPS With Credentials.

1.0.0

Proxy CA Bundle File

-

Text 

Optional

The path to a custom certificate bundle to use when establishing SSL/TLS connections with proxy.

Visible only when the selected Proxy Type is HTTPS With Credentials.

1.0.0

Webhook Payload

-

Text

Optional

Through this field the user can provide the Bitbucket webhook payload from which the task executed will extract the Added, Modified, and Removed Definition Lists.

Note: Pass the webhook payload in this field only when integrating with Bitbucket. For all other Git webhook integrations, use the other three Definitions' List fields.

1.1.0

...

Anchor
changelog
changelog

Changelog

ue-jobs-as-code-1.2.1 (2023-01-23)

Fixes

  • Fixed: Http Code 404 when validating git file paths for Azure DevOps in action `Import from Git Repository` (#35567).

  • Fixed: Wrongly picking up from `Webhook Payload`, committed files that include keywords `yaml` or `json` in their file path, for Azure DevOps in action `Import from Git Repository` (#35570).

ue-jobs-as-code-1.2.0 (2023-12-

...

24)


Enhancements

  • AddedSupport for Azure DevOps Services (Cloud Version) for Git Repos hosted on Azure DevOps Platform (#34932). 

Fixes

  • Fixed: Error when executing an Import action specifying "*" in the added, modified or deleted uc definition list(#35167).

...

  • Added: Support Bit Bucket Git Service Provider (#32243).

  • Added: Update output only field “Extension Status” with execution information (#32153).

Fixes

  • Fixed: Connect to GitLab client over Proxy with “Git SSL Verification” set to True (#32138).

  • Fixed: Connect to GitHub Enterprise Server edition (#34507).

  • Fixed: Handle exception HTTPError 500, raised when listing UC definitions with unresolved items (for instance: unresolved Credentials) (#32982).

...

  • Bugfix: The "Export to Git Repository" action now retains UAC definitions in a well-structured YAML format with optimal layout and indentation. Please check the Software Requirements section for more information.

...