使用 api 获取自定义字段 ID 时如何使用凭据

How to use credentials when using api to fetch custom field Id

我是新手,还在学习阶段

环境:JIRA 服务器。

我尝试编写这个简单的程序来使用 Python 获取自定义字段 ID。

代码:

import requests

def custom_fields(): 响应 = requests.get("https://"JIRA URL"/rest/api/2/field")

#  # To test the response is working you need to get an output : 200
# print(response)
#
# # This will give you the output in String
# print(response.text)
# print(type(response.text))
#
# If you want to get the output in json format then try the following which will give you the output in list format.
#
# print (response.json())
# print(type(response.json()))

my_fields = response.json()

for field in my_fields:
    print(" Field Name :  {} Field Id : {}".format(field['name'], field['id']))

custom_fields()

并获得示例输出为:

字段名称:关键字段 ID:issuekey 字段名称:花费的时间字段 ID:timespent 字段名称:原始估算字段 ID:timeoriginalestimate 字段名称:项目字段 ID:项目 字段名称:Σ 花费的时间字段 ID:aggregatetimespent

我相信这是因为我没有在代码中使用凭据进行身份验证。我尝试遵循 link https://developer.atlassian.com/server/jira/platform/basic-authentication/ 并尝试将变量更新为

response = requests.get ("curl -u username:password -X GET -H 'Content-Type: application/json' https://"JIRA URL"/rest/api/2/field")

出现错误。

“找不到 {!r} 的连接适配器”.format(url)) requests.exceptions.InvalidSchema: 找不到连接适配器“curl -u username:password -X GET -H 'Content-Type: application/json' https://”JIR URL”rest/api/2/field"

你能指导我吗

问候 亚拉文·维斯瓦纳坦

header ={"Accept':'application/json",'authorization':f'Bearer {token}'}
response=request.get("{link}",headers=header)
print(response.json())

我想这可能对你有帮助。

是的,你完全正确。您错过了向 API 端点发送请求的身份验证。

可以通过两种方式完成:

  • 使用基本身份验证
headers = {
      'Authorization': '<Basic Auth Token>',
      'Content-Type': 'application/json',
}
response = requests.request("GET", JIRA_ENDPOINT, headers=headers)

  • 使用基于 JIRA 令牌的身份验证
auth = HTTPBasicAuth("demo_email@demo.com", "<JIRA_api_token>")

headers = {
   "Accept": "application/json"
}

response = requests.request(
   "GET",
   url,
   headers=headers,
   auth=auth
)

更多详情,你可以随时参考他们的documentation