= Govital - Go Dependency Maintenance Scanner
image:https://img.shields.io/badge/License-Apache%202.0-blue.svg[link="http://www.apache.org/licenses/LICENSE-2.0"]
image:https://github.com/steffakasid/govital/actions/workflows/codeql-analysis.yml/badge.svg[link:https://github.com/steffakasid/govital/actions/workflows/codeql-analysis.yml]
image:https://github.com/steffakasid/govital/actions/workflows/release.yml/badge.svg[link:https://github.com/steffakasid/govital/actions/workflows/release.yml]
image:https://github.com/steffakasid/govital/actions/workflows/go-test.yml/badge.svg[link:https://github.com/steffakasid/govital/actions/workflows/go-test.yml]
A command-line tool to scan all dependencies of a given Go project and check if those dependencies are actively maintained and if the used versions are up to date.
== Features
* Scans all dependencies of a Go project
* Checks if dependencies are actively maintained
* Identifies outdated dependency versions
* Provides detailed dependency status report
== Prerequisites
* Go 1.24.5 or later
* Git (for downloading dependencies)
== Installation
=== Homebrew
Install via Homebrew tap:
[source,bash]
----
brew tap steffakasid/homebrew-govital
brew install govital
----
=== Go Install
Install directly using Go:
[source,bash]
----
go install github.com/steffakasid/govital@latest
----
=== From Source
Clone and build:
[source,bash]
----
git clone https://github.com/steffakasid/govital.git
cd govital
go build -o govital ./cmd/govital
----
== Usage
=== Basic Scan
Scan the current project:
[source,bash]
----
govital scan
----
Scan a specific project:
[source,bash]
----
govital scan --project-path /path/to/project
----
=== Set Stale Threshold
Configure when dependencies are considered inactive (default: 30 days):
[source,bash]
----
govital scan --stale-threshold 180
----
=== Include Indirect Dependencies
By default, only direct dependencies are scanned. To include indirect (transitive) dependencies:
[source,bash]
----
govital scan --include-indirect
----
This is useful for analyzing the full dependency tree but can be slower for large projects.
=== Parallel Scanning
Control the number of parallel workers for faster scanning (default: 4):
[source,bash]
----
# Use 8 workers for faster scanning on powerful hardware
govital scan --workers 8
# Use 1 worker to minimize resource usage
govital scan --workers 1
----
Parallel scanning significantly improves performance on projects with many dependencies.
=== Log Levels
Set log level for output:
[source,bash]
----
govital scan --log-level debug
----
Available levels: `debug`, `info`, `warn`, `error`
== Configuration
include::CONFIGURATION.adoc[leveloffset=+1]
== Extension points for the future
* Scan multiple projects e.g. from Github organization or Gitlab group
* Build Docker images with Govital pre-installed for CI/CD integration
* Expose results as Prometheus metrics for monitoring
* Publish Homebrew formula updates through one shared tap repository for all projects
== License
Apache License 2.0