Skip to content

[$250] Company card - Company cards page loads each time opening it, error when opened offline #8856

[$250] Company card - Company cards page loads each time opening it, error when opened offline

[$250] Company card - Company cards page loads each time opening it, error when opened offline #8856

name: Investigate Deploy Blocker
permissions:
contents: read
issues: write
on:
issues:
types:
- labeled
workflow_dispatch:
inputs:
ISSUE_URL:
description: 'The full URL of the issue to investigate (e.g., https://github.com/Expensify/App/issues/12345)'
required: true
type: string
concurrency:
group: deploy-blocker-investigation-${{ github.event.issue.html_url || inputs.ISSUE_URL }}
cancel-in-progress: false
jobs:
investigate:
# Run when DeployBlockerCash label is added, or on manual dispatch
if: github.event_name == 'workflow_dispatch' || github.event.label.name == 'DeployBlockerCash'
runs-on: ubuntu-latest
env:
ISSUE_URL: ${{ github.event.issue.html_url || inputs.ISSUE_URL }}
steps:
- name: Checkout App repository
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
with:
fetch-depth: 1
# Only validate write access for manual dispatch - label events are already gated by GitHub's
# permission model (triage+ can add labels), and the workflow uses controlled tools
- name: Validate actor has write access
if: github.event_name == 'workflow_dispatch'
uses: ./.github/actions/composite/validateActor
with:
REQUIRE_APP_DEPLOYER: false
OS_BOTIFY_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }}
- name: Setup Node
uses: ./.github/actions/composite/setupNode
- name: Add claude utility scripts to PATH
run: |
echo "$GITHUB_WORKSPACE/.claude/scripts" >> "$GITHUB_PATH"
- name: Validate issue has DeployBlockerCash label
id: validate
run: |
# If triggered by label event, we know the label was just added
if [[ "${{ github.event_name }}" == "issues" ]]; then
echo "valid=true" >> "$GITHUB_OUTPUT"
exit 0
fi
# For manual dispatch, verify the label exists
LABELS=$(gh issue view "$ISSUE_URL" --json labels --jq '.labels[].name')
if echo "$LABELS" | grep -q "DeployBlockerCash"; then
echo "valid=true" >> "$GITHUB_OUTPUT"
else
echo "valid=false" >> "$GITHUB_OUTPUT"
echo "::warning::Issue $ISSUE_URL does not have DeployBlockerCash label"
fi
env:
GITHUB_TOKEN: ${{ github.token }}
- name: Run Claude to investigate deploy blocker
if: steps.validate.outputs.valid == 'true'
uses: anthropics/claude-code-action@a7e4c51380c42dd89b127f5e5f9be7b54020bc6b # v1.0.21
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
github_token: ${{ secrets.OS_BOTIFY_TOKEN }}
prompt: "/investigate-deploy-blocker ISSUE_URL: ${{ env.ISSUE_URL }}"
claude_args: |
--allowedTools "Task,Glob,Grep,Read,Bash(gh issue view:*),Bash(gh issue comment:*),Bash(gh issue list:*),Bash(gh pr view:*),Bash(gh pr list:*),Bash(gh pr diff:*),Bash(gh api:*),Bash(git log:*),Bash(git show:*),Bash(git blame:*),Bash(removeDeployBlockerLabel.sh:*)"