Configuring Git Repository

You can connect a Git repository when you manage extensibility artifacts such as configurations, scripts, and Domain-Specific Languages (DSLs), in source control. Connecting a Git repository enables version control, collaboration, and change tracking for these artifacts.

After you configure the Git repository, you can commit updates through your standard Git workflow, including branching, pull requests, and reviews.

To configure a Git repository:

  1. Create git.json by cloning git_template.json.
  2. Configure git.json.

Configuring git.json

The git.json file defines the remote Git repository, branch, and authentication settings used by the following scripts:

  • gen.sh or gen.bat with --download-from-git
  • gitUpload.sh or gitUpload.bat

You can configure the following parameters in git.json:

Parameter Used in Description
uploadTargetBranch Upload (Optional) Use this parameter to specify the branch to push HEAD to. If blank, defaults to uploadCheckoutBranch.
uploadCheckoutBranch Upload (Optional) Use this parameter to specify the branch to check out or create locally before upload. If blank, defaults to main.
sshPrivateKeyPath

Download and upload

(Optional) Use this parameter to specify the private key file path used only for SSH URLs.

If blank, the default SSH configuration or agent is used. The key can be placed in the current working directory, or you can provide an absolute path.

remoteRepositoryUrl Download and upload (Required) Use this parameter to specify the remote Git repository URL to clone, push, or tag against - HTTP, HTTPS, or SSH.
integrationConfigurationsDirectory Download and upload

(Optional) Relative path inside the cloned repository used for integration configurations.integrationConfigurationsDirectory acts as the cloned content root for the Git sync payload.

Under this root, the following content is read or written:

  • integration-configurations/
  • config.json
  • profile.json

In the download flow, content is copied from this location to the local workspace.

In the upload flow, content is copied from the local workspace to this content root. The upload flow creates the content root when it is missing.

If integrationConfigurationsDirectory is omitted or blank, the cloned repository root is used as the default cloned content root.

httpsTrustSourcePath Download and upload

(Optional) Use this parameter to specify the HTTPS trust source path. This parameter accepts the following inputs:

  • Certificate files, such as .pem, .crt, or .cer, or
  • Truststores, such as .jks, .p12, or .pfx. For some JKS files, Java can still load certificates with a null password. In this case, the integrity check is skipped, and Git operations may still succeed.

Certificates or truststores can be placed in the current working directory, or you can provide an absolute path. This field is ignored for SSH repository URLs.

gitUsername Download and upload (Optional) Use this parameter to specify the user name for HTTP or HTTPS authentication. Used with GIT_TOKEN for authenticated access.
downloadSourceBranch Download (Required) Use this parameter to specify the branch used as the clone source for download.
Note:
  • For HTTP or HTTPS repository URLs, if you provide gitUsername, you must also set GIT_TOKEN by using --git-token in the entry scripts (gen.sh or gen.bat).
  • For truststore inputs in httpsTrustSourcePath, pass the truststore password in the entry scripts using one of the following parameters:
    • --git-trusttore-password
    • --git-truststore-password

This is strongly recommended for truststore files.

For some JKS files, Java can still load certificates with a null password. In this case, the integrity check is skipped, and Git operations may still succeed.

Sample git.json
{
  "remoteRepositoryUrl": "git@github.com:openint-conf/siebel-open-integration-configurations.git",
  "downloadSourceBranch": "main",
  "gitUsername": "",
  "uploadCheckoutBranch": "feature/openint-config-sync",
  "uploadTargetBranch": "main",
  "sshPrivateKeyPath": "/Users/username/.ssh/id_rsa",
  "integrationConfigurationsDirectory": "integration-configurations",
  "httpsTrustSourcePath": "/Users/username/certs/internal-ca.pem"
}