Skip to content

ci: pass /evals CLI arguments through to Cloud MCP evals - #1401

Merged
Caleb Evans (calebevans-ab) merged 2 commits into
release-candidate/v1from
devin/1792193149-evals-run-args
Oct 17, 2026
Merged

Caleb Evans (calebevans-ab) merged 2 commits into
release-candidate/v1from
devin/1792193149-evals-run-args

Conversation

@girarda

Copy link
Copy Markdown
Contributor

Summary

Text after /evals on the comment's first line is now forwarded to the cloud-mcp-evals workflow as its new run_args input (https://github.com/airbytehq/cloud-mcp-evals/pull/62). With that, any python -m cloud_mcp_evals run argument works from the PR:

/evals full=true --repeats 5 --harness codex-sdk=gpt-6.1-sol scenarios/regressions

Why evals-command.yml reads the comment itself: with dispatch-type: workflow, peter-evans/slash-command-dispatch forwards only key=value named args and silently drops the rest. So the new "Read run arguments" step fetches the comment by comment-id, keeps its first line, strips /evals and the dispatcher's own full=…/ref=… tokens, and passes the remainder through. Splitting and validation happen in cloud-mcp-evals (shlex, never evaluated by a shell).

full=true behaves exactly as before. Without it, the changed-tools filter still applies, now to whatever scenarios were given. run_args is only sent when non-empty, so plain /evals keeps working before or after cloud-mcp-evals#62 merges. Using args needs #62 merged first, because GitHub rejects undeclared dispatch inputs.

The queued comment shows the args, e.g. "(changed tools only, --repeats 5)".

Verification: actionlint, plus local checks of the parsing snippet on /evals, /evals full=true, /evals full=true --repeats 5 scenarios/smoke, /evals --model 'a b' --issue PLAT-1, leading whitespace with a trailing CR, and ref= removal. The end-to-end slash command can only be exercised after merge, since slash_command_dispatch targets the default-branch workflow.

Link to Devin session: https://app.devin.ai/sessions/d7c7d8e7ea9a4d49a9180b295cdcf06b
Open in Devin Desktop: https://app.devin.ai/desktop/session/d7c7d8e7ea9a4d49a9180b295cdcf06b?variant=devin
Requested by: Alexandre Girard (@girarda)

devin-ai-integration Bot and others added 2 commits October 16, 2026 23:28
Co-Authored-By: alexandre@airbyte.io <alexandre@airbyte.io>
Co-Authored-By: alexandre@airbyte.io <alexandre@airbyte.io>
@devin-ai-integration

Copy link
Copy Markdown
Contributor

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@octavia-bot
octavia-bot Bot marked this pull request as draft October 16, 2026 23:30
@octavia-bot

octavia-bot Bot commented Oct 16, 2026

Copy link
Copy Markdown

Note

📝 PR Converted to Draft

More info...

Thank you for creating this PR. As a policy to protect our engineers' time, Airbyte requires all PRs to be created first in draft status. Your PR has been automatically converted to draft status in respect for this policy.

As soon as your PR is ready for formal review, you can proceed to convert the PR to "ready for review" status by clicking the "Ready for review" button at the bottom of the PR page.

To skip draft status in future PRs, please include [ready] in your PR title or add the skip-draft-status label when creating your PR.

@github-actions

Copy link
Copy Markdown

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

💡 Show Tips and Tricks

Testing This PyAirbyte Version

You 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/1792193149-evals-run-args' pyairbyte --help

# Install PyAirbyte from this branch for development:
pip install 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1792193149-evals-run-args'

PR Slash Commands

Airbyte Maintainers can execute the following slash commands on your PR:

  • /fix-pr - Fixes most formatting and linting issues
  • /uv-lock - Updates uv.lock file
  • /test-pr - Runs tests with the updated PyAirbyte
  • /prerelease - Builds and publishes a prerelease version to PyPI
  • /evals - Runs the Cloud MCP evals that use the MCP tools this PR changed (/evals full=true runs the full suite)
📚 Show Repo Guidance

Helpful Resources

Community Support

Questions? Join the #pyairbyte channel in our Slack workspace.

📝 Edit this welcome message.

@github-code-quality

github-code-quality Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Code coverage overview

Languages: Python

Python / code-coverage/pytest-no-creds

release-candidate/v1 d9f652f devin/1792193149-eva... 7a2df0b +/-
65% 79% +14%
View coverage of the 10 most impacted files.
File release-candidate/v1 d9f652f devin/1792193149-eva... 7a2df0b +/-
airbyte/_util/api_util.py 36% 67% +31%
airbyte/mcp/cloud.py 52% 85% +33%
airbyte/cloud/connectors.py 34% 79% +45%
airbyte/mcp/_datadog.py 0% 50% +50%
airbyte/mcp/_user_identity.py 0% 93% +93%
airbyte/mcp/_telemetry.py 0% 94% +94%
airbyte/_direct...ctors/models.py 0% 95% +95%
airbyte/mcp/_sso_auth.py 0% 96% +96%
airbyte/cloud/models.py 0% 97% +97%
airbyte/mcp/int...nc_status_ui.py 0% 97% +97%

Python / code-coverage/pytest

release-candidate/v1 d9f652f devin/1792193149-eva... 7a2df0b +/-
71% 82% +11%
View coverage of the 10 most impacted files.
File release-candidate/v1 d9f652f devin/1792193149-eva... 7a2df0b +/-
airbyte/cloud/connectors.py 51% 83% +32%
airbyte/mcp/cloud.py 52% 85% +33%
airbyte/mcp/_datadog.py 0% 50% +50%
airbyte/mcp/int..._registry_ui.py 0% 92% +92%
airbyte/mcp/_user_identity.py 0% 93% +93%
airbyte/mcp/_telemetry.py 0% 94% +94%
airbyte/_direct...ctors/models.py 0% 95% +95%
airbyte/mcp/_sso_auth.py 0% 96% +96%
airbyte/cloud/models.py 0% 97% +97%
airbyte/mcp/int...nc_status_ui.py 0% 97% +97%

Python / code-coverage/pytest-unit

release-candidate/v1 devin/1792193149-eva... 7a2df0b +/-
— 76% —

Line coverage data for the release-candidate/v1 branch is not yet available.

View coverage of the 10 most covered files.
File release-candidate/v1 devin/1792193149-eva... 7a2df0b +/-
airbyte/cloud/models.py — 97% —
airbyte/mcp/_sso_auth.py — 96% —
airbyte/_direct...ctors/models.py — 95% —
airbyte/cloud/client.py — 90% —
airbyte/exceptions.py — 90% —
airbyte/mcp/cloud.py — 85% —
airbyte/progress.py — 80% —
airbyte/cloud/connectors.py — 79% —
airbyte/shared/...ql_processor.py — 68% —
airbyte/_util/api_util.py — 67% —

ℹ️ Calculations represent line coverage. Results may change as calculations are updated.


Updated October 16, 2026 23:40 UTC

@calebevans-ab
Caleb Evans (calebevans-ab) marked this pull request as ready for review October 17, 2026 00:01
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-17T00:04:14.425186Z 7a2df0b Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@calebevans-ab
Caleb Evans (calebevans-ab) merged commit 30775e8 into release-candidate/v1 Oct 17, 2026
34 checks passed
@calebevans-ab
Caleb Evans (calebevans-ab) deleted the devin/1792193149-evals-run-args branch October 17, 2026 00:02

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7a2df0b142

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "Codex (@codex) review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback".


first_line = os.environ["COMMENT_BODY"].split("\n", 1)[0].rstrip("\r")
first_line = re.sub(r"^\s*/evals(?:\s+|$)", "", first_line, count=1)
first_line = re.sub(r"(?<!\S)(?:full|ref)=[^\s]+", "", first_line)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Handle equals-bearing CLI tokens before workflow dispatch

With the checked dispatch-type: workflow setup in .github/workflows/slash_command_dispatch.yml, a token such as codex-sdk=gpt-6.1-sol or --option=value is parsed as a named workflow input before this step can read or sanitize the comment. Because evals-command.yml does not declare arbitrary input names, GitHub rejects the dispatch and the eval workflow never starts. The action's workflow-dispatch documentation confirms that unexpected named inputs produce validation errors. This breaks the advertised pass-through for common CLI syntax, including the harness form described by this change; the arguments need to be encoded or captured before slash-command-dispatch validates named inputs, or dispatched through a mechanism that preserves the raw command.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants