security: Fix GitHub Actions shell injection vulnerability
- Use environment variables instead of direct interpolation - Prevent shell injection through github context data - Follow GitHub security best practices
This commit is contained in:
13
.github/workflows/cd.yml
vendored
13
.github/workflows/cd.yml
vendored
@@ -45,12 +45,17 @@ jobs:
|
|||||||
|
|
||||||
- name: Determine deployment environment
|
- name: Determine deployment environment
|
||||||
id: determine-env
|
id: determine-env
|
||||||
|
env:
|
||||||
|
# Use environment variable to prevent shell injection
|
||||||
|
GITHUB_EVENT_NAME: ${{ github.event_name }}
|
||||||
|
GITHUB_REF: ${{ github.ref }}
|
||||||
|
GITHUB_INPUT_ENVIRONMENT: ${{ github.event.inputs.environment }}
|
||||||
run: |
|
run: |
|
||||||
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
|
if [[ "$GITHUB_EVENT_NAME" == "workflow_dispatch" ]]; then
|
||||||
echo "environment=${{ github.event.inputs.environment }}" >> $GITHUB_OUTPUT
|
echo "environment=$GITHUB_INPUT_ENVIRONMENT" >> $GITHUB_OUTPUT
|
||||||
elif [[ "${{ github.ref }}" == "refs/heads/main" ]]; then
|
elif [[ "$GITHUB_REF" == "refs/heads/main" ]]; then
|
||||||
echo "environment=staging" >> $GITHUB_OUTPUT
|
echo "environment=staging" >> $GITHUB_OUTPUT
|
||||||
elif [[ "${{ github.ref }}" == refs/tags/v* ]]; then
|
elif [[ "$GITHUB_REF" == refs/tags/v* ]]; then
|
||||||
echo "environment=production" >> $GITHUB_OUTPUT
|
echo "environment=production" >> $GITHUB_OUTPUT
|
||||||
else
|
else
|
||||||
echo "environment=staging" >> $GITHUB_OUTPUT
|
echo "environment=staging" >> $GITHUB_OUTPUT
|
||||||
|
|||||||
Reference in New Issue
Block a user