Python JIRA Client Sample Code

本文介绍了一个使用Python与JIRA SOAP API进行交互的示例程序,演示了如何登录JIRA、获取问题状态及添加评论等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

del.icio.us Tags: python , jira , SOAP

refer http://confluence.atlassian.com/display/JIRA/Creating+a+SOAP+Client for more

 

#!/usr/bin/env python

import suds

class Jira(object):
    'providing JIRA scripts'
    relativePath='rpc/soap/jirasoapservice-v2?wsdl'
    def __init__(self,server,user,passwd):
        'Jira constructor'
        self.url = server + '/' + self.relativePath
        self.client = suds.client.Client(self.url)
        self.auth = self.client.service.login(user,passwd)
    def __del__(self):
        'Jira destuctor'
        self.client.service.logout(self.auth)
    def addComments(self,issueID,comments):
        'add comments'
        #TODO, should support multiple line of comments
        self.client.service.addComment(self.auth, issueID, {'body': comments})
    def getIssueStatus(self,issueID):
        'get Issue status, Resolved, Integrated, ...'
        statusID = self.getIssue(issueID)['status']
        return self.getStatuses()[statusID]
    def getIssue(self,issueID):
        'get JIRA issue object'
        return self.client.service.getIssue(self.auth,issueID)

    def getStatuses(self):
        'return dictionary type of status {/'1/':/'Open/',/'2/':/'In Progress/',...}'
        statusDict={}
        statuses=self.client.service.getStatuses(self.auth)

        for index in range(0,len(statuses)):
            key=statuses[index]['id']
            value=statuses[index]['name']
            statusDict[str(key)] = value

        return statusDict
def main():
    #test constants
    server='http://localhost:8080'
    issueID='HUDGITTEST-3'
    user='gitdev'
    passwd='xxxxxx'

    #trial
    jira=Jira(server,user,passwd)
    issue=jira.getIssue(issueID)
    print 'issue status: '+jira.getIssueStatus(issueID)
    print '*'*60
    #print issue
    #print '*'*60
    #print issue['status']
    #for eachKey in issue:
    #    print eachKey,issue[eachKey]
    #jira.addComments(issueID,'#1 comments added by script')
    #statuses=jira.client.service.getStatuses(jira.auth)
    #print statuses[0]['id'],statuses[0]['name']

if __name__ == '__main__':
    main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值