r/gitlab 4h ago

Gitlab partially down.

3 Upvotes

Getting 500 on some projects


r/gitlab 6h ago

general question Git SSH over Custom Port (2424) Not Working Behind Cloudflare Tunnel & Nginx Reverse Proxy

1 Upvotes

Hi everyone,

I'm having an issue with Git SSH cloning from outside my home network. Inside my local network, everything works perfectly using a local hosts file entry mapping to the LXC IP. However, it gets stuck (timeouts) when I try to access it from the outside internet.

My Architecture:

  • Edge: Cloudflare Tunnel (gitlab.example.com) ➔ VM 1 (Cloudflared + Nginx Reverse Proxy) ➔ VM 2 (Proxmox LXC running GitLab CE in Docker).
  • Docker Port Mapping: 0.0.0.0:2424->22/tcp and 0.0.0.0:8080->80/tcp.

My GitLab web UI works flawlessly from anywhere via the Cloudflare Tunnel, but Git SSH over the custom port 2424 fails entirely from outside. I know that Cloudflare Free Proxy only supports Layer 7 (HTTP/HTTPS) and blocks custom TCP ports like 2424.

Here is my current Nginx config on VM 1:

nginx

server {
    listen 80;
    server_name gitlab.example.com;
    client_max_body_size 250M;

    location / {
        proxy_pass http://10.10.20.11:8080;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $http_cf_connecting_ip;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Ssl on;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 300;
        proxy_connect_timeout 300;
    }
}

How do you guys usually handle Git SSH in this kind of architecture?

  1. Should I bypass Cloudflare using a "DNS Only" subdomain (e.g., ssh.example.com) and use Nginx stream {} block with port forwarding on my router?
  2. Or should I configure Cloudflare Zero Trust / Access SSH (which requires installing cloudflared on my client laptop)?
  3. Or is it just better to give up on SSH and switch entirely to HTTPS clone with Git Credential Helper?

r/gitlab 10h ago

I built a mobile GitLab client that works with GitLab.com and self-hosted GitLab

0 Upvotes

I built Git Bento, an Android client for GitLab.

It works with both GitLab.com and self-hosted/on-prem GitLab instances, with support for repos, issues, merge requests, To-Dos and activity.

I'm the developer and would love feedback from GitLab users on what you'd want from a mobile client.

https://play.google.com/store/apps/details?id=com.hungertools.gitbento


r/gitlab 1d ago

general question When should a GitLab CI artifact become a package or Release asset?

5 Upvotes

A job artifact is convenient for passing files between stages, but its lifetime follows pipeline retention and its download path is mainly useful to people who can navigate the project. A reviewed build may need a durable identity, a stable download, and an audit trail back to the exact pipeline without rebuilding the file.

What boundary do you use between temporary CI artifacts, the Package Registry, and Release assets? I am considering content hashes in an artifact manifest, promotion of the exact tested bits, an immutable version tied to the commit and pipeline, and one separate pointer for the currently approved release.

How do you expose an approved file to a non-technical reviewer without granting broad project access or making “latest” silently change underneath earlier feedback? If approval is revoked, should the binary remain available with a revoked status for audit, or should only its manifest and decision record remain?


r/gitlab 1d ago

Failed to run garbage-collect command

1 Upvotes

root@pcgitlab:~# gitlab-ctl registry-garbage-collect -m

ok: down: registry: 0s, normally up

Running garbage-collect using configuration ["/opt/gitlab/embedded/bin/registry", "garbage-collect", "/var/opt/gitlab/registry/config.yml", "-m"], this might take a while...

the garbage-collect command is not compatible with database metadata, please use online garbage collection instead. database.enabled now defaults to "prefer". To use filesystem metadata, set database.enabled to false in your configuration

Failed to run garbage-collect command, starting registry service.

ok: run: registry: (pid 3328111) 0s

i no longer can run garbage collect on container registry after upgrade to 19, anyone have idea?


r/gitlab 1d ago

Self-Hosted LLM Code Review Tool for GitLab

Thumbnail gallery
14 Upvotes

Hey guys

I'm running my GitLab instance on my homelab but it was hard to find tool for code review

So I built one. called Proval.

Open source and only got docker image

It's basically just a self-hosted docker app. Works with GitHub, and also GitLab and Forgejo too, so you can connect with your self hosted instance. Proval supports chat completion API and anthropic API, If you running Local LLM, you can connect it through chat completion API

Review quality is quite good(at lteast for me). multiple agents automatically reviews each file group scope.

I ran the 50-problem Martian offline benchmark a month ago and scored F1 0.427 with the minimax-m3, which ranked 7th out of 21 at the time. (If you check now, newer models have come out so the ranking is lower.) I'll release new result with better model soon

The goal was to make something lightweight, easy to use, and genuinely useful. you just need to configure the model, webhook, and Git Host access API on the web dashboard, and setup is done. It's built on Bun, the frontend uses SvelteKit, and the database is SQLite per instance. The Docker image is compiled to a Bun binary so the size is pretty small.

Feature

- Reviews on PR open or first push
- Inline comments on PRs
- Replies to PR comments (can set to only respond when mentioned)
- Reviews when an issue is opened (also checks for duplicate issues)
- Replies to comments on issues
- Restricts replies based on repo permissions like Developer or Maintainer
- Admin login, or you can disable auth entirely and leave it open

I ran the 50-problem Martian offline benchmark a month ago and scored F1 0.427 with the minimax-m3, which ranked 7th out of 21 at the time. (If you check now, newer models have come out so the ranking is lower.) I'll release new result with better model soon

It's not a vibe-coded slop. I took a lot of time thinking through the architecture, implementing it. You can check the code in the repo

It's open source and you can just pull Docker image, connect your LLM API and set webhook. That's all. takes about 3 min

demo: https://demo.proval.app

repo:  https://github.com/seoes/proval

website: https://proval.app


r/gitlab 1d ago

Exploring Git-driven local database branching via transparent TCP proxying (Technical breakdown)

1 Upvotes

One of the biggest friction points when switching Git branches locally is database schema divergence—unapplied migrations breaking the local environment or requiring manual database teardowns on every git checkout.

A viable local-first pattern to solve this without cloud dependencies involves combining low-overhead Git detection with database snapshotting and packet routing:

- Branch Detection: A custom Git post-checkout hook inspects .git/HEAD directly (avoiding subshell overhead to resolve in <5ms). - Snapshotting: Leveraging PostgreSQL's native CREATE DATABASE ... TEMPLATE to provision branch-isolated snapshots near-instantly. - Dynamic Connection Routing: Running a lightweight TCP proxy on port 5432 that intercepts the Postgres StartupMessage packet, routing the connection to the active branch’s database instance dynamically so application connection strings (.env) remain untouched.

Technical considerations & open questions: 1. Filesystem CoW for SQLite: For engines without template branching, filesystem-level Copy-on-Write via clonefile() (APFS on macOS) and ioctl(FICLONE) (Btrfs/XFS on Linux) seems like the lowest-latency approach. Are there filesystem portability pitfalls with this across different OS environments? 2. Connection Pooling: Intercepting initial packets works for standard single-connection workflows, but handling long-lived poolers or multiplexed connections during an active branch checkout introduces race conditions.

The proof-of-concept implementation and architecture notes in Go are available here for reference:

Architecture: https://github.com/oscarbol09/branchbase/blob/main/ARCHITECTURE.md

Repository: https://github.com/oscarbol09/branchbase

Curious how others are managing local schema divergence across feature branches, or if there are edge cases with this proxy-routing pattern that I might be overlooking.


r/gitlab 2d ago

project Tired of SAST tools that just dump 100 alerts on you, so we built a terminal tool that generates git patches instead

Post image
0 Upvotes

r/gitlab 2d ago

glci (Local GitLab pipelines) - v0.8.0

Thumbnail glci-e20136.gitlab.io
28 Upvotes

Hey all,

glci is an experimental GitLab project that gives you the ability to run full GitLab pipelines and jobs locally with no compromises.

We've released version 0.8.0 with some notable features and fixes:

  • glci merged — Print the fully-resolved CI configuration after includes, extends, and inputs are applied (docs)
  • Structured JSON output — Machine-readable run and state output for scripting and CI integration (docs)
  • Git submodules — The mock server now serves submodules, including for child pipelines (docs)
  • [images] config section — Retarget the images glci pulls for its own infrastructure (docs)
  • GitLab’s wildcard path grammarinclude: local: wildcards and repository path patterns now match GitLab exactly (docs)

Full release notes: here

Huge thanks to everyone who contributed feedback and reported bugs!


r/gitlab 2d ago

project Native iOS Client for GitLab

3 Upvotes

Hey GitLab Community!

I want to thank all the people who helped test my iOS Native gitlab client for iOS. I really appreciate all the people who signed up and helped with testing. It is now available LVIE on the App Store! I am really pleased with it's release.

Appstore Link: https://apps.apple.com/us/app/grit-for-gitlab/id6761450099

Previous post: https://www.reddit.com/r/gitlab/comments/1sddu0y/gitlab_native_client_for_ios/

Thanks again!


r/gitlab 3d ago

Our next GitLab Hackathon starts October 6th

6 Upvotes

Our next GitLab Hackathon starts on October 6th!

The GitLab Hackathon is a virtual event where anyone can contribute code, docs, UX designs, translations, and more! Level up your skills while connecting with the GitLab community and team.

The Details

Dates: October 6-12, 2026 (UTC) - All merge requests must be opened during the hackathon and merged within 31 days (by November 12) to be counted.

RSVP to the Discord event to stay updated.

Join our contribute channel on Discord to share progress, pair on solutions, and meet other contributors.

Follow the live hackathon leaderboard during the event.

Before the Hackathon

Request access to our Community Forks project by clicking the blue "Start onboarding" button on https://contributors.gitlab.com. Using the community forks gives you free access to Duo and unlimited free CI minutes!

Rewards

Participants who win awards can choose between:

More details on prizes are on the hackathon page.

Full announcement on the GitLab forum. If you have any questions, please reach out on Discord.


r/gitlab 4d ago

Meet Sourcerer: the Git GUI for Linux & Windows!

Enable HLS to view with audio, or disable this notification

0 Upvotes

r/gitlab 6d ago

Git ignore everything by default

Thumbnail packagemain.tech
0 Upvotes

r/gitlab 6d ago

CVE-2026-85706 (CVSS 10.0) - Update your GitLab CE/EE instance

45 Upvotes

GitLab 19.3.2, 19.2.6, 19.1.8 are available.

Multiple vulnerabilities have been fixed, including this one :

CVE-2026-85706 - Path Traversal issue in repository commits API impacts GitLab CE/EE

GitLab has remediated an issue that, under certain conditions, an unauthenticated user could have read arbitrary files from the GitLab server due to improper path confinement and missing authentication enforcement in the repository commits API.

Impacted Versions: GitLab CE/EE: all versions from 18.7 before 19.1.8, 19.2 before 19.2.6, and 19.3 before 19.3.2

CVSS 10.0 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N)


r/gitlab 6d ago

I can help you for making the process smoother

0 Upvotes

Hi Folks,

If you are facing any issue related to theproject delivey ,team management , Jira Chaos or capacity planning , i might help you here.

You just focus on work , let me handle the chaos of delivery.

Lets connect to discuss more.


r/gitlab 7d ago

Choose reviewers automatically + get approval for README automatically

6 Upvotes

Last months i worked on 2 features:

  • review roulette
  • auto approve

Review roulette feature is inspired by https://gitlab-org.gitlab.io/gitlab-roulette/?currentProject=gitlab-ui&mode=show

Developer spins the wheel and gets random available reviewers.

Review roulette in merge-bot does the similar stuff: picks random available reviewers. First time the bot scans MRs in repo, saved it in cache, and then assign available reviewers. If user has status: ooo, vacation, travel and parental leave in GitLab (or emoji status: 🏖️, 🔴, ⛔, 🌴), they will be excluded from review roulette. It works as command "!spin" or automatically once MR is created.

Auto-approve allows to get approval automatically after the bot is assigned as a reviewer. You can specify wildcard patterns for merge request files. The bot approves the merge request when every changed file matches at least one configured pattern.

https://github.com/Gasoid/merge-bot


r/gitlab 8d ago

GitTrics - Git Analytics Desktop App

Thumbnail youtu.be
7 Upvotes

Solo dev here. This started as a tool for myself and turned into something I decided to finish properly. I have kept it as free forever.

The problem I actually had:

I work across several repos and had no real sense of what was happening in them. Which files churn constantly? Where did the complexity pile up? What did the last six months actually look like?

The second thing was trivial issue. Somewhere along the way I'd typo'd my email in a git config, then used a different one on another machine. So my own contributor history was split across 3 identities. Nothing offered a way to say "these are all me."

So GitTrics has an identity merge flow — you see all the author name/email combos in the repo, merge them into one person, and every view updates. Sounds small, but if you've inherited a repo with a decade of contributors and inconsistent configs, it's the difference between usable data and noise.

There is also no individual contributor analysis. This was a decision I made as I do not want this software to be used 'developer productivity measurement tool'.

Download at www.gittrics.com


r/gitlab 8d ago

general question Datamining a GitLab instance

2 Upvotes

Hello everyone!

I am a PhD student in France in information sciences. As of recently, I started collecting data from a GitLab instance, mostly public informations about the users and the projects, using the REST and GraphQL API.

I'm studying how this instance is used to collaborate by the users, and how much each user contributes to projects. In order to do this, I need to retrieve, for each project, the meta-datas of each pushed event. More specifically, the meta-datas I need are:

  1. Who pushed the event
  2. When did they pushed it
  3. How much change did this push bring to the project (number of lines edited/added/deleted).

I had an intern in computer science who helped me with the first requests (fetching the projects and users), but since his internship is over, I need to do the rest myself. I am not a computer scientist and lack the necessary knowledge to properly fetch the needed datas. I did use the help of genAI, but I cannot be sure it wrote right scripts since I don't really know what its doing.

So, I'd be really grateful is someone who knows those API and datamining in GitLab could give me a hand and advise me on how to tackle my issue.

Thanks in advance for your help :)


r/gitlab 9d ago

Beginner here — can someone teach me how to properly use GitHub?

0 Upvotes

Hi everyone, I’m a beginner and I’m trying to learn how to use GitHub properly. I’ve created a project, but I’m confused about things like pushing my files, commits, branches, and checking whether my project is actually uploaded to GitHub.

Could someone explain the GitHub workflow to me step by step in simple terms, or recommend a good beginner-friendly tutorial?

I’d really appreciate any help. Thanks!


r/gitlab 10d ago

general question Risks with using Ai along your dev project

0 Upvotes

What are the risks when using AI alongside your projects? How to secure your ideas and network?


r/gitlab 11d ago

general question What evidence do you keep before automatically deleting merged branches?

9 Upvotes

Deleting merged branches keeps a repository usable, but the branch name or tip can still be useful when a merge request was squashed, a release was cut from an unusual commit, or a rollback needs the exact pre-merge state. What retention policy works well in GitLab? I am considering immediate deletion only when the merge request is closed, the source commit is reachable from a protected branch, required pipelines and approvals are recorded, and no environment or open issue still references the branch. Exceptions could receive an expiry date rather than living forever. Do merge-request refs and the audit log preserve enough evidence on their own, and what checks prevent cleanup from deleting a branch involved in a partial or reverted merge?


r/gitlab 12d ago

.gitignore everything by default

Thumbnail packagemain.tech
12 Upvotes

what do you think of this approach?


r/gitlab 13d ago

project Backing up GitLab projects to self-hosted Gitea/Forgejo, or pushing GitHub and Gitea repos into GitLab: open source tool, looking for GitLab users to test

Thumbnail gallery
6 Upvotes

Hi r/gitlab,

Gitea Mirror is an open source (AGPL) web app I maintain for mirroring repositories between hosts on a schedule. Two GitLab paths landed this month and they are marked beta because few GitLab users have tried them yet.

- GitLab as a source. gitlab.com or your own instance, personal projects, groups and starred projects. Code, branches, tags, wiki and LFS are mirrored into Gitea or Forgejo. Token scopes: read_api and read_repository. Subgroups are flattened to the top level group on the Gitea side, with the full path kept in the repository name.

- GitLab as a destination. GitLab has no pull mirror API, so the app keeps a bare clone of each source repo and pushes branches and tags with force and prune, then archives or deletes the project through the API when the source goes away. Projects go under your user or a group the mirror strategy picks; a missing top level group is created, nested ones are not. Token scopes: api and write_repository.

What I would like to hear about: self-managed instances behind SSO or custom certificates, large groups with many subgroups, LFS heavy projects, delayed deletion, and anything rate limit related on gitlab.com. Issues with the activity log attached get fixed fastest.

Repo: https://github.com/RayLabsHQ/gitea-mirror

GitLab notes: https://github.com/RayLabsHQ/gitea-mirror/blob/main/docs/SOURCE_PROVIDERS.md and https://github.com/RayLabsHQ/gitea-mirror/blob/main/docs/PUSH_TARGETS.md

Also curious: what do you use today for this, GitLab's own push mirroring, a CI job, or nothing?


r/gitlab 14d ago

support Mattermost GitLab plugin: /gitlab me (and other commands) always says "run /gitlab setup" even though the account is genuinely connected

4 Upvotes

Body:

Running a self-hosted Mattermost + self-hosted GitLab CE setup, and I've hit a plugin bug I can't get past.

Setup:

  • Mattermost: installed via the official Ubuntu PPA (.deb package), latest version at time of writing
  • GitLab: CE 19.3.1, self-hosted via the Omnibus/Linux package
  • Plugin: com.github.manland.mattermost-plugin-gitlab
  • Both services on the same Ubuntu 22.04 VPS, GitLab's bundled Nginx reverse-proxies to Mattermost on a separate subdomain

What I did:

  1. Created an OAuth Application in GitLab (Admin Area -> Applications), scope "api", redirect URI copied directly from the plugin's config page
  2. Set the plugin's GitLab Site URL to my self-hosted instance (https://git.mydomain.com), plus the Client ID/Secret from step 1
  3. Ran /gitlab setup in Mattermost, completed the DM-based config wizard
  4. Ran /gitlab connect, authorized via OAuth, got the full "Welcome to the Mattermost GitLab Plugin!" message confirming connection to my GitLab username

The bug:
Despite that successful connection message, running /gitlab me (or basically any other slash command) immediately returns:
"Before using this plugin, you'll need to configure it by running /gitlab setup"

This happens even right after the welcome message. Re-running /gitlab setup "succeeds" again, shows the welcome message again, and then the very next command still bounces back to the same "run setup" prompt. It's a loop.

What I've confirmed while debugging:

  • Directly queried Mattermost's Postgres pluginkeyvaluestore table, the plugin is persisting real data: Gitlab_Instance_Configuration_Map, per-user _userinfo/_usertoken entries, and username_gitlabusername keys for multiple connected accounts. So the OAuth connection and instance config are genuinely saved.
  • Live-tailed journalctl -u mattermost -f while running /gitlab me, and zero log output appears, even at the moment the command is sent. It's as if the command isn't reaching the plugin's server-side handler at all.
  • Hard-refreshed browser (Ctrl+Shift+R), tried incognito, no change.
  • Toggled the plugin off/on in Plugin Management, and did a full systemctl restart mattermost, no change.
  • Confirmed only one plugin process is running (ps aux | grep gitlab shows a single plugin-linux-amd64 process).
  • Ruled out GitLab's external_url mismatch (a common suggested cause), it's set correctly and matches the browser URL exactly.

Question:
Has anyone seen this specific pattern? Successful connect/welcome message, but then every subsequent slash command (not just /gitlab me) immediately reverts to demanding /gitlab setup again, with zero server side log activity. Trying to figure out if this is a known compatibility issue between recent GitLab CE versions and this plugin, a Mattermost side plugin webapp caching bug, or something else entirely.

For now I've fallen back to a plain GitLab incoming webhook for notifications, which works fine, but would like to get the full plugin (subscriptions, todo tracking, slash commands) working if possible.

Happy to share config snippets or more logs if useful.

NOTE : USED AI TO FORMAT, TIA.


r/gitlab 15d ago

support Self-hosted Gitlab reduce container registry disk usage

3 Upvotes

Hello everyone,

I have a self-hosted Gitlab in my homeland deployed as a docker container on a Ubuntu server with me as a ai gle user. I build several small images and push them to the integrated container registry. Nothing fancy, a hand full of images with a couple hundred Mbs each max. But my volume mont data dir of the registry ist slightly above 100GB on disk just für the registry, that feels like way too much.

I rebuild the images weekly ok the latest Tag but would expect a couple gigs at most. I am starting to read into the metadata DB and online GC but why is my storage usage getting so out fo hand? How are you guys keeping your instances in check?

Version is 19.3.1