用Python和Rest查询Jira

时间:2012-08-23 18:59:40

标签: python rest jira

我想在jira-users组中提取用户列表。据我所知,可以使用restkit来完成。

有没有人有任何示例或链接提供此示例?

感谢。

3 个答案:

答案 0 :(得分:4)

如果有人仍需要解决方案,您可以安装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

答案 1 :(得分:3)

Jira有一个用于外部查询的REST API,它使用HTTP协议进行请求和响应,响应内容形成为JSON。因此,您可以使用python的urllibjson包来运行请求,然后解析结果。

这是Atlassian的Jira REST API文档:http://docs.atlassian.com/jira/REST/latest/,例如检查用户API:http://docs.atlassian.com/jira/REST/latest/#id120322

考虑到您应该在发送请求之前进行身份验证,您可以在文档中找到必要的信息。

答案 2 :(得分:0)

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