lesstif/gitlab-jira-integration 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

lesstif/gitlab-jira-integration

最新稳定版本:0.7.0

Composer 安装命令:

composer create-project lesstif/gitlab-jira-integration

包简介

This is the advanced integrator GitLab CE(Community Edition) and Atlassian's JIRA.

README 文档

README

What is it?

Note

GitLab 8.3 now supported Advanced JIRA Integration in CE. see https://about.gitlab.com/2015/12/22/gitlab-8-3-released/

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.

How it works.

How it works.

Requirements

  • PHP >= 5.5.9
  • Lumen framework >= 5.1
  • php-jira-rest-client
  • Atlassian JIRA 6 or above
  • Gitlab CE 6 or above

Installation

  1. Download and Install PHP Composer.

    curl -sS https://getcomposer.org/installer | php
  2. clonning gitlab-jira-intergration project

    $ git clone https://github.com/lesstif/gitlab-jira-integration.git
  3. Run the composer install command.

    $ composer install
  4. 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.

  • login gitlab and click on Profile Settings
  • Click on Account
  • Here, You can find your private token. Private Token

Next, copy config.integration.example.json to config.integration.json.

$ 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"
    },
    "merging": {
        "message": "[~%s] COMMIT_MESSAGE with %s"
    }
}

transition

  • 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)

Usage

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

Configuration

gitlab web hook configuration

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')

Batch gitlab webhook registration.

  1. modify 'url' field and save to hook.json

    {
    "project_id": 5,
    "url": "https://localhost:9000/gitlab/hook/",
    "push_events": true,
    "issues_events": false,
    "merge_requests_events": true,
    "tag_push_events": true
    }
  2. modify url(ttp://my-host.com:9000/) to your url and running curl command

    curl -X POST -d @hook.json http://my-host.com:9000/gitlab/projects/add-hook-all-projects
  3. login gitlab and goto Choose > Project Settings -> Web Hooks. Then confirm your web hook settings.

Checking Installation

  1. To get started, let's running a curl command on your command line.

    curl http://myhost.com:9000/gitlab/user/list

You can see response json data including gitlab user list and created user list file to 'storage/app/users.json'. json { "1234": { "name": "KwangSeob Jeong", "username": "lesstif", "state": "active" } }

Usage

Referencing JIRA isssues

  • git commit with JIRA Issue Key(eg. TEST-123 or test-123)
  • Gitlab-Jira-Integrator will automatically add a comment in specific JIRA Issue.

Resolving or Closing JIRA isssues

  • 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.

Issue Time Tracking

not yet implemented.

License

Apache V2 License

See Also

统计信息

  • 总下载量: 12
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 68
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 68
  • Watchers: 11
  • Forks: 23
  • 开发语言: PHP

其他信息

  • 授权协议: Apache
  • 更新时间: 2015-07-30