shieldops-cli 1.0.0__tar.gz → 1.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.
- {shieldops_cli-1.0.0/shieldops_cli.egg-info → shieldops_cli-1.0.1}/PKG-INFO +12 -9
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/README.md +8 -4
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/pyproject.toml +4 -5
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/__init__.py +1 -1
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/auth.py +1 -1
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/formatters/sarif.py +1 -1
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1/shieldops_cli.egg-info}/PKG-INFO +12 -9
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/tests/test_analyze.py +4 -4
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/LICENSE +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/setup.cfg +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/api_client.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/commands/__init__.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/commands/analyze.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/commands/autofix.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/commands/compose_gen.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/commands/compose_scan.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/commands/config_cmd.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/commands/k8s_scan.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/commands/sbom.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/commands/scan_image.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/commands/tui.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/config.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/formatters/__init__.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/formatters/json_fmt.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/formatters/summary.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/formatters/table.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli/main.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli.egg-info/SOURCES.txt +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli.egg-info/dependency_links.txt +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli.egg-info/entry_points.txt +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli.egg-info/requires.txt +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/shieldops_cli.egg-info/top_level.txt +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/tests/test_auth.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/tests/test_formatters.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/tests/test_phase2_validation.py +0 -0
- {shieldops_cli-1.0.0 → shieldops_cli-1.0.1}/tests/test_score_zero_bug.py +0 -0
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: shieldops-cli
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.1
|
|
4
4
|
Summary: ShieldOps AI — Security scanner CLI for Docker, Kubernetes, Compose, SBOM, and more.
|
|
5
5
|
Author-email: ShieldOps AI <support@shieldops.ai>
|
|
6
|
-
License: MIT
|
|
7
|
-
Project-URL: Homepage, https://shieldops-ai.
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://shieldops-ai.dev
|
|
8
8
|
Project-URL: Documentation, https://github.com/mohammedabdallahcv-creator/shieldops-cli
|
|
9
9
|
Project-URL: Repository, https://github.com/mohammedabdallahcv-creator/shieldops-cli
|
|
10
|
-
Project-URL: Changelog, https://github.com/mohammedabdallahcv-creator/shieldops-cli/
|
|
10
|
+
Project-URL: Changelog, https://github.com/mohammedabdallahcv-creator/shieldops-cli/blob/main/CHANGELOG.md
|
|
11
11
|
Keywords: docker,kubernetes,security,devsecops,sbom,cli
|
|
12
12
|
Classifier: Development Status :: 4 - Beta
|
|
13
13
|
Classifier: Environment :: Console
|
|
14
14
|
Classifier: Intended Audience :: Developers
|
|
15
15
|
Classifier: Topic :: Security
|
|
16
16
|
Classifier: Topic :: Software Development :: Quality Assurance
|
|
17
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
18
17
|
Classifier: Programming Language :: Python :: 3
|
|
19
18
|
Requires-Python: >=3.9
|
|
20
19
|
Description-Content-Type: text/markdown
|
|
@@ -38,10 +37,14 @@ Dynamic: license-file
|
|
|
38
37
|
[](https://pypi.org/project/shieldops-cli/)
|
|
39
38
|
[](LICENSE)
|
|
40
39
|
[](https://github.com/mohammedabdallahcv-creator/shieldops-cli)
|
|
41
|
-
[](https://shieldops-ai.
|
|
40
|
+
[](https://shieldops-ai.dev)
|
|
42
41
|
|
|
43
42
|
<p align="center">
|
|
44
|
-
<img src="docs/screenshots/
|
|
43
|
+
<img src="docs/screenshots/tui-session.svg" alt="ShieldOps TUI interactive session" width="800">
|
|
44
|
+
</p>
|
|
45
|
+
|
|
46
|
+
<p align="center">
|
|
47
|
+
<img src="docs/screenshots/cli-output.svg" alt="ShieldOps CLI scan results" width="800">
|
|
45
48
|
</p>
|
|
46
49
|
|
|
47
50
|
---
|
|
@@ -293,7 +296,7 @@ shieldops-scan:
|
|
|
293
296
|
| Policy engine | No | Yes |
|
|
294
297
|
| Priority queue | No | Yes |
|
|
295
298
|
|
|
296
|
-
Get your API key at [shieldops-ai.
|
|
299
|
+
Get your API key at [shieldops-ai.dev](https://shieldops-ai.dev).
|
|
297
300
|
|
|
298
301
|
---
|
|
299
302
|
|
|
@@ -348,4 +351,4 @@ MIT
|
|
|
348
351
|
|
|
349
352
|
---
|
|
350
353
|
|
|
351
|
-
ShieldOps CLI is open-source. The analysis backend is proprietary and hosted at [shieldops-ai.
|
|
354
|
+
ShieldOps CLI is open-source. The analysis backend is proprietary and hosted at [shieldops-ai.dev](https://shieldops-ai.dev).
|
|
@@ -6,10 +6,14 @@
|
|
|
6
6
|
[](https://pypi.org/project/shieldops-cli/)
|
|
7
7
|
[](LICENSE)
|
|
8
8
|
[](https://github.com/mohammedabdallahcv-creator/shieldops-cli)
|
|
9
|
-
[](https://shieldops-ai.
|
|
9
|
+
[](https://shieldops-ai.dev)
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
12
|
-
<img src="docs/screenshots/
|
|
12
|
+
<img src="docs/screenshots/tui-session.svg" alt="ShieldOps TUI interactive session" width="800">
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
<p align="center">
|
|
16
|
+
<img src="docs/screenshots/cli-output.svg" alt="ShieldOps CLI scan results" width="800">
|
|
13
17
|
</p>
|
|
14
18
|
|
|
15
19
|
---
|
|
@@ -261,7 +265,7 @@ shieldops-scan:
|
|
|
261
265
|
| Policy engine | No | Yes |
|
|
262
266
|
| Priority queue | No | Yes |
|
|
263
267
|
|
|
264
|
-
Get your API key at [shieldops-ai.
|
|
268
|
+
Get your API key at [shieldops-ai.dev](https://shieldops-ai.dev).
|
|
265
269
|
|
|
266
270
|
---
|
|
267
271
|
|
|
@@ -316,4 +320,4 @@ MIT
|
|
|
316
320
|
|
|
317
321
|
---
|
|
318
322
|
|
|
319
|
-
ShieldOps CLI is open-source. The analysis backend is proprietary and hosted at [shieldops-ai.
|
|
323
|
+
ShieldOps CLI is open-source. The analysis backend is proprietary and hosted at [shieldops-ai.dev](https://shieldops-ai.dev).
|
|
@@ -4,10 +4,10 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "shieldops-cli"
|
|
7
|
-
version = "1.0.
|
|
7
|
+
version = "1.0.1"
|
|
8
8
|
description = "ShieldOps AI — Security scanner CLI for Docker, Kubernetes, Compose, SBOM, and more."
|
|
9
9
|
readme = "README.md"
|
|
10
|
-
license =
|
|
10
|
+
license = "MIT"
|
|
11
11
|
requires-python = ">=3.9"
|
|
12
12
|
authors = [{name = "ShieldOps AI", email = "support@shieldops.ai"}]
|
|
13
13
|
keywords = ["docker", "kubernetes", "security", "devsecops", "sbom", "cli"]
|
|
@@ -17,7 +17,6 @@ classifiers = [
|
|
|
17
17
|
"Intended Audience :: Developers",
|
|
18
18
|
"Topic :: Security",
|
|
19
19
|
"Topic :: Software Development :: Quality Assurance",
|
|
20
|
-
"License :: OSI Approved :: MIT License",
|
|
21
20
|
"Programming Language :: Python :: 3",
|
|
22
21
|
]
|
|
23
22
|
dependencies = [
|
|
@@ -34,7 +33,7 @@ tui = ["prompt_toolkit>=3.0.43"]
|
|
|
34
33
|
shieldops = "shieldops_cli.main:cli"
|
|
35
34
|
|
|
36
35
|
[project.urls]
|
|
37
|
-
Homepage = "https://shieldops-ai.
|
|
36
|
+
Homepage = "https://shieldops-ai.dev"
|
|
38
37
|
Documentation = "https://github.com/mohammedabdallahcv-creator/shieldops-cli"
|
|
39
38
|
Repository = "https://github.com/mohammedabdallahcv-creator/shieldops-cli"
|
|
40
|
-
Changelog = "https://github.com/mohammedabdallahcv-creator/shieldops-cli/
|
|
39
|
+
Changelog = "https://github.com/mohammedabdallahcv-creator/shieldops-cli/blob/main/CHANGELOG.md"
|
|
@@ -9,7 +9,7 @@ console = Console()
|
|
|
9
9
|
|
|
10
10
|
@click.command()
|
|
11
11
|
@click.option("--key", prompt="API Key", hide_input=True,
|
|
12
|
-
help="API key from https://shieldops-ai.
|
|
12
|
+
help="API key from https://shieldops-ai.dev/settings/api-keys")
|
|
13
13
|
@click.option("--url", default=None, help="Override API base URL.")
|
|
14
14
|
def login(key, url):
|
|
15
15
|
"""Authenticate with your ShieldOps API key."""
|
|
@@ -50,7 +50,7 @@ def to_sarif(task: str, result: dict) -> str:
|
|
|
50
50
|
"tool": {
|
|
51
51
|
"driver": {
|
|
52
52
|
"name": "ShieldOps AI",
|
|
53
|
-
"informationUri": "https://shieldops-ai.
|
|
53
|
+
"informationUri": "https://shieldops-ai.dev",
|
|
54
54
|
"version": "1.0.0",
|
|
55
55
|
"rules": list(rules.values()),
|
|
56
56
|
}
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: shieldops-cli
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.1
|
|
4
4
|
Summary: ShieldOps AI — Security scanner CLI for Docker, Kubernetes, Compose, SBOM, and more.
|
|
5
5
|
Author-email: ShieldOps AI <support@shieldops.ai>
|
|
6
|
-
License: MIT
|
|
7
|
-
Project-URL: Homepage, https://shieldops-ai.
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://shieldops-ai.dev
|
|
8
8
|
Project-URL: Documentation, https://github.com/mohammedabdallahcv-creator/shieldops-cli
|
|
9
9
|
Project-URL: Repository, https://github.com/mohammedabdallahcv-creator/shieldops-cli
|
|
10
|
-
Project-URL: Changelog, https://github.com/mohammedabdallahcv-creator/shieldops-cli/
|
|
10
|
+
Project-URL: Changelog, https://github.com/mohammedabdallahcv-creator/shieldops-cli/blob/main/CHANGELOG.md
|
|
11
11
|
Keywords: docker,kubernetes,security,devsecops,sbom,cli
|
|
12
12
|
Classifier: Development Status :: 4 - Beta
|
|
13
13
|
Classifier: Environment :: Console
|
|
14
14
|
Classifier: Intended Audience :: Developers
|
|
15
15
|
Classifier: Topic :: Security
|
|
16
16
|
Classifier: Topic :: Software Development :: Quality Assurance
|
|
17
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
18
17
|
Classifier: Programming Language :: Python :: 3
|
|
19
18
|
Requires-Python: >=3.9
|
|
20
19
|
Description-Content-Type: text/markdown
|
|
@@ -38,10 +37,14 @@ Dynamic: license-file
|
|
|
38
37
|
[](https://pypi.org/project/shieldops-cli/)
|
|
39
38
|
[](LICENSE)
|
|
40
39
|
[](https://github.com/mohammedabdallahcv-creator/shieldops-cli)
|
|
41
|
-
[](https://shieldops-ai.
|
|
40
|
+
[](https://shieldops-ai.dev)
|
|
42
41
|
|
|
43
42
|
<p align="center">
|
|
44
|
-
<img src="docs/screenshots/
|
|
43
|
+
<img src="docs/screenshots/tui-session.svg" alt="ShieldOps TUI interactive session" width="800">
|
|
44
|
+
</p>
|
|
45
|
+
|
|
46
|
+
<p align="center">
|
|
47
|
+
<img src="docs/screenshots/cli-output.svg" alt="ShieldOps CLI scan results" width="800">
|
|
45
48
|
</p>
|
|
46
49
|
|
|
47
50
|
---
|
|
@@ -293,7 +296,7 @@ shieldops-scan:
|
|
|
293
296
|
| Policy engine | No | Yes |
|
|
294
297
|
| Priority queue | No | Yes |
|
|
295
298
|
|
|
296
|
-
Get your API key at [shieldops-ai.
|
|
299
|
+
Get your API key at [shieldops-ai.dev](https://shieldops-ai.dev).
|
|
297
300
|
|
|
298
301
|
---
|
|
299
302
|
|
|
@@ -348,4 +351,4 @@ MIT
|
|
|
348
351
|
|
|
349
352
|
---
|
|
350
353
|
|
|
351
|
-
ShieldOps CLI is open-source. The analysis backend is proprietary and hosted at [shieldops-ai.
|
|
354
|
+
ShieldOps CLI is open-source. The analysis backend is proprietary and hosted at [shieldops-ai.dev](https://shieldops-ai.dev).
|
|
@@ -35,7 +35,7 @@ def test_analyze_table_output(runner, mock_config, sample_dockerfile):
|
|
|
35
35
|
with patch("shieldops_cli.commands.analyze.ShieldOpsClient") as mock_cls:
|
|
36
36
|
mock_client = MagicMock()
|
|
37
37
|
mock_client.run_task.return_value = MOCK_ANALYZE_RESPONSE
|
|
38
|
-
mock_client.api_url = "https://shieldops-ai.
|
|
38
|
+
mock_client.api_url = "https://shieldops-ai.dev"
|
|
39
39
|
mock_cls.return_value = mock_client
|
|
40
40
|
|
|
41
41
|
result = runner.invoke(cli, ["analyze", str(sample_dockerfile)])
|
|
@@ -50,7 +50,7 @@ def test_analyze_json_output(runner, mock_config, sample_dockerfile):
|
|
|
50
50
|
with patch("shieldops_cli.commands.analyze.ShieldOpsClient") as mock_cls:
|
|
51
51
|
mock_client = MagicMock()
|
|
52
52
|
mock_client.run_task.return_value = MOCK_ANALYZE_RESPONSE
|
|
53
|
-
mock_client.api_url = "https://shieldops-ai.
|
|
53
|
+
mock_client.api_url = "https://shieldops-ai.dev"
|
|
54
54
|
mock_cls.return_value = mock_client
|
|
55
55
|
|
|
56
56
|
result = runner.invoke(cli, ["analyze", str(sample_dockerfile), "--format", "json"])
|
|
@@ -65,7 +65,7 @@ def test_analyze_fail_on_high(runner, mock_config, sample_dockerfile):
|
|
|
65
65
|
with patch("shieldops_cli.commands.analyze.ShieldOpsClient") as mock_cls:
|
|
66
66
|
mock_client = MagicMock()
|
|
67
67
|
mock_client.run_task.return_value = MOCK_ANALYZE_RESPONSE
|
|
68
|
-
mock_client.api_url = "https://shieldops-ai.
|
|
68
|
+
mock_client.api_url = "https://shieldops-ai.dev"
|
|
69
69
|
mock_cls.return_value = mock_client
|
|
70
70
|
|
|
71
71
|
result = runner.invoke(cli, ["analyze", str(sample_dockerfile), "--fail-on", "high"])
|
|
@@ -82,7 +82,7 @@ def test_analyze_save_to_file(runner, mock_config, sample_dockerfile, tmp_path):
|
|
|
82
82
|
with patch("shieldops_cli.commands.analyze.ShieldOpsClient") as mock_cls:
|
|
83
83
|
mock_client = MagicMock()
|
|
84
84
|
mock_client.run_task.return_value = MOCK_ANALYZE_RESPONSE
|
|
85
|
-
mock_client.api_url = "https://shieldops-ai.
|
|
85
|
+
mock_client.api_url = "https://shieldops-ai.dev"
|
|
86
86
|
mock_cls.return_value = mock_client
|
|
87
87
|
|
|
88
88
|
result = runner.invoke(cli, ["analyze", str(sample_dockerfile), "-f", "json", "-o", str(output_file)])
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|