Git integration
Git is a distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Windmill has a dedicated resource Type used for Git sync, to sync Windmill workspace to a remote repository that will automatically be committed and pushed scripts, flows and apps on each deploy.
More:
The first 5 minutes of this video show how to set up a Git repository for a workspace (Git sync - workspace mode), the rest of the video shows how to use it to deploy to a Prod workspace using GitHub Actions (Git sync - item mode):
GitHub App
Instead of using a long lived personal access token to authenticate with GitHub for Git sync, you can use the GitHub App to authenticate with GitHub. This allows you to control which repositories can be accessed by your Windmill deployment using a short-live GitHub app installation token.
GitHub App is available under Windmill Enterprise.
As a Windmill workspace admin, you can install the GitHub app to multiple organizations and link them to your Windmill workspaces. Once an app has been installed to a workspace, you can install it to other workspace where you have the admin role.
You will only be able to use the installation token for Git sync.
Importing / Exporting to/from other windmill instance
A GitHub app can only be installed to a GitHub organization once. Hence to associate an installation to multiple windmill instances you need to export the associated JWT token on the source instance using the "Export" button and paste the JWT in the destination instance to import the installation.
The JWT token associated to your GitHub app installation is sensitive and has the rights to request a short lived installation token. To revoke the JWT, you need to uninstall the GitHub app from your organization and re-install it to re-associate it with a windmill instance.