2.python redmine模块

简介:通过python-redmine模块链接到本地的redmine系统,通过到bug号搜索到相应的bug,查看并更新信息。

1.redmine api

http://www.redmine.org/projects/redmine/wiki/Rest_api

2.Using the REST API with Python

http://www.redmine.org/projects/redmine/wiki/Rest_api_with_python

我使用的是PythonRedmine这个模块

源代码:https://github.com/maxtepkeev/python-redmine

使用手册:http://python-redmine.readthedocs.io/index.html

 主要使用的是Resource->Issue 里的内容:

修改redmine

issue = redmine.issue.get(redmineID)获取到的issue

通过dir(issue)可以获得

[u'assigned_to', 'attachments', u'author', 'changesets', 'children', u'created_on', u'custom_fields', u'description', u'done_ratio', u'due_date', u'id', 'journals', u'priority', u'project', 'relations', u'spent_hours', u'start_date', u'status', u'subject', 'time_entries', u'tracker', u'updated_on', 'watchers']

这些是通用的可以在redmine上可以查询并删改的信息。。。吧,由于条件需要用户会选择一些需要的信息,比如source,Product Information,Delay Counter等,这些信息都作为列表元素以单个字典的形式存放在custom_fields中。

custom_fields[n] 会显示第n个已被定义的redmine信息,如

>>> issue.custom_fields[4]
<redmine.resources.CustomField #43 "Gerrit Commit number">

custom_fields[n]['id']会显示该redmine信息对应的id,个人认为每一个redmine可选信息是固定的ID值,

>>> issue.custom_fields[4]['id']
43

custom_fields[n]['value']会显示该redmine信息存储的值,

>>> issue.custom_fields[4]['value']
u''

关于更新issue信息,有两种方式,以更新Gerrit Commit number为例:

>>> redmine.issue.update(12153,custom_fields = [{'id': 43, 'value': '7777'}])
True
 
>>> issue.custom_fields = [{'id': 43, 'value': u'7777'}]
>>> issue.save()
True

创建redmine

issue = redmine.issue.new()  创建新的issue

issue.project_id = '13'  选择创建issue的project的ID号,ID号可以通过

issue.subject = 'redmine update' 创建issue的标题

issue.description = 'xxxxxxxxxxxxxxxxxxxxxxx'  添加issue的描述

issue.save() 创建issue的最终环节

from redmine import Redmine
#
connect to redmine redmine = Redmine(REDMINE_URL, REDMINE_API_KEY) #fine the redmine issue issue = redmine.issue.get(redmineid) #fine the Gerrit Commit number custom_num = len(issue.custom_fields) n = 0 while n < custom_num: if issue.custom_fields[n]['id'] == 43: break n = n + 1 #update the gerrit id issue.custom_fields = [{'id': 43, 'value': gerritid}] issue.save()

 

posted @ 2016-12-07 16:07  xixiaocheng  阅读(2640)  评论(0编辑  收藏  举报