Skip to main content

gitlab2md

PyPI version Python versions License CI

Convert GitLab profile data to clean Markdown files - the ideal format for LLM analysis.

Why Markdown?

Markdown is the lingua franca of AI tools. Once your GitLab data is in .md format, you can:

  • Upload to NotebookLM and have conversations about your development history
  • Use Claude Projects to analyze patterns across your contributions
  • Feed to Obsidian with AI plugins for a personal developer knowledge base
  • Run local LLMs (Ollama, LM Studio) for completely private analysis

Example Prompts

Once your GitLab data is in an LLM, try asking:

Question Data Used
"What technologies do I work with most?" projects.md, merge_requests.md
"Summarize my contribution patterns" events.md, merge_requests.md
"What open source projects have I contributed to?" contributed_projects.md
"Analyze my merge request review patterns" merge_requests.md
"What groups am I most active in?" groups.md, memberships.md
"Generate a developer portfolio summary" All files
"What are my most starred projects?" starred.md

Installation

Recommended (using pipx - installs in isolated environment):

pipx install gitlab2md

Or with pip (in a virtual environment):

pip install gitlab2md

Note: On modern Linux systems (Debian, Ubuntu 23.04+, Fedora), use pipx to avoid the "externally-managed-environment" error.

Prerequisites

Installing glab

# macOS
brew install glab

# Ubuntu/Debian
sudo apt install glab

# Or via pipx
pipx install glab

Then authenticate:

glab auth login

Usage

# Use authenticated user
gitlab2md

# Specify a username
gitlab2md juanmanueldaza

# Include group contributions
gitlab2md juanmanueldaza --groups colmena-project,another-group

# Custom output directory
gitlab2md juanmanueldaza -o ./my_gitlab_data

Then drag the output folder into your favorite AI tool.

Options

Option Description Default
username GitLab username (optional, uses authenticated user if omitted) -
-o, --output Output directory gitlab_export
--groups Comma-separated list of groups to include contributions from -

LLM Tools That Work Great With This

Tool Type Best For
NotebookLM Cloud Conversational analysis, audio summaries
Claude Projects Cloud Deep analysis, long context
ChatGPT Cloud General analysis, quick insights
Obsidian + AI plugins Local Personal knowledge base, linked notes
Open Notebook Local/Cloud 16+ AI models, open source
Ollama Local Private, offline analysis

Output Files

Creates 13 markdown files in the output directory:

Profile & Projects

  • profile.md - User profile (name, bio, job title, organization, website)
  • projects.md - Owned projects with stars, forks, visibility, topics
  • member_projects.md - Projects where user is a member (excludes own)
  • contributed_projects.md - Projects user has contributed to

Activity & Contributions

  • merge_requests.md - MR history with state, labels, and status breakdown
  • issues.md - Issues created with state and labels
  • events.md - Recent activity summary and action types
  • groups.md - Group memberships and commit contributions

Network & Social

  • starred.md - Starred projects
  • memberships.md - Groups and projects with access levels
  • snippets.md - Code snippets with visibility

Security

  • ssh_keys.md - SSH key titles and expiration dates
  • gpg_keys.md - GPG key IDs and creation dates

Architecture

This project follows SOLID principles for maintainability:

  • Single Responsibility: Each parser/formatter handles one data section
  • Open/Closed: Add new parsers via @register_parser decorator without modifying core code
  • Liskov Substitution: All parsers implement the SectionParser protocol
  • Interface Segregation: Focused protocols for extractors, parsers, formatters, and writers
  • Dependency Inversion: Converter depends on abstractions, not implementations

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

GPL-2.0 - see LICENSE for details.

Release files for gitlab2md 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gitlab2md 0.1.0
File Size Uploaded
gitlab2md-0.1.0.tar.gz 47.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gitlab2md 0.1.0
File Interpreter ABI Platform
gitlab2md-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 88.8 kB

Release files / gitlab2md-0.1.0.tar.gz

Download URL gitlab2md-0.1.0.tar.gz
Size 47.7 kB
Tags Source
SHA-256 checksum
How to use checksums
3b52ca1abad65617a806476be783b0e0083bf2d5422ad0801da6752cac1f0d29
BLAKE2b-256 checksum
How to use checksums
0ef57b1256ea2f8e74b2bba1b4e083da7660d5f409deb6bd7e555aff96b58c2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 22, 2026.

Transparency log

Release files / gitlab2md-0.1.0-py3-none-any.whl

Download URL gitlab2md-0.1.0-py3-none-any.whl
Size 41.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
82c75916dc899fb1b7e64737f79d7da555332ff2abf33028f2a6dc350b261060
BLAKE2b-256 checksum
How to use checksums
4c30f882f3f81c57fb58375fbf02b735c44e101f0926cfa5e992771689617a1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 22, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page