Commit 52a4019
fix(ci): harden version validation and verify sed substitutions in release pipelines (#59)
Two security/reliability improvements applied to all three PyPI release
workflows (splunk-ao, splunk-ao-adk, splunk-ao-a2a):
1. Switch grep -Eq to bash [[ =~ ]] for version validation
grep -E matches on a per-line basis, so a multi-line input like
"0.1.0\n<payload>" passes the check even though it is not a valid
version. bash [[ =~ ]] anchors ^ and $ to the entire string, making
multi-line inputs impossible to sneak through.
2. Verify each sed substitution actually matched
If the version line format in pyproject.toml or the __version__ file
ever drifts, sed silently no-ops and the build proceeds with the
stale version. Added grep -q assertions after each sed call so a
mismatch fails loudly instead of producing a silent wrong-version
release.
Co-authored-by: Cursor <cursoragent@cursor.com>1 parent 0a053b0 commit 52a4019
3 files changed
Lines changed: 33 additions & 3 deletions
File tree
- .github/workflows
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
35 | 37 | | |
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
39 | 45 | | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
40 | 50 | | |
41 | 51 | | |
42 | 52 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
35 | 37 | | |
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
39 | 45 | | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
40 | 50 | | |
41 | 51 | | |
42 | 52 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
35 | 37 | | |
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
39 | 45 | | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
40 | 50 | | |
41 | 51 | | |
42 | 52 | | |
| |||
0 commit comments