目前,我正在使用用户名和密码访问C#.Net应用程序中的JIRA API。但是我需要访问JIRA API而不输入用户名和密码,即使没有哈希的用户名和密码也是如此。有没有办法创建API密钥并使用它来访问JIRA API?
答案 0 :(得分:2)
是的,JIRA为此目的支持OAuth,请参阅:https://developer.atlassian.com/display/JIRADEV/JIRA+REST+API+Example+-+OAuth+authentication
不幸的是,没有提供C#示例代码,但您应该能够在此处汇编其他编程语言的解决方案: https://bitbucket.org/atlassian_tutorial/atlassian-oauth-examples/src
无论如何,您应该使用通用的OAuth库。
答案 1 :(得分:1)
当您需要实际用户登录并且处于浏览器上下文中时,Oauth非常有用。
但是,对于未链接到任何特定用户(例如CI)的服务器到服务器通信,您可能需要在jira服务器上创建一个“机器人”帐户并使用API令牌进行身份验证。令牌的创建描述如下:https://confluence.atlassian.com/cloud/api-tokens-938839638.html
然后,您可以将[user-email]:[auth-token]用作基本auth的用户/密码。例子:
卷曲
curl -u bot@company.com:AAABBBCCC https://[company].atlassian.net/rest/api/latest/issue/DEV-123
NodeJS得到了:
const issueContent = await gotService.get(
'https://[company].atlassian.net/rest/api/latest/issue/DEV-123',
{
auth: 'bot@company.com:AAABBBCCC'
}
)
答案 2 :(得分:0)
最好的方法是阅读您所使用的JIRA版本的文档,因为不同的版本可能有不同的方式来处理Rest API。
对我而言,端点以下与基本身份验证一起工作:
curl -u username:password -X GET -H "Content-Type: application/json" http://localhost:8080/rest/api/2/issue/createmeta