You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* chore: update HISTORY.md for main
* perf: optimize test scheduling with --dist loadfile for 25% faster test runs (#157)
* refactor: separate trigger-evaluation test to avoid scorecard evaluation race conditions
- Create dedicated cli-test-evaluation-scorecard for trigger-evaluation testing
- Remove retry logic complexity from test_scorecards() and test_scorecards_drafts()
- Add new test_scorecard_trigger_evaluation() that creates/deletes its own scorecard
- Eliminates race condition where import triggers evaluation conflicting with tests
* refactor: remove unnecessary mock decorator from _get_rule helper function
The helper function doesn't need its own environment patching since it's called
from fixtures that already have their own @mock.patch.dict decorators.
* Revert "perf: optimize test scheduling with --dist loadfile for 25% faster test runs (#157)"
This reverts commit 8879fcf.
The --dist loadfile optimization caused race conditions between tests that
share resources (e.g., test_custom_events_uuid and test_custom_events_list
both operate on custom events and can interfere with each other when run in
parallel by file).
Reliability > speed. Better to have tests take 40s with no race conditions
than 30s with intermittent failures.
* perf: rename test_deploys.py to test_000_deploys.py for early scheduling
Pytest collects tests alphabetically by filename. With pytest-xdist --dist load,
tests collected earlier are more likely to be scheduled first. Since test_deploys
is the longest-running test (~19s), scheduling it early maximizes parallel
efficiency with 12 workers.
This is our general strategy: prefix slow tests with numbers (000, 001, etc.) to
control scheduling order without introducing race conditions like --dist loadfile.
* feat: add support for Cortex Secrets API
Add complete CLI support for managing secrets via the Cortex Secrets API:
- cortex secrets list: List secrets (with optional entity tag filter)
- cortex secrets get: Get secret by alias
- cortex secrets create: Create new secret
- cortex secrets update: Update existing secret
- cortex secrets delete: Delete secret
All commands support entity tags as required by the API.
Tests skip gracefully if API key lacks secrets permissions.
Also fixes HISTORY.md generation by using Angular convention in git-changelog,
which properly recognizes feat:, fix:, and perf: commit types instead of only
recognizing the basic convention (add:, fix:, change:, remove:).
Closes#158
* fix: update secret test to use valid tag format
Change test secret tag from 'cli-test-secret' to 'cli_test_secret' to comply
with API validation that only allows alphanumeric and underscore characters.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
---------
Co-authored-by: GitHub Actions <[email protected]>
Co-authored-by: Claude <[email protected]>
<small>[Compare with 1.2.0](https://github.com/cortexapps/cli/compare/1.2.0...1.3.0)</small>
12
+
13
+
### Fixed
14
+
15
+
- fix: add retry logic for scorecard create to handle active evaluations ([cc40b55](https://github.com/cortexapps/cli/commit/cc40b55ed9ef5af4146360b5a879afc6dc67fe06) by Jeff Schnitter).
16
+
- fix: use json.dump instead of Rich print for file writing ([c66c2fe](https://github.com/cortexapps/cli/commit/c66c2fe438cc95f8343fbd4ba3cecae605c435ea) by Jeff Schnitter).
17
+
- fix: ensure export/import output is in alphabetical order ([9055f78](https://github.com/cortexapps/cli/commit/9055f78cc4e1136da20e4e42883ff3c0f248825b) by Jeff Schnitter).
18
+
- fix: ensure CORTEX_BASE_URL is available in publish workflow ([743579d](https://github.com/cortexapps/cli/commit/743579d760e900da693696df2841e7b710b08d39) by Jeff Schnitter).
tag_or_id: str=typer.Option(..., "--tag-or-id", "-t", help="Secret tag or ID"),
84
+
file_input: Annotated[typer.FileText, typer.Option("--file", "-f", help="File containing fields to update (name, secret); can be passed as stdin with -, example: -f-")] = ...,
85
+
):
86
+
"""
87
+
Update a secret
88
+
89
+
Provide a JSON file with the fields to update (name and/or secret are optional).
0 commit comments