第 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 服务器管理权限。
  • 熟悉命令行界面.

流程

  1. 获取 Atlassian 命令行应用程序,供您获取 OAuth 凭证:

    1. 前往 atlassian-oauth-examples 页面
    2. 在左侧面板中,单击底部的 下载
    3. Downloads 页面中,点 Download repository
    4. 将文件提取到您选择的目录中。
  2. 运行下载的应用程序为 OAuth 凭证创建 config.properties 文件:

    1. 在终端中,导航到包含提取内容的目录。
    2. 进入 java 目录并构建客户端:

      cd atlassianlabs-atlassian-oauth-examples-dd0264cad043/java
      mvn clean compile assembly:single
    3. 进入 目标目录 并生成 config.properties 文件:

      cd target
      java -jar OAuthTutorialClient-1.0.jar requestToken

    您可以忽略连接异常。在目标目录中,现在有一个 config.properties 文件,其中包含一些临时密钥。

  3. 生成一个公钥/私钥对,Fuse Online 需要访问 JIRA 服务器的需求。虽然您可以在任何位置运行这些命令,但第一条指令会将您定向到特定目录以便方便:

    1. 导航到包含下载应用程序的目录。
    2. 生成私钥:

      openssl genrsa -out jira_privatekey.pem 1024
    3. 获取公钥:

      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"
    4. 导出密钥:

      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

    5. 获取私钥,没有标头、换行符和页脚:

      cat jira_privatekey.pcks8 | grep -v 'PRIVATE'|awk '{print}' ORS=''
    6. 将私钥复制到剪贴板。
  4. 编辑 config.properties 文件:

    1. 导航到包含 config.properties 文件的 java/target 目录,并打开文件进行编辑。
    2. config.properties 文件中,将私钥替换为您复制到剪贴板的私钥。
    3. jira_home 设置改为 JIRA 服务器的 URL。如果您的 Jira 服务器使用 https,请务必指定 https。此外,您还需要转义冒号。例如:

      jira_home=https\://issues.mycompany.org
    4. consumer_key 设置更改为 Fuse Online App。例如:

      consumer_key=Fuse Online App
    5. 保存并关闭 config.properties 文件。
  5. 配置 JIRA 服务器,将 Fuse Online 环境识别为消费者应用程序。您必须以管理用户身份登录到 JIRA 服务器。

    1. 选择 Settings ( cog )> Products > Application links
    2. Create new link input 字段中,输入任何 URL,例如,输入: https://example.com

      这将显示一个显示没有收到响应的对话框,这是 okay,因为只需要单向通信。

    3. Continue 以显示 Link applications 对话框。在此对话框中:

      1. Consumer Key 字段中,输入 Fuse Online App
      2. 在底部,选择 Create incoming 链接
      3. 在每个其他字段中输入任何值。每个字段都需要一个值。您输入的值无关紧要,因为不需要响应。
      4. 单击 Continue 以显示另一个对话框。
      5. Consumer Key 字段中,输入 Fuse Online App
      6. Consumer Name 字段中输入 Fuse Online App
      7. Public Key 字段中,粘贴位于 jira_publickey.pem 文件中的公钥。务必仅粘贴没有标头和页脚的密钥。要显示密钥以便复制它,在包含 jira_publickey.pem 文件的 目录中,请输入 cat jira_publickey.pem
      8. Continue
  6. 获取 Fuse Online 访问 JIRA 服务器上的数据的 JIRA 访问令牌。在此流程开始时链接到的 JIRA OAuth 文档中,此步骤被称为 "The Oauth dance",因为 Fuse Online、Jira 服务器和 JIRA 管理员之间存在交换。

    1. 导航到包含整个过程第一步中下载的命令行应用程序的目录中的 java/target 目录。
    2. 从 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
    3. 在另一个浏览器标签页中,前往该输出中提供的 URL。该页建议您进行 Jira,并提示您访问 Fuse Online App。
    4. 单击 Allow,它会显示一个 Access Approved 页面,其中包含验证代码。
    5. 将验证代码复制到剪贴板,并将它粘贴在某个位置,以便您可以轻松地检索它。
    6. 通过调用如下命令来获取访问令牌:在以下命令行示例中,最后一个值是验证代码。在运行的命令中,将示例验证代码替换为您在上一步中复制的验证代码。例如:

      java -jar OAuthTutorialClient-1.0.jar accessToken qTJkPi

      这个命令的输出是 Fuse Online 需要访问您的 JIRA 服务器的访问令牌。

结果

JIRA 命令行应用程序更新 config.properties 文件,使其包含为 Fuse Online 配置 JIRA 连接所需的所有值。

后续步骤

创建一个 JIRA 连接。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.