分类
Github企业版

如何集成Jira和Github企业版

Github企业版包含了基本的issue和看板管理,对一般的团队已经足够。但是有的团队仍旧需要把自己习惯使用的Jira和Github企业版集成。这样,团队可以在Jira内看到他们的分支,提交信息,pull requests等等,可以让Github的代码提交记录和Jira的任务管理系统集成在一起,获得便利。

注:如果你想连接Jira和Github.com的帐号,相对比较简单,你简单的在Github官网的市场找到Github提供的插件就可以了,那个比较简单,这里不具体介绍了。

下面是具体的流程介绍:

第一步:在你的企业版帐号创建OAuth access token

一般在Github企业版里,我们会创建组织,把代码库放在组织里面管理。首先,用管理员账户登录,进去你的组织的首页。

  1. 点击Setting进入设置页面。
  2. 选择Developer settings -> OAuth Apps。
  3. 选择New Oauth App。
  4. 在页面内填写信息:

注意:

  1. Application name可以任意填写,主要是为了区分,我们这里就直接写了“Jira集成”。
  2. Homepage URL和Authorization callback URL,都是你自己的Jira部署的地址。既可以是Jira的云部署,也可以是私有部署。

然后点击Register application即可。提交后的结果页面会有Client ID和Client Secret,这是我们后续需要的。

在Github企业版里面的设置就结束了。

第二步:在Jira里面加入Github企业版连接

目前连接Jira和Github企业版的唯一方法还是需要DVCS插件。

  1. 用管理员账号登陆Jira。
  2. 选择settings,选择Applications。
  3. 从Integrations部分选择DVCS accounts.
  4. 进入后,点击Link Bitbucket Cloud or Github account按钮。
  1. Host选择Github Enterprise。
  2. Team or User Account填写你的组织的名字。
  3. Host URL就是你的企业版的首页地址
  4. Client ID和Client Secret就是之前我们在Github企业版里面获得的。
  5. 然后点击Add,后面就会跟你的Github企业版连接,一路选择确定即可。

成功以后,在DVCS页面下方就有已经连接的组织和代码库的列表了。

第三步:代码提交的时候加入Jira的issue id

前面的步骤成功了以后,你在Github代码提交的时候,只要在message里提及了Jira的issue,在相应的issue页面里,就可以查看相关的代码提交记录了。

比如你有一个Jira的issue id叫做JIRA-11,那么你的github提交记录可以这么写:

git commit -m "JIRA-11 do some test about jira"
git push origin <branchname>

常见问题和解决

一、在Jira添加Github帐号的时候遇到错误信息“ Error obtaining access token. Cannot access https from Jira.”

有些Github企业版用户没有准备单独的购买的证书,所以它的https连接默认是不被浏览器和Jira的系统认可的。

解决方案有两个,购买证书给企业版服务域名,并配置好。或者我们可以把自带的证书,加入到Jira的Java实例的信任列表里。

步骤如下:

1、 从自己的网站获得证书文件(其中mygithub.mycorp.com为企业版的域名,mycert.cert为要保存的文件名)

echo -n | openssl s_client -connect mygithub.mycorp.com:443   | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > mycert.cert

2、把cert格式的证书转化成pem格式的

openssl x509 -in mycert.crt -out mycert.pem -outform PEM

3、把证书加入到Jira服务的Java实例里(假定你的Jira实例安装目录在/opt/atlassian/jira/)

keytool -import -alias githubcert -keystore /opt/atlassian/jira/jre/lib/security/cacerts -file mycert.pem

在这个过程,可能会询问你信任证书库的密码,默认密码为 changeit。

做好信任后,重启你的Jira实例,一般,就可以正常进行了。