add devsy CI action (#2945)
This commit is contained in:
79
.github/workflows/devsy.yml
vendored
Normal file
79
.github/workflows/devsy.yml
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
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'
|
||||
Reference in New Issue
Block a user