Github企业版包含了基本的issue和看板管理,对一般的团队已经足够。但是有的团队仍旧需要把自己习惯使用的Jira和Github企业版集成。这样,团队可以在Jira内看到他们的分支,提交信息,pull requests等等,可以让Github的代码提交记录和Jira的任务管理系统集成在一起,获得便利。
注:如果你想连接Jira和Github.com的帐号,相对比较简单,你简单的在Github官网的市场找到Github提供的插件就可以了,那个比较简单,这里不具体介绍了。
下面是具体的流程介绍:
第一步:在你的企业版帐号创建OAuth access token
一般在Github企业版里,我们会创建组织,把代码库放在组织里面管理。首先,用管理员账户登录,进去你的组织的首页。
- 点击Setting进入设置页面。
- 选择Developer settings -> OAuth Apps。
- 选择New Oauth App。
- 在页面内填写信息:
注意:
- Application name可以任意填写,主要是为了区分,我们这里就直接写了“Jira集成”。
- Homepage URL和Authorization callback URL,都是你自己的Jira部署的地址。既可以是Jira的云部署,也可以是私有部署。
然后点击Register application即可。提交后的结果页面会有Client ID和Client Secret,这是我们后续需要的。
在Github企业版里面的设置就结束了。
第二步:在Jira里面加入Github企业版连接
目前连接Jira和Github企业版的唯一方法还是需要DVCS插件。
- 用管理员账号登陆Jira。
- 选择settings,选择Applications。
- 从Integrations部分选择DVCS accounts.
- 进入后,点击Link Bitbucket Cloud or Github account按钮。
- Host选择Github Enterprise。
- Team or User Account填写你的组织的名字。
- Host URL就是你的企业版的首页地址
- Client ID和Client Secret就是之前我们在Github企业版里面获得的。
- 然后点击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实例,一般,就可以正常进行了。