Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
30 changes: 1 addition & 29 deletions .github/workflows/smoke-copilot.lock.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

61 changes: 61 additions & 0 deletions actions/setup/sh/validate_app_support_engine_field.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#!/bin/bash
set -e

# validate_app_support_engine_field.sh - Validate GitHub App configuration for engine authentication
#
# Usage: validate_app_support_engine_field.sh ENGINE_NAME DOCS_URL
#
# Arguments:
# ENGINE_NAME : Name of the engine requiring GitHub App authentication (e.g., "GitHub Copilot CLI")
# DOCS_URL : Documentation URL for GitHub App configuration
#
# Environment variables (required):
# APP_ID : GitHub App ID (e.g., "${{ vars.APP_ID }}")
# APP_PRIVATE_KEY: GitHub App private key (e.g., "${{ secrets.APP_PRIVATE_KEY }}")
#
# Exit codes:
# 0 - GitHub App configuration is valid
# 1 - GitHub App configuration is invalid or missing

# Parse arguments
if [ "$#" -ne 2 ]; then
echo "Usage: $0 ENGINE_NAME DOCS_URL" >&2
exit 1
fi

ENGINE_NAME="$1"
DOCS_URL="$2"

echo "Validating GitHub App configuration for $ENGINE_NAME..."
echo ""

# Validate app-id variable
if [ -z "$APP_ID" ]; then
echo "❌ ERROR: GitHub App ID is not set"
echo ""
echo "To use GitHub App authentication with $ENGINE_NAME, you need to configure:"
echo " - vars.APP_ID (GitHub App ID)"
echo " - secrets.APP_PRIVATE_KEY (GitHub App private key)"
echo ""
echo "Documentation: $DOCS_URL"
exit 1
fi

# Validate private-key secret
if [ -z "$APP_PRIVATE_KEY" ]; then
echo "❌ ERROR: GitHub App private key is not set"
echo ""
echo "To use GitHub App authentication with $ENGINE_NAME, you need to configure:"
echo " - vars.APP_ID (GitHub App ID)"
echo " - secrets.APP_PRIVATE_KEY (GitHub App private key)"
echo ""
echo "Documentation: $DOCS_URL"
exit 1
fi

echo "✅ GitHub App configuration validated successfully"

# Set step output to indicate verification succeeded
if [ -n "$GITHUB_OUTPUT" ]; then
echo "verification_result=success" >> "$GITHUB_OUTPUT"
fi
31 changes: 2 additions & 29 deletions pkg/workflow/copilot_engine_installation.go
Original file line number Diff line number Diff line change
Expand Up @@ -208,38 +208,11 @@ func generateAppVariableValidationStep(app *GitHubAppConfig, engineName, docsURL
return GitHubActionStep([]string{})
}

// Use shell script for validation logic
stepLines := []string{
" - name: Validate GitHub App variables",
" id: validate-secret",
" run: |",
" echo \"Validating GitHub App configuration for " + engineName + "...\"",
" ",
fmt.Sprintf(" # Validate app-id variable (expected: %s)", app.AppID),
" if [ -z \"" + app.AppID + "\" ]; then",
" echo \"❌ ERROR: GitHub App ID is not set\"",
" echo \"\"",
" echo \"To use GitHub App authentication with " + engineName + ", you need to configure:\"",
" echo \" - vars.APP_ID (GitHub App ID)\"",
" echo \" - secrets.APP_PRIVATE_KEY (GitHub App private key)\"",
" echo \"\"",
" echo \"Documentation: " + docsURL + "\"",
" exit 1",
" fi",
" ",
fmt.Sprintf(" # Validate private-key secret (expected: %s)", app.PrivateKey),
" if [ -z \"" + app.PrivateKey + "\" ]; then",
" echo \"❌ ERROR: GitHub App private key is not set\"",
" echo \"\"",
" echo \"To use GitHub App authentication with " + engineName + ", you need to configure:\"",
" echo \" - vars.APP_ID (GitHub App ID)\"",
" echo \" - secrets.APP_PRIVATE_KEY (GitHub App private key)\"",
" echo \"\"",
" echo \"Documentation: " + docsURL + "\"",
" exit 1",
" fi",
" ",
" echo \"✅ GitHub App configuration validated successfully\"",
" echo \"verification_result=success\" >> \"$GITHUB_OUTPUT\"",
fmt.Sprintf(" run: bash /opt/gh-aw/actions/validate_app_support_engine_field.sh \"%s\" \"%s\"", engineName, docsURL),
" env:",
fmt.Sprintf(" APP_ID: %s", app.AppID),
fmt.Sprintf(" APP_PRIVATE_KEY: %s", app.PrivateKey),
Expand Down
Loading