Connect Jira and GitLab
Use Jira as the tracker and GitLab for the code, including boards with German column names.
Many teams plan in Jira and keep their code in GitLab. kanman supports this combination: stories come from a Jira project, code changes go to GitLab as merge requests, and GitLab pipelines count as CI in the outcome gate.
You can also combine Jira with GitHub code, or use GitLab issues as the tracker. The rules below are the same.
Jira
What kanman does with Jira
| Area | What happens |
|---|---|
| Issues | kanman mirrors the issues of one Jira project that carry the pickup label (kanman by default). The Jira project stays the source of truth. |
| Pickup | An issue is picked up when it has the pickup label and sits in a status that maps to the Ready role. |
| Intake | Approved stories are created as Jira issues of type Task, with the pickup label. |
| Transitions | kanman moves issues through your workflow when a run starts, reaches Review or is merged. |
| Comments | The evidence pack is posted as one comment on the issue; the pull request is added as a link. |
The kanman user
kanman acts in Jira as a normal user, so you can see in Jira’s history what it did. We recommend a dedicated Jira account, for example [email protected] with the display name “kanman”, with access to the project and permission to browse, create, edit, transition and comment on issues.
Connect
Workspace owners and admins connect Jira under Settings > Trackers. The team setup leads there too: Connect Jira in its first step opens the page, and Continue team setup takes you back with your choices kept.
- Choose where your Jira runs:
- Jira Cloud: your site URL, for example
https://acme.atlassian.net, the email address of the kanman user and an API token of that user. Create the token in the Atlassian account under Security > API tokens. - Jira Server or Data Center: the address of your Jira, for example
https://jira.acme.de, and a personal access token of the kanman user, created in the Jira profile under Personal Access Tokens.
- Jira Cloud: your site URL, for example
- Select Test connection. kanman signs in with the token and shows the account it will act as.
- Select Save connection. The token is stored encrypted and is never shown again. To replace it, save the form again.
Your Jira must be reachable from the internet over https.
When you set up a team on this connection, the Project and repositories step offers the projects of your Jira as suggestions. Pick the project key, and kanman reads the project’s workflow statuses and uses them as the team’s columns. The next step maps them to roles.
Changes in Jira reach kanman within a few minutes. For instant updates, a Jira administrator adds a webhook for issue and comment events under System > WebHooks, with the URL and secret kanman gives you. kanman rejects webhook deliveries without a valid signature.
Map statuses to column roles
Jira statuses differ per project. In the Columns step of the team setup (later under Tracker in the team settings), you map each status to one of kanman’s roles. kanman suggests a mapping from the status names (Suggest roles in the team settings).
Boards with German status names are mapped like this by default:
| Jira status | kanman role |
|---|---|
| Backlog | backlog |
| Verfeinerung | refining |
| Bereit | ready |
| In Arbeit | in_progress |
| QS | review |
| Fertig | done |
Other common names are recognized too, for example “Zu erledigen” (backlog), “Bereit zur Entwicklung” (ready), “In Prüfung” (review) and “Erledigt” (done). Check the suggestion before you confirm. A status without a role is left alone: kanman never moves an issue into it.
Note
kanman only uses transitions that exist in your Jira workflow. If no transition leads from the current status to a status of the wanted role, the move is not mirrored to Jira and the failed tracker write is recorded in the audit log. Add the transition to your workflow.
GitLab
What kanman does with GitLab
| Area | What happens |
|---|---|
| Code | kanman clones the project, works on its own branch per run and pushes it. |
| Merge requests | One merge request per story, with the evidence pack as a comment. |
| CI | GitLab pipelines on the merge request count as CI in the outcome gate. |
| Issues | Optional: GitLab issues can be the tracker instead of Jira, with the kanman label as pickup rule. Statuses are labels, scoped labels such as workflow::In Arbeit included. |
Connect
Connect GitLab under Settings > Git, on the GitLab card. Each person connects their own account; the account of the admin who sets up a team is the one kanman uses for that team’s repositories.
- gitlab.com: select Connect gitlab.com and confirm in GitLab, or use an access token as below.
- Your own GitLab server: select Use an access token, enter the address of your GitLab, for example
https://gitlab.acme.de, and an access token. Leave the address empty for gitlab.com.
The token can be a personal, group or project access token. It needs the api scope, so kanman can clone, push the run branches, open merge requests and read pipelines. Test checks the token without saving it; Connect saves it. The card then shows the account and the GitLab server, for example “Connected as kanman on gitlab.acme.de”.
Pick the repositories
In the team setup, choose GitLab as the code host in the Project and repositories step when your tracker is Jira. kanman lists the projects your GitLab account can reach. Pick them from the list or type their path, for example platform/payments/api; subgroups are supported. The team’s repositories are saved as GitLab repositories, and kanman clones and pushes them on your GitLab server.
You can add repositories later under Repositories in the team settings. New repositories use the team’s code host.
Self-managed GitLab
kanman works with self-managed GitLab instances the same way as with gitlab.com. Connect with an access token and the address of your instance as described above. Your instance must be reachable from the internet over https, so kanman can reach its API and clone over https.
Coming in a later release
The evidence comment on merge requests and the pipeline result in the outcome gate on self-managed instances. Until then, these work on gitlab.com; on your own server, check the merge request yourself before you merge.
Protected branches and approvals
GitLab’s protected branches and merge request approval rules apply to kanman like to everyone else. Allow pushes to kanman/* branches, and keep the target branch protected.
Troubleshooting
| Symptom | Likely cause |
|---|---|
| Issues in Ready are not picked up | They do not have the pickup label, or their status is not mapped to the Ready role. Check Preview pickup in the team’s Tracker settings. |
| A move does not show up in Jira | Your Jira workflow has no transition between the two statuses. The audit log shows the failed tracker write. |
| Changes in Jira take a few minutes | No webhook is set up. Use Sync now in the team’s Tracker settings, or ask for the webhook details. |
| A run waits for CI | No pipeline runs for merge requests. Check the rules or only settings in .gitlab-ci.yml. |
| Test connection says Jira could not be reached | The address is wrong, not https, or your Jira is only reachable inside your company network. |
GitLab says the token needs the api scope |
The token is read-only. Create a new token with the api scope. |
Last updated: January 1, 0001
Open kanman