name: Devsy on: workflow_dispatch: inputs: # === Claude Base Action Configuration === model: description: 'Claude model to use' required: false type: string default: 'sonnet' # === Devsy Action Configuration === mode: description: 'Action mode: pr-gen, pr-update, or plan-gen' required: true type: choice options: - pr-gen - pr-update - plan-gen pr_number: description: 'PR number (required for pr-update mode)' required: false type: string prompt: description: 'Prompt for Claude (required for pr-gen and plan-gen, optional for pr-update)' required: false type: string # === Callback Configuration (Optional) === callback_url: description: 'URL to send completion callback (optional)' required: false type: string jobs: run-devsy: runs-on: ubuntu-latest permissions: id-token: write # Required for OIDC token generation contents: write # Required for creating commits and branches if token exchange fails pull-requests: write # Required for creating and updating PRs if token exchange fails issues: read # Required for reading issue information if token exchange fails outputs: conclusion: ${{ steps.devsy.outputs.conclusion }} pr_number: ${{ steps.devsy.outputs.pr_number }} pr_url: ${{ steps.devsy.outputs.pr_url }} plan_output: ${{ steps.devsy.outputs.plan_output }} token_source: ${{ steps.devsy.outputs.token_source }} steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: Run Devsy Action id: devsy uses: DevsyAI/devsy-action@main with: mode: ${{ inputs.mode }} pr_number: ${{ inputs.pr_number }} prompt: ${{ inputs.prompt }} model: ${{ inputs.model }} # === Setup Script === # Uncomment if you have a setup script: # setup_script: '.devsy/setup.sh' # === Tool Configuration === # Uncomment and modify these based on your project needs: allowed_tools: 'Bash(python:*)' disallowed_tools: '' # === Callback Configuration === callback_url: ${{ inputs.callback_url }} callback_auth_token: ${{ secrets.DEVSY_ORG_OAUTH_TOKEN }} # === API Keys === anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} # Alternative AI providers (uncomment if using): # aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} # aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} # aws_region: 'us-east-1' # google_credentials_json: ${{ secrets.GOOGLE_CREDENTIALS_JSON }} # google_project_id: ${{ secrets.GOOGLE_PROJECT_ID }} # google_region: 'us-central1'