前言
最近做redmine的bug平台的分析,统计一些需要用到的数据,这里把相关调用的地方记录下来以备后用
相关的获取接口
#! /usr/bin/python
# -*- coding:UTF-8 -*-
from redminelib import Redmine
redmine = Redmine('redmin的地址',username='用户名',password='密码',requests={'timeout': 5 })
issues = redmine.issue.filter(project_id='项目id',status_id='open',offset=0,limit=100)
# 遍历bug单
for issue in issues:
#获取当前BUG编号
print issue.id
#获取bug单标题
print issue.subject
#获取bug单的提单人
print issue.author
#获取issue创建时间
print issue.created_on
#获取更新时间
print issue.updated_on
#遍历追加评论(BUG流转过程)
myissue=redmine.issue.get(issue.id, include=['children', 'journals', 'watchers'])
for journal in myissue.journals:
#获取评论人
print journal.user.name
#获取评论时间
print journal.created_on
因为默认的时间是UTC时间,我们转换成本地时间
def utc2local(utc_dtm):
local_tm = datetime.fromtimestamp( 0 )
utc_tm = datetime.utcfromtimestamp( 0 )
offset = local_tm - utc_tm
return utc_dtm + offset
local_issue_tm = utc2local(issue.created_on)
这样可以把时间转换成当前的时区的时间
想格式化也行
issue_create_time=local_issue_tm.strftime("%Y-%m-%d %H:%M:%S")
超过100条的问题的处理
issues = redmine.issue.filter(project_id='项目id',status_id='open',offset=0,limit=100)
issues = redmine.issue.filter(project_id='项目id',status_id='open',offset=100,limit=100)
这个是因为redmine内部把单个最大请求数限制死了是100个,因此可以通过偏移量来获取即可,有几百个bug就写几条就行了,也不会太多
总结
上面的就是获取一些信息的接口,获取以后可以到出为csv或者excel,然后做更多的数据处理,这里就不做过多的记录
变更记录
Why | Who | When |
---|---|---|
创建 | 武汉-运维-磨渣 | 2020-04-03 |