2012-08-23 5 views
2

jira-users 그룹에서 사용자 목록을 가져 오려고합니다. 내가 이해하는 한, Restkit을 사용하여 파이썬으로 할 수 있습니다.Python과 나머지로 Jira 쿼리하기

예를 들어주는 예제 나 링크가있는 사람이 있습니까?

감사합니다.

+0

는, 사람이에 대한 몇 가지 빛을 던질 수 있습니다.? –

답변

2

Jira는 외부 쿼리 용 REST API를 가지고 있으며 요청 및 응답에 HTTP 프로토콜을 사용하고 응답 내용은 JSON으로 구성됩니다. 따라서 파이썬의 urllibjson 패키지를 사용하여 요청을 실행 한 다음 결과를 구문 분석 할 수 있습니다.

은 락스 REST API에 대한 골드 피처의 문서입니다 : http://docs.atlassian.com/jira/REST/latest/ 예를 들어 사용자의 API 확인 : 문서에서 필요한 정보를 찾을 수 있습니다 http://docs.atlassian.com/jira/REST/latest/#id120322

가 이전에 요청을 보내 인증을 할 것을 고려한다.

+0

감사합니다. 이것은 완벽 해. – Huskeraider

+0

REST API에서이 정보를 반환하는 메소드가 표시되지 않습니까? 주어진 사용자가 속해있는 모든 그룹을 가져올 수있는 방법을 볼 수 있지만 주어진 그룹의 멤버를 가져올 수있는 방법은 없습니다. – mdoar

+0

아니요, 맞습니다.이 API도 찾을 수 없습니다. 하지만 불가능하지는 않지만 사용자가 API를 사용하여 모든 사용자의 정보를 얻을 수 있습니다 -/rest/api/2/user' - 그룹을 검색하십시오. – MostafaR

1

누군가 해결책이 필요한 경우 JIRA 나머지 API 라이브러리 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 
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 
+0

api "GRO \ UPNAME"에서 정보를 가져올 그룹 이름을 입력하십시오. – Springhills

+0

아래의 편집 링크를 클릭하여 추가 정보를 포함하여 답변을 편집 할 수 있습니다. 추가 정보에 대해 언급 할 필요가 없습니다. 또한 일부 코드를 붙여 넣기하지 마십시오. – GramThanos

+0

감사합니다 .... FYI ... 그 코드는 저에 의해 작성되었습니다. JIRA (Atlassian)에서 제공 한 나머지 API에 대해 ping을 수행합니다. 우리는 그룹 이름을 제공해야합니다. 해당 그룹에 속한 모든 사용자 목록을 제공합니다. – Springhills