# Welcome to GitLab Overviewer's technical documentation

```{contents}
:depth: 2
:local:
:backlinks: top
```

## About

**GitLab Overviewer** automatically gathers information from the `README.md`
files of all GitLab repositories you have access to and generates a concise
summary (e.g., as a Markdown table or for Quarto/Confluence).

- Extracts metadata (front-matter), description, status/todo sections, and open
  issues
- Presents a clear output as `Overview.md` and Quarto files suitable for a
  project
- Flexible customization via YAML keys in the READMEs (e.g., `type`, `priority`,
  `urgency`)
- Custom sorting & columns (CLI: `--sort`, YAML: `table_config.yaml`)
- Configurable renderer output (Markdown, Quarto) according to specification
- Gold-standard tests and snapshot testing for renderer outputs

This site is the **technical** documentation for developers of the project and
not targeted directly to end-users. For the user-documentation refer to the
[gitlab-project](https://scm.cms.hu-berlin.de/methodenlabor/p_gitlab-overviewer).

## Structure

This Project defines its functionalities in its {any}`Specifications`. Every
leaf-module (`….module`) also links back to the respective spec it implements.

```{toctree}
:maxdepth: 1
:caption: API Reference
:hidden:

api/api/index
api/cli/index
api/models/index
api/rendering/index
api/services/index
api/utils/index
api/config/index
```

## API

### {any}`API Module <api/api/index>`

```{eval-rst}
.. docstring:: gitlab_overviewer.api
```

### {any}`CLI Module <api/cli/index>`

```{eval-rst}
.. docstring:: gitlab_overviewer.cli
```

### {any}`Models Module <api/models/index>`

```{eval-rst}
.. docstring:: gitlab_overviewer.models
```

### {any}`Rendering Module <api/rendering/index>`

```{eval-rst}
.. docstring:: gitlab_overviewer.rendering
```

### {any}`Services Module <api/services/index>`

```{eval-rst}
.. docstring:: gitlab_overviewer.services
```

### {any}`Utils Module <api/utils/index>`

```{eval-rst}
.. docstring:: gitlab_overviewer.utils
```

### {any}`Config Module <api/config/index>`

```{eval-rst}
.. docstring:: gitlab_overviewer.config

.. _Specifications:
```

## Specifications

```{toctree}
:maxdepth: 1
:caption: Spec: Configuration
:hidden:

Configuration Settings Layer </specs/spec_settings>
Table Configuration (table_config.yaml) </specs/spec_table_config>
```

### Configuration

- [Configuration Settings Layer](/specs/spec_settings)
- [Table Configuration (table_config.yaml)](/specs/spec_table_config)

```{toctree}
:maxdepth: 1
:caption: Spec: Data Model
:hidden:

Data Collection Workflow </specs/spec_data_collector>
GitLab API Client </specs/spec_api_client>
Model Mapping Layer </specs/spec_model_mapping>
ReadmeExtract Model </specs/spec_readme_extraction>
```

### Data Model

- [GitLab API Client](/specs/spec_api_client)
- [Data Collection Workflow](/specs/spec_data_collector)
- [Model Mapping Layer](/specs/spec_model_mapping)
- [ReadmeExtract Model](/specs/spec_readme_extraction)

```{toctree}
:maxdepth: 1
:caption: Spec: Rendering
:hidden:

Table Rendering & UI </specs/spec_table_rendering_ui>
Table Sorting </specs/spec_table_sorting>
Markdown Overview Renderer </specs/spec_renderer_markdown>
Quarto Renderer (index.qmd + project sheets) </specs/spec_renderer_quarto>
```

### Rendering

- [Table Rendering & UI](/specs/spec_table_rendering_ui)
- [Table Sorting](/specs/spec_table_sorting)
- [Markdown Overview Renderer](/specs/spec_renderer_markdown)
- [Quarto Renderer (index.qmd + project sheets)](/specs/spec_renderer_quarto)

```{toctree}
:maxdepth: 1
:caption: Spec: Misc
:hidden:

Docstring Conventions </specs/spec_docstrings>
```

### Misc

- [Docstring Conventions](/specs/spec_docstrings)

## Indices and tables

```{toctree}
:maxdepth: 1
:caption: Reference
:hidden:

Module Index <modindex>
Full Index <genindex>
```

- {ref}`genindex`
- {ref}`modindex`
