missing-ag-updater 0.1.0__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.
@@ -0,0 +1,15 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "uv"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "weekly"
7
+ assignees:
8
+ - "hellqvio86"
9
+
10
+ - package-ecosystem: "github-actions"
11
+ directory: "/"
12
+ schedule:
13
+ interval: "weekly"
14
+ assignees:
15
+ - "hellqvio86"
@@ -0,0 +1,272 @@
1
+ name: CI/CD
2
+
3
+ permissions:
4
+ contents: read
5
+
6
+ on:
7
+ push:
8
+ branches: [main]
9
+ pull_request:
10
+ branches: [main]
11
+ release:
12
+ types: [published]
13
+ workflow_dispatch:
14
+ inputs:
15
+ job:
16
+ description: 'Select which job to run'
17
+ required: true
18
+ default: 'all'
19
+ type: choice
20
+ options:
21
+ - all
22
+ - lint
23
+ - test
24
+ - draft-release
25
+ - publish
26
+
27
+ jobs:
28
+ lint:
29
+ name: Lint
30
+ runs-on: ubuntu-latest
31
+ if: |
32
+ github.event_name != 'workflow_dispatch' ||
33
+ inputs.job == 'all' ||
34
+ inputs.job == 'lint'
35
+ steps:
36
+ - name: Checkout code
37
+ uses: actions/checkout@v6
38
+
39
+ - name: Install uv
40
+ uses: astral-sh/setup-uv@v7
41
+ with:
42
+ enable-cache: true
43
+
44
+ - name: Set up Python
45
+ uses: actions/setup-python@v6
46
+ with:
47
+ python-version: "3.12"
48
+
49
+ - name: Install dependencies
50
+ run: uv sync
51
+
52
+ - name: Run ruff check
53
+ run: uv run ruff check .
54
+
55
+ - name: Run ruff format check
56
+ run: uv run ruff format --check .
57
+
58
+ test:
59
+ name: Test (Python ${{ matrix.python-version }})
60
+ runs-on: ubuntu-latest
61
+ permissions:
62
+ contents: write
63
+ if: |
64
+ github.event_name != 'workflow_dispatch' ||
65
+ inputs.job == 'all' ||
66
+ inputs.job == 'test'
67
+ strategy:
68
+ fail-fast: false
69
+ matrix:
70
+ python-version: ["3.12", "3.13", "3.14"]
71
+
72
+ steps:
73
+ - name: Checkout code
74
+ uses: actions/checkout@v6
75
+
76
+ - name: Install uv
77
+ uses: astral-sh/setup-uv@v7
78
+ with:
79
+ enable-cache: true
80
+
81
+ - name: Set up Python ${{ matrix.python-version }}
82
+ uses: actions/setup-python@v6
83
+ with:
84
+ python-version: ${{ matrix.python-version }}
85
+
86
+ - name: Install dependencies
87
+ run: uv sync
88
+
89
+ - name: Run tests
90
+ run: |
91
+ uv run pytest --cov=src/missing_ag_updater --cov-report=term-missing
92
+
93
+ - name: Generate coverage badge
94
+ if: matrix.python-version == '3.12'
95
+ run: |
96
+ uv run python src/generate_badge.py
97
+
98
+ - name: Commit and push coverage badge
99
+ if: matrix.python-version == '3.12' && github.event_name == 'push' && github.ref == 'refs/heads/main'
100
+ run: |
101
+ git config user.name "github-actions[bot]"
102
+ git config user.email "github-actions[bot]@users.noreply.github.com"
103
+ git add coverage.svg
104
+ git commit -m "Update coverage badge [skip ci]" || exit 0
105
+ git push origin HEAD:main
106
+
107
+ all-checks:
108
+ name: All Checks Passed
109
+ if: always()
110
+ needs: [lint, test]
111
+ outputs:
112
+ success: ${{ steps.check.outputs.success }}
113
+ runs-on: ubuntu-latest
114
+ steps:
115
+ - name: Check all jobs
116
+ id: check
117
+ run: |
118
+ LINT_RESULT="${{ needs.lint.result }}"
119
+ TEST_RESULT="${{ needs.test.result }}"
120
+ if [[ "$LINT_RESULT" == "success" || "$LINT_RESULT" == "skipped" ]] && \
121
+ [[ "$TEST_RESULT" == "success" || "$TEST_RESULT" == "skipped" ]]; then
122
+ echo "success=true" >> $GITHUB_OUTPUT
123
+ echo "All executed checks passed!"
124
+ else
125
+ echo "success=false" >> $GITHUB_OUTPUT
126
+ echo "One or more checks failed"
127
+ exit 1
128
+ fi
129
+
130
+ draft-release:
131
+ name: Draft Release
132
+ runs-on: ubuntu-latest
133
+ needs: [all-checks]
134
+ if: |
135
+ always() &&
136
+ needs.all-checks.outputs.success == 'true' &&
137
+ (
138
+ (github.event_name == 'push' && github.ref == 'refs/heads/main') ||
139
+ (github.event_name == 'workflow_dispatch' && (inputs.job == 'all' || inputs.job == 'draft-release'))
140
+ )
141
+ permissions:
142
+ contents: write
143
+ steps:
144
+ - name: Checkout code
145
+ uses: actions/checkout@v6
146
+ with:
147
+ fetch-depth: 2
148
+
149
+ - name: Check version change
150
+ id: check_version
151
+ shell: bash
152
+ run: |
153
+ CURRENT_VERSION=$(grep -m 1 '^version =' pyproject.toml | cut -d '"' -f 2)
154
+ PREVIOUS_VERSION=$(git show HEAD~1:pyproject.toml 2>/dev/null | grep -m 1 '^version =' | cut -d '"' -f 2 || echo "")
155
+
156
+ if [ -n "$PREVIOUS_VERSION" ] && [ "$CURRENT_VERSION" != "$PREVIOUS_VERSION" ]; then
157
+ echo "changed=true" >> $GITHUB_OUTPUT
158
+ echo "version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
159
+ else
160
+ echo "changed=false" >> $GITHUB_OUTPUT
161
+ fi
162
+
163
+ - name: Create Git tag
164
+ if: steps.check_version.outputs.changed == 'true'
165
+ run: |
166
+ git config user.name "github-actions[bot]"
167
+ git config user.email "github-actions[bot]@users.noreply.github.com"
168
+ git tag -a "v${{ steps.check_version.outputs.version }}" -m "Release v${{ steps.check_version.outputs.version }}"
169
+ git push origin "v${{ steps.check_version.outputs.version }}"
170
+
171
+ - name: Build package
172
+ if: steps.check_version.outputs.changed == 'true'
173
+ run: |
174
+ uv build
175
+
176
+ - name: Generate SBOM
177
+ if: steps.check_version.outputs.changed == 'true'
178
+ uses: anchore/sbom-action@v0
179
+ with:
180
+ path: .
181
+ format: spdx-json
182
+ output-file: sbom.spdx.json
183
+
184
+ - name: Create Release Draft
185
+ if: steps.check_version.outputs.changed == 'true'
186
+ uses: softprops/action-gh-release@v3
187
+ with:
188
+ tag_name: v${{ steps.check_version.outputs.version }}
189
+ name: v${{ steps.check_version.outputs.version }}
190
+ draft: true
191
+ generate_release_notes: true
192
+ files: |
193
+ dist/*.whl
194
+ dist/*.tar.gz
195
+ sbom.spdx.json
196
+ token: ${{ secrets.GITHUB_TOKEN }}
197
+
198
+ publish:
199
+ name: Build and Publish
200
+ runs-on: ubuntu-latest
201
+ permissions:
202
+ contents: write
203
+ id-token: write
204
+ needs: [all-checks]
205
+ environment:
206
+ name: pypi
207
+ url: https://pypi.org/p/missing-ag-updater
208
+ if: |
209
+ always() &&
210
+ needs.all-checks.outputs.success == 'true' &&
211
+ (
212
+ (github.event_name == 'release' && github.event.action == 'published') ||
213
+ (github.event_name == 'workflow_dispatch' && inputs.job == 'publish')
214
+ )
215
+ steps:
216
+ - name: Checkout code
217
+ uses: actions/checkout@v6
218
+
219
+ - name: Install uv
220
+ uses: astral-sh/setup-uv@v7
221
+ with:
222
+ enable-cache: true
223
+
224
+ - name: Set up Python
225
+ uses: actions/setup-python@v6
226
+ with:
227
+ python-version: "3.12"
228
+
229
+ - name: Build package
230
+ run: uv build
231
+
232
+ - name: Generate SBOM
233
+ uses: anchore/sbom-action@v0
234
+ with:
235
+ path: .
236
+ format: spdx-json
237
+ output-file: sbom.spdx.json
238
+
239
+ - name: Upload SBOM to release
240
+ if: github.event_name == 'release'
241
+ uses: softprops/action-gh-release@v3
242
+ with:
243
+ files: sbom.spdx.json
244
+ token: ${{ secrets.GITHUB_TOKEN }}
245
+
246
+ - name: Publish to PyPI
247
+ uses: pypa/gh-action-pypi-publish@release/v1
248
+ with:
249
+ packages-dir: dist/
250
+
251
+ sbom:
252
+ name: Generate and Upload SBOM
253
+ runs-on: ubuntu-latest
254
+ if: |
255
+ (github.event_name == 'push' && github.ref == 'refs/heads/main') ||
256
+ (github.event_name == 'workflow_dispatch' && (inputs.job == 'all' || inputs.job == 'publish' || inputs.job == 'draft-release'))
257
+ steps:
258
+ - name: Checkout code
259
+ uses: actions/checkout@v6
260
+
261
+ - name: Generate SBOM
262
+ uses: anchore/sbom-action@v0
263
+ with:
264
+ path: .
265
+ format: spdx-json
266
+ output-file: sbom.spdx.json
267
+
268
+ - name: Upload SBOM Artifact
269
+ uses: actions/upload-artifact@v7
270
+ with:
271
+ name: sbom
272
+ path: sbom.spdx.json
@@ -0,0 +1,12 @@
1
+ __pycache__/
2
+ *.pyc
3
+ *.pyo
4
+ *.pyd
5
+ .DS_Store
6
+ *.tar.gz
7
+ .venv/
8
+ *.egg-info/
9
+ .coverage
10
+ coverage.json
11
+ .pytest_cache/
12
+ .ruff_cache/
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 hellqvio
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,27 @@
1
+ .PHONY: venv lint test clean format build publish
2
+
3
+ .venv: pyproject.toml
4
+ if [ ! -d .venv ]; then uv venv; fi
5
+ uv pip install -e . --group dev
6
+
7
+ venv: .venv
8
+
9
+ lint: .venv
10
+ .venv/bin/ruff check .
11
+ .venv/bin/ruff format --check .
12
+
13
+ format: .venv
14
+ .venv/bin/ruff format .
15
+
16
+ test: .venv
17
+ .venv/bin/pytest --cov=src/missing_ag_updater --cov-report=term-missing
18
+ .venv/bin/python3 src/generate_badge.py
19
+
20
+ build: .venv
21
+ uv build
22
+
23
+ publish: build
24
+ uv publish
25
+
26
+ clean:
27
+ rm -rf .venv __pycache__ .pytest_cache .ruff_cache dist
@@ -0,0 +1,149 @@
1
+ Metadata-Version: 2.4
2
+ Name: missing-ag-updater
3
+ Version: 0.1.0
4
+ Summary: Auto-updater utility for Google Antigravity developer tools (IDE, Hub, CLI)
5
+ Author: hellqvio
6
+ License: MIT
7
+ License-File: LICENSE
8
+ Classifier: Development Status :: 3 - Alpha
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Programming Language :: Python :: 3
12
+ Requires-Python: >=3.12
13
+ Description-Content-Type: text/markdown
14
+
15
+ # missing-ag-updater
16
+
17
+ [![CI/CD](https://github.com/hellqvio86/missing-ag-updater/actions/workflows/ci.yml/badge.svg)](https://github.com/hellqvio86/missing-ag-updater/actions/workflows/ci.yml)
18
+ [![Coverage](coverage.svg)](https://github.com/hellqvio86/missing-ag-updater/actions)
19
+ [![PyPI Version](https://img.shields.io/pypi/v/missing-ag-updater.svg)](https://pypi.org/project/missing-ag-updater/)
20
+ [![Python Versions](https://img.shields.io/pypi/pyversions/missing-ag-updater.svg)](https://pypi.org/project/missing-ag-updater/)
21
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
22
+
23
+ > [!IMPORTANT]
24
+ > **Disclaimer:** This project is an unofficial, community-maintained utility. It is **NOT** affiliated with, sponsored by, or supported by Google LLC.
25
+
26
+ > [!WARNING]
27
+ > **Alpha Software:** This utility is currently in an early **alpha** stage of development. Features may change without notice, and bugs may occur. Use with caution.
28
+
29
+ This repository contains a Python utility to check for and apply updates to the Google Antigravity developer suite on Linux, macOS, and Windows.
30
+
31
+ ## Features
32
+
33
+ - **Component Support:** Independently check and upgrade:
34
+ - **Antigravity IDE** (VS Code-based AI Editor)
35
+ - **Antigravity Hub** (Standalone Agent Desktop Application)
36
+ - **Antigravity CLI** (`agy` command line tool)
37
+ - **Cross-Platform:** Supports Linux (`.tar.gz`), macOS (`.dmg` mount installation), and Windows (`.exe` silent installation).
38
+ - **Safe Installation:** Warns if the target application is running before attempting to overwrite files.
39
+ - **Verification:** Downloads the CLI directly and verifies SHA512 checksums prior to installation.
40
+ - **Rich Terminal UI:** Displays download progress bars and clear success/warning logs.
41
+ - **Dry Run Support:** Check if any updates are available without changing any files.
42
+ - **Development Tooling:** Complete with linter, test coverage, and environment creation via `uv`.
43
+
44
+ ## Installation
45
+
46
+ ### For Users (via pipx)
47
+
48
+ You can install the tool globally into an isolated virtual environment using `pipx`:
49
+
50
+ ```bash
51
+ # Install directly from the GitHub repository:
52
+ pipx install git+https://github.com/hellqvio86/missing-ag-updater.git
53
+
54
+ # Or install from PyPI (once published):
55
+ pipx install missing-ag-updater
56
+ ```
57
+
58
+ Once installed, the `antigravity-updater` command will be globally available.
59
+
60
+ ### For Developers
61
+
62
+ Create the local virtual environment and install development tools (`pytest`, `ruff`) using `uv` and the provided `Makefile`:
63
+ ```bash
64
+ make venv
65
+ ```
66
+
67
+ ## Usage
68
+
69
+ Run the package directly to check and update all components:
70
+ ```bash
71
+ python -m missing_ag_updater
72
+ # or using the installed entrypoint:
73
+ antigravity-updater
74
+ ```
75
+
76
+ ### Options
77
+
78
+ ```text
79
+ usage: python -m missing_ag_updater [-h] [--check] [--ide] [--hub] [--cli] [--force]
80
+ [--dir-ide DIR_IDE] [--dir-hub DIR_HUB] [--path-cli PATH_CLI]
81
+
82
+ Auto-updater utility for Google Antigravity developer tools (Cross-Platform).
83
+
84
+ options:
85
+ -h, --help show this help message and exit
86
+ --check Check for available updates without installing (dry run)
87
+ --ide Update only the Antigravity IDE
88
+ --hub Update only the Antigravity Hub
89
+ --cli Update only the Antigravity CLI
90
+ --force Bypass version checks and active process warnings
91
+ --dir-ide DIR_IDE Override path to Antigravity IDE folder/bundle
92
+ --dir-hub DIR_HUB Override path to Antigravity Hub folder/bundle
93
+ --path-cli PATH_CLI Override path to Antigravity CLI binary
94
+ ```
95
+
96
+ ### Examples
97
+
98
+ - **Dry run check for all tools:**
99
+ ```bash
100
+ python -m missing_ag_updater --check
101
+ ```
102
+
103
+ - **Force update the Hub application only:**
104
+ ```bash
105
+ python -m missing_ag_updater --hub --force
106
+ ```
107
+
108
+ - **Update only the CLI tool:**
109
+ ```bash
110
+ python -m missing_ag_updater --cli
111
+ ```
112
+
113
+ ## Launching the Applications
114
+
115
+ Once updated, you can launch the Antigravity tools using their standard terminal commands:
116
+
117
+ - **Antigravity IDE** (VS Code-based AI Editor):
118
+ ```bash
119
+ antigravity-ide
120
+ ```
121
+ - **Antigravity Hub** (Standalone agent desktop application):
122
+ ```bash
123
+ antigravity
124
+ ```
125
+ - **Antigravity CLI** (Terminal utility):
126
+ ```bash
127
+ agy
128
+ ```
129
+
130
+ ## Development
131
+
132
+ The project includes a `Makefile` to simplify development tasks:
133
+
134
+ - **Lint check (Ruff):**
135
+ ```bash
136
+ make lint
137
+ ```
138
+ - **Run unit tests (Pytest):**
139
+ ```bash
140
+ make test
141
+ ```
142
+ - **Clean virtual environment & cache:**
143
+ ```bash
144
+ make clean
145
+ ```
146
+
147
+ ## License
148
+
149
+ This project is licensed under the [MIT License](LICENSE).
@@ -0,0 +1,135 @@
1
+ # missing-ag-updater
2
+
3
+ [![CI/CD](https://github.com/hellqvio86/missing-ag-updater/actions/workflows/ci.yml/badge.svg)](https://github.com/hellqvio86/missing-ag-updater/actions/workflows/ci.yml)
4
+ [![Coverage](coverage.svg)](https://github.com/hellqvio86/missing-ag-updater/actions)
5
+ [![PyPI Version](https://img.shields.io/pypi/v/missing-ag-updater.svg)](https://pypi.org/project/missing-ag-updater/)
6
+ [![Python Versions](https://img.shields.io/pypi/pyversions/missing-ag-updater.svg)](https://pypi.org/project/missing-ag-updater/)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
+
9
+ > [!IMPORTANT]
10
+ > **Disclaimer:** This project is an unofficial, community-maintained utility. It is **NOT** affiliated with, sponsored by, or supported by Google LLC.
11
+
12
+ > [!WARNING]
13
+ > **Alpha Software:** This utility is currently in an early **alpha** stage of development. Features may change without notice, and bugs may occur. Use with caution.
14
+
15
+ This repository contains a Python utility to check for and apply updates to the Google Antigravity developer suite on Linux, macOS, and Windows.
16
+
17
+ ## Features
18
+
19
+ - **Component Support:** Independently check and upgrade:
20
+ - **Antigravity IDE** (VS Code-based AI Editor)
21
+ - **Antigravity Hub** (Standalone Agent Desktop Application)
22
+ - **Antigravity CLI** (`agy` command line tool)
23
+ - **Cross-Platform:** Supports Linux (`.tar.gz`), macOS (`.dmg` mount installation), and Windows (`.exe` silent installation).
24
+ - **Safe Installation:** Warns if the target application is running before attempting to overwrite files.
25
+ - **Verification:** Downloads the CLI directly and verifies SHA512 checksums prior to installation.
26
+ - **Rich Terminal UI:** Displays download progress bars and clear success/warning logs.
27
+ - **Dry Run Support:** Check if any updates are available without changing any files.
28
+ - **Development Tooling:** Complete with linter, test coverage, and environment creation via `uv`.
29
+
30
+ ## Installation
31
+
32
+ ### For Users (via pipx)
33
+
34
+ You can install the tool globally into an isolated virtual environment using `pipx`:
35
+
36
+ ```bash
37
+ # Install directly from the GitHub repository:
38
+ pipx install git+https://github.com/hellqvio86/missing-ag-updater.git
39
+
40
+ # Or install from PyPI (once published):
41
+ pipx install missing-ag-updater
42
+ ```
43
+
44
+ Once installed, the `antigravity-updater` command will be globally available.
45
+
46
+ ### For Developers
47
+
48
+ Create the local virtual environment and install development tools (`pytest`, `ruff`) using `uv` and the provided `Makefile`:
49
+ ```bash
50
+ make venv
51
+ ```
52
+
53
+ ## Usage
54
+
55
+ Run the package directly to check and update all components:
56
+ ```bash
57
+ python -m missing_ag_updater
58
+ # or using the installed entrypoint:
59
+ antigravity-updater
60
+ ```
61
+
62
+ ### Options
63
+
64
+ ```text
65
+ usage: python -m missing_ag_updater [-h] [--check] [--ide] [--hub] [--cli] [--force]
66
+ [--dir-ide DIR_IDE] [--dir-hub DIR_HUB] [--path-cli PATH_CLI]
67
+
68
+ Auto-updater utility for Google Antigravity developer tools (Cross-Platform).
69
+
70
+ options:
71
+ -h, --help show this help message and exit
72
+ --check Check for available updates without installing (dry run)
73
+ --ide Update only the Antigravity IDE
74
+ --hub Update only the Antigravity Hub
75
+ --cli Update only the Antigravity CLI
76
+ --force Bypass version checks and active process warnings
77
+ --dir-ide DIR_IDE Override path to Antigravity IDE folder/bundle
78
+ --dir-hub DIR_HUB Override path to Antigravity Hub folder/bundle
79
+ --path-cli PATH_CLI Override path to Antigravity CLI binary
80
+ ```
81
+
82
+ ### Examples
83
+
84
+ - **Dry run check for all tools:**
85
+ ```bash
86
+ python -m missing_ag_updater --check
87
+ ```
88
+
89
+ - **Force update the Hub application only:**
90
+ ```bash
91
+ python -m missing_ag_updater --hub --force
92
+ ```
93
+
94
+ - **Update only the CLI tool:**
95
+ ```bash
96
+ python -m missing_ag_updater --cli
97
+ ```
98
+
99
+ ## Launching the Applications
100
+
101
+ Once updated, you can launch the Antigravity tools using their standard terminal commands:
102
+
103
+ - **Antigravity IDE** (VS Code-based AI Editor):
104
+ ```bash
105
+ antigravity-ide
106
+ ```
107
+ - **Antigravity Hub** (Standalone agent desktop application):
108
+ ```bash
109
+ antigravity
110
+ ```
111
+ - **Antigravity CLI** (Terminal utility):
112
+ ```bash
113
+ agy
114
+ ```
115
+
116
+ ## Development
117
+
118
+ The project includes a `Makefile` to simplify development tasks:
119
+
120
+ - **Lint check (Ruff):**
121
+ ```bash
122
+ make lint
123
+ ```
124
+ - **Run unit tests (Pytest):**
125
+ ```bash
126
+ make test
127
+ ```
128
+ - **Clean virtual environment & cache:**
129
+ ```bash
130
+ make clean
131
+ ```
132
+
133
+ ## License
134
+
135
+ This project is licensed under the [MIT License](LICENSE).
@@ -0,0 +1,20 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="90" height="20">
2
+ <linearGradient id="b" x2="0" y2="100%">
3
+ <stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
4
+ <stop offset="1" stop-opacity=".1"/>
5
+ </linearGradient>
6
+ <mask id="a">
7
+ <rect width="90" height="20" rx="3" fill="#fff"/>
8
+ </mask>
9
+ <g mask="url(#a)">
10
+ <rect width="61" height="20" fill="#555"/>
11
+ <rect x="61" width="29" height="20" fill="#e05d44"/>
12
+ <rect width="90" height="20" fill="url(#b)"/>
13
+ </g>
14
+ <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
15
+ <text x="31.5" y="15" fill="#010101" fill-opacity=".3">coverage</text>
16
+ <text x="31.5" y="14">coverage</text>
17
+ <text x="75.5" y="15" fill="#010101" fill-opacity=".3">22%</text>
18
+ <text x="75.5" y="14">22%</text>
19
+ </g>
20
+ </svg>
@@ -0,0 +1,42 @@
1
+ [project]
2
+ name = "missing-ag-updater"
3
+ version = "0.1.0"
4
+ description = "Auto-updater utility for Google Antigravity developer tools (IDE, Hub, CLI)"
5
+ readme = "README.md"
6
+ requires-python = ">=3.12"
7
+ license = {text = "MIT"}
8
+ authors = [
9
+ {name = "hellqvio"}
10
+ ]
11
+ classifiers = [
12
+ "Development Status :: 3 - Alpha",
13
+ "Programming Language :: Python :: 3",
14
+ "License :: OSI Approved :: MIT License",
15
+ "Operating System :: OS Independent",
16
+ ]
17
+ dependencies = []
18
+
19
+ [project.scripts]
20
+ antigravity-updater = "missing_ag_updater:main"
21
+
22
+ [build-system]
23
+ requires = ["hatchling"]
24
+ build-backend = "hatchling.build"
25
+
26
+ [tool.hatch.build.targets.wheel]
27
+ packages = ["src/missing_ag_updater"]
28
+
29
+ [dependency-groups]
30
+ dev = [
31
+ "pytest>=8.0.0",
32
+ "ruff>=0.3.0",
33
+ "pytest-cov>=4.0.0",
34
+ ]
35
+
36
+ [tool.ruff]
37
+ line-length = 120
38
+ target-version = "py39"
39
+
40
+ [tool.ruff.lint]
41
+ select = ["E", "F", "W", "I"]
42
+ ignore = []