Ruby on Rails

The core framework used for GitLab’s web application. Learn about its structure, conventions, and common libraries used.

Git

GitLab is built around Git version control. Understanding Git commands and concepts is crucial for interacting with the codebase.

PostgreSQL

The relational database system powering GitLab. Learn about database design, querying, and migrations.

Redis

Used for caching and other data storage needs. Understanding Redis commands and how it interacts with GitLab is essential.

Sidekiq

Background job processing system for tasks like email sending, CI/CD, and background updates.

Puma

The web server used for GitLab, responsible for handling incoming web requests.

GitLab CI/CD

GitLab’s built-in continuous integration and continuous delivery system. Learn about its configuration, runners, jobs, and pipelines.

GitLab API

Learn how to interact with GitLab programmatically through its REST API.

GraphQL

The query language used for more efficient and powerful data fetching in GitLab.

Vue.js

The JavaScript framework used for building user interfaces in GitLab, especially for front-end interactions.

React

Used in specific parts of the user interface for advanced functionality.

Security

Learn about security best practices and how GitLab handles sensitive data.

Authentication and Authorization

Understand how GitLab manages user authentication and authorization, including OAuth, LDAP, and two-factor authentication.

CI/CD Security

Focus on securing CI/CD pipelines, including vulnerability scanning, secret management, and secure runner configuration.

DevOps Practices

Learn how GitLab promotes DevOps principles like collaboration, automation, and continuous improvement.

Testing

Understand how the GitLab codebase is tested, including unit tests, integration tests, and end-to-end testing.

Debugging

Learn about debugging tools and techniques for troubleshooting issues within GitLab.

GitLab Development Kit

A tool for setting up a development environment and running tests locally.

GitLab Architecture

Understand the high-level design and components of GitLab, including the web application, API, and database interactions.

Data Transfer

Learn about data transfer mechanisms in GitLab, including importing and exporting data from different sources.

Internationalization and Localization

Understand how GitLab supports multiple languages and locales.