vantage-cli 0.1.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.
Files changed (124) hide show
  1. vantage_cli-0.1.1/.commitlintrc.yml +2 -0
  2. vantage_cli-0.1.1/.github/workflows/ci.yml +49 -0
  3. vantage_cli-0.1.1/.github/workflows/pages.yml +51 -0
  4. vantage_cli-0.1.1/.github/workflows/publish.yml +205 -0
  5. vantage_cli-0.1.1/.gitignore +30 -0
  6. vantage_cli-0.1.1/PKG-INFO +30 -0
  7. vantage_cli-0.1.1/README.md +86 -0
  8. vantage_cli-0.1.1/docs/Gemfile +24 -0
  9. vantage_cli-0.1.1/docs/_config.yml +68 -0
  10. vantage_cli-0.1.1/docs/_data/project.yml +38 -0
  11. vantage_cli-0.1.1/docs/_layouts/default.html +2167 -0
  12. vantage_cli-0.1.1/docs/_layouts/home.html +5 -0
  13. vantage_cli-0.1.1/docs/_layouts/page.html +5 -0
  14. vantage_cli-0.1.1/docs/architecture.md +198 -0
  15. vantage_cli-0.1.1/docs/commands.md +91 -0
  16. vantage_cli-0.1.1/docs/contact.md +195 -0
  17. vantage_cli-0.1.1/docs/contributing.md +114 -0
  18. vantage_cli-0.1.1/docs/index.md +70 -0
  19. vantage_cli-0.1.1/docs/installation.md +29 -0
  20. vantage_cli-0.1.1/docs/overview.md +91 -0
  21. vantage_cli-0.1.1/docs/templates/new_content_placeholder.md +3 -0
  22. vantage_cli-0.1.1/docs/troubleshooting.md +69 -0
  23. vantage_cli-0.1.1/docs/usage.md +107 -0
  24. vantage_cli-0.1.1/git-cliff-2.10.0/CHANGELOG.md +1698 -0
  25. vantage_cli-0.1.1/git-cliff-2.10.0/LICENSE-APACHE +176 -0
  26. vantage_cli-0.1.1/git-cliff-2.10.0/LICENSE-MIT +22 -0
  27. vantage_cli-0.1.1/git-cliff-2.10.0/README.md +100 -0
  28. vantage_cli-0.1.1/git-cliff-2.10.0/completions/_git-cliff +88 -0
  29. vantage_cli-0.1.1/git-cliff-2.10.0/completions/_git-cliff.ps1 +86 -0
  30. vantage_cli-0.1.1/git-cliff-2.10.0/completions/git-cliff.bash +198 -0
  31. vantage_cli-0.1.1/git-cliff-2.10.0/completions/git-cliff.elv +80 -0
  32. vantage_cli-0.1.1/git-cliff-2.10.0/completions/git-cliff.fish +44 -0
  33. vantage_cli-0.1.1/git-cliff-2.10.0/git-cliff-completions +0 -0
  34. vantage_cli-0.1.1/git-cliff-2.10.0/git-cliff-mangen +0 -0
  35. vantage_cli-0.1.1/git-cliff-2.10.0/man/git-cliff.1 +225 -0
  36. vantage_cli-0.1.1/justfile +81 -0
  37. vantage_cli-0.1.1/pyproject.toml +109 -0
  38. vantage_cli-0.1.1/tests/conftest.py +242 -0
  39. vantage_cli-0.1.1/tests/integration/test_gql_client_integration.py +247 -0
  40. vantage_cli-0.1.1/tests/unit/test_apps_common.py +43 -0
  41. vantage_cli-0.1.1/tests/unit/test_auth.py +728 -0
  42. vantage_cli-0.1.1/tests/unit/test_cache.py +0 -0
  43. vantage_cli-0.1.1/tests/unit/test_cache_and_exceptions_tails.py +160 -0
  44. vantage_cli-0.1.1/tests/unit/test_cache_extra.py +58 -0
  45. vantage_cli-0.1.1/tests/unit/test_cache_with_cache_decorator.py +104 -0
  46. vantage_cli-0.1.1/tests/unit/test_client.py +0 -0
  47. vantage_cli-0.1.1/tests/unit/test_client_extra.py +56 -0
  48. vantage_cli-0.1.1/tests/unit/test_cloud_commands.py +171 -0
  49. vantage_cli-0.1.1/tests/unit/test_cluster_commands.py +517 -0
  50. vantage_cli-0.1.1/tests/unit/test_cluster_create_extra.py +156 -0
  51. vantage_cli-0.1.1/tests/unit/test_cluster_schema.py +50 -0
  52. vantage_cli-0.1.1/tests/unit/test_cluster_utils_extra.py +143 -0
  53. vantage_cli-0.1.1/tests/unit/test_command_base.py +202 -0
  54. vantage_cli-0.1.1/tests/unit/test_config.py +523 -0
  55. vantage_cli-0.1.1/tests/unit/test_deployment_apps.py +0 -0
  56. vantage_cli-0.1.1/tests/unit/test_exceptions.py +53 -0
  57. vantage_cli-0.1.1/tests/unit/test_exceptions_extra.py +23 -0
  58. vantage_cli-0.1.1/tests/unit/test_format.py +0 -0
  59. vantage_cli-0.1.1/tests/unit/test_format_extra.py +16 -0
  60. vantage_cli-0.1.1/tests/unit/test_gql_client.py +110 -0
  61. vantage_cli-0.1.1/tests/unit/test_gql_client_comprehensive.py +0 -0
  62. vantage_cli-0.1.1/tests/unit/test_gql_client_coverage.py +267 -0
  63. vantage_cli-0.1.1/tests/unit/test_gql_client_coverage_extra.py +280 -0
  64. vantage_cli-0.1.1/tests/unit/test_gql_client_extra.py +218 -0
  65. vantage_cli-0.1.1/tests/unit/test_gql_client_integration.py +247 -0
  66. vantage_cli-0.1.1/tests/unit/test_gql_client_tails.py +159 -0
  67. vantage_cli-0.1.1/tests/unit/test_juju_localhost_app.py +316 -0
  68. vantage_cli-0.1.1/tests/unit/test_main.py +507 -0
  69. vantage_cli-0.1.1/tests/unit/test_main_branch_closure.py +66 -0
  70. vantage_cli-0.1.1/tests/unit/test_main_error_paths.py +80 -0
  71. vantage_cli-0.1.1/tests/unit/test_microk8s_app.py +147 -0
  72. vantage_cli-0.1.1/tests/unit/test_multipass_app.py +122 -0
  73. vantage_cli-0.1.1/tests/unit/test_profile.py +870 -0
  74. vantage_cli-0.1.1/tests/unit/test_profile_commands.py +0 -0
  75. vantage_cli-0.1.1/tests/unit/test_profile_crud.py +339 -0
  76. vantage_cli-0.1.1/tests/unit/test_profile_crud_extra.py +322 -0
  77. vantage_cli-0.1.1/tests/unit/test_profile_render.py +40 -0
  78. vantage_cli-0.1.1/tests/unit/test_render.py +0 -0
  79. vantage_cli-0.1.1/tests/unit/test_schemas.py +0 -0
  80. vantage_cli-0.1.1/tests/unit/test_templates_app.py +40 -0
  81. vantage_cli-0.1.1/tests/unit/test_time_loop.py +288 -0
  82. vantage_cli-0.1.1/uv.lock +1663 -0
  83. vantage_cli-0.1.1/vantage_cli/__init__.py +131 -0
  84. vantage_cli-0.1.1/vantage_cli/apps/__init__.py +22 -0
  85. vantage_cli-0.1.1/vantage_cli/apps/common.py +78 -0
  86. vantage_cli-0.1.1/vantage_cli/apps/juju_localhost/__init__.py +17 -0
  87. vantage_cli-0.1.1/vantage_cli/apps/juju_localhost/app.py +255 -0
  88. vantage_cli-0.1.1/vantage_cli/apps/juju_localhost/bundle_yaml.py +143 -0
  89. vantage_cli-0.1.1/vantage_cli/apps/microk8s/README.md +47 -0
  90. vantage_cli-0.1.1/vantage_cli/apps/microk8s/__init__.py +3 -0
  91. vantage_cli-0.1.1/vantage_cli/apps/microk8s/app.py +301 -0
  92. vantage_cli-0.1.1/vantage_cli/apps/multipass_singlenode/__init__.py +12 -0
  93. vantage_cli-0.1.1/vantage_cli/apps/multipass_singlenode/app.py +173 -0
  94. vantage_cli-0.1.1/vantage_cli/apps/templates.py +178 -0
  95. vantage_cli-0.1.1/vantage_cli/auth.py +429 -0
  96. vantage_cli-0.1.1/vantage_cli/cache.py +143 -0
  97. vantage_cli-0.1.1/vantage_cli/client.py +84 -0
  98. vantage_cli-0.1.1/vantage_cli/command_base.py +63 -0
  99. vantage_cli-0.1.1/vantage_cli/commands/__init__.py +1 -0
  100. vantage_cli-0.1.1/vantage_cli/commands/clouds/__init__.py +20 -0
  101. vantage_cli-0.1.1/vantage_cli/commands/clouds/add.py +81 -0
  102. vantage_cli-0.1.1/vantage_cli/commands/clouds/delete.py +61 -0
  103. vantage_cli-0.1.1/vantage_cli/commands/clouds/render.py +146 -0
  104. vantage_cli-0.1.1/vantage_cli/commands/clouds/update.py +97 -0
  105. vantage_cli-0.1.1/vantage_cli/commands/clusters/__init__.py +27 -0
  106. vantage_cli-0.1.1/vantage_cli/commands/clusters/create.py +270 -0
  107. vantage_cli-0.1.1/vantage_cli/commands/clusters/delete.py +101 -0
  108. vantage_cli-0.1.1/vantage_cli/commands/clusters/get.py +30 -0
  109. vantage_cli-0.1.1/vantage_cli/commands/clusters/list.py +84 -0
  110. vantage_cli-0.1.1/vantage_cli/commands/clusters/render.py +233 -0
  111. vantage_cli-0.1.1/vantage_cli/commands/clusters/schema.py +31 -0
  112. vantage_cli-0.1.1/vantage_cli/commands/clusters/utils.py +248 -0
  113. vantage_cli-0.1.1/vantage_cli/commands/profile/__init__.py +30 -0
  114. vantage_cli-0.1.1/vantage_cli/commands/profile/crud.py +529 -0
  115. vantage_cli-0.1.1/vantage_cli/commands/profile/render.py +55 -0
  116. vantage_cli-0.1.1/vantage_cli/config.py +161 -0
  117. vantage_cli-0.1.1/vantage_cli/constants.py +40 -0
  118. vantage_cli-0.1.1/vantage_cli/exceptions.py +127 -0
  119. vantage_cli-0.1.1/vantage_cli/format.py +39 -0
  120. vantage_cli-0.1.1/vantage_cli/gql_client.py +655 -0
  121. vantage_cli-0.1.1/vantage_cli/main.py +303 -0
  122. vantage_cli-0.1.1/vantage_cli/render.py +56 -0
  123. vantage_cli-0.1.1/vantage_cli/schemas.py +48 -0
  124. vantage_cli-0.1.1/vantage_cli/time_loop.py +124 -0
@@ -0,0 +1,2 @@
1
+ extends:
2
+ - '@commitlint/config-conventional'
@@ -0,0 +1,49 @@
1
+ name: Vantage CLI Code Quality Checks
2
+ on:
3
+ workflow_call:
4
+ pull_request:
5
+ branches:
6
+ - main
7
+
8
+ concurrency:
9
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
10
+ cancel-in-progress: true
11
+
12
+ jobs:
13
+ commitlint:
14
+ runs-on: ubuntu-latest
15
+ permissions:
16
+ contents: read
17
+ if: github.event_name == 'pull_request'
18
+ steps:
19
+ - name: Checkout
20
+ uses: actions/checkout@v4
21
+ with:
22
+ fetch-depth: 0
23
+ - name: Setup node
24
+ uses: actions/setup-node@v4
25
+ with:
26
+ node-version: lts/*
27
+ - name: Install commitlint
28
+ run: npm install -D @commitlint/cli @commitlint/config-conventional
29
+ - name: Validate PR commits with commitlint
30
+ run: npx commitlint --from ${{ github.event.pull_request.base.sha }} --to ${{ github.event.pull_request.head.sha }} --verbose
31
+
32
+ ci-tests:
33
+ name: CI-Tests
34
+ runs-on: ubuntu-24.04
35
+ steps:
36
+ - name: Checkout
37
+ uses: actions/checkout@v4
38
+ - name: Install `just`
39
+ run: sudo snap install just --classic
40
+ - name: Install `uv`
41
+ run: sudo snap install astral-uv --classic
42
+ - name: Run lint checks
43
+ run: just lint
44
+ - name: Run type checks
45
+ run: just typecheck
46
+ - name: Run unit tests
47
+ run: just unit
48
+ - name: Run integration tests
49
+ run: just integration
@@ -0,0 +1,51 @@
1
+ # Sample workflow for building and deploying a Jekyll site to GitHub Pages
2
+ name: Deploy Jekyll with GitHub Pages dependencies preinstalled
3
+
4
+ on:
5
+ # Runs on pushes targeting the default branch
6
+ push:
7
+ branches: ["main"]
8
+
9
+ # Allows you to run this workflow manually from the Actions tab
10
+ workflow_dispatch:
11
+
12
+ # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
13
+ permissions:
14
+ contents: read
15
+ pages: write
16
+ id-token: write
17
+
18
+ # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
19
+ # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
20
+ concurrency:
21
+ group: "pages"
22
+ cancel-in-progress: false
23
+
24
+ jobs:
25
+ # Build job
26
+ build:
27
+ runs-on: ubuntu-latest
28
+ steps:
29
+ - name: Checkout
30
+ uses: actions/checkout@v4
31
+ - name: Setup Pages
32
+ uses: actions/configure-pages@v5
33
+ - name: Build with Jekyll
34
+ uses: actions/jekyll-build-pages@v1
35
+ with:
36
+ source: ./docs
37
+ destination: ./_site
38
+ - name: Upload artifact
39
+ uses: actions/upload-pages-artifact@v3
40
+
41
+ # Deployment job
42
+ deploy:
43
+ environment:
44
+ name: github-pages
45
+ url: ${{ steps.deployment.outputs.page_url }}
46
+ runs-on: ubuntu-latest
47
+ needs: build
48
+ steps:
49
+ - name: Deploy to GitHub Pages
50
+ id: deployment
51
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,205 @@
1
+ # Copyright (c) 2025 Vantage Compute Corporation.
2
+ name: Build and Release
3
+
4
+ on:
5
+ push:
6
+ tags:
7
+ - "[0-9]+.[0-9]+.[0-9]+"
8
+ - "[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+"
9
+ - "[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+"
10
+ - "[0-9]+.[0-9]+.[0-9]+a[0-9]+"
11
+ - "[0-9]+.[0-9]+.[0-9]+b[0-9]+"
12
+ - "[0-9]+.[0-9]+.[0-9]+rc[0-9]+"
13
+ workflow_dispatch: # Allow manual triggering
14
+
15
+ permissions:
16
+ contents: write # Required for creating releases
17
+ id-token: write # Required for PyPI trusted publishing
18
+
19
+ jobs:
20
+ build:
21
+ name: Build Distribution
22
+ runs-on: ubuntu-latest
23
+
24
+ steps:
25
+ - name: Checkout code
26
+ uses: actions/checkout@v4
27
+ with:
28
+ fetch-depth: 0 # Fetch full history for proper version detection
29
+
30
+ - name: Set up Python
31
+ uses: actions/setup-python@v5
32
+ with:
33
+ python-version: '3.12'
34
+
35
+ - name: Install system dependencies
36
+ run: |
37
+ sudo apt-get update
38
+ sudo apt-get install -y build-essential
39
+ sudo snap install astral-uv --classic
40
+
41
+
42
+ - name: Install git-cliff
43
+ run: |
44
+ curl -L https://github.com/orhun/git-cliff/releases/download/v2.10.0/git-cliff-2.10.0-x86_64-unknown-linux-gnu.tar.gz | tar xz
45
+ sudo mv git-cliff-*/git-cliff /usr/local/bin/
46
+ git-cliff --version
47
+
48
+ - name: Build Python package
49
+ run: |
50
+ uv build
51
+
52
+ - name: Check build artifacts
53
+ run: |
54
+ ls -la dist/
55
+ # Basic validation - ensure files exist
56
+ test -n "$(find dist -name '*.whl')" || (echo "No wheel files found" && exit 1)
57
+ test -n "$(find dist -name '*.tar.gz')" || (echo "No source distribution found" && exit 1)
58
+
59
+ - name: Upload build artifacts
60
+ uses: actions/upload-artifact@v4
61
+ with:
62
+ name: distribution-files
63
+ path: dist/
64
+ retention-days: 7
65
+
66
+ test-install:
67
+ name: Test Installation
68
+ needs: build
69
+ runs-on: ubuntu-latest
70
+ strategy:
71
+ matrix:
72
+ python-version: ['3.12', '3.13']
73
+
74
+ steps:
75
+ - name: Set up Python ${{ matrix.python-version }}
76
+ uses: actions/setup-python@v5
77
+ with:
78
+ python-version: ${{ matrix.python-version }}
79
+
80
+ - name: Download build artifacts
81
+ uses: actions/download-artifact@v4
82
+ with:
83
+ name: distribution-files
84
+ path: dist/
85
+
86
+ - name: Test wheel installation
87
+ run: |
88
+ sudo snap install astral-uv --classic
89
+ uv venv
90
+ uv pip install dist/*.whl
91
+ uv run python3 -c "import vantage_cli; print('Package imported successfully')"
92
+
93
+ publish-pypi:
94
+ name: Publish to PyPI
95
+ needs: [build, test-install]
96
+ runs-on: ubuntu-latest
97
+ if: startsWith(github.ref, 'refs/tags/')
98
+ environment:
99
+ name: pypi
100
+ url: https://pypi.org/p/vantage-cli
101
+
102
+ steps:
103
+ - name: Download build artifacts
104
+ uses: actions/download-artifact@v4
105
+ with:
106
+ name: distribution-files
107
+ path: dist/
108
+
109
+ - name: Publish to PyPI
110
+ run: |
111
+ sudo snap install astral-uv --classic
112
+ uv publish
113
+
114
+ create-release:
115
+ name: Create GitHub Release
116
+ needs: [build, test-install]
117
+ runs-on: ubuntu-latest
118
+ if: startsWith(github.ref, 'refs/tags/')
119
+
120
+ steps:
121
+ - name: Checkout code
122
+ uses: actions/checkout@v4
123
+ with:
124
+ fetch-depth: 0
125
+
126
+ - name: Download build artifacts
127
+ uses: actions/download-artifact@v4
128
+ with:
129
+ name: distribution-files
130
+ path: dist/
131
+
132
+ - name: Extract version from tag
133
+ id: get_version
134
+ run: |
135
+ VERSION=${GITHUB_REF#refs/tags/}
136
+ echo "version=$VERSION" >> $GITHUB_OUTPUT
137
+ echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
138
+
139
+ - name: Generate release notes
140
+ id: release_notes
141
+ run: |
142
+ # Extract release notes from CHANGELOG.md if it exists
143
+ if [ -f "CHANGELOG.md" ]; then
144
+ # Try to extract notes for this version using git-cliff for consistency
145
+ VERSION="${{ steps.get_version.outputs.version }}"
146
+
147
+ # Use git-cliff to generate notes for this specific version
148
+ git-cliff --latest --strip header --strip footer > release_notes.txt || true
149
+
150
+ # If that fails, fall back to grep method
151
+ if [ ! -s release_notes.txt ]; then
152
+ grep -A 1000 "^## .*${VERSION}" CHANGELOG.md | grep -B 1000 -m 2 "^## " | head -n -1 | tail -n +2 > release_notes.txt || true
153
+ fi
154
+
155
+ # If no specific version notes found, create generic notes
156
+ if [ ! -s release_notes.txt ]; then
157
+ echo "Release ${{ steps.get_version.outputs.tag }}" > release_notes.txt
158
+ echo "" >> release_notes.txt
159
+ echo "### Changes" >> release_notes.txt
160
+ echo "- See CHANGELOG.md for detailed changes" >> release_notes.txt
161
+ fi
162
+ else
163
+ echo "Release ${{ steps.get_version.outputs.tag }}" > release_notes.txt
164
+ echo "" >> release_notes.txt
165
+ echo "### Files" >> release_notes.txt
166
+ echo "- Source distribution (tar.gz)" >> release_notes.txt
167
+ echo "- Wheel distribution (.whl)" >> release_notes.txt
168
+ fi
169
+
170
+ echo "Release notes:"
171
+ cat release_notes.txt
172
+
173
+ - name: Create Release
174
+ uses: softprops/action-gh-release@v1
175
+ with:
176
+ name: Release ${{ steps.get_version.outputs.tag }}
177
+ body_path: release_notes.txt
178
+ files: |
179
+ dist/*.tar.gz
180
+ dist/*.whl
181
+ draft: false
182
+ prerelease: ${{ contains(steps.get_version.outputs.version, 'rc') || contains(steps.get_version.outputs.version, 'beta') || contains(steps.get_version.outputs.version, 'alpha') }}
183
+ generate_release_notes: true
184
+ env:
185
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
186
+
187
+ notify-success:
188
+ name: Notify Success
189
+ needs: [publish-pypi, create-release]
190
+ runs-on: ubuntu-latest
191
+ if: success() && startsWith(github.ref, 'refs/tags/')
192
+
193
+ steps:
194
+ - name: Extract version from tag
195
+ id: get_version
196
+ run: |
197
+ VERSION=${GITHUB_REF#refs/tags/}
198
+ echo "version=$VERSION" >> $GITHUB_OUTPUT
199
+ echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
200
+
201
+ - name: Success notification
202
+ run: |
203
+ echo "🎉 Successfully released vantage-cli ${{ steps.get_version.outputs.tag }}"
204
+ echo "📦 Published to PyPI: https://pypi.org/project/vantage-cli/${{ steps.get_version.outputs.version }}/"
205
+ echo "🚀 GitHub Release: ${{ github.server_url }}/${{ github.repository }}/releases/tag/${{ steps.get_version.outputs.tag }}"
@@ -0,0 +1,30 @@
1
+ __pycache__/
2
+ **/__pycache__/
3
+ **/**/__pycache__/
4
+ .venv
5
+ venv/
6
+ env/
7
+ .env
8
+ **/.env
9
+ .coverage
10
+ cover_unit
11
+ cover_integration
12
+ cover_combined
13
+ .coverage.*
14
+ coverage
15
+ cover/
16
+ htmlcov/
17
+ .tox/
18
+ .nox/
19
+ .pytest_cache/
20
+ .pytest_cache/**
21
+ .pytest_cache/**/*
22
+ .pytest_cache/**/*
23
+ .ruff_cache/
24
+ .mypy_cache/
25
+ .dmypy.json
26
+ .dmypy.json/**
27
+ .pyre/
28
+ .pyre/**
29
+ .pyre/**/*
30
+ .ipynb_checkpoints
@@ -0,0 +1,30 @@
1
+ Metadata-Version: 2.4
2
+ Name: vantage-cli
3
+ Version: 0.1.1
4
+ Summary: The Vantage Compute CLI.
5
+ Author-email: jamesbeedy <james@vantagecompute.ai>
6
+ License: MIT
7
+ Requires-Python: >=3.12
8
+ Requires-Dist: aiohttp>=3.8.0
9
+ Requires-Dist: anyio>=3.6.0
10
+ Requires-Dist: gql>=4.0.0
11
+ Requires-Dist: httpx>=0.28.1
12
+ Requires-Dist: juju~=3.6
13
+ Requires-Dist: loguru>=0.7.3
14
+ Requires-Dist: pendulum>=3.1.0
15
+ Requires-Dist: py-buzz>=7.3
16
+ Requires-Dist: pydantic>=2.11
17
+ Requires-Dist: python-jose[cryptography]>=3.5.0
18
+ Requires-Dist: requests-toolbelt>=0.10.0
19
+ Requires-Dist: rich>=14.1.0
20
+ Requires-Dist: ruamel-yaml
21
+ Requires-Dist: snick>=2.1
22
+ Requires-Dist: typer>=0.17.4
23
+ Provides-Extra: dev
24
+ Requires-Dist: black; extra == 'dev'
25
+ Requires-Dist: codespell; extra == 'dev'
26
+ Requires-Dist: coverage[toml]~=7.8; extra == 'dev'
27
+ Requires-Dist: pyright; extra == 'dev'
28
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
29
+ Requires-Dist: pytest>=7.0.0; extra == 'dev'
30
+ Requires-Dist: ruff; extra == 'dev'
@@ -0,0 +1,86 @@
1
+ <div align="center">
2
+ <a href="https://www.vantagecompute.ai/">
3
+ <img src="https://vantage-compute-public-assets.s3.us-east-1.amazonaws.com/branding/vantage-logo-text-black-horz.png" alt="Vantage Compute Logo" width="100" style="margin-bottom: 0.5em;"/>
4
+ </a>
5
+ </div>
6
+ <div align="center">
7
+
8
+ # Vantage CLI
9
+
10
+ [![License](https://img.shields.io/badge/license-Apache%202.0-green.svg)](LICENSE)
11
+ [![Python](https://img.shields.io/badge/python-3.11+-blue.svg)](https://python.org)
12
+ [![PyPI](https://img.shields.io/pypi/v/vantage-cli.svg)](https://pypi.org/project/vantage-cli/)
13
+
14
+ ![Build Status](https://img.shields.io/github/actions/workflow/status/vantagecompute/vantage-cli/ci.yaml?branch=main&label=build&logo=github&style=plastic)
15
+ ![GitHub Issues](https://img.shields.io/github/issues/vantagecompute/vantage-cli?label=issues&logo=github&style=plastic)
16
+ ![Pull Requests](https://img.shields.io/github/issues-pr/vantagecompute/vantage-cli?label=pull-requests&logo=github&style=plastic)
17
+ ![GitHub Contributors](https://img.shields.io/github/contributors/vantagecompute/vantage-cli?logo=github&style=plastic)
18
+
19
+ </div>
20
+
21
+ A modern Python CLI tool to interface to Vantage Compute.
22
+
23
+ ## 🚀 Quick Start
24
+
25
+ ### Option 1: Install from PyPI (Recommended)
26
+
27
+ ```bash
28
+ # Install LXD
29
+ pip install vantage-cli
30
+
31
+ # Login to Vantage
32
+ vantage login
33
+
34
+ # Check your logged in user
35
+ vantage whoami
36
+ ```
37
+
38
+ ### Option 2: Install from Source
39
+
40
+ ```bash
41
+ # Clone and setup
42
+ git clone https://github.com/vantagecompute/vantage-cli.git
43
+ cd vantage-cli && uv sync
44
+
45
+ # Login to Vantage
46
+ uv run vantage login
47
+ ```
48
+
49
+ ## 📚 Documentation
50
+
51
+ Visit our comprehensive documentation site:
52
+ **[vantagecompute.github.io/vantage-cli](https://vantagecompute.github.io/vantage-cli)**
53
+
54
+ - **[Installation Guide](https://vantagecompute.github.io/vantage-cli/installation/)**: Detailed setup instructions
55
+ - **[Architecture Overview](https://vantagecompute.github.io/vantage-cli/architecture/)**: How vantage-cli works
56
+ - **[Command Reference](https://vantagecompute.github.io/vantage-cli/commands/)**: Complete command documentation
57
+ - **[Troubleshooting](https://vantagecompute.github.io/vantage-cli/troubleshooting/)**: Common issues and solutions
58
+
59
+
60
+ ## 📄 License
61
+
62
+ This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
63
+
64
+ Copyright 2025 Vantage Compute Corporation
65
+
66
+ Licensed under the Apache License, Version 2.0 (the "License");
67
+ you may not use this file except in compliance with the License.
68
+ You may obtain a copy of the License at
69
+
70
+ http://www.apache.org/licenses/LICENSE-2.0
71
+
72
+ Unless required by applicable law or agreed to in writing, software
73
+ distributed under the License is distributed on an "AS IS" BASIS,
74
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
75
+ See the License for the specific language governing permissions and
76
+ limitations under the License.
77
+
78
+ ## 🆘 Support
79
+
80
+ - **Issues**: [GitHub Issues](https://github.com/vantagecompute/vantage-cli/issues)
81
+ - **Discussions**: [GitHub Discussions](https://github.com/vantagecompute/vantage-cli/discussions)
82
+ - **Email**: [james@vantagecompute.ai](mailto:james@vantagecompute.ai)
83
+
84
+ ---
85
+
86
+ **Made with ❤️ by [Vantage Compute](https://vantagecompute.ai)**
@@ -0,0 +1,24 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "github-pages", group: :jekyll_plugins
4
+ gem "webrick", "~> 1.7"
5
+
6
+ group :jekyll_plugins do
7
+ gem "jekyll-feed", "~> 0.12"
8
+ gem "jekyll-sitemap"
9
+ gem "jekyll-seo-tag"
10
+ end
11
+
12
+ # Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
13
+ # and associated library.
14
+ platforms :mingw, :x64_mingw, :mswin, :jruby do
15
+ gem "tzinfo", ">= 1", "< 3"
16
+ gem "tzinfo-data"
17
+ end
18
+
19
+ # Performance-booster for watching directories on Windows
20
+ gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]
21
+
22
+ # Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem
23
+ # do not have a Java counterpart.
24
+ gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby]
@@ -0,0 +1,68 @@
1
+ # Copyright (c) 2025 James Beedy.
2
+ # GitHub Pages configuration for Vantage CLI
3
+ title: Vantage CLI
4
+ description: A powerful Python CLI for interacting with the Vantage platform.
5
+
6
+ # Site settings
7
+ url: "https://vantagecompute.github.io"
8
+ baseurl: "/vantage-cli"
9
+ repository: "vantagecompute/vantage-cli"
10
+
11
+ # Logo and branding
12
+ show_downloads: true
13
+
14
+ # Author information
15
+ author:
16
+ name: "James Beedy"
17
+ email: "james@vantagecompute.ai"
18
+
19
+ # Social links
20
+ github_username: vantagecompute
21
+
22
+ # Build settings
23
+ markdown: kramdown
24
+ highlighter: rouge
25
+ kramdown:
26
+ syntax_highlighter: rouge
27
+ syntax_highlighter_opts:
28
+ line_numbers: false
29
+ block:
30
+ line_numbers: false
31
+ span:
32
+ line_numbers: false
33
+ input: GFM
34
+
35
+ plugins:
36
+ - jekyll-feed
37
+ - jekyll-sitemap
38
+ - jekyll-seo-tag
39
+
40
+ # Exclude files from processing
41
+ exclude:
42
+ - Gemfile
43
+ - Gemfile.lock
44
+ - node_modules
45
+ - vendor/bundle/
46
+ - vendor/cache/
47
+ - vendor/gems/
48
+ - vendor/ruby/
49
+ - README.md
50
+
51
+ # Collections
52
+ collections:
53
+ docs:
54
+ output: true
55
+ permalink: /:collection/:name/
56
+
57
+ # Defaults
58
+ defaults:
59
+ - scope:
60
+ path: ""
61
+ type: "pages"
62
+ values:
63
+ layout: "page"
64
+ - scope:
65
+ path: ""
66
+ type: "docs"
67
+ values:
68
+ layout: "page"
@@ -0,0 +1,38 @@
1
+ # Project metadata for Vantage CLI
2
+ name: "vantage-cli"
3
+ version: "0.1.0"
4
+ description: "CLI for authentication, profiles, clusters, apps & GraphQL against the Vantage Compute platform"
5
+ repository: "https://github.com/vantagecompute/vantage-cli"
6
+ documentation: "https://vantagecompute.github.io/vantage-cli"
7
+ license: "Apache 2.0"
8
+ python_version: ">=3.12"
9
+ updated: "2025-09-09"
10
+
11
+
12
+
13
+ # Key technologies
14
+ technologies:
15
+ - "Python 3.12+"
16
+ - "Typer CLI Framework"
17
+ - "Rich Terminal UI"
18
+ - "HTTPX Async Client"
19
+ - "GraphQL"
20
+ - "OIDC / OAuth2"
21
+ - "Pytest"
22
+ - "uv Package Manager"
23
+ - "Pydantic-style Schemas"
24
+ - "GitHub Actions CI"
25
+ - "MicroK8s (app helper)"
26
+ - "Multipass (app helper)"
27
+ - "Juju (app helper)"
28
+
29
+ # Package features
30
+ features:
31
+ - "Profile & token management"
32
+ - "Cluster create/list/get/delete"
33
+ - "Client secret retrieval"
34
+ - "App deployment helpers"
35
+ - "GraphQL query execution"
36
+ - "Retry & metrics logging"
37
+ - "JSON or Rich output"
38
+ - "High test coverage"