ci: run the uipath-claude-sdk checks - #369
Open
radu-mocanu wants to merge 2 commits into
Open
Conversation
Copilot stopped reviewing on behalf of
radu-mocanu due to an error
August 11, 2026 10:15
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds CI/SonarCloud support and example testcases for the new uipath-claude-sdk package.
Changes:
- Include
uipath-claude-sdkin SonarCloud sources/tests/coverage aggregation. - Add GitHub Actions jobs to lint and test
uipath-claude-sdk(matrixed across OS/Python). - Introduce multiple runnable “testcase” agents (quickstart, chat, HITL, Action Center HITL, template evaluation) with run/assert scripts.
Reviewed changes
Copilot reviewed 45 out of 45 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| sonar-project.properties | Adds uipath-claude-sdk to SonarCloud source/test paths and coverage reports. |
| packages/uipath-claude-sdk/testcases/template-agent/src/assert.py | Adds assertions for template agent evaluation + packaging/trace checks. |
| packages/uipath-claude-sdk/testcases/template-agent/run.sh | Adds script to run the shipped template against its evaluation set. |
| packages/uipath-claude-sdk/testcases/template-agent/pyproject.toml | Defines a standalone uv project for the template-agent testcase. |
| packages/uipath-claude-sdk/testcases/template-agent/.gitignore | Ignores copied template files and generated runtime artifacts. |
| packages/uipath-claude-sdk/testcases/template-agent/.env.example | Provides example env file for running the template-agent testcase. |
| packages/uipath-claude-sdk/testcases/simple-hitl-agent/uipath.json | Adds testcase runtime config placeholder. |
| packages/uipath-claude-sdk/testcases/simple-hitl-agent/src/main.py | Adds a simple human-in-the-loop refund agent example. |
| packages/uipath-claude-sdk/testcases/simple-hitl-agent/src/assert.py | Adds assertions verifying suspend/resume behavior and outputs. |
| packages/uipath-claude-sdk/testcases/simple-hitl-agent/run.sh | Adds script to run + resume the HITL agent testcase. |
| packages/uipath-claude-sdk/testcases/simple-hitl-agent/pyproject.toml | Defines a standalone uv project for the simple HITL testcase. |
| packages/uipath-claude-sdk/testcases/simple-hitl-agent/input.json | Provides input payload for the refund request. |
| packages/uipath-claude-sdk/testcases/simple-hitl-agent/human_response.json | Provides resume payload simulating a human approval response. |
| packages/uipath-claude-sdk/testcases/simple-hitl-agent/claude.json | Registers the HITL agent entrypoint. |
| packages/uipath-claude-sdk/testcases/simple-hitl-agent/.env.example | Provides example env file for running the simple HITL testcase. |
| packages/uipath-claude-sdk/testcases/quickstart-agent/uipath.json | Adds testcase runtime config placeholder. |
| packages/uipath-claude-sdk/testcases/quickstart-agent/src/main.py | Adds a deterministic tool-based currency conversion agent example. |
| packages/uipath-claude-sdk/testcases/quickstart-agent/src/assert.py | Adds assertions verifying quickstart output fields and numeric accuracy. |
| packages/uipath-claude-sdk/testcases/quickstart-agent/run.sh | Adds script to run the quickstart testcase. |
| packages/uipath-claude-sdk/testcases/quickstart-agent/pyproject.toml | Defines a standalone uv project for the quickstart testcase. |
| packages/uipath-claude-sdk/testcases/quickstart-agent/input.json | Provides input payload for conversion request. |
| packages/uipath-claude-sdk/testcases/quickstart-agent/claude.json | Registers the quickstart agent entrypoint. |
| packages/uipath-claude-sdk/testcases/quickstart-agent/.env.example | Provides example env file for running the quickstart testcase. |
| packages/uipath-claude-sdk/testcases/common/validate_output.sh | Adds shared helper to print and validate UiPath output via assertions. |
| packages/uipath-claude-sdk/testcases/common/trace_assert.py | Adds a small library to assert expected spans exist in trace JSONL. |
| packages/uipath-claude-sdk/testcases/chat-agent/uipath.json | Enables conversational runtime option for the chat agent testcase. |
| packages/uipath-claude-sdk/testcases/chat-agent/third_message.json | Adds third-turn input payload for conversational resume validation. |
| packages/uipath-claude-sdk/testcases/chat-agent/src/main.py | Adds a conversational meeting-room assistant example agent. |
| packages/uipath-claude-sdk/testcases/chat-agent/src/assert.py | Adds assertions for multi-turn resume continuity and tool re-use. |
| packages/uipath-claude-sdk/testcases/chat-agent/run.sh | Adds script to run three-turn conversational session via resume. |
| packages/uipath-claude-sdk/testcases/chat-agent/pyproject.toml | Defines a standalone uv project for the chat agent testcase. |
| packages/uipath-claude-sdk/testcases/chat-agent/next_message.json | Adds second-turn input payload for conversational resume validation. |
| packages/uipath-claude-sdk/testcases/chat-agent/input.json | Adds first-turn input payload for conversational run. |
| packages/uipath-claude-sdk/testcases/chat-agent/claude.json | Registers the conversational agent entrypoint. |
| packages/uipath-claude-sdk/testcases/chat-agent/.env.example | Provides example env file for running the chat agent testcase. |
| packages/uipath-claude-sdk/testcases/action-center-hitl-agent/uipath.json | Adds testcase runtime config placeholder. |
| packages/uipath-claude-sdk/testcases/action-center-hitl-agent/src/main.py | Adds Action Center-based HITL expense approval agent example. |
| packages/uipath-claude-sdk/testcases/action-center-hitl-agent/src/assert.py | Adds assertions verifying Action Center interrupt + resume behavior. |
| packages/uipath-claude-sdk/testcases/action-center-hitl-agent/run.sh | Adds script to run + resume the Action Center HITL testcase. |
| packages/uipath-claude-sdk/testcases/action-center-hitl-agent/pyproject.toml | Defines a standalone uv project for the Action Center HITL testcase. |
| packages/uipath-claude-sdk/testcases/action-center-hitl-agent/input.json | Provides input payload for expense report. |
| packages/uipath-claude-sdk/testcases/action-center-hitl-agent/human_response.json | Provides resume payload simulating Action Center decision fields. |
| packages/uipath-claude-sdk/testcases/action-center-hitl-agent/claude.json | Registers the Action Center HITL agent entrypoint. |
| .github/workflows/test-packages.yml | Adds a test-claude-sdk job and folds its coverage into SonarCloud. |
| .github/workflows/lint-packages.yml | Adds a lint-claude-sdk job for mypy/ruff/format checks. |
Suppressed comments (2)
packages/uipath-claude-sdk/testcases/simple-hitl-agent/run.sh:1
- This logs
UIPATH_JOB_KEYto stdout. To avoid secret disclosure, don’t print secret-bearing environment variables; if troubleshooting is needed, gate any sensitive logging behind an explicit debug flag and redact the value.
packages/uipath-claude-sdk/testcases/template-agent/.env.example:1 - The
.env.examplevariables don’t match what the testcaserun.shscripts actually consume (CLIENT_ID,CLIENT_SECRET,BASE_URL). This makes the examples harder to run correctly. Consider updating.env.exampleto include the env vars required by the scripts (and optionally documenting the token-based alternative if supported), keeping naming consistent across all testcase folders.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+16
to
+17
| echo "Environment variables:" | ||
| echo "UIPATH_JOB_KEY: $UIPATH_JOB_KEY" |
Comment on lines
+28
to
+29
| echo "Environment variables:" | ||
| echo "UIPATH_JOB_KEY: $UIPATH_JOB_KEY" |
Comment on lines
+13
to
+18
| nupkg_files = [f for f in os.listdir(uipath_dir) if f.endswith(".nupkg")] | ||
| if not nupkg_files: | ||
| print("NuGet package file (.nupkg) not found in .uipath directory") | ||
| sys.exit(1) | ||
|
|
||
| print(f"NuGet package found: {nupkg_files[0]}") |
Comment on lines
+13
to
+14
| # The resume below answers the agent directly rather than completing the | ||
| # action, so every green run leaves one pending action behind in the tenant. |
radu-mocanu
force-pushed
the
feat/claude-sdk-integration-v2
branch
from
August 11, 2026 10:26
b3a1d25 to
2101b1b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Why
the package lands without checks so it can be published and iterated on quickly. this turns them on separately.
it is based on the package branch rather than main, so it merges after that one. the integration testcases currently fail: the bundled Claude Code CLI exits 1 during connect() on the runner image, and the cause is not established yet.