feat: add connector release slash commands (#70855)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
37229e0b69
commit
394237e53b
4
.github/pr-welcome-internal.md
vendored
4
.github/pr-welcome-internal.md
vendored
@@ -29,6 +29,10 @@ Airbyte Maintainers (that's you!) can execute the following slash commands on yo
|
||||
- `/run-regression-tests` - Runs regression tests for the modified connector(s).
|
||||
- `/build-connector-images` - Builds and publishes a pre-release docker image for the modified connector(s).
|
||||
- `/publish-connectors-prerelease` - Publishes pre-release connector builds (tagged as `{version}-dev.{git-sha}`) for all modified connectors in the PR.
|
||||
- Connector release lifecycle (AI-powered):
|
||||
- `/ai-prove-fix` - Runs prerelease readiness checks, including testing against customer connections.
|
||||
- `/ai-canary-prerelease` - Rolls out prerelease to 5-10 connections for canary testing.
|
||||
- `/ai-release-watch` - Monitors rollout post-release and tracks sync success rates.
|
||||
- JVM connectors:
|
||||
- `/update-connector-cdk-version connector=<CONNECTOR_NAME>` - Updates the specified connector to the latest CDK version.
|
||||
Example: `/update-connector-cdk-version connector=destination-bigquery`
|
||||
|
||||
71
.github/workflows/ai-canary-prerelease-command.yml
vendored
Normal file
71
.github/workflows/ai-canary-prerelease-command.yml
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
name: AI Canary Prerelease Command
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
pr:
|
||||
description: "Pull request number (if triggered from a PR)"
|
||||
type: number
|
||||
required: false
|
||||
comment-id:
|
||||
description: "The comment-id of the slash command. Used to update the comment with the status."
|
||||
required: false
|
||||
repo:
|
||||
description: "Repo (passed by slash command dispatcher)"
|
||||
required: false
|
||||
default: "airbytehq/airbyte"
|
||||
gitref:
|
||||
description: "Git ref (passed by slash command dispatcher)"
|
||||
required: false
|
||||
|
||||
run-name: "AI Canary Prerelease for PR #${{ github.event.inputs.pr }}"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
issues: write
|
||||
pull-requests: read
|
||||
|
||||
jobs:
|
||||
ai-canary-prerelease:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Get job variables
|
||||
id: job-vars
|
||||
run: |
|
||||
echo "run-url=https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Authenticate as GitHub App
|
||||
uses: actions/create-github-app-token@v2
|
||||
id: get-app-token
|
||||
with:
|
||||
owner: "airbytehq"
|
||||
repositories: "airbyte,oncall"
|
||||
app-id: ${{ secrets.OCTAVIA_BOT_APP_ID }}
|
||||
private-key: ${{ secrets.OCTAVIA_BOT_PRIVATE_KEY }}
|
||||
|
||||
- name: Post start comment
|
||||
if: inputs.comment-id != ''
|
||||
uses: peter-evans/create-or-update-comment@v4
|
||||
with:
|
||||
comment-id: ${{ inputs.comment-id }}
|
||||
issue-number: ${{ inputs.pr }}
|
||||
body: |
|
||||
> **AI Canary Prerelease Started**
|
||||
>
|
||||
> Rolling out to 5-10 connections, watching results, and reporting findings.
|
||||
> [View workflow run](${{ steps.job-vars.outputs.run-url }})
|
||||
|
||||
- name: Run AI Canary Prerelease
|
||||
uses: aaronsteers/devin-action@main
|
||||
with:
|
||||
comment-id: ${{ inputs.comment-id }}
|
||||
issue-number: ${{ inputs.pr }}
|
||||
playbook-macro: "!canary_prerelease"
|
||||
devin-token: ${{ secrets.DEVIN_AI_API_KEY }}
|
||||
github-token: ${{ steps.get-app-token.outputs.token }}
|
||||
start-message: "🐤 **AI Canary Prerelease session starting...** Rolling out to 5-10 connections, watching results, and reporting findings. [View playbook](https://github.com/airbytehq/oncall/blob/main/prompts/playbooks/canary_prerelease.md)"
|
||||
tags: |
|
||||
ai-oncall
|
||||
71
.github/workflows/ai-prove-fix-command.yml
vendored
Normal file
71
.github/workflows/ai-prove-fix-command.yml
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
name: AI Prove Fix Command
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
pr:
|
||||
description: "Pull request number (if triggered from a PR)"
|
||||
type: number
|
||||
required: false
|
||||
comment-id:
|
||||
description: "The comment-id of the slash command. Used to update the comment with the status."
|
||||
required: false
|
||||
repo:
|
||||
description: "Repo (passed by slash command dispatcher)"
|
||||
required: false
|
||||
default: "airbytehq/airbyte"
|
||||
gitref:
|
||||
description: "Git ref (passed by slash command dispatcher)"
|
||||
required: false
|
||||
|
||||
run-name: "AI Prove Fix for PR #${{ github.event.inputs.pr }}"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
issues: write
|
||||
pull-requests: read
|
||||
|
||||
jobs:
|
||||
ai-prove-fix:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Get job variables
|
||||
id: job-vars
|
||||
run: |
|
||||
echo "run-url=https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Authenticate as GitHub App
|
||||
uses: actions/create-github-app-token@v2
|
||||
id: get-app-token
|
||||
with:
|
||||
owner: "airbytehq"
|
||||
repositories: "airbyte,oncall"
|
||||
app-id: ${{ secrets.OCTAVIA_BOT_APP_ID }}
|
||||
private-key: ${{ secrets.OCTAVIA_BOT_PRIVATE_KEY }}
|
||||
|
||||
- name: Post start comment
|
||||
if: inputs.comment-id != ''
|
||||
uses: peter-evans/create-or-update-comment@v4
|
||||
with:
|
||||
comment-id: ${{ inputs.comment-id }}
|
||||
issue-number: ${{ inputs.pr }}
|
||||
body: |
|
||||
> **AI Prove Fix Started**
|
||||
>
|
||||
> Running readiness checks and testing against customer connections.
|
||||
> [View workflow run](${{ steps.job-vars.outputs.run-url }})
|
||||
|
||||
- name: Run AI Prove Fix
|
||||
uses: aaronsteers/devin-action@main
|
||||
with:
|
||||
comment-id: ${{ inputs.comment-id }}
|
||||
issue-number: ${{ inputs.pr }}
|
||||
playbook-macro: "!prove_fix"
|
||||
devin-token: ${{ secrets.DEVIN_AI_API_KEY }}
|
||||
github-token: ${{ steps.get-app-token.outputs.token }}
|
||||
start-message: "🔍 **AI Prove Fix session starting...** Running readiness checks and testing against customer connections. [View playbook](https://github.com/airbytehq/oncall/blob/main/prompts/playbooks/prove_fix.md)"
|
||||
tags: |
|
||||
ai-oncall
|
||||
71
.github/workflows/ai-release-watch-command.yml
vendored
Normal file
71
.github/workflows/ai-release-watch-command.yml
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
name: AI Release Watch Command
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
pr:
|
||||
description: "Pull request number (if triggered from a PR)"
|
||||
type: number
|
||||
required: false
|
||||
comment-id:
|
||||
description: "The comment-id of the slash command. Used to update the comment with the status."
|
||||
required: false
|
||||
repo:
|
||||
description: "Repo (passed by slash command dispatcher)"
|
||||
required: false
|
||||
default: "airbytehq/airbyte"
|
||||
gitref:
|
||||
description: "Git ref (passed by slash command dispatcher)"
|
||||
required: false
|
||||
|
||||
run-name: "AI Release Watch for PR #${{ github.event.inputs.pr }}"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
issues: write
|
||||
pull-requests: read
|
||||
|
||||
jobs:
|
||||
ai-release-watch:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Get job variables
|
||||
id: job-vars
|
||||
run: |
|
||||
echo "run-url=https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Authenticate as GitHub App
|
||||
uses: actions/create-github-app-token@v2
|
||||
id: get-app-token
|
||||
with:
|
||||
owner: "airbytehq"
|
||||
repositories: "airbyte,oncall"
|
||||
app-id: ${{ secrets.OCTAVIA_BOT_APP_ID }}
|
||||
private-key: ${{ secrets.OCTAVIA_BOT_PRIVATE_KEY }}
|
||||
|
||||
- name: Post start comment
|
||||
if: inputs.comment-id != ''
|
||||
uses: peter-evans/create-or-update-comment@v4
|
||||
with:
|
||||
comment-id: ${{ inputs.comment-id }}
|
||||
issue-number: ${{ inputs.pr }}
|
||||
body: |
|
||||
> **AI Release Watch Started**
|
||||
>
|
||||
> Monitoring rollout and tracking sync success rates.
|
||||
> [View workflow run](${{ steps.job-vars.outputs.run-url }})
|
||||
|
||||
- name: Run AI Release Watch
|
||||
uses: aaronsteers/devin-action@main
|
||||
with:
|
||||
comment-id: ${{ inputs.comment-id }}
|
||||
issue-number: ${{ inputs.pr }}
|
||||
playbook-macro: "!release_watch"
|
||||
devin-token: ${{ secrets.DEVIN_AI_API_KEY }}
|
||||
github-token: ${{ steps.get-app-token.outputs.token }}
|
||||
start-message: "👁️ **AI Release Watch session starting...** Monitoring rollout and tracking sync success rates. [View playbook](https://github.com/airbytehq/oncall/blob/main/prompts/playbooks/release_watch.md)"
|
||||
tags: |
|
||||
ai-oncall
|
||||
3
.github/workflows/slash-commands.yml
vendored
3
.github/workflows/slash-commands.yml
vendored
@@ -35,6 +35,9 @@ jobs:
|
||||
issue-type: both
|
||||
|
||||
commands: |
|
||||
ai-canary-prerelease
|
||||
ai-prove-fix
|
||||
ai-release-watch
|
||||
approve-regression-tests
|
||||
bump-bulk-cdk-version
|
||||
bump-progressive-rollout-version
|
||||
|
||||
Reference in New Issue
Block a user