Properly build commit data objects from GitLab

This commit is contained in:
Xevion
2022-06-18 16:46:02 -05:00
parent f8636c62b9
commit dfbb9a7119

View File

@@ -1,4 +1,5 @@
import abc import abc
import datetime
import logging import logging
from datetime import date from datetime import date
from typing import Any, Callable, Dict, List, Optional from typing import Any, Callable, Dict, List, Optional
@@ -66,13 +67,28 @@ class Gitlab(CommitSource):
# Check all events in the list # Check all events in the list
for event in self.events(page=page, per_page=50): for event in self.events(page=page, per_page=50):
if not check_seen_function(event['id']): if event['action_name'].startswith('pushed') and not check_seen_function(event['id']):
continue_fetching = True continue_fetching = True
count: int = event['push_data']['commit_count']
if count == 1:
results.append(Commit( results.append(Commit(
id=event['id'], id=event['id'],
name='Private Contribution', project_id=event['project_id'],
timestamp=parser.isoparse(event['created_at']) iteration=0,
source=self.source_type,
timestamp=parser.isoparse(event['created_at']),
seen_timestamp=datetime.datetime.utcnow()
))
else:
for i in range(count):
results.append(Commit(
id=f"{event['id']}-{i:02}",
project_id=event['project_id'],
iteration=0,
source=self.source_type,
timestamp=parser.isoparse(event['created_at']),
seen_timestamp=datetime.datetime.utcnow()
)) ))
page += 1 page += 1