Files
litellm/.github/workflows
harish-berri 8f25942ecf Litellm key rotation bug (#27756)
* fix(proxy): resolve cache handling issues in _lookup_deprecated_key

- Updated the in-memory cache for deprecated key lookups to store a 3-tuple (active_token_id, cache_expires_at_ts, revoke_at_ts) instead of a 2-tuple, ensuring proper unpacking and backward compatibility.
- Removed duplicate cache reads and added logic to handle legacy cache entries gracefully.
- Enhanced unit tests to cover scenarios for cache hits, DB misses, and respect for revoke_at timestamps, ensuring robust handling of the grace-period key-rotation feature.

* refactor(proxy): streamline cache handling in _lookup_deprecated_key

- Simplified the cache retrieval logic by directly unpacking the 3-tuple cache entries, removing the need for backward compatibility checks for 2-tuple entries.
- Updated unit tests to ensure that pre-warmed 3-tuple cache entries are served correctly without unnecessary database lookups.

* chore(ci): add new unit test for deprecated key grace period

- Included `test_deprecated_key_grace_period.py` in the CI workflow to enhance coverage for deprecated key handling scenarios.

* fix(proxy): remove unnecessary check for revoke_at in _lookup_deprecated_key

- Eliminated the redundant check for None on revoke_at, streamlining the logic for handling deprecated keys in the cache. This change enhances the efficiency of the key lookup process.

* test(proxy): add end-to-end tests for deprecated key lookup behavior

- Introduced a new test class `TestDeprecatedKeyLookupDbE2E` to validate the behavior of deprecated key lookups against a real Prisma-backed database.
- The test ensures that old key hashes resolve correctly and that repeated lookups utilize the in-memory cache without errors.
- Cleaned up the `_lookup_deprecated_key` function by removing an unnecessary check for `revoke_at`, enhancing the efficiency of the key lookup process.
2026-05-12 17:16:37 -07:00
..
2026-04-05 01:30:57 -07:00
2026-04-05 01:30:57 -07:00
2026-04-05 01:30:57 -07:00
2026-04-05 01:30:57 -07:00
2026-04-05 01:30:57 -07:00
2026-04-05 01:30:57 -07:00
2026-04-05 01:30:57 -07:00
2026-04-05 01:30:57 -07:00
2026-04-05 01:30:57 -07:00
2026-04-05 01:30:57 -07:00
2026-04-05 01:30:57 -07:00
2026-04-05 01:30:57 -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