@@ -13,62 +13,79 @@ def __init__(self, plan_id, *args, **kwargs):
13
13
14
14
def get_epic (self , epic ):
15
15
key = [x .get ('link' , None ) for x in epic .get ('links' , [])]
16
- estimates = self .estimates_dict (epic ['estimates' ])
16
+ estimates = self .get_estimates_dict (epic ['estimates' ])
17
17
estimates .update (Total = sum (estimates .values ()))
18
+ team_id = epic .get ('teamId' , None )
18
19
return {
19
20
'title' : epic .get ('title' , None ),
20
- 'team' : self .team_name ( epic . get ( 'teamId' )) if epic . get ( 'teamId' , None ) else None ,
21
+ 'team' : self .get_team_name ( team_id ) if team_id else None ,
21
22
'description' : epic .get ('description' , None ),
22
23
'issuekey' : key [0 ] if key else None ,
23
24
'estimates' : estimates }
24
25
25
- def plan (self ):
26
+ def get_plan (self ):
26
27
url = '/rest/roadmap/1.0/plans/{0}.json' .format (self .plan_id )
27
28
return self .get (url )
28
29
29
- def stages (self ):
30
+ def get_stages (self ):
30
31
url = '/rest/roadmap/1.0/plans/{0}/stages.json' .format (self .plan_id )
31
32
return self .get (url )
32
33
33
- def teams (self ):
34
+ def get_teams (self ):
34
35
url = '/rest/roadmap/1.0/plans/{0}/teams.json' .format (self .plan_id )
35
36
return self .get (url )
36
37
37
- def team_name (self , team_id ):
38
- return [team ['title' ] for team in self .teams ()['collection' ] if team ['id' ] == str (team_id )][0 ]
38
+ def get_team_name (self , team_id ):
39
+ all_teams = self .get_teams ()['collection' ]
40
+ return [team ['title' ] for team in all_teams if team ['id' ] == str (team_id )][0 ]
39
41
40
- def config (self ):
42
+ def get_config (self ):
41
43
url = '/rest/roadmap/1.0/plans/{0}/config.json' .format (self .plan_id )
42
44
return self .get (url )
43
45
44
- def persons (self ):
46
+ def get_persons (self ):
45
47
url = '/rest/roadmap/1.0/plans/{0}/persons.json' .format (self .plan_id )
46
48
return self .get (url )
47
49
48
- def streams (self ):
50
+ def get_streams (self ):
49
51
url = '/rest/roadmap/1.0/plans/{0}/streams.json' .format (self .plan_id )
50
52
return self .get (url )
51
53
52
- def releases (self ):
53
- return self .streams ()
54
+ def get_releases (self ):
55
+ return self .get_streams ()
54
56
55
- def themes (self ):
57
+ def get_themes (self ):
56
58
url = '/rest/roadmap/1.0/plans/{0}/themes.json' .format (self .plan_id )
57
59
return self .get (url )
58
60
59
- def state (self , plan_version ):
60
- url = '/rest/roadmap/1.0/scheduling/{0}/state.json?planVersion={1} ' .format (self .plan_id , plan_version )
61
+ def get_state (self ):
62
+ url = '/rest/roadmap/1.0/scheduling/{0}/state.json' .format (self .plan_id )
61
63
return self .get (url )
62
64
63
- def filter (self , plan_version , limit = 500 ):
64
- url = '/rest/roadmap/1.0/plans/{0}/workitems/filter.json?planVersion={1} ' .format (self .plan_id , plan_version )
65
+ def get_filter (self , limit = 500 ):
66
+ url = '/rest/roadmap/1.0/plans/{0}/workitems/filter.json' .format (self .plan_id )
65
67
return self .post (url , data = {'limit' : limit })
66
68
67
- def filters (self , query_string ):
69
+ def get_filters (self , query_string ):
68
70
url = '/rest/roadmap/1.0/system/filters.json?queryString={0}' .format (query_string )
69
71
return self .get (url )
70
72
71
- def import_issues (self , jql , limit = 100 , exclude_linked = True , estimation_method = 'estimates' , epic_fetch_enabled = True ,
73
+ def get_dependencies (self , workitem_id , plan_version ):
74
+ url = '/rest/roadmap/1.0/workitems/{0}/dependencies.json?planVersion={1}' .format (workitem_id , plan_version )
75
+ return self .get (url )
76
+
77
+ def get_stage_name (self , stage_id ):
78
+ all_stages = self .get_stages ()['collection' ]
79
+ return [stage ['title' ] for stage in all_stages if stage ['id' ] == str (stage_id )][0 ]
80
+
81
+ def get_estimates_dict (self , estimates ):
82
+ return {self .get_stage_name (stage ['targetId' ]): stage ['value' ] for stage in estimates ['stages' ]}
83
+
84
+ def import_workitem (self , data ):
85
+ url = '/rest/roadmap/1.0/plans/bulk/{0}/workitems.json' .format (self .plan_id )
86
+ return self .post (url , data )
87
+
88
+ def get_jql_issues (self , jql , limit = 500 , exclude_linked = True , estimation_method = 'estimates' , epic_fetch_enabled = True ,
72
89
load_story_points = True ):
73
90
url = '/rest/roadmap/1.0/system/import.json'
74
91
data = {'planId' : str (self .plan_id ),
@@ -78,14 +95,4 @@ def import_issues(self, jql, limit=100, exclude_linked=True, estimation_method='
78
95
'maxResults' : limit ,
79
96
'estimationMethod' : estimation_method ,
80
97
'loadStoryPoints' : load_story_points }
81
- self .post (url , data = data )
82
-
83
- def dependencies (self , workitem_id , plan_version ):
84
- url = '/rest/roadmap/1.0/workitems/{0}/dependencies.json?planVersion={1}' .format (workitem_id , plan_version )
85
- return self .get (url )
86
-
87
- def stage_name (self , stage_id ):
88
- return [stage ['title' ] for stage in self .stages ()['collection' ] if stage ['id' ] == str (stage_id )][0 ]
89
-
90
- def estimates_dict (self , estimates ):
91
- return {self .stage_name (stage ['targetId' ]): stage ['value' ] for stage in estimates ['stages' ]}
98
+ self .post (url , data = data )
0 commit comments