3

我目前在 C# 中使用 Jira SOAP 接口(我想这里使用的语言并不是非常重要)。

基本上,我正在创建一个 API 和一个 Winform 来包装肥皂服务的一些功能,以便我们的开发人员可以在我们的应用程序出现问题时以编程方式添加错误。

作为其中的一部分,我需要知道 Jira 中使用的自定义字段 ID,而不是对它们进行硬编码(因为它们仍然容易偶尔发生变化)我在 jira-rpc api 中使用了GetCustomFields()方法,然后进行了过滤它,以便开发人员只需要知道字段的名称,然后自动为他们填写 ID。

这一切都很好,但有一个非常重要的附带条件:您以具有管理权限的用户身份登录到 SOAP/RPC 服务。

Jira 文档表明soap/rpc 服务遵循通常的工作流程和安全方案,但是我在任何地方都找不到任何似乎可以消除对枚举自定义字段的限制的任何东西(以及为什么在任何情况下您都希望有人拥有成为获得此访问权限的管理员,特别是因为自定义字段 id 往往位于 Jira 的 HTML 源中,这超出了我的范围)

有谁知道我是否错过了某个地方的设置?或者,如果有某种解决方法,没有硬编码自定义字段 ID?

还是必须深入研究 Jira 的 RPC 插件并修改其源代码才能提供所需的功能?

干杯

为了谷歌/后代而编辑

哇,一直到现在,看起来 Atlassian 仍然没有改变这种行为。

4

2 回答 2

1

您不会错过任何东西 - 无法通过标准 SOAP API 获取自定义字段。

在 JIRA Client 中,我们通过两种方式了解自定义字段:

  1. 我们通过问题导航器的 RSS 视图或通过特定问题的 XML 表示来下载问题。如果为问题设置了自定义字段,则 XML 将具有其 id、类和值(值)。

  2. 我们不时检查 IssueNavigator 搜索页面的内容 - 寻找自定义字段的搜索者。屏幕抓取 HTML 不仅为我们提供了自定义字段的 id,还为我们提供了枚举字段的可能值。

当然,这是骇人听闻的,而且可能会出错,所以一个好的 API 会好很多。

在您的情况下,我可以提出两种解决方案:

  1. 创建您自己的 SOAP(或 REST)远程 API 插件,该插件将为您提供您从标准 API 中遗漏的信息。由于您似乎可以控制 JIRA,因此您可以在那里安装任何东西。

  2. 屏幕抓取您需要提交的项目和问题类型的“新错误”页面。您将获得所有信息 - 字段、选项、默认值、哪个字段是必需的。

于 2009-11-01T01:41:56.473 回答
1

通过创建以管理用户身份登录、获取自定义字段然后注销的自定义字典来解决此问题。不理想,但它应该可以工作,直到 atlassian 改变事物

于 2009-10-23T11:01:24.497 回答