From bf287f49fab60f47dd2547cdc3653fed53af3b21 Mon Sep 17 00:00:00 2001
From: Jan Macku <jamacku@redhat.com>
Date: Fri, 12 Jan 2024 15:25:14 +0100
Subject: [PATCH] ci: use source-git-automation composite Action

This will allow us maintain the source-git automation in separate repo
and reduce the duplication of the code and noise in the systemd repo.

rhel-only

Related: RHEL-1086
---
 .../source-git-automation-on-demand.yml       | 61 ++--------------
 .github/workflows/source-git-automation.yml   | 72 ++-----------------
 2 files changed, 12 insertions(+), 121 deletions(-)

diff --git a/.github/workflows/source-git-automation-on-demand.yml b/.github/workflows/source-git-automation-on-demand.yml
index 3f3da959c4..90149e74bb 100644
--- a/.github/workflows/source-git-automation-on-demand.yml
+++ b/.github/workflows/source-git-automation-on-demand.yml
@@ -1,5 +1,3 @@
----
-
 name: Source git Automation Scheduled/On Demand
 on:
   schedule:
@@ -59,62 +57,17 @@ jobs:
       matrix:
         pr-number: ${{ inputs.pr-number == 0 && fromJSON(needs.gather-pull-requests.outputs.pr-numbers) || fromJSON(needs.gather-pull-requests.outputs.pr-numbers-manual) }}
 
-    permissions: write-all
-      # contents: write
-      # statuses: write
-      # checks: write
-      # pull-requests: write
+    permissions:
+      # required for merging PRs
+      contents: write
+      # required for PR comments and setting labels
+      pull-requests: write
 
     steps:
-      - name: Repository checkout
-        uses: actions/checkout@v3
-
-      - id: metadata
-        name: Gather Pull Request Metadata
-        uses: redhat-plumbers-in-action/gather-pull-request-metadata@v1
+      - name: Source-git Automation
+        uses: redhat-plumbers-in-action/source-git-automation@v1
         with:
           pr-number: ${{ matrix.pr-number }}
-
-      - if: ${{ !cancelled() }}
-        id: commit-linter
-        name: Lint Commits
-        uses: redhat-plumbers-in-action/advanced-commit-linter@v2
-        with:
-          pr-metadata: ${{ steps.metadata.outputs.metadata }}
-          token: ${{ secrets.GITHUB_TOKEN }}
-
-      # Validates tracker, changes tracker status, updates PR title
-      - if: ${{ !cancelled() }}
-        id: tracker-validator
-        name: Validate Tracker
-        uses: redhat-plumbers-in-action/tracker-validator@v1
-        with:
-          pr-metadata: ${{ steps.metadata.outputs.metadata }}
-          component: systemd
-          tracker: ${{ fromJSON(steps.commit-linter.outputs.validated-pr-metadata).validation.tracker.id }}
-          tracker-type: ${{ fromJSON(steps.commit-linter.outputs.validated-pr-metadata).validation.tracker.type }}
-          bugzilla-instance: https://bugzilla.redhat.com
-          bugzilla-api-token: ${{ secrets.BUGZILLA_API_TOKEN }}
-          jira-instance: https://issues.redhat.com
-          jira-api-token: ${{ secrets.JIRA_API_TOKEN }}
-          token: ${{ secrets.GITHUB_TOKEN }}
-
-      - if: ${{ !cancelled() }}
-        name: Pull Request Validator
-        uses: redhat-plumbers-in-action/pull-request-validator@v1
-        with:
-          pr-metadata: ${{ steps.metadata.outputs.metadata }}
-          token: ${{ secrets.GITHUB_TOKEN }}
-
-      - id: auto-merge
-        name: Auto Merge
-        uses: redhat-plumbers-in-action/auto-merge@v1
-        with:
-          pr-metadata: ${{ steps.metadata.outputs.metadata }}
-          tracker: ${{ fromJSON(steps.commit-linter.outputs.validated-pr-metadata).validation.tracker.id }}
-          tracker-type: ${{ fromJSON(steps.commit-linter.outputs.validated-pr-metadata).validation.tracker.type }}
-          bugzilla-instance: https://bugzilla.redhat.com
           bugzilla-api-token: ${{ secrets.BUGZILLA_API_TOKEN }}
-          jira-instance: https://issues.redhat.com
           jira-api-token: ${{ secrets.JIRA_API_TOKEN }}
           token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/source-git-automation.yml b/.github/workflows/source-git-automation.yml
index 17135b590f..776ac5b237 100644
--- a/.github/workflows/source-git-automation.yml
+++ b/.github/workflows/source-git-automation.yml
@@ -26,83 +26,21 @@ jobs:
         with:
           name: pr-metadata
 
-  commit-linter:
+  source-git-automation:
     needs: [ download-metadata ]
     runs-on: ubuntu-latest
 
-    outputs:
-      validated-pr-metadata: ${{ steps.commit-linter.outputs.validated-pr-metadata }}
-
-    permissions:
-      statuses: write
-      checks: write
-      pull-requests: write
-
-    steps:
-      - id: commit-linter
-        name: Lint Commits
-        uses: redhat-plumbers-in-action/advanced-commit-linter@v2
-        with:
-          pr-metadata: ${{ needs.download-metadata.outputs.pr-metadata }}
-          token: ${{ secrets.GITHUB_TOKEN }}
-
-  # Validates tracker, changes tracker status, updates PR title
-  tracker-validator:
-    if: ${{ !cancelled() }}
-    needs: [ download-metadata, commit-linter ]
-    runs-on: ubuntu-latest
-
-    permissions:
-      checks: write
-      pull-requests: write
-
-    steps:
-      - name: Validate Tracker
-        uses: redhat-plumbers-in-action/tracker-validator@v1
-        with:
-          pr-metadata: ${{ needs.download-metadata.outputs.pr-metadata }}
-          component: systemd
-          tracker: ${{ fromJSON(needs.commit-linter.outputs.validated-pr-metadata).validation.tracker.id }}
-          tracker-type: ${{ fromJSON(needs.commit-linter.outputs.validated-pr-metadata).validation.tracker.type }}
-          bugzilla-instance: https://bugzilla.redhat.com
-          bugzilla-api-token: ${{ secrets.BUGZILLA_API_TOKEN }}
-          jira-instance: https://issues.redhat.com
-          jira-api-token: ${{ secrets.JIRA_API_TOKEN }}
-          token: ${{ secrets.GITHUB_TOKEN }}
-
-  pull-request-validator:
-    needs: [ download-metadata ]
-    runs-on: ubuntu-latest
-
-    permissions:
-      checks: write
-      pull-requests: write
-
-    steps:
-      - name: Pull Request Validator
-        uses: redhat-plumbers-in-action/pull-request-validator@v1
-        with:
-          pr-metadata: ${{ needs.download-metadata.outputs.pr-metadata }}
-          token: ${{ secrets.GITHUB_TOKEN }}
-
-  auto-merge:
-    needs: [ download-metadata, commit-linter, tracker-validator, pull-request-validator ]
-    runs-on: ubuntu-latest
-
     permissions:
+      # required for merging PRs
       contents: write
-      checks: write
+      # required for PR comments and setting labels
       pull-requests: write
 
     steps:
-      - name: Auto Merge
-        uses: redhat-plumbers-in-action/auto-merge@v1
+      - name: Source-git Automation
+        uses: redhat-plumbers-in-action/source-git-automation@v1
         with:
           pr-metadata: ${{ needs.download-metadata.outputs.pr-metadata }}
-          tracker: ${{ fromJSON(needs.commit-linter.outputs.validated-pr-metadata).validation.tracker.id }}
-          tracker-type: ${{ fromJSON(needs.commit-linter.outputs.validated-pr-metadata).validation.tracker.type }}
-          bugzilla-instance: https://bugzilla.redhat.com
           bugzilla-api-token: ${{ secrets.BUGZILLA_API_TOKEN }}
-          jira-instance: https://issues.redhat.com
           jira-api-token: ${{ secrets.JIRA_API_TOKEN }}
           token: ${{ secrets.GITHUB_TOKEN }}