team-ai-sync ships in the native CI/CD packaging format for each supported
platform:
- GitHub Actions for GitHub repositories.
- GitLab CI/CD Components for GitLab projects.
- Bitbucket Pipes for Bitbucket repositories.
Cross-platform sync is not the supported operating model. The GitHub package is documented and tested for GitHub repositories, the GitLab package for GitLab projects, and the Bitbucket package for Bitbucket repositories.
Use the stable GitHub Action tag:
- uses: paladini/team-ai-sync@v1
with:
github-token: ${{ secrets.TEAM_SYNC_ADMIN_PAT }}
config-path: sync-config.jsonGitHub target repositories use owner/repo values in targetRepositories.
Use the component from a GitLab source project:
include:
- component: gitlab.com/paladini/team-ai-sync/team-ai-sync@1.0.0
inputs:
config-path: sync-config.jsonBy default the component reads the token from a CI/CD variable named
GITLAB_TOKEN. To use a different variable name:
include:
- component: gitlab.com/paladini/team-ai-sync/team-ai-sync@1.0.0
inputs:
config-path: sync-config.json
token-variable-name: TEAM_SYNC_GITLAB_TOKENGitLab target projects may use group/project or group/subgroup/project
values in targetRepositories. The component creates or updates merge requests.
To publish the component in the GitLab CI/CD Catalog, mirror this repository to
GitLab, enable the CI/CD Catalog project setting, and create a SemVer tag.
The tag pipeline uses the release: keyword to publish the catalog release.
Use the pipe from bitbucket-pipelines.yml:
pipelines:
default:
- step:
name: Sync AI Assets
script:
- pipe: paladini/team-ai-sync:1.0.0
variables:
BITBUCKET_USERNAME: $BITBUCKET_USERNAME
BITBUCKET_TOKEN: $BITBUCKET_TOKEN
CONFIG_PATH: 'sync-config.json'Bitbucket target repositories use workspace/repo values in
targetRepositories. The pipe creates or updates pull requests.
Define both BITBUCKET_USERNAME and BITBUCKET_TOKEN. BITBUCKET_TOKEN
should be a Bitbucket API token with repository read/write and pull request
access. Bitbucket app passwords are not recommended for new setups.
The pipe can be used from its public Bitbucket repository and tag. Appearance in the public Bitbucket integrations list depends on Atlassian's pipe review and curation process.
GitLab and Bitbucket wrappers run the same versioned OCI image. The image is published to both registries:
paladini/team-ai-sync:<semver>
ghcr.io/paladini/team-ai-sync:<semver>
- Docker Hub — published from Bitbucket Pipelines on git tags (existing flow).
- GHCR — published from GitHub Actions (
.github/workflows/docker-publish.yml) onv*tags and viaworkflow_dispatch. WhenDOCKERHUB_USERNAME/DOCKERHUB_PASSWORDsecrets are set on GitHub, the same workflow also pushes to Docker Hub; otherwise Docker Hub remains Bitbucket-only.
Pin production usage to a SemVer tag. Avoid relying on mutable image tags for team-wide automation.
The first GHCR package may be created as private. To make it public:
- Open github.com/users/paladini/packages (or Packages on the repository page).
- Select
team-ai-sync. - Package settings → Change visibility → Public.