What is the Glossary
This contains a simplified list and definitions of some of the terms that you will encounter in your day to day activities when working with GitLab. Please add any terms that you discover that you think would be useful for others.
User authentication by combination of 2 different steps during login. This allows for more security.
Process of selective restriction to create, view, modify or delete a resource based on a set of assigned permissions. See GitLab's Permission Guidelines
Active Directory (AD)
A Microsoft-based directory service for windows domain networks. It uses LDAP technology under the hood.
Building and delivering software in phases/parts rather than trying to build everything at once then delivering to the user/client. The latter is known as the WaterFall model.
External reference: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html
Application Lifecycle Management (ALM)
The entire product lifecycle management process for an application, from requirements management, development, and testing until deployment. GitLab has advantages over both legacy and modern ALM tools.
A version control system for non-text files.
Objects (usually binary and large) created by a build process. These can include use cases, class diagrams, requirements and design documents.
A company that develops software products for developers and project managers including Bitbucket, Jira, Hipchat, Confluence, Bamboo.
Also called an audit trail, an audit log is a document that records an event in an IT system.
Auto Defined User Group
User groups are a way of centralizing control over important management tasks, particularly access control and password policies. A simple example of such groups are the users and the admins groups. In most of the cases these groups are auto defined in terms of access, rules of usage, conditions to be part of, etc.
Atlassian's CI tool similar to GitLab CI and Jenkins.
Entry level subscription for GitLab EE currently available in packs of 10.
Atlassian's web hosting service for Git and Mercurial Projects. Read about migrating from BitBucket to a GitLab instance.
A branch is a parallel version of a repository. This allows you to work on the repository without affecting the "master" branch, and without affecting the current "live" version. When you have made all your changes to your branch you can then merge to the master. When your merge request is accepted your changes will be "live."
Having your own logo on your GitLab instance login page instead of the GitLab logo.
Job triggers (Build Triggers)
These protect your code base against breaks, for instance when a team is working on the same project. Learn about setting up job triggers.
A distributed object store and file system designed to provide excellent performance, reliability and scalability.
The ability to initiate an action from chat. ChatBots run in your chat application and give you the ability to do "anything" from chat.
A copy of a repository stored on your machine that allows you to use your own editor without being online, but still tracks the changes made remotely.
Examination of a progam's code. The main aim is to maintain high quality standards of code that is being shipped. Merge requests serve as a code review tool in GitLab.
A small amount of code, usually selected for the purpose of showing other developers how to do something specific or reproduce a problem.
Person with read and write access to a repository who has been invited by repository owner.
A change (revision) to a file that also creates an ID, allowing you to see revision history and the author of the changes.
Everyone who uses GitLab.
Atlassian's product for collaboration on documents and projects.
A software engineering approach in which continuous integration, automated testing, and automated deployment capabilities allow software to be developed and deployed rapidly, reliably and repeatedly with minimal human intervention. Still, the deployment to production is defined strategically and triggered manually. Amazon moves toward continuous delivery
A software development practice in which every code change goes through the entire pipeline and is put into production automatically, resulting in many production deployments every day. It does everything that Continuous Delivery does, but the process is fully automated, there's no human intervention at all. The difference between Continuous Delivery and Continuous Integration.
A software development practice in which you build and test software every time a developer pushes code to the application, and it happens several times a day. Thoughtworks discusses continuous integration.
Term used for a person contributing to an open source project.
Conversational Development (ConvDev)
A natural evolution of software development that carries a conversation across functional groups throughout the development process, enabling developers to track the full path of development in a cohesive and intuitive way. ConvDev accelerates the development lifecycle by fostering collaboration and knowledge sharing from idea to production.
The time it takes to move from idea to production.
Atlassian product for High Availability.
As in "specify dependencies between stages."
A SSH keystored on your server that grants access to a single GitLab repository. This is used by a GitLab runner to clone a project's code so that tests can be run against the checked out code.
For us at GitLab, this means a software developer, or someone who makes software. It is also one of the levels of access in our multi-level approval system.
The intersection of software engineering, quality assurance, and technology operations. Explore more DevOps topics in the glossary by XebiaLabs
The difference between two commits, or saved changes. This will also be shown visually after the changes.
A folder used for storing multiple files.
Docker Container Registry
A feature of GitLab projects. Containers wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in.
Dynamic Environment (review apps)
Elasticsearch is a flexible, scalable and powerful search service. When enabled, it helps keep GitLab's search fast when dealing with a huge amount of data.
External reference: https://www.masteringemacs.org/article/mastering-key-bindings-emacs
External reference: https://en.wikipedia.org/wiki/Time_To_First_Byte
Your own copy of a repository that allows you to make changes to the repository without affecting the original.
Funnel, or: TOFU, MOFU, BOFU
External reference: Blog post
TOFU: top of funnel MOFU: middle of funnel BOFU: bottom of funnel
A code review tool built on top of Git.
A git attributes file is a simple text file that gives attributes to pathnames.
Scripts you can use to trigger actions at certain points.
Difference between a webhook and a git hook: a git hook is local to its repo (usually) while a webhook is not (it can make API or http calls). So for example if you want your linter to fire before you commit, you can set that up with a git hook. If the linter fails, the commit does not go through. A git hook can be configured to go beyond its repo, e.g. by having it make an API call.
A single-tenant solution that provides GitLab CE or EE as a managed service. GitLab Inc. is responsible for installing, updating, hosting, and backing up customers' own private and secure GitLab instance.
A web-based Git repository hosting service with an enterprise offering. Its main features are: issue tracking, pull request with code review, abundancy of integrations and wiki. It offers free public repos, private repos and enterprise services are paid. Read about importing a project from GitHub to GitLab.
Our free on Premise solution with >100,000 users
Our own Continuos Integration feature that is shipped with each instance
Our premium on premise solution that currently has Basic, Standard and Plus subscription packages with additional features and support.
Our free SaaS for public and private repositories.
Allows you to replicate your GitLab instance to other geographical locations as a read-only fully operational version. It can be used for cloning and fetching projects, in addition to reading any data. This will make working with large repositories over large distances much faster.
GitLab High Availability
GitLab Master Plan
Related blog post: https://about.gitlab.com/2016/09/13/gitlab-master-plan/.
These allow you to create websites for your GitLab projects, groups, or user account.
Related project: https://gitlab.com/gitlab-org/gitlab-runner
An access layer that sits on top of Git. Users are granted access to repos via a simple config file. As an admin, you only need the users' public SSH key and a username.
A web-based hosting service for projects using Git. It was acquired by GitLab and we discontinued the service. Read theGitorious Acquisition Blog Post.
An open source programming language.
External reference: https://gogs.io/
GUI/ Git GUI
A portable graphical interface to Git that allows users to make changes to their repository by making new commits, amending existing ones, creating branches, performing local merges, and fetching/pushing to remote repositories.
High Availability for Disaster Recovery (HADR)
Sometimes written HA/DR, this usually refers to a strategy for having a failover server in place in case the main server fails.
Atlassian's real time chat application for teams, Hip Chat is a competitor to Slack, RocketChat and MatterMost.
Refers to a system or component that is continuously operational for a desirably long length of time. Availability can be measured relative to "100% operational" or "never failing."
The use of open source development techniques within the corporation.
Internet Relay Chat (IRC)
An application layer protocol that facilitates communication in the form of text.
A tool used to manage, organize, and maintain a list of issues, making it easier for an organization to manage.
Atlassian's project management software, i.e. a complex issue tracker. GitLab can be configured to interact with JIRA Core either using an on-premise instance or the SaaS solution that Atlassian offers.
A testing framework for the Java programming language, JUnit has been important in the evolution of test-driven development.
A network authentication protocol that uses secret-key cryptography for security.
An open source container cluster manager originally designed by Google. It's basically a platform for automating deployment, scaling, and operations of application containers over clusters of hosts.
An identifier to describe a group of one or more specific file revisions.
Lightweight Directory Access Protocol (LDAP)
A directory (electronic address book) with user information (e.g. name, phone_number etc.)
LDAP User Authentication
GitLab integrates with LDAP to support user authentication. This enables GitLab to sign in people from an LDAP server (i.e., allowing people whose names are on the electronic user directory server to be able to use their LDAP accounts to login.)
LDAP Group Sync
Allows you to synchronize the members of a GitLab group with one or more LDAP groups.
Static code analysis for our various file types. For example, we use scss-lint to ensure that a consistent code styling is respected. Similar tools: rubocop / eslint.
A device that distributes network or application traffic across multiple servers.
Git Large File Storage (LFS)
A way to enable git to handle large binary files by using reference pointers within small text files to point to the large files. Large files such as high resolution images and videos, audio files, and assets can be called from a remote server.
An operating system like Windows or OS X. It is mostly used by software developers and on servers.
A lightweight markup language with plain text formatting syntax designed so that it can be converted to HTML and many other formats using a tool by the same name. Markdown is often used to format readme files, for writing messages in online discussion forums, and to create rich text using a plain text editor. Checkout GitLab's Markdown guide.
A community developed fork/variation of MySQL. MySQL is owned by Oracle.
Name of the default branch in every git repository.
An open source, self-hosted messaging alternative to Slack. View GitLab's Mattermost feature.
A free distributed version control system similar to and a competitor with Git.
Takes changes from one branch, and applies them into another branch.
Arises when a merge can't be performed cleanly between two versions of the same file.
Takes changes from one branch, and applies them into another branch.
Allow you to organize issues and merge requests in GitLab into a cohesive group, optionally setting a due date. A common use is keeping track of an upcoming software version. Milestones are created per-project.
A project that is setup to automatically have its branches, tags, and commits updated from an upstream repository. This is useful when a repository you're interested in is located on a different server, and you want to be able to browse its content and activity using the familiar GitLab interface.
A type of software license. It lets people do anything with your code with proper attribution and without warranty. It is the most common license for open source applications written in Ruby on Rails. GitLab CE is issued under this license. This means you can download the code, modify it as you want, and even build a new commercial product using the underlying code and it's not illegal. The only condition is that there is no form of warranty provided by GitLab so whatever happens when you use the code is your own problem.
A free disaster recovery software.
As stated on the wikipedia page, "Mounting makes file systems, files, directories, devices and special files available for use and available to the user."
For example, we have NFS servers where the git files reside. In order for a worker node to "see" or "use" the git files, the NFS server needs to be mounted on the worker; that is, the worker needs to know that the NFS server exists and how to connect to it. Think of it as getting a shared drive to show up in your Finder (on Mac) or Explorer (on Windows).
A relational database owned by Oracle. Currently only supported if you are using EE.
A set of symbols that are used to organize objects of various kinds so that these objects may be referred to by name. Examples of namespaces in action include file systems that assign names to files; programming languages that organize their variables and subroutines in namespaces; and computer networks and distributed systems that assign names to resources, such as computers, printers, websites, (remote) files, etc.
A web server (pronounced "engine x"). [It can act]((https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md) as a reverse proxy server for HTTP, HTTPS, SMTP, POP3, and IMAP protocols, as well as a load balancer and an HTTP cache.
An open standard for authorization, commonly used as a way for internet users to log into third party websites using their Microsoft, Google, Facebook or Twitter accounts without exposing their password. GitLab is an OAuth2 authentication service provider.
A way to package different services and tools required to run GitLab, so that most developers can install it without laborious configuration.
On your own server. In GitLab, this refers to the ability to download GitLab EE/GitLab CE and host it on your own server rather than using GitLab.com, which is hosted by GitLab Inc's servers.
GitLab's business model. Coined by Andrew Lampitt in 2008, the open core model primarily involves offering a "core" or feature-limited version of a software product as free and open-source software, while offering "commercial" versions or add-ons as proprietary software.
Open Source Software
Software for which the original source code is freely available and may be redistributed and modified. GitLab prioritizes open source stewardship. Including to providing access to the source code, open source software must comply with a number of criteria, among them free distribution and no discrimination against persons, groups, or fields of endeavor.
Open Source Stewardship
The most powerful person on a GitLab project. They have the permissions of all the other users plus the additional permission of being able to destroy (i.e. delete) the project.
Platform as a Service (PaaS)
Typically referred to in regards to application development, PaaS is a model in which a cloud provider delivers hardware and software tools to its users as a service.
The company that produces Helix. A commercial, proprietary, centralised VCS well known for its ability to version files of any size and type. They OEM a re-branded version of GitLab called "GitSwarm" that is tightly integrated with their "GitFusion" product, which in turn represents a portion of a Helix repository (called a depot) as a git repo.
A suite of web-based software development collaboration tools, including the Differential code review tool, the Diffusion repository browser, the Herald change monitoring tool, the Maniphest bug tracker and the Phriction wiki. Phabricator integrates with Git, Mercurial, and Subversion.
An open source analytics software to help you analyze web traffic. It is similar to Google Analytics, except that the latter is not open source and information is stored by Google. In Piwik, the information is stored on your own server and hence is fully private.
GitLab Premium EE subscription that includes training and dedicated Account Management and Service Engineer and complete support package.
A feature that protects branches from unauthorized pushes, force pushing or deletion.
A feature that protects tags from unauthorized creation, update or deletion
Git command to synchronize the local repository with the remote repository, by fetching all remote changes and merging them into the local repository.
A popular DevOps automation tool.
RE Read Only
Permissions to see a file and its contents, but not change it.
In addition to the merge, the rebase is a main way to integrate changes from one branch into another.
A regression is something that used to work one way in the last release and then we made a breaking change and it no longer works the same way.
A regression is defined as a change that results in a negative impact on the functionality of an existing feature due to recent changes, i.e. the latest release.
A directory where Git has been initiatlized to start version controlling your files. The history of your work is stored here. A remote repository is not on your machine, but usually online (like on GitLab.com, for instance). The main remote repository is usually called "Origin."
A repository that is not-on-your-machine, so it's anything that is not your computer. Usually, it is online, GitLab.com for instance. The main remote repository is usually called “Origin”.
Gives your distributed teams a single shared repository to collaborate and share requirements, understand their relationship to tests, and evaluate linked defects. It includes multiple, preconfigured requirement types.
Also known as version control or source control, this is the management of changes to documents, computer programs, large web sites, and other collections of information. Changes are usually identified by a number or letter code, termed the "revision number," "revision level," or simply "revision."
An open source chat application for teams, RocketChat is very similar to Slack but it is also open-source.
A route table contains rules (called routes) that determine where network traffic is directed. Each subnet in a VPC must be associated with a route table.
Actual build machines/containers that run and execute tests you have specified to be run on GitLab CI.
The background job processor GitLab uses to asynchronously run tasks.
Software as a service (SaaS)
Software that is hosted centrally and accessed on-demand (i.e. whenever you want to). This applies to GitLab.com.
Software Configuration Management (SCM)
This term is often used by people when they mean "Version Control."
Abbreviation for SQO Count Large And Up. This is the number of opportunities in large and strategic organizations passed from marketing to sales.
An Agile framework designed to typically help complete complex software projects. It's made up of several parts: product requirements backlog, sprint planning, sprint (development), sprint review, and retrospec (analyzing the sprint). The goal is to end up with potentially shippable products.
The board used to track the status and progress of each of the sprint backlog items.
Shell command runner
The tenant purchases their own copy of the software and the software can be customized to meet the specific and needs of that customer. GitHost.io is our provider of single-tenant 'managed cloud' GitLab instances.
Real time messaging app for teams that is used internally by GitLab team members. GitLab users can enable Slack integration to trigger push, issue, and merge request events among others.
Also known as secondary servers, these help to spread the load over multiple machines. They also provide backups when the master/primary server crashes.
Program code as typed by a computer programmer (i.e. it has not yet been compiled/translated by the computer to machine language).
Speed Index is "the average time at which visible parts of the page are displayed".
A unique identifier of a computer. It is used to identify computers without the need for a password (e.g., On GitLab I have added the ssh key of all my work machines so that the GitLab instance knows that it can accept code pushes and pulls from this trusted machines whose keys are I have added.)
Single Sign On (SSO)
An authentication process that allows you enter one username and password to access multiple applications.
Staging occurs before the commit process in git. The staging area is a file, generally contained in your Git directory, that stores information about what will go into your next commit. It’s sometimes referred to as the “index.""
Our mid range EE subscription that includes 24/7 support and support for High Availability Standard Subscription.
Atlassian's Git on-premise solution. Think of it as Atlassian's GitLab EE, now known as BitBucket Server.
Static Site Generators (SSGs)
A software that takes some text and templates as input and produces html files on the output.
Non-proprietary, centralized version control system.
A program that allows you to perform superuser/administrator actions on Unix Operating Systems (e.g., Linux, OS X.) It actually stands for 'superuser do.'
An open source version control system. Read about migrating from SVN to GitLab using SubGit.
Represents a version of a particular branch at a moment in time.
A multi-tenant GitLab instance can have any number of customers - such as companies or groups of users using it. GitLab.com is an example of a multi-tenant GitLab instance.
A single-tenant GitLab instance has only one customer - such as a company - using it. On premise GitLab instances are almost exclusively single-tenant.
The set of tools used in a process to achieve a common outcome (e.g. set of tools used in Application Lifecycle Management).
An open source project management and bug tracking web application.
True-Up licensing model
New files that Git has not been told to track previously. Add them by using the command "git add [file path]"
Upstream repository vs. GitLab repository
Anyone interacting with the software.
Version Control Software (VCS)
Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. VCS has evolved from local version control systems, to centralized version control systems, to the present distributed version control systems like Git, Mercurial, Bazaar, and Darcs. If any server dies, and these systems were collaborating via it, any of the client repositories can be copied back up to the server to restore it.
Virtual Private Cloud (VPC)
A VPC is an on demand configurable pool of shared computing resources allocated within a public cloud environment, providing some isolation between the different users using the resources. GitLab users need to create a new Amazon VPC in order to setup High Availability.
Virtual private server (VPS)
A virtual machine sold as a service by an Internet hosting service. A VPS runs its own copy of an operating system, and customers have superuser-level access to that operating system instance, so they can install almost any software that runs on that OS.
In object-oriented programming, an instance is a specific realization of any object. An object may be varied in a number of ways. Each realized variation of that object is an instance. Therefore, a VM instance is an instance of a virtual machine, which is an emulation of a computer system.
A model of building software that involves collecting all requirements from the customer, then building and refining all the requirements and finally delivering the complete software to the customer that meets all the requirements they specified.
A way for for an app to provide other applications with real-time information (e.g., send a message to a slack channel when a commit is pushed.) Read about setting up custom git hooks for when webhooks are insufficient.
A website/system that allows for collaborative editing of its content by the users. In programming, wikis usually contain documentation of how to use the software.
Files that have been modified but are not committed. Check them by using the command "git status".
Consists of files that you are currently working on.
A human-readable data serialization language that takes concepts from programming languages such as C, Perl, and Python, and ideas from XML and the data format of electronic mail.