我想提取 jira-users 组中的用户列表。据我了解,它可以通过 Python 使用 restkit 来完成。
有没有人有任何示例或链接可以举例说明?
谢谢。
如果有人仍然需要解决方案,您可以安装 JIRA rest api lib https://pypi.python.org/pypi/jira/。只是您问题的一个简单示例:
from jira.client import JIRA
jira_server = "http://yourjiraserver.com"
jira_user = "login"
jira_password = "pass"
jira_server = {'server': jira_server}
jira = JIRA(options=jira_server, basic_auth=(jira_user, jira_password))
group = jira.group_members("jira-users")
for users in group:
print users
Jira 有一个用于外部查询的 REST API,它使用 HTTP 协议进行请求和响应,并且响应内容形成为 JSON。因此,您可以使用 pythonurllib
和json
包来运行请求,然后解析结果。
这是 Atlassian 的 Jira REST API 文档:http://docs.atlassian.com/jira/REST/latest/,例如检查用户 API:http ://docs.atlassian.com/jira/REST/latest/# id120322
考虑到您应该在发送请求之前进行身份验证,您可以在文档中找到必要的信息。
import urllib2, base64
import requests
import ssl
import json
import os
from pprint import pprint
import getpass
UserName = raw_input("Ener UserName: ")
pswd = getpass.getpass('Password:')
# Total number of users or licenses used in JIRA. REST api of jira can take values of 50 incremental
ListStartAt = [0,50,100,150,200,250,300]
counter = 0
for i in ListStartAt:
request = urllib2.Request("https://jiraserver.com/rest/api/2/group/member?groupname=GROUPNAME&startAt=%s" %i)
base64string = base64.encodestring('%s:%s' % (UserName, pswd)).replace('\n', '')
request.add_header("Authorization", "Basic %s" % base64string)
gcontext = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
result = urllib2.urlopen(request, context=gcontext)
JsonGroupdata = result.read()
jsonToPython = json.loads(JsonGroupdata)
try:
for i in range (0,50):
print jsonToPython["values"][i]["key"]
counter = counter+1
except Exception as e:
pass
print counter