GitSync API
ToolJet’s git sync CI/CD APIs enable organizations to programmatically manage the complete lifecycle of their ToolJet applications within their existing CI/CD piplines. With these RESTful APIs, you can configure git sync, push and pull changes from Git repositories, and automate application deployments without manual intervention.
By integrating these APIs into your CI/CD pipelines (e.g., Jenkins, GitHub Actions, GitLab CI), you can:
- Automate git sync operations to eliminate manual syncing via the ToolJet UI.
- Implement enterprise-grade deployment strategies with standardized governance.
- Streamline development cycles, ensuring your internal apps follow the same release processes as your core applications.
The following APIs are available to manage git sync within your CI/CD pipeline.
Add GitHub HTTPS Git Configuration
- Description: Configure GitHub HTTPS settings for an organization by associating a GitHub App and repo.
- URL:
/api/ext/organization/git
- Method: POST
- Authorization:
Basic <access_token>
- Content-Type:
application/json
- Body: The body object can contain the following fields:
organizationId
(string, required): UUID of the organization.gitUrl
(string, required): Full HTTPS Git URL.branchName
(string, required): Branch to sync with (e.g., "main").githubAppId
(string, required): GitHub App ID.githubAppInstallationId
(string, required): GitHub App installation ID.githubAppPrivateKey
(string, required): GitHub App private key (PEM format).
Request Body Example
{
"organizationId": "45892c81-c1f0-48c6-8875-c2e4fca516f8",
"gitUrl": "https://github.com/username/repository.git",
"branchName": "main",
"githubAppId": "123456",
"githubAppInstallationId": "78910",
"githubAppPrivateKey": "-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----"
}
- Response:
201 Created
Push an App Version to GitHub
- Description: Push a specific app version to the configured GitHub repository.
- URL:
/api/ext/apps/:appId/versions/:versionId/git-sync/push
- Method: POST
- Authorization:
Basic <access_token>
- Content-Type:
application/json
- Params:
- appId (string): The ID of the app.
- versionId (string): The ID of the app version.
- Body: The body object can contain the following fields:
commitMessage
(string, required): Git commit message.
Request Body Example
{
"commitMessage": "Updated app configuration and components"
}
- Response:
200 OK
Create a New App from GitHub
- Description: Creates a new ToolJet app from a GitHub repo.
- URL:
/api/ext/apps?createMode=git
- Method: POST
- Authorization:
Basic <access_token>
- Content-Type:
application/json
- Body: The body object can contain the following fields:
gitAppId
(string, required): Git App ID.gitVersionId
(string, required): Git version ID (branch or tag).organizationId
(string, required): UUID of the organization.
Request Body Example
{
"gitAppId": "app-123456",
"gitVersionId": "main",
"organizationId": "45892c81-c1f0-48c6-8875-c2e4fca516f8"
}
- Response:
201 Created
Sync and Pull Changes to Existing App from Git
- Description: Sync and pull the latest changes from GitHub for an existing ToolJet app.
- URL:
/api/ext/apps/:appId?createMode=git
- Method: PUT
- Authorization:
Basic <access_token>
- Content-Type:
application/json
- Params:
- appId (string): The ID of the app.
- Body: No body required.
- Response:
200 OK
Auto Promote App
- Description: Deploys an app by pulling the latest changes from Git and promoting the latest version to the production environment.
- URL:
/api/ext/apps/:appId/promote
- Method: POST
- Authorization:
Basic <access_token>
- Params:
- appId (string): ID of the app to deploy.
- Body: No body required.
- Response:
200 OK