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.
Files changed (102) hide show
  1. ecosyste_ms_cli-1.3.2/CHANGELOG.md +6 -0
  2. ecosyste_ms_cli-1.3.2/LICENSE +21 -0
  3. ecosyste_ms_cli-1.3.2/MANIFEST.in +3 -0
  4. ecosyste_ms_cli-1.3.2/PKG-INFO +133 -0
  5. ecosyste_ms_cli-1.3.2/Readme.md +91 -0
  6. ecosyste_ms_cli-1.3.2/ecosyste_ms_cli.egg-info/PKG-INFO +133 -0
  7. ecosyste_ms_cli-1.3.2/ecosyste_ms_cli.egg-info/SOURCES.txt +100 -0
  8. ecosyste_ms_cli-1.3.2/ecosyste_ms_cli.egg-info/dependency_links.txt +1 -0
  9. ecosyste_ms_cli-1.3.2/ecosyste_ms_cli.egg-info/entry_points.txt +2 -0
  10. ecosyste_ms_cli-1.3.2/ecosyste_ms_cli.egg-info/requires.txt +22 -0
  11. ecosyste_ms_cli-1.3.2/ecosyste_ms_cli.egg-info/top_level.txt +1 -0
  12. ecosyste_ms_cli-1.3.2/ecosystems_cli/__init__.py +3 -0
  13. ecosyste_ms_cli-1.3.2/ecosystems_cli/__main__.py +4 -0
  14. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/__init__.py +0 -0
  15. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/advisories.openapi.yaml +347 -0
  16. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/archives.openapi.yaml +193 -0
  17. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/commits.openapi.yaml +391 -0
  18. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/dependabot.openapi.yaml +887 -0
  19. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/diff.openapi.yaml +90 -0
  20. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/docker.openapi.yaml +534 -0
  21. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/issues.openapi.yaml +839 -0
  22. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/licenses.openapi.yaml +80 -0
  23. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/opencollective.openapi.yaml +247 -0
  24. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/packages.openapi.yaml +2522 -0
  25. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/parser.openapi.yaml +97 -0
  26. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/registries.yaml +155 -0
  27. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/repos.openapi.yaml +1521 -0
  28. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/resolve.openapi.yaml +130 -0
  29. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/sbom.openapi.yaml +79 -0
  30. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/sponsors.openapi.yaml +283 -0
  31. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/summary.openapi.yaml +239 -0
  32. ecosyste_ms_cli-1.3.2/ecosystems_cli/apis/timeline.openapi.yaml +91 -0
  33. ecosyste_ms_cli-1.3.2/ecosystems_cli/cli.py +213 -0
  34. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/__init__.py +1 -0
  35. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/advisories.py +109 -0
  36. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/archives.py +5 -0
  37. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/commits.py +5 -0
  38. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/decorators.py +101 -0
  39. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/dependabot.py +5 -0
  40. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/diff.py +144 -0
  41. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/docker.py +5 -0
  42. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/execution.py +99 -0
  43. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/generator.py +127 -0
  44. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/__init__.py +45 -0
  45. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/advisories.py +73 -0
  46. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/archives.py +40 -0
  47. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/base.py +38 -0
  48. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/commits.py +76 -0
  49. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/default.py +40 -0
  50. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/dependabot.py +205 -0
  51. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/diff.py +72 -0
  52. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/docker.py +142 -0
  53. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/factory.py +60 -0
  54. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/issues.py +87 -0
  55. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/licenses.py +52 -0
  56. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/opencollective.py +86 -0
  57. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/packages.py +103 -0
  58. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/parser.py +57 -0
  59. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/repos.py +97 -0
  60. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/resolve.py +68 -0
  61. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/sbom.py +52 -0
  62. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/sponsors.py +52 -0
  63. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/summary.py +81 -0
  64. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/handlers/timeline.py +45 -0
  65. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/issues.py +5 -0
  66. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/licenses.py +135 -0
  67. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/mcp.py +54 -0
  68. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/opencollective.py +5 -0
  69. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/packages.py +151 -0
  70. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/parser.py +135 -0
  71. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/repos.py +5 -0
  72. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/resolve.py +160 -0
  73. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/sbom.py +135 -0
  74. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/sponsors.py +5 -0
  75. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/summary.py +5 -0
  76. ecosyste_ms_cli-1.3.2/ecosystems_cli/commands/timeline.py +5 -0
  77. ecosyste_ms_cli-1.3.2/ecosystems_cli/constants.py +92 -0
  78. ecosyste_ms_cli-1.3.2/ecosystems_cli/exceptions.py +149 -0
  79. ecosyste_ms_cli-1.3.2/ecosystems_cli/helpers/click_params.py +49 -0
  80. ecosyste_ms_cli-1.3.2/ecosystems_cli/helpers/flatten_dict.py +15 -0
  81. ecosyste_ms_cli-1.3.2/ecosystems_cli/helpers/format_value.py +30 -0
  82. ecosyste_ms_cli-1.3.2/ecosystems_cli/helpers/get_domain.py +68 -0
  83. ecosyste_ms_cli-1.3.2/ecosystems_cli/helpers/load_api_spec.py +31 -0
  84. ecosyste_ms_cli-1.3.2/ecosystems_cli/helpers/print_error.py +15 -0
  85. ecosyste_ms_cli-1.3.2/ecosystems_cli/helpers/print_operations.py +73 -0
  86. ecosyste_ms_cli-1.3.2/ecosystems_cli/helpers/print_output.py +183 -0
  87. ecosyste_ms_cli-1.3.2/ecosystems_cli/helpers/purl_parser.py +121 -0
  88. ecosyste_ms_cli-1.3.2/ecosystems_cli/mcp_server.py +267 -0
  89. ecosyste_ms_cli-1.3.2/ecosystems_cli/openapi_client.py +461 -0
  90. ecosyste_ms_cli-1.3.2/pyproject.toml +105 -0
  91. ecosyste_ms_cli-1.3.2/setup.cfg +4 -0
  92. ecosyste_ms_cli-1.3.2/tests/test_cli.py +64 -0
  93. ecosyste_ms_cli-1.3.2/tests/test_cli_domain.py +109 -0
  94. ecosyste_ms_cli-1.3.2/tests/test_constants.py +325 -0
  95. ecosyste_ms_cli-1.3.2/tests/test_format_value.py +39 -0
  96. ecosyste_ms_cli-1.3.2/tests/test_help_output.py +40 -0
  97. ecosyste_ms_cli-1.3.2/tests/test_load_api_spec.py +38 -0
  98. ecosyste_ms_cli-1.3.2/tests/test_mcp_server.py +225 -0
  99. ecosyste_ms_cli-1.3.2/tests/test_openapi_client.py +187 -0
  100. ecosyste_ms_cli-1.3.2/tests/test_package_metadata.py +36 -0
  101. ecosyste_ms_cli-1.3.2/tests/test_print_operations.py +22 -0
  102. ecosyste_ms_cli-1.3.2/tests/test_print_output.py +210 -0
@@ -0,0 +1,6 @@
1
+ # Changelog for v1.3.2
2
+
3
+ ## Changes since v1.3.1
4
+
5
+ - fix: name change for pypi (05932a1)
6
+ - chore: set verbose (3197d06)
@@ -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,3 @@
1
+ include README.md
2
+ include LICENSE
3
+ include CHANGELOG.md
@@ -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
+ [![build-test-lint](https://github.com/ecosyste-ms/ecosyste_ms_cli/actions/workflows/build-test-lint.yml/badge.svg)](https://github.com/ecosyste-ms/ecosyste_ms_cli/actions/workflows/build-test-lint.yml)
48
+ [![Latest Release](https://img.shields.io/github/v/release/ecosyste-ms/ecosyste_ms_cli)](https://github.com/ecosyste-ms/ecosyste_ms_cli/releases/latest)
49
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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
+ [![build-test-lint](https://github.com/ecosyste-ms/ecosyste_ms_cli/actions/workflows/build-test-lint.yml/badge.svg)](https://github.com/ecosyste-ms/ecosyste_ms_cli/actions/workflows/build-test-lint.yml)
6
+ [![Latest Release](https://img.shields.io/github/v/release/ecosyste-ms/ecosyste_ms_cli)](https://github.com/ecosyste-ms/ecosyste_ms_cli/releases/latest)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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
+ [![build-test-lint](https://github.com/ecosyste-ms/ecosyste_ms_cli/actions/workflows/build-test-lint.yml/badge.svg)](https://github.com/ecosyste-ms/ecosyste_ms_cli/actions/workflows/build-test-lint.yml)
48
+ [![Latest Release](https://img.shields.io/github/v/release/ecosyste-ms/ecosyste_ms_cli)](https://github.com/ecosyste-ms/ecosyste_ms_cli/releases/latest)
49
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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,2 @@
1
+ [console_scripts]
2
+ ecosystems = ecosystems_cli.cli:main
@@ -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
@@ -0,0 +1,3 @@
1
+ """Ecosystems CLI tool for interacting with ecosyste.ms APIs."""
2
+
3
+ __version__ = "1.3.2"
@@ -0,0 +1,4 @@
1
+ from ecosystems_cli.cli import main
2
+
3
+ if __name__ == "__main__":
4
+ main() # type: ignore
File without changes