The Version Control Tab of an API allows you to interact with an existing version control system (currently supported: GitLab, GitHub & Nexus). This feature is intended to be used by developers to work on a service and to push its current version to the repository from a node (a gateway which is managed by the Gateway Manager). It is also possible to add a tag to the commit. This allows the user to specify a tag later during a migration. If a developer needs to work on the current version of a branch, this can also be pulled from the repository to a node.
Configuration
The setup for an existing repository requires the following steps:
Create a repository in one of the supported version control systems (GitLab, GitHub & Nexus)
Create an SSH Key in the configuration menu of the Gateway Manager
Add the SSH Key to the repository to allow the Gateway Manager access to the repository (make sure write options are enabled if you intend to push a service definition to the repository)
Configure the version control tab of the API you want to manage within the repository
Create a repository
The creation of a repository in your chosen version control system is out-of-scope of this documentation. There is no special configuration needed during the setup. However, the repository should have an active branch (default: master branch) where files can be pushed to and pulled from.
Create a Gateway Manager SSH key
The creation of an SSH key for connecting to the created repository can be started in the tab “git Credentials” in the menu “Configuration” of the sidebar. The user has to have the “Administrator” role to be granted access to this menu. The screenshot below shows the layout of the menu:
To create a new SSH key, click on the button “Create new Entity”. The following pop-up requires you to add a name for the key. After the name has been entered, a click on “Save” shows the generated SSH key which can be copied to the clipboard by clicking the related button in the pop-up. If you want to copy the key at another point in time you can close the pop-up or click on “Back”. The key is shown together with the chosen name in the tab and the key can be seen and copied by clicking “Show Key”.
If the key is no longer needed, a click on “Delete” removes the SSH key and the references to this key in the configurations.
Add the key to the repository
The generated key needs to be added to the repository to allow access by the Gateway Manager. Example: For a GitLab repository, you click on the repository → Settings → Repository → Deploy Keys and copy the generated key as a new key entry.
Configuration of the version control for a specific API
For this step, a solution or a specific service can be chosen. The difference between both options is whether the version control tab inside the solution (described by a folder) is configured and used or a specific service is selected within the solution.
The version control tab is shown in the following screenshot:
To configure the screenshot, enter the repository connection string as shown in the screenshot. The corresponding SSH key can be selected from the Credentials drop-down menu. Only configured credentials (see above) are shown here. The last option to choose from is the format how the definitions are stored in the git repository. The Gateway Manager allows to formats: “GMU Single File” and “APIIDA Enhanced”. You can learn more about the differences between these options here:
After the configuration has been made, a click on “Save” saves the configuration and the Gateway Manager is ready to interact with the repository. If you wish to test the connection, click on “Check availability”. A successful connection will be signaled by a green message above the version control tab.