Home / Companies / GitLab / Blog / Post Details
Content Deep Dive

A Brief History of GitLab Workhorse

Blog post from GitLab

Post Details
Company
Date Published
Author
Jacob Vosmaer
Word Count
1,675
Company Posts That Month
15
Language
English
Hacker News Points
-
Post removed?
No
Summary

GitLab's gitlab-workhorse, initially a small weekend project developed in Go to address git clone timeouts, has evolved into a critical component that processes almost all HTTP requests for GitLab. Originally, GitLab relied on the Unicorn Ruby web server, which was incompatible with long-duration requests like git clone due to its short request timeout settings. This led to the development of gitlab-git-http-server in Go, which circumvented these timeout issues and was later integrated into GitLab, eventually becoming gitlab-workhorse. Over time, gitlab-workhorse expanded its capabilities beyond handling Git HTTP clients to include features such as handling the 'download zip' button, Git LFS support, and CI build artifacts, prompting a name change. This development, driven by both technical necessity and personal curiosity about Go, allowed GitLab to simplify its NGINX configuration by routing all HTTP requests through gitlab-workhorse, thus facilitating easier deployment across different web servers. The project's success highlighted the need for more team involvement to alleviate dependency on its creator and address technical debt, with plans to enhance request handling to improve performance further.

Trends Found in this Post

No tracked trend matches for this post yet.

Use This Data

Use this post, company, and trend context to find content marketing opportunities, perform competitive analysis, or address product feature gaps via the Plushcap MCP server or the Plushcap API.