Moving from GitLab? This guide helps you migrate repositories, CI/CD pipelines, and project data.
Key Differences
| Feature | GitLab | Kizuna |
|---|---|---|
| VCS | Git | Jujutsu (Git-compatible) |
| CI/CD | GitLab CI | Kizuna Actions (GitHub-compatible) |
| Issues | Built-in | Built-in with Kanban |
| AI Agents | Bolt-on (Duo) | First-class native |
| Licensing | Open-core (EE) | MIT (no feature walls) |
Repository Migration
Direct Import
bash
# Via Kizuna web UI
1. **New Repository** → **Import**
2. Select **Import from GitLab**
3. Enter GitLab URL and access token
4. Choose visibility and importManual Migration
bash
# Mirror from GitLab
git clone --mirror https://gitlab.com/user/repo.git
cd repo.git
git push --mirror https://kizuna.yourdomain.com/org/repoCI/CD Migration
GitLab CI → Kizuna Actions
Before (GitLab CI)
yaml
stages:
- test
- build
- deploy
test:
stage: test
image: node:20
script:
- npm ci
- npm test
only:
- merge_requests
- mainAfter (Kizuna Actions)
yaml
name: CI
on:
pull_request:
branches: [main]
push:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- run: npm testVariable Migration
| GitLab | Kizuna |
|---|---|
CI_COMMIT_SHA | GITHUB_SHA |
CI_PROJECT_NAME | GITHUB_REPOSITORY |
CI_JOB_TOKEN | KIZUNA_TOKEN |
Issues & Boards Migration
Export from GitLab
bash
# Export issues as CSV
# GitLab: Project → Issues → Export CSVImport to Kizuna
- Issues → Import
- Upload CSV file
- Map columns to Kizuna fields
- Import
Board Migration
Kizuna's Kanban board maps to GitLab boards:
| GitLab List | Kizuna Column |
|---|---|
| Backlog | Backlog |
| To Do | To Do |
| Doing | In Progress |
| Review | Review |
| Done | Done |
Container Registry Migration
Pull from GitLab, Push to Kizuna
bash
# Login to both registries
docker login registry.gitlab.com
docker login kizuna.yourdomain.com
# Pull, tag, push
docker pull registry.gitlab.com/org/project/image:tag
docker tag registry.gitlab.com/org/project/image:tag \
kizuna.yourdomain.com/org/project/image:tag
docker push kizuna.yourdomain.com/org/project/image:tagUpdate CI/CD References
yaml
# Before (GitLab)
image: registry.gitlab.com/org/project/builder:latest
# After (Kizuna)
jobs:
build:
container: kizuna.yourdomain.com/org/project/builder:latestPages Migration
GitLab Pages → Static Hosting
Kizuna doesn't include Pages. Alternatives:
- Cloudflare Pages: Direct integration
- Vercel: Git integration
- Netlify: Auto-deploy on push
Configure Cloudflare Pages
yaml
# .kizuna/workflows/pages.yml
name: Deploy to Cloudflare Pages
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: npm run build
- name: Deploy
uses: cloudflare/pages-action@v1
with:
apiToken: ${{ secrets.CF_API_TOKEN }}
accountId: ${{ secrets.CF_ACCOUNT_ID }}
projectName: my-site
directory: distNext Steps
- Kizuna Actions Guide — Learn CI/CD differences
- Agent Migration — Set up AI agents