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
相关产品推荐
相关产品推荐

