@@ -28,11 +28,12 @@ class IssueBuilder(Generic[T]):
2828 """Fluent, type-safe builder for any JiraIssue subclass."""
2929
3030 def __init__ (self , issue_cls : Type [T ]) -> None :
31+ """Initialize the builder for the given issue class."""
3132 self ._issue_cls = issue_cls
3233 self ._fields = IssueFields ()
3334
34- def project (self , key : Optional [str ] = None , * , id : Optional [str ] = None ) -> IssueBuilder [T ]:
35- self ._fields .project = Project (key = key , id = id )
35+ def project (self , key : Optional [str ] = None , * , id_ : Optional [str ] = None ) -> IssueBuilder [T ]:
36+ self ._fields .project = Project (key = key , id = id_ )
3637 return self
3738
3839 def summary (self , text : str ) -> IssueBuilder [T ]:
@@ -57,13 +58,13 @@ def priority(
5758 self ,
5859 name : Optional [str ] = None ,
5960 * ,
60- id : Optional [str ] = None ,
61+ id_ : Optional [str ] = None ,
6162 level : Optional [PriorityLevel ] = None ,
6263 ) -> IssueBuilder [T ]:
6364 if level is not None :
6465 self ._fields .priority = Priority .from_level (level )
6566 else :
66- self ._fields .priority = Priority (name = name , id = id )
67+ self ._fields .priority = Priority (name = name , id = id_ )
6768 return self
6869
6970 def labels (self , * labels : str ) -> IssueBuilder [T ]:
@@ -78,8 +79,8 @@ def components(self, *names: str) -> IssueBuilder[T]:
7879 self ._fields .components = [Component (name = n ) for n in names ]
7980 return self
8081
81- def add_component (self , name : Optional [str ] = None , * , id : Optional [str ] = None ) -> IssueBuilder [T ]:
82- self ._fields .components .append (Component (name = name , id = id ))
82+ def add_component (self , name : Optional [str ] = None , * , id_ : Optional [str ] = None ) -> IssueBuilder [T ]:
83+ self ._fields .components .append (Component (name = name , id = id_ ))
8384 return self
8485
8586 def assignee (self , * , account_id : Optional [str ] = None , name : Optional [str ] = None ) -> IssueBuilder [T ]:
@@ -100,16 +101,16 @@ def fix_versions(self, *names: str) -> IssueBuilder[T]:
100101 self ._fields .fix_versions = [Version (name = n ) for n in names ]
101102 return self
102103
103- def add_fix_version (self , name : Optional [str ] = None , * , id : Optional [str ] = None ) -> IssueBuilder [T ]:
104- self ._fields .fix_versions .append (Version (name = name , id = id ))
104+ def add_fix_version (self , name : Optional [str ] = None , * , id_ : Optional [str ] = None ) -> IssueBuilder [T ]:
105+ self ._fields .fix_versions .append (Version (name = name , id = id_ ))
105106 return self
106107
107108 def affected_versions (self , * names : str ) -> IssueBuilder [T ]:
108109 self ._fields .affected_versions = [Version (name = n ) for n in names ]
109110 return self
110111
111- def parent (self , key : Optional [str ] = None , * , id : Optional [str ] = None ) -> IssueBuilder [T ]:
112- self ._fields .parent = Parent (key = key , id = id )
112+ def parent (self , key : Optional [str ] = None , * , id_ : Optional [str ] = None ) -> IssueBuilder [T ]:
113+ self ._fields .parent = Parent (key = key , id = id_ )
113114 return self
114115
115116 def epic_link (self , epic_key : str ) -> IssueBuilder [T ]:
@@ -127,17 +128,16 @@ def add_link(
127128 outward : Optional [str ] = None ,
128129 inward : Optional [str ] = None ,
129130 ) -> IssueBuilder [T ]:
130- self ._fields .issue_links .append (
131- IssueLink (link_type = link_type , outward_issue = outward , inward_issue = inward )
132- )
131+ self ._fields .issue_links .append (IssueLink (link_type = link_type , outward_issue = outward , inward_issue = inward ))
133132 return self
134133
135134 def custom_field (self , field_id : str , value : Any ) -> IssueBuilder [T ]:
136135 self ._fields .custom_fields .append (CustomField (field_id = field_id , value = value ))
137136 return self
138137
139138 def validate (self ) -> IssueBuilder [T ]:
140- """Validate the current fields and raise ValueError if invalid.
139+ """
140+ Validate the current fields and raise ValueError if invalid.
141141
142142 Can be chained: task().project("P").summary("S").validate().build()
143143 """
@@ -170,6 +170,7 @@ class _ADFBridge(Generic[T]):
170170 """Bridges IssueBuilder into ADFBuilder, returning control on done()."""
171171
172172 def __init__ (self , parent : IssueBuilder [T ]) -> None :
173+ """Initialize the ADF bridge for the given parent builder."""
173174 self ._parent = parent
174175 self ._adf = ADFBuilder ()
175176
@@ -220,21 +221,25 @@ def done(self) -> IssueBuilder[T]:
220221
221222class TaskBuilder (IssueBuilder [Task ]):
222223 def __init__ (self ) -> None :
224+ """Initialize a builder for Task issues."""
223225 super ().__init__ (Task )
224226
225227
226228class BugBuilder (IssueBuilder [Bug ]):
227229 def __init__ (self ) -> None :
230+ """Initialize a builder for Bug issues."""
228231 super ().__init__ (Bug )
229232
230233
231234class StoryBuilder (IssueBuilder [Story ]):
232235 def __init__ (self ) -> None :
236+ """Initialize a builder for Story issues."""
233237 super ().__init__ (Story )
234238
235239
236240class EpicBuilder (IssueBuilder [Epic ]):
237241 def __init__ (self ) -> None :
242+ """Initialize a builder for Epic issues."""
238243 super ().__init__ (Epic )
239244
240245 def epic_name (self , name : str ) -> EpicBuilder :
@@ -244,6 +249,7 @@ def epic_name(self, name: str) -> EpicBuilder:
244249
245250class SubTaskBuilder (IssueBuilder [SubTask ]):
246251 def __init__ (self ) -> None :
252+ """Initialize a builder for SubTask issues."""
247253 super ().__init__ (SubTask )
248254
249255
0 commit comments