Import repositories
Migrate from GitHub, GitLab, Bitbucket, or any git host.
What gets imported
gittan imports the git repository: all branches, tags, and commit history.
Issues, pull requests, wikis, and CI configuration are not migrated —
gittan does not have issues or PRs, and pipeline configuration is
auto-detected or defined in .gittan.yaml.
Supported platforms
| Platform | URL format | Token type |
|---|---|---|
| GitHub | https://github.com/owner/repo | Personal access token (repo scope) |
| GitLab | https://gitlab.com/owner/repo | Personal access token (read_repository scope) |
| Bitbucket | https://bitbucket.org/owner/repo | App password (Repositories: Read) |
| Gitea | https://your-instance/owner/repo | Access token with repo read |
| Self-hosted | Any HTTPS git URL | Specify --service explicitly |
Import via the web UI
Go to your team settings and select Import. Paste one or more repository URLs (one per line), provide an access token for the source platform, and click Import.
The platform is auto-detected from the URL. For self-hosted instances (e.g. your company's GitLab), select the platform manually.
Import via the CLI
# Import from GitHub
gittan repos import https://github.com/owner/repo --team <team-id> --token <pat>
# Import from GitLab
gittan repos import https://gitlab.com/owner/repo --team <team-id> --token <pat>
# Import from Bitbucket
gittan repos import https://bitbucket.org/owner/repo --team <team-id> --token <pat>
# Self-hosted GitLab (explicit service)
gittan repos import https://gitlab.company.com/team/repo --team <team-id> --token <pat> --service gitlab
# Overwrite existing repo
gittan repos import https://github.com/owner/repo --team <team-id> --token <pat> --update After import
Once imported, the repository is a normal gittan repo owned by the team you selected. Push to it like any other repo — pipeline feedback will stream to your terminal on the first push.
The import is a one-time clone, not a mirror. Changes on the source platform after import are not synced.