使用 python redmine 模块获取问题的子任务列表
Get the list of subtasks of an issue using python redmine module
我正在使用 python-redmine 模块编写 python 脚本,以在 Redmine 工具中自动创建问题以进行项目任务跟踪。
在 python-redmine 文档的帮助下,很容易在它们下创建问题和子任务。此外,使用 'parent' 属性可以直接获取给定问题的父问题。
现在,对于给定的问题,我想获取相关子任务的列表,然后提取子任务的开始和结束日期等属性以合并到主要问题。
我找到了一个冗长的解决方案,如下所示。
>>>from redmine import Redmine
>>>projt = redmine.project.get('redmine_test')
>>>projt.issues
>>> for iss in projt.issues:
... try:
... print(iss.id,':',iss.parent)
... except:
... pass
...
4341 : 4335
4340 : 4335
4339 : 4335
4299 : 4297
4298 : 4297
4212 : 4211
4211 : 4187
从这里可以列出一个issue的子任务,例如issue 4335有子任务4339、4340和4341。
还有其他更简单的方法吗?
您有 2 个选项来获取任务的子任务:
1) 这是首选选项,因为它将 return 一次调用中的所有子任务:
issue = redmine.issue.get(105, include='children')
issue.children
<redmine.resultsets.ResourceSet object with Issue resources>
2) 您可以按需使用包括:
issue = redmine.issue.get(105)
issue.children
<redmine.resultsets.ResourceSet object with Issue resources>
不同之处在于,在第一种情况下,您将在一次调用 Redmine 中获得子任务,在第二种情况下,当您开始使用 issue.children
时,将对 Redmine 进行第二次调用.
对于您的示例,您必须使用第二个选项,因为您要检索项目的所有问题,而不是单个问题。
我正在使用 python-redmine 模块编写 python 脚本,以在 Redmine 工具中自动创建问题以进行项目任务跟踪。
在 python-redmine 文档的帮助下,很容易在它们下创建问题和子任务。此外,使用 'parent' 属性可以直接获取给定问题的父问题。
现在,对于给定的问题,我想获取相关子任务的列表,然后提取子任务的开始和结束日期等属性以合并到主要问题。
我找到了一个冗长的解决方案,如下所示。
>>>from redmine import Redmine
>>>projt = redmine.project.get('redmine_test')
>>>projt.issues
>>> for iss in projt.issues:
... try:
... print(iss.id,':',iss.parent)
... except:
... pass
...
4341 : 4335
4340 : 4335
4339 : 4335
4299 : 4297
4298 : 4297
4212 : 4211
4211 : 4187
从这里可以列出一个issue的子任务,例如issue 4335有子任务4339、4340和4341。
还有其他更简单的方法吗?
您有 2 个选项来获取任务的子任务:
1) 这是首选选项,因为它将 return 一次调用中的所有子任务:
issue = redmine.issue.get(105, include='children')
issue.children
<redmine.resultsets.ResourceSet object with Issue resources>
2) 您可以按需使用包括:
issue = redmine.issue.get(105)
issue.children
<redmine.resultsets.ResourceSet object with Issue resources>
不同之处在于,在第一种情况下,您将在一次调用 Redmine 中获得子任务,在第二种情况下,当您开始使用 issue.children
时,将对 Redmine 进行第二次调用.
对于您的示例,您必须使用第二个选项,因为您要检索项目的所有问题,而不是单个问题。