第 14 章 连接到 JIRA
在集成中,您可以连接到 JIRA 服务器来获取、创建或更新问题。JIRA 是一个规划、跟踪和管理软件开发项目的工具。每个 JIRA 环境都允许自定义工作流,这会影响集成中连接到 JIRA 的详情。您的 Jira 管理员的咨询应阐明详细信息。
以下主题提供了创建连接到 JIRA 服务器的集成的信息和流程:
14.1. 使用使用 OAuth 的 JIRA 服务器注册 Fuse Online
集成可以连接到使用 OAuth 协议验证访问的 JIRA 服务器。要启用此功能,请将 Fuse Online 环境注册为 JIRA 客户端应用程序。JIRA 客户端应用程序也称为 JIRA 用户。换句话说,您的 Fuse Online 环境是一个 Jira 消费者。
当 Jira 服务器只使用基本身份验证时,不需要注册。
按照以下步骤获取创建 Fuse Online 连接到 JIRA 所需的 JIRA OAuth 凭证。有关注册 Jira 用户的详情,包括通过示例服务器执行步骤的教程,请参阅有关 REST API 的 OAuth 的 JIRA 文档
使用 JIRA 服务器注册 Fuse Online 后,您可以使用 Fuse Online 创建与该 JIRA 服务器的连接。任何多个集成都可以使用相同的 JIRA 连接。但是,如果要创建另一个 JIRA 连接,则必须通过重复此处提供的注册步骤来获取另一组 OAuth 凭证。
主要步骤概述
注册过程中的主要步骤有:
- 获取 Atlassian 命令行应用程序,供您获取 OAuth 凭证。
-
运行下载的应用程序以创建
config.properties
文件。 - 创建一个公钥/私钥对,Fuse Online 用于访问 JIRA 服务器。
-
编辑
config.properties
文件以更新其某些值。 - 配置 JIRA 服务器,将 Fuse Online 环境识别为消费者应用程序。
- 获取 Fuse Online 访问 JIRA 服务器上的数据的 JIRA 访问令牌。
这些步骤各自有多个子步骤,以下步骤提供了详细信息。
先决条件
- JIRA 服务器管理权限。
- 熟悉命令行界面.
流程
获取 Atlassian 命令行应用程序,供您获取 OAuth 凭证:
-
前往
atlassian-oauth-examples
页面。 - 在左侧面板中,单击底部的 下载。
- 在 Downloads 页面中,点 Download repository。
- 将文件提取到您选择的目录中。
-
前往
运行下载的应用程序为 OAuth 凭证创建
config.properties
文件:- 在终端中,导航到包含提取内容的目录。
进入
java
目录并构建客户端:cd atlassianlabs-atlassian-oauth-examples-dd0264cad043/java mvn clean compile assembly:single
进入
目标目录
并生成config.properties
文件:cd target java -jar OAuthTutorialClient-1.0.jar requestToken
您可以忽略连接异常。在目标目录中,现在有一个
config.properties
文件,其中包含一些临时密钥。生成一个公钥/私钥对,Fuse Online 需要访问 JIRA 服务器的需求。虽然您可以在任何位置运行这些命令,但第一条指令会将您定向到特定目录以便方便:
- 导航到包含下载应用程序的目录。
生成私钥:
openssl genrsa -out jira_privatekey.pem 1024
获取公钥:
openssl req -newkey rsa:1024 -x509 -key jira_privatekey.pem -out jira_publickey.cer -days 365
此命令提示您输入 Fuse Online 环境的信息。或者,为了避免响应提示,请在命令中添加
-subj
选项。例如,在上面命令行的末尾,添加如下内容:-subj "/C=US/ST=New York/L=New York/O=MyCompany Ltd./OU=IT/CN=mysubdomain.mydomain.com"
导出密钥:
openssl pkcs8 -topk8 -nocrypt -in jira_privatekey.pem -out jira_privatekey.pcks8 openssl x509 -pubkey -noout -in jira_publickey.cer > jira_publickey.pem
您现在有四个文件:
jira_privatekey.pcks8
jira_privatekey.pem
jira_publickey.cer
jira_publickey.pem
获取私钥,没有标头、换行符和页脚:
cat jira_privatekey.pcks8 | grep -v 'PRIVATE'|awk '{print}' ORS=''
- 将私钥复制到剪贴板。
编辑
config.properties
文件:-
导航到包含
config.properties
文件的java/target
目录,并打开文件进行编辑。 -
在
config.properties
文件中,将私钥替换为您复制到剪贴板的私钥。 将
jira_home
设置改为 JIRA 服务器的 URL。如果您的 Jira 服务器使用https
,请务必指定https
。此外,您还需要转义冒号。例如:jira_home=https\://issues.mycompany.org
将
consumer_key
设置更改为Fuse Online App
。例如:consumer_key=Fuse Online App
-
保存并关闭
config.properties
文件。
-
导航到包含
配置 JIRA 服务器,将 Fuse Online 环境识别为消费者应用程序。您必须以管理用户身份登录到 JIRA 服务器。
- 选择 Settings ( )> Products > Application links。
在 Create new link input 字段中,输入任何 URL,例如,输入:
https://example.com
。这将显示一个显示没有收到响应的对话框,这是 okay,因为只需要单向通信。
点 Continue 以显示 Link applications 对话框。在此对话框中:
-
在 Consumer Key 字段中,输入
Fuse Online App
。 - 在底部,选择 Create incoming 链接。
- 在每个其他字段中输入任何值。每个字段都需要一个值。您输入的值无关紧要,因为不需要响应。
- 单击 Continue 以显示另一个对话框。
-
在 Consumer Key 字段中,输入
Fuse Online App
。 -
在 Consumer Name 字段中输入
Fuse Online App
。 -
在 Public Key 字段中,粘贴位于
jira_publickey.pem
文件中的公钥。务必仅粘贴没有标头和页脚的密钥。要显示密钥以便复制它,在包含jira_publickey.pem
文件的 目录中,请输入cat jira_publickey.pem
。 - 点 Continue。
-
在 Consumer Key 字段中,输入
获取 Fuse Online 访问 JIRA 服务器上的数据的 JIRA 访问令牌。在此流程开始时链接到的 JIRA OAuth 文档中,此步骤被称为 "The Oauth dance",因为 Fuse Online、Jira 服务器和 JIRA 管理员之间存在交换。
-
导航到包含整个过程第一步中下载的命令行应用程序的目录中的
java/target
目录。 从 JIRA 服务器获取请求令牌:
java -jar OAuthTutorialClient-1.0.jar requestToken
这将显示类似如下的内容:
Token: ec3dj4byySM5ek3XW7gl7f4oc99obAlo Token Secret: OhONj0eF7zhXAMKZLbD2Rd3x7Dmxjy0d Retrieved request token. go to https://jira101.atlassian.net/plugins/servlet/oauth/authorize?oauth_token=ec3dj4byySM5ek3XW7gl7f4oc99obAlo to authorize it
- 在另一个浏览器标签页中,前往该输出中提供的 URL。该页建议您进行 Jira,并提示您访问 Fuse Online App。
- 单击 Allow,它会显示一个 Access Approved 页面,其中包含验证代码。
- 将验证代码复制到剪贴板,并将它粘贴在某个位置,以便您可以轻松地检索它。
通过调用如下命令来获取访问令牌:在以下命令行示例中,最后一个值是验证代码。在运行的命令中,将示例验证代码替换为您在上一步中复制的验证代码。例如:
java -jar OAuthTutorialClient-1.0.jar accessToken qTJkPi
这个命令的输出是 Fuse Online 需要访问您的 JIRA 服务器的访问令牌。
-
导航到包含整个过程第一步中下载的命令行应用程序的目录中的
结果
JIRA 命令行应用程序更新 config.properties
文件,使其包含为 Fuse Online 配置 JIRA 连接所需的所有值。
后续步骤
创建一个 JIRA 连接。