feat: Add poe-command workflow, slash command, and test-my-tools poe task#894
Conversation
Co-Authored-By: AJ Steers <aj@airbyte.io>
Co-Authored-By: AJ Steers <aj@airbyte.io>
Original prompt from AJ Steers |
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
👋 Greetings, Airbyte Team Member!Here are some helpful tips and reminders for your convenience. Testing This PyAirbyte VersionYou can test this version of PyAirbyte using the following: # Run PyAirbyte CLI from this branch:
uvx --from 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1764979475-add-poe-command-workflow' pyairbyte --help
# Install PyAirbyte from this branch for development:
pip install 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1764979475-add-poe-command-workflow'Helpful ResourcesPR Slash CommandsAirbyte Maintainers can execute the following slash commands on your PR:
Community SupportQuestions? Join the #pyairbyte channel in our Slack workspace. |
📝 WalkthroughWalkthroughAdds a manual GitHub Actions workflow to run the Poe Slash Command Processor with GitHub App authentication, extends the slash-command dispatcher to accept Changes
Sequence Diagram(s)mermaid Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Repository UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
.github/workflows/poe-command.yml(1 hunks).github/workflows/slash_command_dispatch.yml(1 hunks)pyproject.toml(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
- GitHub Check: Pytest (All, Python 3.11, Windows)
- GitHub Check: Pytest (All, Python 3.10, Windows)
- GitHub Check: Pytest (All, Python 3.11, Ubuntu)
- GitHub Check: Pytest (All, Python 3.10, Ubuntu)
- GitHub Check: Pytest (Fast)
- GitHub Check: Pytest (No Creds)
🔇 Additional comments (4)
.github/workflows/slash_command_dispatch.yml (1)
33-37: Clean addition to the slash command dispatcher.Adding "poe" to the allowed commands looks good and follows the existing pattern. It integrates naturally with the GitHub App authentication and will properly route to the on-demand Poe task workflow.
.github/workflows/poe-command.yml (2)
22-22: Pin the GitHub App token action to a commit SHA for consistency and security.I notice this workflow uses
actions/create-github-app-token@v2without a commit SHA pin, while the slash_command_dispatch.yml pins the same action to@67018539274d69449ef7c02e8e71183d1719ab42 # v2.1.4. Would you consider using the same pinned version here for consistency and to prevent unexpected version drift?
31-35: Verify the third-party Poe command processor action.The workflow delegates all execution logic to
aaronsteers/poe-command-processor@v1.3.3. Before merging, can you confirm:
- Is this action maintained by the Airbyte team or a trusted community maintainer?
- Does it have reasonable activity/maintenance?
- Are you confident in its security and stability?
This helps ensure the workflow remains reliable and trustworthy.
pyproject.toml (1)
165-169: Verify the.mcp.jsonconfiguration file exists and is documented.The task references
.mcp.jsonconfig file, but I don't see it in the PR files provided. Can you confirm:
- Does
.mcp.jsonexist in the repository root?- Is there documentation explaining what this file contains and how to set it up?
- Should it be committed to the repo or created locally by users?
This will help ensure the task is usable for other developers.
…e task Co-Authored-By: AJ Steers <aj@airbyte.io>
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
pyproject.toml (1)
177-177: Consider scopingGCP_GSM_CREDENTIALSto task-specific configuration rather than requiring it globally.Adding
required_environment_variables = ["GCP_GSM_CREDENTIALS"]marks this credential as mandatory for all CI runs. However, the codebase already handles missing credentials gracefully—integration tests skip withpytest.skip()if unavailable, and MCP utilities check availability before initialization.Since only specific workflows (integration tests and MCP features) actually need this credential, would it be better to configure it as a task-specific requirement rather than enforcing it globally? This would avoid breaking CI workflows that don't require GCP Secret Manager access, wdyt?
📜 Review details
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
.github/mcp-ci-tests.mcp.json(1 hunks)pyproject.toml(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- .github/mcp-ci-tests.mcp.json
feat: Add poe-command workflow, slash command, and test-my-tools poe task
Summary
This PR adds infrastructure for running poe commands via GitHub slash commands and a new
test-my-toolspoe task that invokes Claude Code in headless mode with the MCP server's test-my-tools prompt.Changes:
.github/workflows/poe-command.yml): Handles/poeslash commands using thepoe-command-processoractionpoeto the list of recognized slash commandstest-my-tools): Invokes Claude Code in headless mode with the MCP server, accepting an optionalscopeparameter to focus testingReview & Testing Checklist for Human
claude --print,--allowedTools, and--mcp-configflags. Confirm these match the actual Claude Code CLI interface for headless mode.mcp.jsonexists or will be created: The poe task references.mcp.jsonin the repo root--allowedTools "mcp__airbyte-mcp__*"pattern should match how the MCP server is registered in the configOCTAVIA_BOT_APP_IDandOCTAVIA_BOT_PRIVATE_KEYsecretsRecommended test plan:
poe test-my-toolslocally to verify the task invokes Claude Code correctlypoe test-my-tools --scope "focus on read-only tools"/poe test-my-toolson a PRNotes
This is part of a coordinated change across three repos (PyAirbyte, connector-builder-mcp, airbyte-ops-mcp) to add poe commands and slash commands for the test-my-tools prompt.
Requested by: AJ Steers (Aaron ("AJ") Steers (@aaronsteers))
Link to Devin run: https://app.devin.ai/sessions/856354e3548a42e4bc602f3db88fac65
Summary by CodeRabbit
New Features
Chores
✏️ Tip: You can customize this high-level summary in your review settings.
Important
Auto-merge enabled.
This PR is set to merge automatically when all requirements are met.