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