- JIRA DVCS Connector Plugin does not support gitlab.
- GitLab Community Edition does not support Advanced JIRA Integration(EE only feature).
GitLab-JIRA-Integration is a small PHP standalone app executed by gitlab web hooks and interact with JIRA using JIRA-REST API. If you have questions contact to me or open an issue on GitHub.
- PHP > 5.4
- Lumen framework > 5.0
- php-jira-rest-client
- Atlassian JIRA 6 or above
- Gitlab CE 6 or above
-
Download and Install PHP Composer.
curl -sS https://getcomposer.org/installer | php
-
clonning gitlab-jira-intergration project
$ git clone https://github.com/lesstif/gitlab-jira-integration.git
-
Run the composer install command.
$ composer install
-
Now you need define your a Jira and Gitlab connection info into
.env
configuration.JIRA_HOST="https://your-jira.host.com" JIRA_USER="jira-username" JIRA_PASS="jira-password" GITLAB_HOST="https://your-gitlab.host.com" GITLAB_TOKEN="gitlab-private-token-for-api"
Tip: In the following steps, you will generate your private token for API.
Next, copy config.integration.example.json to config.integration.json
.
sh $ cp config.integration.example.json config.integration.json
Here is the default configuration, for interact with Jira.
{
"accept.host": [
"localhost",
"your-gitlab-host-here"
],
"transition": {
"message": "[~%s] Issue %s with %s",
"keywords": [
[
"Resolved",
"[resolve|fix]"
],
[
"Closed",
"[close]"
]
]
},
"referencing": {
"message": "[~%s] mentioned this issue in %s"
}
}
- message : "[~%s] issue %s with %s" : Converted to "User Issue Resolved with Commit URL"
- keywords: if commit message had second element(eg: resolve or fix),then issue status transition to first element.(eg : Resolved)
Run PHP standalone web server on the gitlab-jira integration server. (eg: my-host.com).
php artisan serve --host 0.0.0.0 --port 9000
- Choose > Project Settings -> Web Hooks.
- Setting URL to your gitlab-jira integration's running Host. (eg: http://my-host.com:9000/gitlab/hook)
Tip: If you decide to change the hook receiving URI from the default, Open the app/Http/routes.php file in a text editor and find this line:
$app->post('gitlab/hook',[
'as' => 'hook', 'uses' => 'GitlabController@hookHandler'
]);
change to 'gitlab/hook' to desired the URI (eg: 'gitlab/my-hook-receiver')
- git commit with JIRA Issue Key(eg. TEST-123 or test-123)
- Gitlab-Jira-Integrator will automatically add a comment in specific JIRA Issue.
- git commit with JIRA Issue Key and trigger keywords(eg. 'Closed TEST-123' or 'fix test-123')
- Gitlab-Jira-Integrator will automatically add a comment and closing(or fixing) directly in specific JIRA Issue by using trigger keywords(setting in config.integration.json) in commit message.
Apache V2 License