From b86fe23805678b5183fe3411dda3a42d697cbe38 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20H=C3=B6ppner?= <jonas.hoeppner@garz-fricke.com>
Date: Fri, 25 Mar 2022 11:19:29 +0100
Subject: [PATCH] CI: merge_into_manifest: Check if a commit is already merged

---
 merge_into_manifest.py | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/merge_into_manifest.py b/merge_into_manifest.py
index e83a3d04..2ba9eb3c 100755
--- a/merge_into_manifest.py
+++ b/merge_into_manifest.py
@@ -9,6 +9,7 @@ from accept_merge_request import accept_merge_request
 from create_merge_request import create_merge_request
 from get_merge_requests import get_merge_requests
 from integrate_into_manifest import integrate_into_manifest
+from get_current_revision_from_manifest import get_current_revision_from_manifest
 
 
 def merge_into_manifest(
@@ -26,6 +27,27 @@ def merge_into_manifest(
     the current manifest master.
     """
 
+    # Check if the commit is already merged
+    # Currently this is especially true if the gitlab-ci
+    # pipeline already has merged an gitlab-ci update
+    current_revisions = get_current_revision_from_manifest(
+        manifest_project=manifest_project,
+        manifest_branch=master_branch,
+        project=project,
+        recipe_name=recipe_name,
+        srcrev_file=srcrev_file,
+    )
+    # This commit is contained there if current_revisions contains
+    # it directly or any parrent of current_revisions is commit
+    for rev in current_revisions:
+        if common.is_commit_parent_of_project_commit(project, rev, commit):
+            print(
+                "Commit {} is already merged into {}".format(
+                    commit, manifest_project.name
+                )
+            )
+            return
+
     # Get source merge request
     mrs = get_merge_requests(
         project,
-- 
GitLab