An open API service indexing awesome lists of open source software.

https://github.com/albertocoletta/jitlab

Integrating Jira and GitLab for faster developers’ workflow
https://github.com/albertocoletta/jitlab

agile agile-development developer-tools gitlab golang jira kanban scrum

Last synced: about 2 months ago
JSON representation

Integrating Jira and GitLab for faster developers’ workflow

Awesome Lists containing this project

README

          

After implementing [this project in Python](https://github.com/boh717/jitab), I decided to learn Go and see what I could come up with. The result is quite satisfactory (not perfect though).

## Configuration Prerequisites

Start with the following json file (e.g. ~/.jitlab.json)

```json
{
"gitlab": {
"baseurl": ,
"groupid": ,
"token":
},
"jira": {
"baseurl": ,
"token": ,
"username":
},
"branchPrefix": ,
"branchSuffix": ,
"keyCommitSeparator":
}
```

where:
- `` is a token with `api` permissions and you can issue one here https://gitlab.com/profile/personal_access_tokens (or similar URL if you are on-premise)
- `` is the ID of the group your project belongs to
- `` can be issued here: https://id.atlassian.com/manage-profile/security/api-tokens
- `branchPrefix` is what you want to be *prefixed* to every branch you create
- `branchSuffix` is what you want to be *appended* to every branch you create
- `keyCommitSeparator` is what you want to separate the jira key and your commit message

## Board Prerequisites

Jitlab works with both kanban and scrum workflows, but on jira there's a third board type (`simple`) which screws things up.

A `simple` board can be both... And its purpose is to help people setting up boards fast.

Jitlab treats by default `kanban` and `simple` the same way, but if you're using `scrum` workflow and your team's board is `simple`, then jitlab won't work.

In future releases I may fix this problem or simply ask to change your board type to `scrum`.

## Configuration

Once you fulfilled all the requirements, start using jitlab by configuring it.

Run `jitlab config` and follow the questions you'll be asked. You should run this command only once (or if you change the board).

Your `.jitlab.json` will be updated.

## Project init

Every project you want to use jitlab with should be initialized.

Run `jitlab init` to do it. This will create a local `.repo` file with the project information.
For example:
```json
{
"id": 12345678,
"name": "Jitlab",
"description": "An awesome tool",
"path": "jitlab"
}
```

## Working on tasks

Jitlab will read issues from jira and will create a local git branch according to the jira task title.

Use `jitlab new` to pick up tasks from your chosen columns.

Branches will follow this naming convention `TEST-12-your-branch-title`.

## Pushing changes

Jitlab supports `git commit` and will automatically prefix the message with the jira key. One example could be `TEST-12: awesome message` where `:` is your chosen key commit separator.

Run `jitlab commit -m 'awesome message'`

## Creating merge request

Once you're happy with your changes, you can create the merge request issuing `jitlab mr`.