ecosyste-ms-cli 1.3.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.
- ecosyste_ms_cli-1.3.2/CHANGELOG.md +6 -0
- ecosyste_ms_cli-1.3.2/LICENSE +21 -0
- ecosyste_ms_cli-1.3.2/MANIFEST.in +3 -0
- ecosyste_ms_cli-1.3.2/PKG-INFO +133 -0
- ecosyste_ms_cli-1.3.2/Readme.md +91 -0
- ecosyste_ms_cli-1.3.2/ecosyste_ms_cli.egg-info/PKG-INFO +133 -0
- ecosyste_ms_cli-1.3.2/ecosyste_ms_cli.egg-info/SOURCES.txt +100 -0
- ecosyste_ms_cli-1.3.2/ecosyste_ms_cli.egg-info/dependency_links.txt +1 -0
- ecosyste_ms_cli-1.3.2/ecosyste_ms_cli.egg-info/entry_points.txt +2 -0
- ecosyste_ms_cli-1.3.2/ecosyste_ms_cli.egg-info/requires.txt +22 -0
- ecosyste_ms_cli-1.3.2/ecosyste_ms_cli.egg-info/top_level.txt +1 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/__init__.py +3 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/__main__.py +4 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/__init__.py +0 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/advisories.openapi.yaml +347 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/archives.openapi.yaml +193 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/commits.openapi.yaml +391 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/dependabot.openapi.yaml +887 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/diff.openapi.yaml +90 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/docker.openapi.yaml +534 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/issues.openapi.yaml +839 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/licenses.openapi.yaml +80 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/opencollective.openapi.yaml +247 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/packages.openapi.yaml +2522 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/parser.openapi.yaml +97 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/registries.yaml +155 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/repos.openapi.yaml +1521 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/resolve.openapi.yaml +130 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/sbom.openapi.yaml +79 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/sponsors.openapi.yaml +283 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/summary.openapi.yaml +239 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/timeline.openapi.yaml +91 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/cli.py +213 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/__init__.py +1 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/advisories.py +109 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/archives.py +5 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/commits.py +5 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/decorators.py +101 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/dependabot.py +5 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/diff.py +144 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/docker.py +5 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/execution.py +99 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/generator.py +127 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/__init__.py +45 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/advisories.py +73 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/archives.py +40 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/base.py +38 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/commits.py +76 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/default.py +40 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/dependabot.py +205 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/diff.py +72 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/docker.py +142 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/factory.py +60 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/issues.py +87 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/licenses.py +52 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/opencollective.py +86 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/packages.py +103 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/parser.py +57 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/repos.py +97 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/resolve.py +68 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/sbom.py +52 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/sponsors.py +52 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/summary.py +81 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/timeline.py +45 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/issues.py +5 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/licenses.py +135 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/mcp.py +54 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/opencollective.py +5 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/packages.py +151 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/parser.py +135 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/repos.py +5 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/resolve.py +160 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/sbom.py +135 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/sponsors.py +5 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/summary.py +5 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/timeline.py +5 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/constants.py +92 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/exceptions.py +149 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/helpers/click_params.py +49 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/helpers/flatten_dict.py +15 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/helpers/format_value.py +30 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/helpers/get_domain.py +68 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/helpers/load_api_spec.py +31 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/helpers/print_error.py +15 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/helpers/print_operations.py +73 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/helpers/print_output.py +183 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/helpers/purl_parser.py +121 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/mcp_server.py +267 -0
- ecosyste_ms_cli-1.3.2/ecosystems_cli/openapi_client.py +461 -0
- ecosyste_ms_cli-1.3.2/pyproject.toml +105 -0
- ecosyste_ms_cli-1.3.2/setup.cfg +4 -0
- ecosyste_ms_cli-1.3.2/tests/test_cli.py +64 -0
- ecosyste_ms_cli-1.3.2/tests/test_cli_domain.py +109 -0
- ecosyste_ms_cli-1.3.2/tests/test_constants.py +325 -0
- ecosyste_ms_cli-1.3.2/tests/test_format_value.py +39 -0
- ecosyste_ms_cli-1.3.2/tests/test_help_output.py +40 -0
- ecosyste_ms_cli-1.3.2/tests/test_load_api_spec.py +38 -0
- ecosyste_ms_cli-1.3.2/tests/test_mcp_server.py +225 -0
- ecosyste_ms_cli-1.3.2/tests/test_openapi_client.py +187 -0
- ecosyste_ms_cli-1.3.2/tests/test_package_metadata.py +36 -0
- ecosyste_ms_cli-1.3.2/tests/test_print_operations.py +22 -0
- ecosyste_ms_cli-1.3.2/tests/test_print_output.py +210 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Sebastian Schürmann
|
|
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,133 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ecosyste_ms_cli
|
|
3
|
+
Version: 1.3.2
|
|
4
|
+
Summary: CLI for ecosyste.ms API
|
|
5
|
+
Author-email: Sebastian Schürmann <sebs@2xs.org>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/ecosyste-ms/ecosyste_ms_cli
|
|
8
|
+
Project-URL: Repository, https://github.com/ecosyste-ms/ecosyste_ms_cli
|
|
9
|
+
Keywords: ecosystems,package-manager,dependencies,security,cli
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Topic :: Software Development
|
|
20
|
+
Classifier: Topic :: Utilities
|
|
21
|
+
Requires-Python: >=3.9
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Requires-Dist: click~=8.3.1
|
|
25
|
+
Requires-Dist: requests~=2.32.5
|
|
26
|
+
Requires-Dist: pyyaml~=6.0.3
|
|
27
|
+
Requires-Dist: rich~=14.3.3
|
|
28
|
+
Requires-Dist: mcp~=1.26.0
|
|
29
|
+
Requires-Dist: openapi-core~=0.23.0
|
|
30
|
+
Requires-Dist: packageurl-python~=0.17.6
|
|
31
|
+
Requires-Dist: importlib-resources; python_version < "3.9"
|
|
32
|
+
Provides-Extra: dev
|
|
33
|
+
Requires-Dist: pytest~=9.0.2; extra == "dev"
|
|
34
|
+
Requires-Dist: pytest-asyncio~=1.3.0; extra == "dev"
|
|
35
|
+
Requires-Dist: black~=26.3.1; extra == "dev"
|
|
36
|
+
Requires-Dist: isort~=8.0.1; extra == "dev"
|
|
37
|
+
Requires-Dist: flake8~=7.3.0; extra == "dev"
|
|
38
|
+
Requires-Dist: bandit~=1.9.4; extra == "dev"
|
|
39
|
+
Requires-Dist: complexipy~=5.2.0; extra == "dev"
|
|
40
|
+
Requires-Dist: tomli~=2.3.0; python_version < "3.11" and extra == "dev"
|
|
41
|
+
Dynamic: license-file
|
|
42
|
+
|
|
43
|
+
# Ecosystems CLI
|
|
44
|
+
|
|
45
|
+
> The cli is still in a development phase. Some aspects of documentation or dev-x are lacking and some aspects of this software might have bugs.
|
|
46
|
+
|
|
47
|
+
[](https://github.com/ecosyste-ms/ecosyste_ms_cli/actions/workflows/build-test-lint.yml)
|
|
48
|
+
[](https://github.com/ecosyste-ms/ecosyste_ms_cli/releases/latest)
|
|
49
|
+
[](https://opensource.org/licenses/MIT)
|
|
50
|
+
|
|
51
|
+
A command-line interface for interacting with ecosyste.ms APIs.
|
|
52
|
+
|
|
53
|
+
## Installation
|
|
54
|
+
|
|
55
|
+
Requirements:
|
|
56
|
+
- Python >= 3.9
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Clone the repository
|
|
60
|
+
git clone git@github.com:ecosyste-ms/ecosyste_ms_cli.git
|
|
61
|
+
cd ecosyste_ms_cli
|
|
62
|
+
|
|
63
|
+
# Set up virtual environment and install dependencies
|
|
64
|
+
make setup
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Usage
|
|
68
|
+
|
|
69
|
+
Each command includes helpful examples in its help text. Use `--help` with any command to see usage examples.
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Show available commands
|
|
73
|
+
ecosystems --help
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Global Options
|
|
77
|
+
|
|
78
|
+
- `--timeout`: Set the timeout in seconds for all HTTP requests (default: 20 seconds)
|
|
79
|
+
- `--format`: Set the output format (default: table). Available formats: table, json, tsv, jsonl
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## Output Formats
|
|
83
|
+
|
|
84
|
+
The CLI supports multiple output formats:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# Example: Set a 30-second timeout for all requests
|
|
88
|
+
ecosystems --timeout 30 repos topics
|
|
89
|
+
|
|
90
|
+
# Example: Get output in JSON format
|
|
91
|
+
ecosystems --format json repos topics
|
|
92
|
+
|
|
93
|
+
# Example: Get output in TSV format (tab-separated values)
|
|
94
|
+
ecosystems --format tsv repos topics
|
|
95
|
+
|
|
96
|
+
# Example: Get output in JSONL format (JSON Lines)
|
|
97
|
+
ecosystems --format jsonl repos topics
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Available Commands
|
|
101
|
+
|
|
102
|
+
The CLI provides access to various [ecosyste.ms APIs](https://ecosyste.ms/api). Each command group corresponds to an API endpoint:
|
|
103
|
+
|
|
104
|
+
- **`advisories`** - Security advisories and vulnerability data
|
|
105
|
+
- **`archives`** - Package archive analysis
|
|
106
|
+
- **`commits`** - Repository commit data
|
|
107
|
+
- **`dependabot`** - Dependabot integration data
|
|
108
|
+
- **`diff`** - File and archive comparison
|
|
109
|
+
- **`docker`** - Docker image metadata
|
|
110
|
+
- **`issues`** - Repository issues and pull requests
|
|
111
|
+
- **`licenses`** - License detection and analysis
|
|
112
|
+
- **`opencollective`** - Open Collective funding data
|
|
113
|
+
- **`packages`** - Package registry information
|
|
114
|
+
- **`parser`** - Dependency file parsing
|
|
115
|
+
- **`repos`** - Repository data and metadata
|
|
116
|
+
- **`resolve`** - Dependency resolution
|
|
117
|
+
- **`sbom`** - Software Bill of Materials generation
|
|
118
|
+
- **`sponsors`** - GitHub Sponsors data
|
|
119
|
+
- **`summary`** - Aggregated summaries
|
|
120
|
+
- **`timeline`** - Event timeline data
|
|
121
|
+
|
|
122
|
+
Use `--help` with any command for detailed usage and examples.
|
|
123
|
+
|
|
124
|
+
## Examples
|
|
125
|
+
|
|
126
|
+
* ecosystems packages package npmjs.org react --format json | jq '.name'
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
## Documentation
|
|
130
|
+
|
|
131
|
+
- [Development Guide](docs/DEVELOPMENT.md) - Information about development, testing, and release processes
|
|
132
|
+
- [MCP Server](docs/MCP.md) - **[Experimental]** Model Context Protocol server for AI assistants
|
|
133
|
+
- [License](LICENSE) - MIT License details
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Ecosystems CLI
|
|
2
|
+
|
|
3
|
+
> The cli is still in a development phase. Some aspects of documentation or dev-x are lacking and some aspects of this software might have bugs.
|
|
4
|
+
|
|
5
|
+
[](https://github.com/ecosyste-ms/ecosyste_ms_cli/actions/workflows/build-test-lint.yml)
|
|
6
|
+
[](https://github.com/ecosyste-ms/ecosyste_ms_cli/releases/latest)
|
|
7
|
+
[](https://opensource.org/licenses/MIT)
|
|
8
|
+
|
|
9
|
+
A command-line interface for interacting with ecosyste.ms APIs.
|
|
10
|
+
|
|
11
|
+
## Installation
|
|
12
|
+
|
|
13
|
+
Requirements:
|
|
14
|
+
- Python >= 3.9
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Clone the repository
|
|
18
|
+
git clone git@github.com:ecosyste-ms/ecosyste_ms_cli.git
|
|
19
|
+
cd ecosyste_ms_cli
|
|
20
|
+
|
|
21
|
+
# Set up virtual environment and install dependencies
|
|
22
|
+
make setup
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Usage
|
|
26
|
+
|
|
27
|
+
Each command includes helpful examples in its help text. Use `--help` with any command to see usage examples.
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Show available commands
|
|
31
|
+
ecosystems --help
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Global Options
|
|
35
|
+
|
|
36
|
+
- `--timeout`: Set the timeout in seconds for all HTTP requests (default: 20 seconds)
|
|
37
|
+
- `--format`: Set the output format (default: table). Available formats: table, json, tsv, jsonl
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
## Output Formats
|
|
41
|
+
|
|
42
|
+
The CLI supports multiple output formats:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# Example: Set a 30-second timeout for all requests
|
|
46
|
+
ecosystems --timeout 30 repos topics
|
|
47
|
+
|
|
48
|
+
# Example: Get output in JSON format
|
|
49
|
+
ecosystems --format json repos topics
|
|
50
|
+
|
|
51
|
+
# Example: Get output in TSV format (tab-separated values)
|
|
52
|
+
ecosystems --format tsv repos topics
|
|
53
|
+
|
|
54
|
+
# Example: Get output in JSONL format (JSON Lines)
|
|
55
|
+
ecosystems --format jsonl repos topics
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Available Commands
|
|
59
|
+
|
|
60
|
+
The CLI provides access to various [ecosyste.ms APIs](https://ecosyste.ms/api). Each command group corresponds to an API endpoint:
|
|
61
|
+
|
|
62
|
+
- **`advisories`** - Security advisories and vulnerability data
|
|
63
|
+
- **`archives`** - Package archive analysis
|
|
64
|
+
- **`commits`** - Repository commit data
|
|
65
|
+
- **`dependabot`** - Dependabot integration data
|
|
66
|
+
- **`diff`** - File and archive comparison
|
|
67
|
+
- **`docker`** - Docker image metadata
|
|
68
|
+
- **`issues`** - Repository issues and pull requests
|
|
69
|
+
- **`licenses`** - License detection and analysis
|
|
70
|
+
- **`opencollective`** - Open Collective funding data
|
|
71
|
+
- **`packages`** - Package registry information
|
|
72
|
+
- **`parser`** - Dependency file parsing
|
|
73
|
+
- **`repos`** - Repository data and metadata
|
|
74
|
+
- **`resolve`** - Dependency resolution
|
|
75
|
+
- **`sbom`** - Software Bill of Materials generation
|
|
76
|
+
- **`sponsors`** - GitHub Sponsors data
|
|
77
|
+
- **`summary`** - Aggregated summaries
|
|
78
|
+
- **`timeline`** - Event timeline data
|
|
79
|
+
|
|
80
|
+
Use `--help` with any command for detailed usage and examples.
|
|
81
|
+
|
|
82
|
+
## Examples
|
|
83
|
+
|
|
84
|
+
* ecosystems packages package npmjs.org react --format json | jq '.name'
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
## Documentation
|
|
88
|
+
|
|
89
|
+
- [Development Guide](docs/DEVELOPMENT.md) - Information about development, testing, and release processes
|
|
90
|
+
- [MCP Server](docs/MCP.md) - **[Experimental]** Model Context Protocol server for AI assistants
|
|
91
|
+
- [License](LICENSE) - MIT License details
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ecosyste_ms_cli
|
|
3
|
+
Version: 1.3.2
|
|
4
|
+
Summary: CLI for ecosyste.ms API
|
|
5
|
+
Author-email: Sebastian Schürmann <sebs@2xs.org>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/ecosyste-ms/ecosyste_ms_cli
|
|
8
|
+
Project-URL: Repository, https://github.com/ecosyste-ms/ecosyste_ms_cli
|
|
9
|
+
Keywords: ecosystems,package-manager,dependencies,security,cli
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Topic :: Software Development
|
|
20
|
+
Classifier: Topic :: Utilities
|
|
21
|
+
Requires-Python: >=3.9
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Requires-Dist: click~=8.3.1
|
|
25
|
+
Requires-Dist: requests~=2.32.5
|
|
26
|
+
Requires-Dist: pyyaml~=6.0.3
|
|
27
|
+
Requires-Dist: rich~=14.3.3
|
|
28
|
+
Requires-Dist: mcp~=1.26.0
|
|
29
|
+
Requires-Dist: openapi-core~=0.23.0
|
|
30
|
+
Requires-Dist: packageurl-python~=0.17.6
|
|
31
|
+
Requires-Dist: importlib-resources; python_version < "3.9"
|
|
32
|
+
Provides-Extra: dev
|
|
33
|
+
Requires-Dist: pytest~=9.0.2; extra == "dev"
|
|
34
|
+
Requires-Dist: pytest-asyncio~=1.3.0; extra == "dev"
|
|
35
|
+
Requires-Dist: black~=26.3.1; extra == "dev"
|
|
36
|
+
Requires-Dist: isort~=8.0.1; extra == "dev"
|
|
37
|
+
Requires-Dist: flake8~=7.3.0; extra == "dev"
|
|
38
|
+
Requires-Dist: bandit~=1.9.4; extra == "dev"
|
|
39
|
+
Requires-Dist: complexipy~=5.2.0; extra == "dev"
|
|
40
|
+
Requires-Dist: tomli~=2.3.0; python_version < "3.11" and extra == "dev"
|
|
41
|
+
Dynamic: license-file
|
|
42
|
+
|
|
43
|
+
# Ecosystems CLI
|
|
44
|
+
|
|
45
|
+
> The cli is still in a development phase. Some aspects of documentation or dev-x are lacking and some aspects of this software might have bugs.
|
|
46
|
+
|
|
47
|
+
[](https://github.com/ecosyste-ms/ecosyste_ms_cli/actions/workflows/build-test-lint.yml)
|
|
48
|
+
[](https://github.com/ecosyste-ms/ecosyste_ms_cli/releases/latest)
|
|
49
|
+
[](https://opensource.org/licenses/MIT)
|
|
50
|
+
|
|
51
|
+
A command-line interface for interacting with ecosyste.ms APIs.
|
|
52
|
+
|
|
53
|
+
## Installation
|
|
54
|
+
|
|
55
|
+
Requirements:
|
|
56
|
+
- Python >= 3.9
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Clone the repository
|
|
60
|
+
git clone git@github.com:ecosyste-ms/ecosyste_ms_cli.git
|
|
61
|
+
cd ecosyste_ms_cli
|
|
62
|
+
|
|
63
|
+
# Set up virtual environment and install dependencies
|
|
64
|
+
make setup
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Usage
|
|
68
|
+
|
|
69
|
+
Each command includes helpful examples in its help text. Use `--help` with any command to see usage examples.
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Show available commands
|
|
73
|
+
ecosystems --help
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Global Options
|
|
77
|
+
|
|
78
|
+
- `--timeout`: Set the timeout in seconds for all HTTP requests (default: 20 seconds)
|
|
79
|
+
- `--format`: Set the output format (default: table). Available formats: table, json, tsv, jsonl
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## Output Formats
|
|
83
|
+
|
|
84
|
+
The CLI supports multiple output formats:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# Example: Set a 30-second timeout for all requests
|
|
88
|
+
ecosystems --timeout 30 repos topics
|
|
89
|
+
|
|
90
|
+
# Example: Get output in JSON format
|
|
91
|
+
ecosystems --format json repos topics
|
|
92
|
+
|
|
93
|
+
# Example: Get output in TSV format (tab-separated values)
|
|
94
|
+
ecosystems --format tsv repos topics
|
|
95
|
+
|
|
96
|
+
# Example: Get output in JSONL format (JSON Lines)
|
|
97
|
+
ecosystems --format jsonl repos topics
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Available Commands
|
|
101
|
+
|
|
102
|
+
The CLI provides access to various [ecosyste.ms APIs](https://ecosyste.ms/api). Each command group corresponds to an API endpoint:
|
|
103
|
+
|
|
104
|
+
- **`advisories`** - Security advisories and vulnerability data
|
|
105
|
+
- **`archives`** - Package archive analysis
|
|
106
|
+
- **`commits`** - Repository commit data
|
|
107
|
+
- **`dependabot`** - Dependabot integration data
|
|
108
|
+
- **`diff`** - File and archive comparison
|
|
109
|
+
- **`docker`** - Docker image metadata
|
|
110
|
+
- **`issues`** - Repository issues and pull requests
|
|
111
|
+
- **`licenses`** - License detection and analysis
|
|
112
|
+
- **`opencollective`** - Open Collective funding data
|
|
113
|
+
- **`packages`** - Package registry information
|
|
114
|
+
- **`parser`** - Dependency file parsing
|
|
115
|
+
- **`repos`** - Repository data and metadata
|
|
116
|
+
- **`resolve`** - Dependency resolution
|
|
117
|
+
- **`sbom`** - Software Bill of Materials generation
|
|
118
|
+
- **`sponsors`** - GitHub Sponsors data
|
|
119
|
+
- **`summary`** - Aggregated summaries
|
|
120
|
+
- **`timeline`** - Event timeline data
|
|
121
|
+
|
|
122
|
+
Use `--help` with any command for detailed usage and examples.
|
|
123
|
+
|
|
124
|
+
## Examples
|
|
125
|
+
|
|
126
|
+
* ecosystems packages package npmjs.org react --format json | jq '.name'
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
## Documentation
|
|
130
|
+
|
|
131
|
+
- [Development Guide](docs/DEVELOPMENT.md) - Information about development, testing, and release processes
|
|
132
|
+
- [MCP Server](docs/MCP.md) - **[Experimental]** Model Context Protocol server for AI assistants
|
|
133
|
+
- [License](LICENSE) - MIT License details
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
CHANGELOG.md
|
|
2
|
+
LICENSE
|
|
3
|
+
MANIFEST.in
|
|
4
|
+
Readme.md
|
|
5
|
+
pyproject.toml
|
|
6
|
+
ecosyste_ms_cli.egg-info/PKG-INFO
|
|
7
|
+
ecosyste_ms_cli.egg-info/SOURCES.txt
|
|
8
|
+
ecosyste_ms_cli.egg-info/dependency_links.txt
|
|
9
|
+
ecosyste_ms_cli.egg-info/entry_points.txt
|
|
10
|
+
ecosyste_ms_cli.egg-info/requires.txt
|
|
11
|
+
ecosyste_ms_cli.egg-info/top_level.txt
|
|
12
|
+
ecosystems_cli/__init__.py
|
|
13
|
+
ecosystems_cli/__main__.py
|
|
14
|
+
ecosystems_cli/cli.py
|
|
15
|
+
ecosystems_cli/constants.py
|
|
16
|
+
ecosystems_cli/exceptions.py
|
|
17
|
+
ecosystems_cli/mcp_server.py
|
|
18
|
+
ecosystems_cli/openapi_client.py
|
|
19
|
+
ecosystems_cli/apis/__init__.py
|
|
20
|
+
ecosystems_cli/apis/advisories.openapi.yaml
|
|
21
|
+
ecosystems_cli/apis/archives.openapi.yaml
|
|
22
|
+
ecosystems_cli/apis/commits.openapi.yaml
|
|
23
|
+
ecosystems_cli/apis/dependabot.openapi.yaml
|
|
24
|
+
ecosystems_cli/apis/diff.openapi.yaml
|
|
25
|
+
ecosystems_cli/apis/docker.openapi.yaml
|
|
26
|
+
ecosystems_cli/apis/issues.openapi.yaml
|
|
27
|
+
ecosystems_cli/apis/licenses.openapi.yaml
|
|
28
|
+
ecosystems_cli/apis/opencollective.openapi.yaml
|
|
29
|
+
ecosystems_cli/apis/packages.openapi.yaml
|
|
30
|
+
ecosystems_cli/apis/parser.openapi.yaml
|
|
31
|
+
ecosystems_cli/apis/registries.yaml
|
|
32
|
+
ecosystems_cli/apis/repos.openapi.yaml
|
|
33
|
+
ecosystems_cli/apis/resolve.openapi.yaml
|
|
34
|
+
ecosystems_cli/apis/sbom.openapi.yaml
|
|
35
|
+
ecosystems_cli/apis/sponsors.openapi.yaml
|
|
36
|
+
ecosystems_cli/apis/summary.openapi.yaml
|
|
37
|
+
ecosystems_cli/apis/timeline.openapi.yaml
|
|
38
|
+
ecosystems_cli/commands/__init__.py
|
|
39
|
+
ecosystems_cli/commands/advisories.py
|
|
40
|
+
ecosystems_cli/commands/archives.py
|
|
41
|
+
ecosystems_cli/commands/commits.py
|
|
42
|
+
ecosystems_cli/commands/decorators.py
|
|
43
|
+
ecosystems_cli/commands/dependabot.py
|
|
44
|
+
ecosystems_cli/commands/diff.py
|
|
45
|
+
ecosystems_cli/commands/docker.py
|
|
46
|
+
ecosystems_cli/commands/execution.py
|
|
47
|
+
ecosystems_cli/commands/generator.py
|
|
48
|
+
ecosystems_cli/commands/issues.py
|
|
49
|
+
ecosystems_cli/commands/licenses.py
|
|
50
|
+
ecosystems_cli/commands/mcp.py
|
|
51
|
+
ecosystems_cli/commands/opencollective.py
|
|
52
|
+
ecosystems_cli/commands/packages.py
|
|
53
|
+
ecosystems_cli/commands/parser.py
|
|
54
|
+
ecosystems_cli/commands/repos.py
|
|
55
|
+
ecosystems_cli/commands/resolve.py
|
|
56
|
+
ecosystems_cli/commands/sbom.py
|
|
57
|
+
ecosystems_cli/commands/sponsors.py
|
|
58
|
+
ecosystems_cli/commands/summary.py
|
|
59
|
+
ecosystems_cli/commands/timeline.py
|
|
60
|
+
ecosystems_cli/commands/handlers/__init__.py
|
|
61
|
+
ecosystems_cli/commands/handlers/advisories.py
|
|
62
|
+
ecosystems_cli/commands/handlers/archives.py
|
|
63
|
+
ecosystems_cli/commands/handlers/base.py
|
|
64
|
+
ecosystems_cli/commands/handlers/commits.py
|
|
65
|
+
ecosystems_cli/commands/handlers/default.py
|
|
66
|
+
ecosystems_cli/commands/handlers/dependabot.py
|
|
67
|
+
ecosystems_cli/commands/handlers/diff.py
|
|
68
|
+
ecosystems_cli/commands/handlers/docker.py
|
|
69
|
+
ecosystems_cli/commands/handlers/factory.py
|
|
70
|
+
ecosystems_cli/commands/handlers/issues.py
|
|
71
|
+
ecosystems_cli/commands/handlers/licenses.py
|
|
72
|
+
ecosystems_cli/commands/handlers/opencollective.py
|
|
73
|
+
ecosystems_cli/commands/handlers/packages.py
|
|
74
|
+
ecosystems_cli/commands/handlers/parser.py
|
|
75
|
+
ecosystems_cli/commands/handlers/repos.py
|
|
76
|
+
ecosystems_cli/commands/handlers/resolve.py
|
|
77
|
+
ecosystems_cli/commands/handlers/sbom.py
|
|
78
|
+
ecosystems_cli/commands/handlers/sponsors.py
|
|
79
|
+
ecosystems_cli/commands/handlers/summary.py
|
|
80
|
+
ecosystems_cli/commands/handlers/timeline.py
|
|
81
|
+
ecosystems_cli/helpers/click_params.py
|
|
82
|
+
ecosystems_cli/helpers/flatten_dict.py
|
|
83
|
+
ecosystems_cli/helpers/format_value.py
|
|
84
|
+
ecosystems_cli/helpers/get_domain.py
|
|
85
|
+
ecosystems_cli/helpers/load_api_spec.py
|
|
86
|
+
ecosystems_cli/helpers/print_error.py
|
|
87
|
+
ecosystems_cli/helpers/print_operations.py
|
|
88
|
+
ecosystems_cli/helpers/print_output.py
|
|
89
|
+
ecosystems_cli/helpers/purl_parser.py
|
|
90
|
+
tests/test_cli.py
|
|
91
|
+
tests/test_cli_domain.py
|
|
92
|
+
tests/test_constants.py
|
|
93
|
+
tests/test_format_value.py
|
|
94
|
+
tests/test_help_output.py
|
|
95
|
+
tests/test_load_api_spec.py
|
|
96
|
+
tests/test_mcp_server.py
|
|
97
|
+
tests/test_openapi_client.py
|
|
98
|
+
tests/test_package_metadata.py
|
|
99
|
+
tests/test_print_operations.py
|
|
100
|
+
tests/test_print_output.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
click~=8.3.1
|
|
2
|
+
requests~=2.32.5
|
|
3
|
+
pyyaml~=6.0.3
|
|
4
|
+
rich~=14.3.3
|
|
5
|
+
mcp~=1.26.0
|
|
6
|
+
openapi-core~=0.23.0
|
|
7
|
+
packageurl-python~=0.17.6
|
|
8
|
+
|
|
9
|
+
[:python_version < "3.9"]
|
|
10
|
+
importlib-resources
|
|
11
|
+
|
|
12
|
+
[dev]
|
|
13
|
+
pytest~=9.0.2
|
|
14
|
+
pytest-asyncio~=1.3.0
|
|
15
|
+
black~=26.3.1
|
|
16
|
+
isort~=8.0.1
|
|
17
|
+
flake8~=7.3.0
|
|
18
|
+
bandit~=1.9.4
|
|
19
|
+
complexipy~=5.2.0
|
|
20
|
+
|
|
21
|
+
[dev:python_version < "3.11"]
|
|
22
|
+
tomli~=2.3.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ecosystems_cli
|
|
File without changes
|