You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何使用Jira.CreateOAuthRestClient获取Jira问题

参数取值说明

你调用的CreateOAuthRestClient是Atlassian SDK针对OAuth1.0鉴权场景提供的客户端工厂方法,4个核心参数的取值来源如下:

  • consumerKey:Jira管理员在后台配置「应用链接(Application Links)」入站OAuth规则时,自定义填写的消费者标识,无默认值,需要向你的Jira实例管理员索取。
  • consumerSecret:和上述consumerKey配对的RSA私钥字符串,配置入站OAuth时生成,使用默认RsaSha1签名方法时,该值必须包含-----BEGIN RSA PRIVATE KEY-----和-----END RSA PRIVATE KEY-----的完整私钥内容。
  • oAuthAccessToken:走完OAuth1.0三步授权流程(请求令牌、用户授权、换取访问令牌)后,Jira返回的访问令牌值,注意这个值不是你提到的个人私密访问令牌(PAT)。
  • oAuthTokenSecret:和上述oAuthAccessToken配对返回的令牌密钥,同样是OAuth授权流程的产出值。

重要提示:如果你手里只有Jira基础URL和个人私密访问令牌(PAT),你不需要用这个OAuth方法初始化客户端——PAT是给Basic HTTP鉴权场景用的,直接调用CreateRestClient传入账号和PAT即可,不需要凑OAuth相关参数。

参考C#示例代码

OAuth鉴权场景调用示例

using Atlassian.Jira;
using System;
using System.Linq;

public class JiraOAuthClient
{
    public static void Main()
    {
        // 替换为你的实际参数
        string jiraBaseUrl = "https://your-jira-instance.com/";
        string consumerKey = "your-app-consumer-key";
        string rsaPrivateKey = @"-----BEGIN RSA PRIVATE KEY-----
你的RSA私钥全量内容
-----END RSA PRIVATE KEY-----";
        string accessToken = "oauth-flow-returned-access-token";
        string accessTokenSecret = "oauth-flow-returned-token-secret";

        // 初始化客户端
        var jiraClient = Jira.CreateOAuthRestClient(
            url: jiraBaseUrl,
            consumerKey: consumerKey,
            consumerSecret: rsaPrivateKey,
            oAuthAccessToken: accessToken,
            oAuthTokenSecret: accessTokenSecret,
            oAuthSignatureMethod: JiraOAuthSignatureMethod.RsaSha1
        );

        // 拉取单个问题
        var singleIssue = jiraClient.Issues.GetIssueAsync("TEST-100").Result;
        Console.WriteLine($"问题Key:{singleIssue.Key}");
        Console.WriteLine($"标题:{singleIssue.Summary}");
        Console.WriteLine($"状态:{singleIssue.Status.Name}");
        Console.WriteLine($"经办人:{singleIssue.Assignee?.DisplayName ?? "未分配"}");

        // 用JQL搜索问题
        var openIssues = jiraClient.Issues.GetIssuesFromJqlAsync(
            jql: "project = TEST AND status = Open ORDER BY created DESC",
            maxIssues: 50
        ).Result.ToList();

        Console.WriteLine($"\n共查询到{openIssues.Count}个待处理问题:");
        foreach (var issue in openIssues)
        {
            Console.WriteLine($"{issue.Key} | {issue.Summary} | 报告人:{issue.Reporter?.DisplayName}");
        }
    }
}

个人访问令牌(PAT)鉴权场景调用示例

如果你持有的是个人私密访问令牌,直接用基础鉴权方式初始化即可,代码更简洁:

using Atlassian.Jira;
using System;

public class JiraPatClient
{
    public static void Main()
    {
        string jiraBaseUrl = "https://your-jira-instance.com/";
        string jiraAccountEmail = "your-account@company.com";
        string personalAccessToken = "你拿到的个人私密访问令牌";

        // PAT鉴权初始化:密码位传入PAT即可
        var jiraClient = Jira.CreateRestClient(jiraBaseUrl, jiraAccountEmail, personalAccessToken);

        // 拉取问题逻辑和上述OAuth场景完全一致
        var issue = jiraClient.Issues.GetIssueAsync("TEST-100").Result;
        Console.WriteLine($"问题标题:{issue.Summary}");
    }
}

内容的提问来源于stack exchange,提问作者Ankit Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 23:27:17