docgen-io/DocGen — AI Documentation Generator

Automatically analyzes your REST API codebase using AST parsing and LLMs, then syncs semantic documentation to your Weaviate vector database. Supports NestJS, SpringBoot, and .NET frameworks (for now!).

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
weaviate-url:Secret::required: URL of your **persistent** Weaviate instance. Must be a Weaviate Cloud (WCD) or self-hosted URL. Transient/localhost URLs are rejected — data must survive between CI runs. Example: https://my-cluster-abc123.weaviate.cloud yes
weaviate-api-key:Secret: API key for authenticating with your Weaviate instance. Leave empty if your cluster does not require authentication. no""
gemini-api-key:Secret: Google Gemini API key. Required when llm-provider is "gemini". Get one at: https://aistudio.google.com/app/apikey no""
google-cloud-project:Secret: Google Cloud project ID for Vertex AI. Required when using Gemini via Vertex AI. no""
google-cloud-location:Secret: Google Cloud region for Vertex AI (e.g. "us-central1", "europe-west1"). Required when using Gemini via Vertex AI. no""
ollama-url:Secret: URL of your Ollama server. Required when llm-provider is "ollama". Must be reachable from the GitHub Actions runner. Example: https://my-ollama.example.com:11434 no""
path:required: Path to the directory containing your API source code, relative to the repo root. Example: "src/api" or "apps/backend" yes.
api-dir:optional: Subdirectory filter within `path` to narrow the API file search. Leave empty to scan the entire `path`. no""
llm-provider:optional: Which LLM provider to use for code analysis and documentation generation. Options: "gemini", "ollama" nogemini
llm-model:optional: The specific model name to use for LLM inference. Examples: "gemini-2.5-flash-lite", "qwen2.5-coder:3b" nogemini-2.5-flash-lite
active-embedder:optional: Which embedding provider to use for vectorizing documentation. Options: "gemini", "ollama" nogemini
embedding-model:optional: The embedding model name. Examples: "gemini-2.5-flash-lite", "nomic-embed-text" nogemini-2.5-flash-lite
chunk-size:optional: Maximum number of characters per code chunk for analysis. no500
top-k:optional: Number of top results to retrieve during semantic search. no2
auto-group:optional: Whether to automatically cluster related endpoints into groups. Options: "true", "false" nofalse
api-title:optional: Title for the generated OpenAPI documentation.noAPI Documentation
api-version:optional: Version string for the generated documentation.no1.0.0
base-url:optional: Base URL of the documented API (used in the OpenAPI spec).nohttp://localhost:3000

no outputs