Skip to main content

Convert GitLab profile data to Markdown for LLM analysis

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitlab2md-0.1.0.tar.gz (47.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitlab2md-0.1.0-py3-none-any.whl (41.1 kB view details)

Uploaded Python 3

File details

Details for the file gitlab2md-0.1.0.tar.gz.

File metadata

  • Download URL: gitlab2md-0.1.0.tar.gz
  • Upload date:
  • Size: 47.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gitlab2md-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3b52ca1abad65617a806476be783b0e0083bf2d5422ad0801da6752cac1f0d29
MD5 d7295bca0ad83b1a5eff2933c05d2c59
BLAKE2b-256 0ef57b1256ea2f8e74b2bba1b4e083da7660d5f409deb6bd7e555aff96b58c2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for gitlab2md-0.1.0.tar.gz:

Publisher: publish.yml on juanmanueldaza/gitlab2md

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gitlab2md-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: gitlab2md-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 41.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gitlab2md-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 82c75916dc899fb1b7e64737f79d7da555332ff2abf33028f2a6dc350b261060
MD5 f543e4a3b6ffbc44e0d8359677525e4c
BLAKE2b-256 4c30f882f3f81c57fb58375fbf02b735c44e101f0926cfa5e992771689617a1a

See more details on using hashes here.

Provenance

The following attestation bundles were made for gitlab2md-0.1.0-py3-none-any.whl:

Publisher: publish.yml on juanmanueldaza/gitlab2md

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page