Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
65349ba
CSPL-4372: Add approval gate workflow and integrate into existing Git…
kubabuczak Dec 19, 2025
c9ac960
CSPL-4372: Update GitHub Actions to use checkout@v6 with merge commit…
kubabuczak Dec 19, 2025
e97904a
Potential fix for code scanning alert no. 183: Workflow does not cont…
kubabuczak Dec 19, 2025
10ae2ca
Update GitHub Actions workflows to use actions/checkout@v4 for consis…
kubabuczak Dec 19, 2025
60c7d46
Update GitHub Actions workflows to specify branches for pull_request_…
kubabuczak Dec 19, 2025
e8c5c12
Update distroless build-test-push workflow to include branch filters …
kubabuczak Dec 19, 2025
ea7ff8e
Refactor distroless build-test-push workflow to trigger on pull_reque…
kubabuczak Dec 19, 2025
09fd53b
Integrate approval gate into distroless build-test-push workflow
kubabuczak Dec 19, 2025
0e5846c
Add debug output for pull request details in approval gate workflow
kubabuczak Dec 19, 2025
be2ac54
Enhance approval gate workflow with detailed pull request JSON output
kubabuczak Dec 19, 2025
cba3ced
CSPL-4272 Update workflows to utilize commit SHA from approval gate a…
kubabuczak Dec 22, 2025
d1169a3
Potential fix for code scanning alert no. 222: Workflow does not cont…
kubabuczak Dec 22, 2025
85f4c15
Add dependency on get-commit-info job in approval gate workflow
kubabuczak Dec 22, 2025
3c29d08
Refactor build-test-push workflow by commenting out unit tests and re…
kubabuczak Dec 22, 2025
ae59ec1
Update distroless build-test-push workflow to trigger on specific bra…
kubabuczak Dec 22, 2025
5be9f03
Enhance approval gate workflow with commit SHA and message retrieval
kubabuczak Dec 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions .github/workflows/approval-gate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Approval Gate

on:
workflow_call:
inputs:
environment-name:
description: 'Environment name for approval'
required: false
type: string
default: 'external-contributor-approval'
outputs:
commit-sha:
description: 'The commit SHA (PR head for PRs, pushed commit for push events)'
value: ${{ jobs.get-commit-info.outputs.commit-sha }}
commit-message:
description: 'The commit message'
value: ${{ jobs.get-commit-info.outputs.commit-message }}

jobs:
# Get commit info from the PR head (not the base branch).
# This is necessary because with 'pull_request_target', GITHUB_SHA and the default
# checkout point to the BASE branch, not the PR's code. We explicitly use
# 'github.event.pull_request.head.sha' to get the actual PR commit info.
# For 'push' events, we fall back to 'github.sha' (the pushed commit).
get-commit-info:
permissions:
contents: read
runs-on: ubuntu-latest
outputs:
commit-sha: ${{ steps.get-sha.outputs.commit_sha }}
commit-message: ${{ steps.get-message.outputs.commit_message }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
- name: Get commit SHA
id: get-sha
run: |
COMMIT_SHA="${{ github.event.pull_request.head.sha || github.sha }}"
echo "commit_sha=${COMMIT_SHA}" >> $GITHUB_OUTPUT
echo "Commit SHA: ${COMMIT_SHA}"
- name: Get commit message
id: get-message
run: |
COMMIT_MSG=$(git log -1 --pretty=%B)
echo "commit_message<<EOF" >> $GITHUB_OUTPUT
echo "$COMMIT_MSG" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "Commit message:"
echo "$COMMIT_MSG"
approval-gate:
needs: get-commit-info
permissions:
contents: read
runs-on: ubuntu-latest
environment: ${{
(github.event_name == 'pull_request_target' &&
!contains(fromJSON('["MEMBER", "OWNER", "COLLABORATOR"]'), github.event.pull_request.author_association))
&& inputs.environment-name
|| (github.event_name == 'pull_request' && inputs.environment-name)
|| ''
}}
steps:
- name: Approval status
run: |
echo "Event: ${{ github.event_name }}"
echo "Author association: ${{ github.event.pull_request.author_association }}"
echo "Approval granted or not required"

Loading
Loading