Skip to content

Conversation

@prassanna-ravishankar
Copy link
Member

@prassanna-ravishankar prassanna-ravishankar commented Sep 24, 2025

Summary

Complete migration from Rye to UV package management with streamlined development workflow and CI/CD modernization.

Changes

Package Management:

  • Migrated from Rye to UV for all dependency management
  • Consolidated dev dependencies into [dependency-groups] format
  • Removed duplicate lock files (requirements*.lock)

GitHub Workflows:

  • Updated all workflows to use setup-uv@v6
  • Simplified CI configuration
  • Replaced wrapper scripts with direct UV commands
  • Removed redundant bin/ directory

Development Workflow:

  • Added Taskipy for task management with composition hooks
  • Integrated pre-commit configuration
  • Cleaned up scripts directory
  • Updated documentation (CONTRIBUTING.md, CLAUDE.md)

Key Commands:

  • uv run task bootstrap - Setup environment
  • uv run task format - Format code and docs (with hooks)
  • uv run task lint - Run all checks (with hooks)
  • uv run task test - Run tests with mock server

Breaking Changes

Developers need to:

  • Install UV instead of Rye
  • Use uv run task X instead of ./scripts/X for basic commands
  • Run uv run task setup-pre-commit to install hooks

Complex scripts (scripts/test, scripts/mock) preserved unchanged.

Comment on lines +23 to +30
run: |
if [ "${{ inputs.uv-version }}" = "latest" ]; then
curl -LsSf https://astral.sh/uv/install.sh | sh
else
curl -LsSf https://astral.sh/uv/${{ inputs.uv-version }}/install.sh | sh
fi
echo "$HOME/.local/bin" >> $GITHUB_PATH

Copy link

Choose a reason for hiding this comment

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

Semgrep identified an issue in your code:
Using variable interpolation ${{...}} with github context data in a run: step could allow an attacker to inject their own code into the runner. This would allow them to steal secrets and code. github context data can have arbitrary user input and should be treated as untrusted. Instead, use an intermediate environment variable with env: to store the data and use the environment variable in the run: script. Be sure to use double-quotes the environment variable, like this: "$ENVVAR".

To resolve this comment:

🔧 No guidance has been designated for this issue. Fix according to your organization's approved methods.

💬 Ignore this finding

Reply with Semgrep commands to ignore this finding.

  • /fp <comment> for false positive
  • /ar <comment> for acceptable risk
  • /other <comment> for all other reasons

Alternatively, triage in Semgrep AppSec Platform to ignore the finding created by run-shell-injection.

You can view more details about this finding in the Semgrep AppSec Platform.

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