Questionando Jira com Python e descanso

quero obter uma lista de utilizadores do grupo jira-users. tanto quanto sei, pode ser feito com o Python usando o restkit.

Alguém tem alguns exemplos ou links que dão um exemplo disto?

Obrigado.

Author: Paul de Lange, 2012-08-23

3 answers

O Jira tem uma API de descanso para consultas externas, está a usar o protocolo HTTP para pedidos e respostas e o conteúdo de resposta é formado como JSON. Então você pode usar os pacotes urllib e json do python para executar o pedido e depois analisar os resultados.

Este é o documento de Atlassian para a API Jira REST. http://docs.atlassian.com/jira/REST/latest / e, por exemplo, verifique a API dos utilizadores: http://docs.atlassian.com/jira/REST/latest/#id120322

Considere que deve fazer autenticação antes de enviar o seu pedido, você pode encontrar as informações necessárias no documento.

 2
Author: MostafaR, 2012-08-23 20:11:00
Se alguém ainda precisar de uma solução, pode instalar a JIRA rest api lib https://pypi.python.org/pypi/jira / . Apenas um exemplo simples para a sua pergunta:
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
 2
Author: Lexx Tesla, 2017-01-13 13:39:34
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
Author: Springhills, 2017-03-20 01:50:36