使用 C# 连接 Jira






4.83/5 (8投票s)
本技巧介绍如何使用 C# 连接 Jira。
引言
在我的当前项目中,我们使用 Atlassian Jira 进行问题跟踪和敏捷项目管理。我们最近迁移到 Jira,虽然 Jira 提供了大量的内置报告,但我们的需求迫使我寻找连接到 Jira 以获取数据的方法。本技巧介绍了使用 Atlassian SDK 连接到 Jira 的方法。
获取 SDK
可以使用 NuGet 从 此链接 安装 Atlassian Jira .NET SDK,或者在 Visual Studio 中提供的包管理器控制台中,使用以下命令:
Install-Package Atlassian.SDK -Version 2.2.0
Using the Code
以下代码展示了在 Visual Studio 项目中引用 Atlassian Jira .NET SDK 后,如何连接到 Jira。
using Atlassian;
namespace JiraResultsApp
{
class Program
{
static void Main(string[] args)
{
Jira jiraConn = new Jira("http://yourjiraurl.com/", jUserID, jPassword);
string jqlString = PrepareJqlbyDates("2014-03-01", "2014-03-31");
IEnumerable<Atlassian.Jira.Issue><atlassian.jira.issue>
jiraIssues = jiraConn.GetIssuesFromJql(jqlString , 999);
foreach(var issue in jiraIssues)
{
System.Console.WriteLine(issue.Key.Value +" -- "+ issue.summary);
}
}
static string PrepareJqlbyDates(string beginDate, string endDate)
{
string jqlString = "project = PRJ AND status = Closed AND
resolved >= "+beginDate+" AND resolved <= "+ endDate;
return jqlString;
}
}
}
代码解释
- 包含 "
using Atlassian
" - 使用以下行创建 Jira 连接实例:
Jira jiraConn = new Jira("http://yourjiraurl.com/", jUserID, jPassword);
- 此实例用于从 Jira 检索数据。
- 虽然我们在这里创建了 Jira 连接,但实际连接不会在这里发生。 而是当我们在下一行尝试检索数据时发生。
IEnumerable<Atlassian.Jira.Issue>?<atlassian.jira.issue> jiraIssues = jiraConn.GetIssuesFromJql(jqlString , 999);
- 方法
GetIssuesFromJql
接受两个参数,第一个:JQL 字符串,然后是搜索返回的最大问题数。 - 除了 JQL 之外,Jira 还提供了另一种使用过滤器获取数据的方法,如下所示:
jiraConn.GetIssuesFromFilter("My Filter");
- 一旦我们获得问题列表,就可以遍历问题并获取每个问题的详细信息。
- 我们还可以使用
GetIssue("IssueID")
获取特定问题的详细信息。 - 除了获取信息之外,SDK 还提供了其他方法,例如:
CreateIssue
:创建问题GetProjects
:获取 URL 中的项目列表
自定义字段
- 在访问字段信息时,您可能会注意到一个问题,并非所有字段都可以直接访问。 这是因为 Jira 允许我们按项目添加自定义字段。
- 因此,为了访问自定义字段,我们必须使用 "
CustomFields
",如下所示: - 在访问任何自定义字段之前,我们应该检查它们是否为
null
。string jStoryPoints = issue.CustomFields["Story Points"] != null ? issue.CustomFields["Story Points"].Values[0] : ""; string jDeveloper = issue.CustomFields["Developer"] != null ? issue.CustomFields["Developer"].Values[0] : ""; string jTester = issue.CustomFields["Tester"] != null ? issue.CustomFields["Tester"].Values[0] : "";
使用 SOAP 服务连接
- 除了使用 SDK 连接之外,我们还可以使用 Jira SOAP 服务连接。
- 此技巧 解释了如何使用 SOAP 服务连接。
- SDK 和 SOAP 服务支持的方法相同。
关注点
我学会了如何使用 SDK 和 SOAP 服务连接到 Jira。