From dfbb9a7119199cc473dcb3fa9365fbae27529b56 Mon Sep 17 00:00:00 2001 From: Xevion Date: Sat, 18 Jun 2022 16:46:02 -0500 Subject: [PATCH] Properly build commit data objects from GitLab --- sources.py | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/sources.py b/sources.py index a9df5a0..d57982d 100644 --- a/sources.py +++ b/sources.py @@ -1,4 +1,5 @@ import abc +import datetime import logging from datetime import date from typing import Any, Callable, Dict, List, Optional @@ -66,14 +67,29 @@ class Gitlab(CommitSource): # Check all events in the list 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 + count: int = event['push_data']['commit_count'] - results.append(Commit( - id=event['id'], - name='Private Contribution', - timestamp=parser.isoparse(event['created_at']) - )) + if count == 1: + results.append(Commit( + id=event['id'], + project_id=event['project_id'], + 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