nuvu-scan 2.0.1__tar.gz → 2.0.2__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.
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/.github/workflows/ci.yml +14 -14
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/PKG-INFO +1 -1
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/cli/commands/scan.py +10 -6
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/aws/aws_scanner.py +0 -1
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/pyproject.toml +1 -1
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/.github/workflows/release.yml +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/.gitignore +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/.pre-commit-config.yaml +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/CONTRIBUTING.md +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/DEVELOPMENT_STATUS.md +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/Makefile +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/README.md +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/RELEASE.md +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/__init__.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/cli/__init__.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/cli/commands/__init__.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/cli/formatters/__init__.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/cli/formatters/csv.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/cli/formatters/html.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/cli/formatters/json.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/cli/main.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/__init__.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/analyzers/__init__.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/base.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/models/__init__.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/__init__.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/aws/__init__.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/aws/collectors/__init__.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/aws/collectors/athena.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/aws/collectors/cost_explorer.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/aws/collectors/glue.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/aws/collectors/iam.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/aws/collectors/mwaa.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/aws/collectors/redshift.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/aws/collectors/s3.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/gcp/__init__.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/gcp/collectors/__init__.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/gcp/collectors/bigquery.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/gcp/collectors/billing.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/gcp/collectors/dataproc.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/gcp/collectors/gcs.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/gcp/collectors/gemini.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/gcp/collectors/iam.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/gcp/collectors/pubsub.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/gcp/gcp_scanner.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/tests/__init__.py +0 -0
- {nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/tests/test_base.py +0 -0
|
@@ -36,38 +36,38 @@ jobs:
|
|
|
36
36
|
strategy:
|
|
37
37
|
matrix:
|
|
38
38
|
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
|
39
|
-
|
|
39
|
+
|
|
40
40
|
steps:
|
|
41
41
|
- uses: actions/checkout@v4
|
|
42
|
-
|
|
42
|
+
|
|
43
43
|
- name: Install uv
|
|
44
44
|
uses: astral-sh/setup-uv@v4
|
|
45
45
|
with:
|
|
46
46
|
version: "latest"
|
|
47
|
-
|
|
47
|
+
|
|
48
48
|
- name: Set up Python ${{ matrix.python-version }}
|
|
49
49
|
run: uv python install ${{ matrix.python-version }}
|
|
50
|
-
|
|
50
|
+
|
|
51
51
|
- name: Install dependencies
|
|
52
52
|
run: |
|
|
53
53
|
uv sync --dev
|
|
54
|
-
|
|
54
|
+
|
|
55
55
|
- name: Run linter
|
|
56
56
|
run: |
|
|
57
57
|
uv run ruff check .
|
|
58
|
-
uv run
|
|
59
|
-
|
|
58
|
+
uv run ruff format --check .
|
|
59
|
+
|
|
60
60
|
- name: Run type checker
|
|
61
61
|
run: |
|
|
62
62
|
uv run mypy nuvu_scan || true # Allow failures for now
|
|
63
|
-
|
|
63
|
+
|
|
64
64
|
- name: Run tests
|
|
65
65
|
run: |
|
|
66
66
|
uv run pytest --cov=nuvu_scan --cov-report=xml
|
|
67
67
|
env:
|
|
68
68
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
69
69
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
70
|
-
|
|
70
|
+
|
|
71
71
|
- name: Upload coverage
|
|
72
72
|
uses: codecov/codecov-action@v3
|
|
73
73
|
with:
|
|
@@ -78,22 +78,22 @@ jobs:
|
|
|
78
78
|
runs-on: ubuntu-latest
|
|
79
79
|
needs: test
|
|
80
80
|
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
|
81
|
-
|
|
81
|
+
|
|
82
82
|
steps:
|
|
83
83
|
- uses: actions/checkout@v4
|
|
84
|
-
|
|
84
|
+
|
|
85
85
|
- name: Install uv
|
|
86
86
|
uses: astral-sh/setup-uv@v4
|
|
87
87
|
with:
|
|
88
88
|
version: "latest"
|
|
89
|
-
|
|
89
|
+
|
|
90
90
|
- name: Set up Python
|
|
91
91
|
run: uv python install 3.11
|
|
92
|
-
|
|
92
|
+
|
|
93
93
|
- name: Build package
|
|
94
94
|
run: |
|
|
95
95
|
uv build
|
|
96
|
-
|
|
96
|
+
|
|
97
97
|
- name: Upload artifacts
|
|
98
98
|
uses: actions/upload-artifact@v4
|
|
99
99
|
with:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nuvu-scan
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.2
|
|
4
4
|
Summary: Multi-Cloud Data Asset Control - Discover, govern, and optimize your cloud data assets across AWS and GCP
|
|
5
5
|
Project-URL: Homepage, https://nuvu.dev
|
|
6
6
|
Project-URL: Documentation, https://github.com/nuvudev/nuvu-scan#readme
|
|
@@ -2,12 +2,9 @@
|
|
|
2
2
|
Scan command for Nuvu CLI.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
import json
|
|
6
5
|
import os
|
|
7
6
|
import sys
|
|
8
7
|
from datetime import datetime
|
|
9
|
-
from urllib.error import HTTPError, URLError
|
|
10
|
-
from urllib.request import Request, urlopen
|
|
11
8
|
|
|
12
9
|
import click
|
|
13
10
|
|
|
@@ -333,8 +330,12 @@ def scan_command(
|
|
|
333
330
|
{
|
|
334
331
|
"provider": asset.provider,
|
|
335
332
|
"asset_type": asset.asset_type,
|
|
336
|
-
"normalized_category": asset.normalized_category.value
|
|
337
|
-
|
|
333
|
+
"normalized_category": asset.normalized_category.value
|
|
334
|
+
if asset.normalized_category
|
|
335
|
+
else "unknown",
|
|
336
|
+
"service": asset.service or asset.asset_type.split("_")[0]
|
|
337
|
+
if asset.asset_type
|
|
338
|
+
else "unknown",
|
|
338
339
|
"region": asset.region,
|
|
339
340
|
"arn": asset.arn,
|
|
340
341
|
"name": asset.name,
|
|
@@ -368,7 +369,10 @@ def scan_command(
|
|
|
368
369
|
err=True,
|
|
369
370
|
)
|
|
370
371
|
except httpx.HTTPStatusError as e:
|
|
371
|
-
click.echo(
|
|
372
|
+
click.echo(
|
|
373
|
+
f"Error pushing to Nuvu Cloud: {e.response.status_code} - {e.response.text}",
|
|
374
|
+
err=True,
|
|
375
|
+
)
|
|
372
376
|
sys.exit(1)
|
|
373
377
|
except Exception as e:
|
|
374
378
|
click.echo(f"Error pushing to Nuvu Cloud: {e}", err=True)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nuvu_scan-2.0.1 → nuvu_scan-2.0.2}/nuvu_scan/core/providers/aws/collectors/cost_explorer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|