From e8250ac0f538317d0d71af840f43a64aceaa3d7b Mon Sep 17 00:00:00 2001 From: Anjeel Haria Date: Thu, 25 Jul 2024 14:53:17 +0530 Subject: [PATCH] [UPD] membership_activity_gitlab:Added a second to since date for gitlab activities --- .../models/project_project.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/membership_activity_gitlab/models/project_project.py b/membership_activity_gitlab/models/project_project.py index d4ab380..26789b2 100644 --- a/membership_activity_gitlab/models/project_project.py +++ b/membership_activity_gitlab/models/project_project.py @@ -1,7 +1,7 @@ from datetime import datetime, timezone import dateutil - +from dateutil.relativedelta import relativedelta from odoo import api, fields, models @@ -28,6 +28,9 @@ def get_gitlab_commits(self): since = project.get_last_membership_activity_date_by_type( "membership_activity_cde.commit" ) + # Adding a second to avoid duplicate activities as gitlab considers + # activities on the since date as well + since += relativedelta(seconds=1) # Because pagination excludes X-Total header if it returns more than 10000 records we do it this way # https://docs.gitlab.com/ee/user/gitlab_com/index.html#pagination-response-headers project.with_delay(max_retries=0).get_gitlab_commits_iterated( @@ -70,6 +73,9 @@ def get_gitlab_merge_requests(self): since = project.get_last_membership_activity_date_by_type( "membership_activity_cde.pr" ) + # Adding a second to avoid duplicate activities as gitlab considers + # activities on the since date as well + since += relativedelta(seconds=1) # Because pagination excludes X-Total header if it returns more than 10000 records we do it this way # https://docs.gitlab.com/ee/user/gitlab_com/index.html#pagination-response-headers project.with_delay(max_retries=0).get_gitlab_merge_requests_iterated( @@ -112,6 +118,9 @@ def get_gitlab_issues(self): since = project.get_last_membership_activity_date_by_type( "membership_activity_cde.issue" ) + # Adding a second to avoid duplicate activities as gitlab considers + # activities on the since date as well + since += relativedelta(seconds=1) # Because pagination excludes X-Total header if it returns more than 10000 records we do it this way # https://docs.gitlab.com/ee/user/gitlab_com/index.html#pagination-response-headers project.with_delay(max_retries=0).get_gitlab_issues_iterated( @@ -154,6 +163,9 @@ def get_gitlab_notes(self): since = project.get_last_membership_activity_date_by_type( "membership_activity_cde.comment" ) + # Adding a second to avoid duplicate activities as gitlab considers + # activities on the since date as well + since += relativedelta(seconds=1) # Because pagination excludes X-Total header if it returns more than 10000 records we do it this way # https://docs.gitlab.com/ee/user/gitlab_com/index.html#pagination-response-headers project.with_delay(max_retries=0).get_gitlab_notes_iterated( @@ -200,6 +212,9 @@ def get_gitlab_approvals(self): since = project.get_last_membership_activity_date_by_type( "membership_activity_cde.review" ) + # Adding a second to avoid duplicate activities as gitlab considers + # activities on the since date as well + since += relativedelta(seconds=1) # Because pagination excludes X-Total header if it returns more than 10000 records we do it this way # https://docs.gitlab.com/ee/user/gitlab_com/index.html#pagination-response-headers project.with_delay(max_retries=0).get_gitlab_approvals_iterated(