From a4a27f508e9d2f20fa5305cf9d1d8a83695f9c31 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Tue, 14 Jul 2026 12:02:54 -0500 Subject: [PATCH 1/3] Add workflow wrappers for checkout and first interaction actions Signed-off-by: Eric Nemchik --- .github/workflows/checkout.yml | 45 +++++++++++++++++++++++++ .github/workflows/first-interaction.yml | 30 +++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 .github/workflows/checkout.yml create mode 100644 .github/workflows/first-interaction.yml diff --git a/.github/workflows/checkout.yml b/.github/workflows/checkout.yml new file mode 100644 index 0000000..505ae27 --- /dev/null +++ b/.github/workflows/checkout.yml @@ -0,0 +1,45 @@ +name: Checkout +# Based on https://github.com/actions/checkout/blob/main/action.yml + +on: + workflow_call: + inputs: + ref: + description: > + The branch, tag or SHA to checkout. When checking out the repository that + triggered a workflow, this defaults to the reference or SHA for that + event. Otherwise, uses the default branch. + required: false + type: string + persist-credentials: + description: Whether to configure the token or SSH key with the local git config + required: false + type: boolean + default: true + fetch-depth: + description: Number of commits to fetch. 0 indicates all history for all branches and tags. + required: false + type: number + default: 1 + outputs: + ref: + description: The branch, tag or SHA that was checked out + value: ${{ jobs.checkout.outputs.ref }} + commit: + description: The commit SHA that was checked out + value: ${{ jobs.checkout.outputs.commit }} + +jobs: + checkout: + runs-on: ubuntu-latest + steps: + - name: Checkout Code + id: checkout + uses: actions/checkout@v7.0.0 + with: + ref: ${{ inputs.ref != '' && inputs.ref || '' }} + persist-credentials: ${{ inputs.persist-credentials }} + fetch-depth: ${{ inputs.fetch-depth }} + outputs: + ref: ${{ steps.checkout.outputs.ref }} + commit: ${{ steps.checkout.outputs.commit }} diff --git a/.github/workflows/first-interaction.yml b/.github/workflows/first-interaction.yml new file mode 100644 index 0000000..9d86fe5 --- /dev/null +++ b/.github/workflows/first-interaction.yml @@ -0,0 +1,30 @@ +name: First Interaction +# Based on https://github.com/actions/first-interaction/blob/main/action.yml + +on: + workflow_call: + inputs: + issue_message: + description: Comment to post on an individual's first issue + required: false + type: string + pr_message: + description: Comment to post on an individual's first pull request + required: false + type: string + repo_token: + description: Token with permissions to post issue and PR comments + required: true + type: string + default: ${{ github.token }} + +jobs: + first-interaction: + runs-on: ubuntu-latest + steps: + - name: First Interaction + uses: actions/first-interaction@v3.1.0 + with: + issue_message: ${{ inputs.issue_message != '' && inputs.issue_message || '' }} + pr_message: ${{ inputs.pr_message != '' && inputs.pr_message || '' }} + repo_token: ${{ inputs.repo_token }} From 49a67cb41dff295a31f34009194310c7d41a2451 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Tue, 14 Jul 2026 12:03:20 -0500 Subject: [PATCH 2/3] Update actions/checkout to version 7.0.0 in workflow files Signed-off-by: Eric Nemchik --- .github/workflows/docker-mod-builder.yml | 6 +++--- .github/workflows/init-svc-executable-permissions.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docker-mod-builder.yml b/.github/workflows/docker-mod-builder.yml index 6601656..2d89d42 100644 --- a/.github/workflows/docker-mod-builder.yml +++ b/.github/workflows/docker-mod-builder.yml @@ -39,13 +39,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Check Out Repo (Commit) - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.0 if: ${{ github.event_name != 'pull_request_target' }} with: persist-credentials: false - name: Check Out Repo (PR) - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.0 if: ${{ github.event_name == 'pull_request_target' }} with: ref: ${{ github.event.pull_request.head.sha }} @@ -70,7 +70,7 @@ jobs: echo "> MULTI_ARCH=${{ inputs.MULTI_ARCH || 'false' }}" >> $GITHUB_STEP_SUMMARY - name: Set up QEMU - uses: docker/setup-qemu-action@v4 + uses: docker/setup-qemu-action@v4.2.0 - name: Build image run: | diff --git a/.github/workflows/init-svc-executable-permissions.yml b/.github/workflows/init-svc-executable-permissions.yml index 4fe50b9..4be2e6a 100644 --- a/.github/workflows/init-svc-executable-permissions.yml +++ b/.github/workflows/init-svc-executable-permissions.yml @@ -6,7 +6,7 @@ jobs: permission_check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.0 with: ref: ${{ github.event.pull_request.head.sha }} persist-credentials: false From 19446ce2d4011c66759728088395190d21145a02 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Tue, 14 Jul 2026 13:41:16 -0500 Subject: [PATCH 3/3] convert checkout and first-interaction to composite actions Signed-off-by: Eric Nemchik --- .github/actions/checkout/action.yml | 40 +++++++++++++++++ .github/actions/first-interaction/action.yml | 28 ++++++++++++ .github/workflows/checkout.yml | 45 -------------------- .github/workflows/first-interaction.yml | 30 ------------- 4 files changed, 68 insertions(+), 75 deletions(-) create mode 100644 .github/actions/checkout/action.yml create mode 100644 .github/actions/first-interaction/action.yml delete mode 100644 .github/workflows/checkout.yml delete mode 100644 .github/workflows/first-interaction.yml diff --git a/.github/actions/checkout/action.yml b/.github/actions/checkout/action.yml new file mode 100644 index 0000000..95d74fe --- /dev/null +++ b/.github/actions/checkout/action.yml @@ -0,0 +1,40 @@ +name: Checkout +description: Checkout a Git repository at a particular version +# Based on https://github.com/actions/checkout/blob/main/action.yml + +inputs: + ref: + description: > + The branch, tag or SHA to checkout. When checking out the repository that + triggered a workflow, this defaults to the reference or SHA for that + event. Otherwise, uses the default branch. + required: false + type: string + persist-credentials: + description: Whether to configure the token or SSH key with the local git config + required: false + type: boolean + default: true + fetch-depth: + description: Number of commits to fetch. 0 indicates all history for all branches and tags. + required: false + type: number + default: 1 +outputs: + ref: + description: The branch, tag or SHA that was checked out + value: ${{ steps.checkout.outputs.ref }} + commit: + description: The commit SHA that was checked out + value: ${{ steps.checkout.outputs.commit }} + +runs: + using: "composite" + steps: + - name: Checkout Code + id: checkout + uses: actions/checkout@v7.0.0 + with: + ref: ${{ inputs.ref != '' && inputs.ref || '' }} + persist-credentials: ${{ inputs.persist-credentials }} + fetch-depth: ${{ inputs.fetch-depth }} diff --git a/.github/actions/first-interaction/action.yml b/.github/actions/first-interaction/action.yml new file mode 100644 index 0000000..7f0ddc5 --- /dev/null +++ b/.github/actions/first-interaction/action.yml @@ -0,0 +1,28 @@ +name: First Interaction +description: Greet first-time contributors when they open an issue or PR +# Based on https://github.com/actions/first-interaction/blob/main/action.yml + +inputs: + issue_message: + description: Comment to post on an individual's first issue + required: false + type: string + pr_message: + description: Comment to post on an individual's first pull request + required: false + type: string + repo_token: + description: Token with permissions to post issue and PR comments + required: true + type: string + default: ${{ github.token }} + +runs: + using: "composite" + steps: + - name: First Interaction + uses: actions/first-interaction@v3.1.0 + with: + issue_message: ${{ inputs.issue_message != '' && inputs.issue_message || '' }} + pr_message: ${{ inputs.pr_message != '' && inputs.pr_message || '' }} + repo_token: ${{ inputs.repo_token }} diff --git a/.github/workflows/checkout.yml b/.github/workflows/checkout.yml deleted file mode 100644 index 505ae27..0000000 --- a/.github/workflows/checkout.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: Checkout -# Based on https://github.com/actions/checkout/blob/main/action.yml - -on: - workflow_call: - inputs: - ref: - description: > - The branch, tag or SHA to checkout. When checking out the repository that - triggered a workflow, this defaults to the reference or SHA for that - event. Otherwise, uses the default branch. - required: false - type: string - persist-credentials: - description: Whether to configure the token or SSH key with the local git config - required: false - type: boolean - default: true - fetch-depth: - description: Number of commits to fetch. 0 indicates all history for all branches and tags. - required: false - type: number - default: 1 - outputs: - ref: - description: The branch, tag or SHA that was checked out - value: ${{ jobs.checkout.outputs.ref }} - commit: - description: The commit SHA that was checked out - value: ${{ jobs.checkout.outputs.commit }} - -jobs: - checkout: - runs-on: ubuntu-latest - steps: - - name: Checkout Code - id: checkout - uses: actions/checkout@v7.0.0 - with: - ref: ${{ inputs.ref != '' && inputs.ref || '' }} - persist-credentials: ${{ inputs.persist-credentials }} - fetch-depth: ${{ inputs.fetch-depth }} - outputs: - ref: ${{ steps.checkout.outputs.ref }} - commit: ${{ steps.checkout.outputs.commit }} diff --git a/.github/workflows/first-interaction.yml b/.github/workflows/first-interaction.yml deleted file mode 100644 index 9d86fe5..0000000 --- a/.github/workflows/first-interaction.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: First Interaction -# Based on https://github.com/actions/first-interaction/blob/main/action.yml - -on: - workflow_call: - inputs: - issue_message: - description: Comment to post on an individual's first issue - required: false - type: string - pr_message: - description: Comment to post on an individual's first pull request - required: false - type: string - repo_token: - description: Token with permissions to post issue and PR comments - required: true - type: string - default: ${{ github.token }} - -jobs: - first-interaction: - runs-on: ubuntu-latest - steps: - - name: First Interaction - uses: actions/first-interaction@v3.1.0 - with: - issue_message: ${{ inputs.issue_message != '' && inputs.issue_message || '' }} - pr_message: ${{ inputs.pr_message != '' && inputs.pr_message || '' }} - repo_token: ${{ inputs.repo_token }}