A CLI tool for extracting and analyzing dependency manifests across multiple ecosystems
Project description
Vitalis
This repository now provides the functionality for analyzing and monitoring package health across different programming languages and package managers. The new analyzer service offers a seamless workflow from dependency manifest parsing to repository health analysis.
Repository Structure
-
analyzer/: The unified FastAPI service for package and repository health analysis- Single orchestrator endpoint for manifest-to-health-report workflow
- Supports Python (PyPI), JavaScript (npm), and more
- Integrates dependency extraction, package info, and repo health checks
- Docker deployment and CI/CD support
-
extractor/: Standalone Python tooling and GitHub Action for extracting dependencies from manifests -
example-projects/: Example projects in different languages for testing and demonstration
Purpose
This repository aims to provide tools and services for:
- Analyzing package health across different programming languages
- Monitoring package repositories and their metadata
- Providing insights into package dependencies and their relationships
- Supporting development teams in making informed decisions about package usage
- Evaluating repository health through activity metrics and documentation presence
- Identifying potential maintenance issues through inactivity tracking
Installation
From Test PyPI
pipx install --index-url https://test.pypi.org/simple/ vitalis
From Source
git clone https://github.com/zchryr/vitalis.git
cd vitalis
pip install -e .
CLI Usage
The vitalis CLI provides commands for extracting dependencies from manifest files:
# Check CLI health
vitalis health
# Extract dependencies from a manifest file
vitalis extract requirements.txt
vitalis extract package.json
vitalis extract pyproject.toml
# Specify manifest type explicitly
vitalis extract myfile.txt --manifest-type requirements.txt
Supported Manifest Types
requirements.txt(Python pip)pyproject.toml(Python Poetry/setuptools)poetry.lock(Python Poetry)package.json(Node.js npm)environment.yml(Conda)
Getting Started
Analyzer API
The main service is now located in analyzer. It exposes a single orchestrator endpoint:
POST /v1/analyze
Request Body:
{
"manifest_content": "<string: contents of requirements.txt, package.json, etc.>",
"manifest_type": "requirements.txt | package.json | pyproject.toml | environment.yml | poetry.lock",
"policy": {
"max_inactive_days": 365,
"require_license": true,
"require_readme": true
}
}
manifest_content: The raw text of your dependency manifest.manifest_type: The type of manifest (e.g.,requirements.txt,package.json).policy: (Optional) Health policy configuration.
Response: Returns a comprehensive health analysis for each dependency, including package metadata and repository health metrics.
Development
The repository uses Python for the main API service and includes example projects in various languages. Development dependencies and setup instructions can be found in the respective component directories.
Example Usage
You can use the /v1/analyze endpoint to analyze any supported manifest. Example with curl:
curl -X POST http://localhost:8000/v1/analyze \
-H "Content-Type: application/json" \
-d '{
"manifest_content": "requests\nfastapi\npytest",
"manifest_type": "requirements.txt"
}'
Authentication
For repository health checks, set your GitHub and GitLab tokens in a .env file in the project root:
GITHUB_TOKEN=your_github_token
GITLAB_TOKEN=your_gitlab_token
The analyzer service will load these automatically.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vitalis-0.1.0.tar.gz.
File metadata
- Download URL: vitalis-0.1.0.tar.gz
- Upload date:
- Size: 18.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8f6d243a7f36f8c46c0520b36533d47fd2c7ff7e56688a47f37965000056687
|
|
| MD5 |
18d437f303e4072b17d34272100f0846
|
|
| BLAKE2b-256 |
b23168e42bc7cfecbfa5b75e21c1b8e2307e6c1240295599f71f6154d6d8dc76
|
File details
Details for the file vitalis-0.1.0-py3-none-any.whl.
File metadata
- Download URL: vitalis-0.1.0-py3-none-any.whl
- Upload date:
- Size: 21.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bb90cd11b66f933a20cf01c27925ee13f17c7b468a7faedcdfe478c29902146
|
|
| MD5 |
ceb570e230c0520c7562b08506b8bff2
|
|
| BLAKE2b-256 |
c35c15f17d73e18f8612d4e5d0056fcc74682f0516910cbf6f28e200b591e854
|