Security: Add -- delimiter and validateBranchName in agent modeFix fetch command to include baseBranch correctly #1568
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Test Claude Code Action | |
| on: | |
| pull_request: | |
| workflow_dispatch: | |
| inputs: | |
| test_prompt: | |
| description: "Test prompt for Claude" | |
| required: false | |
| default: "List the files in the current directory starting with 'package'" | |
| workflow_call: | |
| # The Claude API is authenticated via workload identity federation: id-token | |
| # lets the action mint the GitHub OIDC token it exchanges for a short-lived | |
| # access token. See docs/setup.md. | |
| permissions: | |
| contents: read | |
| id-token: write | |
| jobs: | |
| test-inline-prompt: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Test with inline prompt | |
| id: inline-test | |
| uses: ./base-action | |
| with: | |
| prompt: ${{ github.event.inputs.test_prompt || 'List the files in the current directory starting with "package"' }} | |
| anthropic_federation_rule_id: ${{ vars.ANTHROPIC_FEDERATION_RULE_ID }} | |
| anthropic_organization_id: ${{ vars.ANTHROPIC_ORGANIZATION_ID }} | |
| anthropic_service_account_id: ${{ vars.ANTHROPIC_SERVICE_ACCOUNT_ID }} | |
| allowed_tools: "LS,Read" | |
| - name: Verify inline prompt output | |
| run: | | |
| OUTPUT_FILE="${{ steps.inline-test.outputs.execution_file }}" | |
| CONCLUSION="${{ steps.inline-test.outputs.conclusion }}" | |
| echo "Conclusion: $CONCLUSION" | |
| echo "Output file: $OUTPUT_FILE" | |
| if [ "$CONCLUSION" = "success" ]; then | |
| echo "✅ Action completed successfully" | |
| else | |
| echo "❌ Action failed" | |
| exit 1 | |
| fi | |
| if [ -f "$OUTPUT_FILE" ]; then | |
| if [ -s "$OUTPUT_FILE" ]; then | |
| echo "✅ Execution log file created successfully with content" | |
| echo "Validating JSON format:" | |
| if jq . "$OUTPUT_FILE" > /dev/null 2>&1; then | |
| echo "✅ Output is valid JSON" | |
| echo "Content preview:" | |
| head -c 200 "$OUTPUT_FILE" | |
| else | |
| echo "❌ Output is not valid JSON" | |
| exit 1 | |
| fi | |
| else | |
| echo "❌ Execution log file is empty" | |
| exit 1 | |
| fi | |
| else | |
| echo "❌ Execution log file not found" | |
| exit 1 | |
| fi | |
| test-prompt-file: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Create test prompt file | |
| run: | | |
| cat > test-prompt.txt << EOF | |
| ${PROMPT} | |
| EOF | |
| env: | |
| PROMPT: ${{ github.event.inputs.test_prompt || 'List the files in the current directory starting with "package"' }} | |
| - name: Test with prompt file and allowed tools | |
| id: prompt-file-test | |
| uses: ./base-action | |
| with: | |
| prompt_file: "test-prompt.txt" | |
| anthropic_federation_rule_id: ${{ vars.ANTHROPIC_FEDERATION_RULE_ID }} | |
| anthropic_organization_id: ${{ vars.ANTHROPIC_ORGANIZATION_ID }} | |
| anthropic_service_account_id: ${{ vars.ANTHROPIC_SERVICE_ACCOUNT_ID }} | |
| allowed_tools: "LS,Read" | |
| - name: Verify prompt file output | |
| run: | | |
| OUTPUT_FILE="${{ steps.prompt-file-test.outputs.execution_file }}" | |
| CONCLUSION="${{ steps.prompt-file-test.outputs.conclusion }}" | |
| echo "Conclusion: $CONCLUSION" | |
| echo "Output file: $OUTPUT_FILE" | |
| if [ "$CONCLUSION" = "success" ]; then | |
| echo "✅ Action completed successfully" | |
| else | |
| echo "❌ Action failed" | |
| exit 1 | |
| fi | |
| if [ -f "$OUTPUT_FILE" ]; then | |
| if [ -s "$OUTPUT_FILE" ]; then | |
| echo "✅ Execution log file created successfully with content" | |
| echo "Validating JSON format:" | |
| if jq . "$OUTPUT_FILE" > /dev/null 2>&1; then | |
| echo "✅ Output is valid JSON" | |
| echo "Content preview:" | |
| head -c 200 "$OUTPUT_FILE" | |
| else | |
| echo "❌ Output is not valid JSON" | |
| exit 1 | |
| fi | |
| else | |
| echo "❌ Execution log file is empty" | |
| exit 1 | |
| fi | |
| else | |
| echo "❌ Execution log file not found" | |
| exit 1 | |
| fi |