From 1c5f270731ea0149110a2ad1b43f88ce83919f51 Mon Sep 17 00:00:00 2001
From: Eduardo Robles Elvira <edu@sequentech.io>
Date: Fri, 15 Jul 2022 04:49:42 +0200
Subject: [PATCH] adding support for gpg commit signing

---
 action.yml | 37 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 36 insertions(+), 1 deletion(-)

diff --git a/action.yml b/action.yml
index 0a60068..2f8a2ea 100644
--- a/action.yml
+++ b/action.yml
@@ -25,6 +25,18 @@ inputs:
     description: 'A comma or newline separated list of labels to set on the Pull Request to be created'
     required: false
     default: ''
+  sign-commits:
+    description: 'Set to true if the action should sign the commit with GPG'
+    required: false
+    default: ''
+  gpg-private-key:
+    description: 'GPG Private Key with which to sign the commits in the PR to be created'
+    required: false
+    default: ''
+  gpg-passphrase:
+    description: 'GPG Private Key Passphrase for the GPG Private Key with which to sign the commits in the PR to be created'
+    required: false
+    default: ''
 outputs:
   pull-request-number:
     description: 'The number of the opened pull request'
@@ -32,7 +44,30 @@ outputs:
 runs:
   using: "composite"
   steps:
-    - run: $GITHUB_ACTION_PATH/update-flake-lock.sh
+    - name: Import bot's GPG key for signing commits
+      if: ${{ inputs.sign-commits }}
+      id: import-gpg
+      uses: crazy-max/ghaction-import-gpg@v4
+      with:
+        gpg_private_key: ${{ inputs.gpg-private-key }}
+        passphrase: ${{ inputs.gpg-passphrase }}
+        git_config_global: true
+        git_user_signingkey: true
+        git_commit_gpgsign: true
+    - name: Run update-flake-lock.sh (signed commit)
+      run: $GITHUB_ACTION_PATH/update-flake-lock.sh
+      if: ${{ inputs.sign-commits }}
+      shell: bash
+      env:
+        GIT_AUTHOR_NAME: ${{ steps.import-gpg.outputs.name }}
+        GIT_AUTHOR_EMAIL: ${{ steps.import-gpg.outputs.email }}
+        GIT_COMMITTER_NAME: ${{ steps.import-gpg.outputs.name }}
+        GIT_COMMITTER_EMAIL: ${{ steps.import-gpg.outputs.email }}
+        TARGETS: ${{ inputs.inputs }}
+        COMMIT_MSG: ${{ inputs.commit-msg }}
+    - name: Run update-flake-lock.sh (no commit signing)
+      run: $GITHUB_ACTION_PATH/update-flake-lock.sh
+      if: ${{ !inputs.sign-commits }}
       shell: bash
       env:
         GIT_AUTHOR_NAME: github-actions[bot]