splunk-cli 0.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- splunk_cli-0.0.1/.github/workflows/ci.yml +56 -0
- splunk_cli-0.0.1/.github/workflows/release.yml +117 -0
- splunk_cli-0.0.1/.gitignore +11 -0
- splunk_cli-0.0.1/CHANGELOG.md +17 -0
- splunk_cli-0.0.1/Cargo.lock +2491 -0
- splunk_cli-0.0.1/Cargo.toml +41 -0
- splunk_cli-0.0.1/LICENSE +21 -0
- splunk_cli-0.0.1/Makefile +42 -0
- splunk_cli-0.0.1/PKG-INFO +241 -0
- splunk_cli-0.0.1/README.md +220 -0
- splunk_cli-0.0.1/docs/releases.md +41 -0
- splunk_cli-0.0.1/prek.toml +36 -0
- splunk_cli-0.0.1/pyproject.toml +31 -0
- splunk_cli-0.0.1/schemas/clispec-v0.3.json +690 -0
- splunk_cli-0.0.1/scripts/score-clispec.py +69 -0
- splunk_cli-0.0.1/src/cli.rs +247 -0
- splunk_cli-0.0.1/src/client.rs +233 -0
- splunk_cli-0.0.1/src/config.rs +193 -0
- splunk_cli-0.0.1/src/error.rs +123 -0
- splunk_cli-0.0.1/src/lib.rs +9 -0
- splunk_cli-0.0.1/src/main.rs +82 -0
- splunk_cli-0.0.1/src/output.rs +111 -0
- splunk_cli-0.0.1/src/schema.rs +194 -0
- splunk_cli-0.0.1/src/workflows.rs +360 -0
- splunk_cli-0.0.1/tests/cli.rs +647 -0
- splunk_cli-0.0.1/tests/conformance.rs +23 -0
- splunk_cli-0.0.1/vership.toml +13 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches: [main]
|
|
5
|
+
pull_request:
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
permissions:
|
|
8
|
+
contents: read
|
|
9
|
+
concurrency:
|
|
10
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
11
|
+
cancel-in-progress: true
|
|
12
|
+
jobs:
|
|
13
|
+
lint:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
|
|
17
|
+
- uses: dtolnay/rust-toolchain@b725eda525362e7cf34af9a7243cac1e3f01a7ec # stable
|
|
18
|
+
with:
|
|
19
|
+
components: rustfmt, clippy
|
|
20
|
+
- run: make lint
|
|
21
|
+
test:
|
|
22
|
+
strategy:
|
|
23
|
+
fail-fast: false
|
|
24
|
+
matrix:
|
|
25
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
26
|
+
runs-on: ${{ matrix.os }}
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
|
|
29
|
+
- uses: dtolnay/rust-toolchain@b725eda525362e7cf34af9a7243cac1e3f01a7ec # stable
|
|
30
|
+
- run: cargo test --locked
|
|
31
|
+
msrv:
|
|
32
|
+
runs-on: ubuntu-latest
|
|
33
|
+
steps:
|
|
34
|
+
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
|
|
35
|
+
- uses: dtolnay/rust-toolchain@7dcc700092a1a8b9c17ba0e140b4e34e93000946 # 1.90.0
|
|
36
|
+
- run: cargo check --locked --all-targets
|
|
37
|
+
conformance:
|
|
38
|
+
runs-on: ubuntu-latest
|
|
39
|
+
steps:
|
|
40
|
+
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
|
|
41
|
+
- uses: dtolnay/rust-toolchain@b725eda525362e7cf34af9a7243cac1e3f01a7ec # stable
|
|
42
|
+
- run: cargo install --git https://github.com/rvben/clispec-cli --rev 78a7b645354f1049fc74a0807de2972dcb5e3db5 --locked clispec
|
|
43
|
+
- run: make conformance
|
|
44
|
+
all-checks-passed:
|
|
45
|
+
name: All checks passed
|
|
46
|
+
runs-on: ubuntu-latest
|
|
47
|
+
needs: [lint, test, msrv, conformance]
|
|
48
|
+
if: always()
|
|
49
|
+
steps:
|
|
50
|
+
- name: Verify required checks
|
|
51
|
+
env:
|
|
52
|
+
RESULTS: ${{ join(needs.*.result, ',') }}
|
|
53
|
+
run: |
|
|
54
|
+
for result in ${RESULTS//,/ }; do
|
|
55
|
+
test "$result" = success || exit 1
|
|
56
|
+
done
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
tags: ['v[0-9]*.[0-9]*.[0-9]*']
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
inputs:
|
|
7
|
+
dry_run:
|
|
8
|
+
description: Build and validate without publishing
|
|
9
|
+
type: boolean
|
|
10
|
+
default: true
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
concurrency:
|
|
14
|
+
group: release-${{ github.ref }}
|
|
15
|
+
cancel-in-progress: false
|
|
16
|
+
jobs:
|
|
17
|
+
verify:
|
|
18
|
+
name: Verify release
|
|
19
|
+
runs-on: ubuntu-24.04
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
|
|
22
|
+
- uses: dtolnay/rust-toolchain@b725eda525362e7cf34af9a7243cac1e3f01a7ec # stable
|
|
23
|
+
with:
|
|
24
|
+
components: rustfmt, clippy
|
|
25
|
+
- run: make check
|
|
26
|
+
- name: Verify tag matches package version
|
|
27
|
+
shell: bash
|
|
28
|
+
run: |
|
|
29
|
+
python3 - <<'PY'
|
|
30
|
+
import os, tomllib
|
|
31
|
+
with open('Cargo.toml', 'rb') as source:
|
|
32
|
+
version = tomllib.load(source)['package']['version']
|
|
33
|
+
if os.environ['GITHUB_REF_TYPE'] == 'tag':
|
|
34
|
+
assert os.environ['GITHUB_REF_NAME'] == f'v{version}', 'Tag/version mismatch'
|
|
35
|
+
PY
|
|
36
|
+
wheels:
|
|
37
|
+
name: Wheel (${{ matrix.target }})
|
|
38
|
+
needs: verify
|
|
39
|
+
timeout-minutes: 30
|
|
40
|
+
strategy:
|
|
41
|
+
fail-fast: false
|
|
42
|
+
matrix:
|
|
43
|
+
include:
|
|
44
|
+
- os: ubuntu-24.04
|
|
45
|
+
target: x86_64-unknown-linux-gnu
|
|
46
|
+
manylinux: '2_28'
|
|
47
|
+
- os: ubuntu-24.04-arm
|
|
48
|
+
target: aarch64-unknown-linux-gnu
|
|
49
|
+
manylinux: '2_28'
|
|
50
|
+
- os: macos-14
|
|
51
|
+
target: aarch64-apple-darwin
|
|
52
|
+
manylinux: auto
|
|
53
|
+
- os: macos-14
|
|
54
|
+
target: x86_64-apple-darwin
|
|
55
|
+
manylinux: auto
|
|
56
|
+
cross: true
|
|
57
|
+
- os: windows-latest
|
|
58
|
+
target: x86_64-pc-windows-msvc
|
|
59
|
+
manylinux: auto
|
|
60
|
+
runs-on: ${{ matrix.os }}
|
|
61
|
+
steps:
|
|
62
|
+
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
|
|
63
|
+
- uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
|
|
64
|
+
with:
|
|
65
|
+
maturin-version: v1.14.1
|
|
66
|
+
command: build
|
|
67
|
+
target: ${{ matrix.target }}
|
|
68
|
+
manylinux: ${{ matrix.manylinux }}
|
|
69
|
+
args: --release --locked --compatibility pypi --out dist
|
|
70
|
+
- uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
|
|
71
|
+
- name: Validate wheel metadata
|
|
72
|
+
run: uvx --from twine==6.2.0 twine check --strict dist/*.whl
|
|
73
|
+
- name: Smoke test installed wheel
|
|
74
|
+
if: ${{ !matrix.cross }}
|
|
75
|
+
shell: bash
|
|
76
|
+
run: |
|
|
77
|
+
uv venv .wheel-smoke
|
|
78
|
+
uv pip install --python .wheel-smoke --no-index --find-links dist splunk-cli
|
|
79
|
+
uv run --no-project --python .wheel-smoke -- splunk-cli --version
|
|
80
|
+
uv run --no-project --python .wheel-smoke -- splunk-cli schema jobs results
|
|
81
|
+
- uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
|
|
82
|
+
with:
|
|
83
|
+
name: wheel-${{ matrix.target }}
|
|
84
|
+
path: dist/*.whl
|
|
85
|
+
if-no-files-found: error
|
|
86
|
+
sdist:
|
|
87
|
+
name: Source distribution
|
|
88
|
+
needs: verify
|
|
89
|
+
runs-on: ubuntu-24.04
|
|
90
|
+
steps:
|
|
91
|
+
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
|
|
92
|
+
- uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
|
|
93
|
+
with:
|
|
94
|
+
maturin-version: v1.14.1
|
|
95
|
+
command: sdist
|
|
96
|
+
args: --out dist
|
|
97
|
+
- uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
|
|
98
|
+
- run: uvx --from twine==6.2.0 twine check --strict dist/*.tar.gz
|
|
99
|
+
- uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
|
|
100
|
+
with:
|
|
101
|
+
name: sdist
|
|
102
|
+
path: dist/*.tar.gz
|
|
103
|
+
if-no-files-found: error
|
|
104
|
+
publish-pypi:
|
|
105
|
+
name: Publish to PyPI
|
|
106
|
+
needs: [wheels, sdist]
|
|
107
|
+
if: ${{ github.ref_type == 'tag' && inputs.dry_run != true }}
|
|
108
|
+
runs-on: ubuntu-24.04
|
|
109
|
+
steps:
|
|
110
|
+
- uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
|
|
111
|
+
with:
|
|
112
|
+
path: artifacts
|
|
113
|
+
- uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
|
|
114
|
+
- name: Publish all wheels and source distribution
|
|
115
|
+
env:
|
|
116
|
+
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
|
|
117
|
+
run: uv publish --check-url https://pypi.org/simple artifacts/wheel-*/*.whl artifacts/sdist/*.tar.gz
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|
6
|
+
|
|
7
|
+
## [Unreleased]
|
|
8
|
+
|
|
9
|
+
## [0.0.1] - 2026-11-03
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- add clispec-compliant Splunk CLI and PyPI packaging
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- **ci**: install the v0.3 scorer from pinned source ([dc3d4ff](https://github.com/rvben/splunk-cli/commit/dc3d4ff2c42a27a0d0f3f4f9280203832805d717))
|