Skip to content

ci: run the uipath-claude-sdk checks - #369

Open
radu-mocanu wants to merge 2 commits into
feat/claude-sdk-integration-v2from
feat/claude-sdk-ci
Open

ci: run the uipath-claude-sdk checks#369
radu-mocanu wants to merge 2 commits into
feat/claude-sdk-integration-v2from
feat/claude-sdk-ci

Conversation

@radu-mocanu

Copy link
Copy Markdown
Collaborator

Summary

  • add the lint and test jobs for uipath-claude-sdk, and its sources and coverage to the sonar config
  • add the integration testcases the integration workflow discovers per package

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.

Copilot AI lite review requested due to automatic review settings August 11, 2026 10:14
Copilot stopped reviewing on behalf of radu-mocanu due to an error August 11, 2026 10:15

Copilot AI 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.

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-sdk in 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_KEY to 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.example variables don’t match what the testcase run.sh scripts actually consume (CLIENT_ID, CLIENT_SECRET, BASE_URL). This makes the examples harder to run correctly. Consider updating .env.example to 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
radu-mocanu force-pushed the feat/claude-sdk-integration-v2 branch from b3a1d25 to 2101b1b Compare August 11, 2026 10:26
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