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 GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Stale
- License
- None
Inputs
| name | description | required | default |
|---|---|---|---|
| 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" | no | gemini |
| llm-model | :optional: The specific model name to use for LLM inference. Examples: "gemini-2.5-flash-lite", "qwen2.5-coder:3b" | no | gemini-2.5-flash-lite |
| active-embedder | :optional: Which embedding provider to use for vectorizing documentation. Options: "gemini", "ollama" | no | gemini |
| embedding-model | :optional: The embedding model name. Examples: "gemini-2.5-flash-lite", "nomic-embed-text" | no | gemini-2.5-flash-lite |
| chunk-size | :optional: Maximum number of characters per code chunk for analysis. | no | 500 |
| top-k | :optional: Number of top results to retrieve during semantic search. | no | 2 |
| auto-group | :optional: Whether to automatically cluster related endpoints into groups. Options: "true", "false" | no | false |
| api-title | :optional: Title for the generated OpenAPI documentation. | no | API Documentation |
| api-version | :optional: Version string for the generated documentation. | no | 1.0.0 |
| base-url | :optional: Base URL of the documented API (used in the OpenAPI spec). | no | http://localhost:3000 |
Outputs
no outputs