litellm/.github/workflows
stuxf 7066c895f6
chore: harden npm supply chain — pin overrides, enforce npm ci, add ignore-scripts (#24838)
* chore: harden npm supply chain — pin overrides, enforce npm ci, add ignore-scripts

Replace open-ended >= version overrides with exact pins matching lockfile
versions across all 6 package.json files. Remove dead overrides for packages
not present in lockfiles. Switch CI and devcontainer from npm install to
npm ci for deterministic lockfile-based installs.

Add .npmrc to all 7 JS project directories with ignore-scripts=true (blocks
postinstall RAT vectors like the axios@1.14.1 supply chain attack) and
min-release-age=3d (refuses packages published <3 days ago, requires npm
>=11.10). Remove Yarn-only resolutions field from docs/my-website.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: bump sharp to 0.33.5 in docs, add docs .npmrc

sharp 0.32.x uses postinstall to download native binaries, which breaks
with ignore-scripts=true. sharp 0.33+ distributes via optionalDependencies
instead, making it compatible with the new .npmrc hardening.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: remove docs .npmrc to fix Vercel deploy

Vercel's build for docs/my-website uses npm install which needs
sharp 0.32.6's postinstall script. Since we don't control Vercel's
build process, remove the .npmrc from docs rather than fight it.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: Dockerfile npm ci + nvm checksum verification

- Replace npm install with npm ci in Dockerfile.non_root,
  Dockerfile.custom_ui, and spend-logs/Dockerfile for deterministic
  lockfile-based installs
- Replace curl-pipe-bash nvm install with download-then-verify pattern
  in build_admin_ui.sh, build_ui.sh, and build_ui_custom_path.sh
- Update nvm from v0.38.0 (2021) to v0.40.4 (Jan 2026) with SHA256
  checksum verification before execution

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: macOS sha256sum compat + clarify min-release-age scope

- Use shasum -a 256 fallback on macOS where sha256sum is unavailable
- Clarify in .npmrc comments that min-release-age only protects local
  npm install, not npm ci (used in CI)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 13:41:37 -07:00
..
_test-unit-base.yml [Infra] Add unit test workflows for Postgres, Redis, and security test suites 2026-03-28 12:06:45 -07:00
_test-unit-services-base.yml [Fix] Use integration-redis-postgres env for Redis workflows since Postgres always starts 2026-03-28 14:25:29 -07:00
auto_update_price_and_context_window_file.py only add/update vercel ai gateway models 2025-08-04 17:22:36 -07:00
auto_update_price_and_context_window.yml fix: address zizmor comments 2026-03-26 21:09:01 -07:00
check_duplicate_issues.yml fix: address zizmor comments 2026-03-26 21:09:01 -07:00
check-schema-sync.yml [Infra] Fix zizmor artipacked warnings on schema sync workflows 2026-03-27 16:14:06 -07:00
codeql.yml Merge pull request #24697 from BerriAI/litellm_codeql_gha 2026-03-27 12:17:39 -07:00
codspeed.yml fix: address zizmor comments 2026-03-26 21:09:01 -07:00
create_daily_staging_branch.yml fix: address zizmor comments 2026-03-26 21:09:01 -07:00
helm_unit_test.yml fix: address zizmor comments 2026-03-26 21:09:01 -07:00
issue-keyword-labeler.yml fix: address zizmor comments 2026-03-26 21:09:01 -07:00
label-component.yml pin github scripts + remove unused 2026-03-25 17:38:36 -07:00
llm-translation-testing.yml fix: address zizmor comments 2026-03-26 21:09:01 -07:00
publish_to_pypi.yml [Infra] Migrate PyPI publishing from CircleCI to GitHub Actions OIDC 2026-03-26 19:02:14 -07:00
read_pyproject_version.yml fix: address zizmor comments 2026-03-26 21:09:01 -07:00
README.md build(github/manual_pypi_publish.yml): manual workflow to publish pip package - used for pushing dev releases (#12985) 2025-07-25 09:26:47 -07:00
results_stats.csv (fix) results_stats 2024-03-13 17:55:20 -07:00
run_llm_translation_tests.py feat: add local LLM translation testing with artifact generation (#12120) 2025-06-27 21:24:19 -07:00
run_observatory_tests.yml fix: address zizmor comments 2026-03-26 21:09:01 -07:00
scan_duplicate_issues.yml fix: address zizmor comments 2026-03-26 21:09:01 -07:00
scorecard.yml Create scorecard.yml 2026-03-30 07:47:06 -07:00
stale.yml fix: address zizmor comments 2026-03-26 21:09:01 -07:00
sync-schema.yml [Infra] Fix zizmor artipacked warnings on schema sync workflows 2026-03-27 16:14:06 -07:00
test_server_root_path.yml fix: address zizmor comments 2026-03-26 21:09:01 -07:00
test-linting.yml fix: address zizmor comments 2026-03-26 21:09:01 -07:00
test-litellm-matrix.yml Pin nodejs-wheel-binaries in CI workflows running prisma generate 2026-03-27 11:25:03 -07:00
test-litellm-ui-build.yml chore: harden npm supply chain — pin overrides, enforce npm ci, add ignore-scripts (#24838) 2026-03-31 13:41:37 -07:00
test-litellm.yml fix: address zizmor comments 2026-03-26 21:09:01 -07:00
test-mcp.yml fix: address zizmor comments 2026-03-26 21:09:01 -07:00
test-model-map.yaml fix: address zizmor comments 2026-03-26 21:09:01 -07:00
test-proxy-e2e-azure-batches.yml Pin nodejs-wheel-binaries in CI workflows running prisma generate 2026-03-27 11:25:03 -07:00
test-unit-caching-redis.yml [Fix] Use integration-redis-postgres env for Redis workflows since Postgres always starts 2026-03-28 14:25:29 -07:00
test-unit-core-utils.yml [Infra] Fix job naming in reusable workflow callers 2026-03-28 10:07:32 -07:00
test-unit-documentation.yml [Fix] Scope documentation workflow to match CircleCI and add missing router settings 2026-03-28 11:23:53 -07:00
test-unit-enterprise-routing.yml [Infra] Fix job naming in reusable workflow callers 2026-03-28 10:07:32 -07:00
test-unit-integrations.yml [Infra] Fix job naming in reusable workflow callers 2026-03-28 10:07:32 -07:00
test-unit-llm-providers.yml [Infra] Add isolated unit test workflows with hardened security posture 2026-03-28 09:56:58 -07:00
test-unit-misc.yml [Infra] Fix job naming in reusable workflow callers 2026-03-28 10:07:32 -07:00
test-unit-proxy-auth.yml [Infra] Fix job naming in reusable workflow callers 2026-03-28 10:07:32 -07:00
test-unit-proxy-db.yml [Fix] Move Postgres username and password to environment secrets 2026-03-28 13:31:58 -07:00
test-unit-proxy-endpoints.yml [Infra] Fix job naming in reusable workflow callers 2026-03-28 10:07:32 -07:00
test-unit-proxy-infra.yml [Infra] Fix job naming in reusable workflow callers 2026-03-28 10:07:32 -07:00
test-unit-proxy-legacy.yml [Infra] Add isolated unit test workflows with hardened security posture 2026-03-28 09:56:58 -07:00
test-unit-responses-caching-types.yml [Infra] Fix job naming in reusable workflow callers 2026-03-28 10:07:32 -07:00
test-unit-security.yml [Fix] Move Postgres username and password to environment secrets 2026-03-28 13:31:58 -07:00
update_release.py (fix) update load test result 2024-03-13 17:53:51 -07:00
zizmor.yml ci: add zizmor github action 2026-03-27 05:33:21 -07:00

Simple PyPI Publishing

A GitHub workflow to manually publish LiteLLM packages to PyPI with a specified version.

How to Use

  1. Go to the Actions tab in the GitHub repository
  2. Select Simple PyPI Publish from the workflow list
  3. Click Run workflow
  4. Enter the version to publish (e.g., 1.74.10)

What the Workflow Does

  1. Updates the version in pyproject.toml
  2. Copies the model prices backup file
  3. Builds the Python package
  4. Publishes to PyPI

Prerequisites

Make sure the following secret is configured in the repository:

  • PYPI_PUBLISH_PASSWORD: PyPI API token for authentication

Example Usage

  • Version: 1.74.11 → Publishes as v1.74.11
  • Version: 1.74.10-hotfix1 → Publishes as v1.74.10-hotfix1

Features

  • Manual trigger with version input
  • Automatic version updates in pyproject.toml
  • Repository safety check (only runs on official repo)
  • Clean package building and publishing
  • Success confirmation with PyPI package link