55
66from .helpers import _normalize_issue , _normalize_team , _paginate
77
8+
9+ def _get_date_range (updated_at , start_date ):
10+ """Extract current start and end dates from incremental state."""
11+ if updated_at .last_value :
12+ current_start_date = pendulum .parse (updated_at .last_value )
13+ else :
14+ current_start_date = pendulum .parse (start_date )
15+
16+ if updated_at .end_value :
17+ current_end_date = pendulum .parse (updated_at .end_value )
18+ else :
19+ current_end_date = pendulum .now (tz = "UTC" )
20+
21+ return current_start_date , current_end_date
22+
823ISSUES_QUERY = """
924query Issues($cursor: String) {
1025 issues(first: 50, after: $cursor) {
@@ -102,15 +117,7 @@ def issues(
102117 range_end = "closed" ,
103118 ),
104119 ) -> Iterator [Dict [str , Any ]]:
105- if updated_at .last_value :
106- current_start_date = pendulum .parse (updated_at .last_value )
107- else :
108- current_start_date = pendulum .parse (start_date )
109-
110- if updated_at .end_value :
111- current_end_date = pendulum .parse (updated_at .end_value )
112- else :
113- current_end_date = pendulum .now (tz = "UTC" )
120+ current_start_date , current_end_date = _get_date_range (updated_at , start_date )
114121
115122 for item in _paginate (api_key , ISSUES_QUERY , "issues" ):
116123 if pendulum .parse (item ["updatedAt" ]) >= current_start_date :
@@ -127,15 +134,7 @@ def projects(
127134 range_end = "closed" ,
128135 ),
129136 ) -> Iterator [Dict [str , Any ]]:
130- if updated_at .last_value :
131- current_start_date = pendulum .parse (updated_at .last_value )
132- else :
133- current_start_date = pendulum .parse (start_date )
134-
135- if updated_at .end_value :
136- current_end_date = pendulum .parse (updated_at .end_value )
137- else :
138- current_end_date = pendulum .now (tz = "UTC" )
137+ current_start_date , current_end_date = _get_date_range (updated_at , start_date )
139138
140139 for item in _paginate (api_key , PROJECTS_QUERY , "projects" ):
141140 if pendulum .parse (item ["updatedAt" ]) >= current_start_date :
@@ -153,17 +152,9 @@ def teams(
153152 ),
154153 ) -> Iterator [Dict [str , Any ]]:
155154 print (start_date )
156- if updated_at .last_value :
157- current_start_date = pendulum .parse (updated_at .last_value )
158- else :
159- current_start_date = pendulum .parse (start_date )
155+ current_start_date , current_end_date = _get_date_range (updated_at , start_date )
160156 print (current_start_date )
161157
162- if updated_at .end_value :
163- current_end_date = pendulum .parse (updated_at .end_value )
164- else :
165- current_end_date = pendulum .now (tz = "UTC" )
166-
167158 for item in _paginate (api_key , TEAMS_QUERY , "teams" ):
168159 if pendulum .parse (item ["updatedAt" ]) >= current_start_date :
169160 if pendulum .parse (item ["updatedAt" ]) <= current_end_date :
@@ -179,15 +170,7 @@ def users(
179170 range_end = "closed" ,
180171 ),
181172 ) -> Iterator [Dict [str , Any ]]:
182- if updated_at .last_value :
183- current_start_date = pendulum .parse (updated_at .last_value )
184- else :
185- current_start_date = pendulum .parse (start_date )
186-
187- if updated_at .end_value :
188- current_end_date = pendulum .parse (updated_at .end_value )
189- else :
190- current_end_date = pendulum .now (tz = "UTC" )
173+ current_start_date , current_end_date = _get_date_range (updated_at , start_date )
191174
192175 for item in _paginate (api_key , USERS_QUERY , "users" ):
193176 if pendulum .parse (item ["updatedAt" ]) >= current_start_date :
0 commit comments