Technologies used in GitLab CE
Programming Languages
- Ruby: GitLab CE is primarily written in Ruby, a dynamic, object-oriented programming language. https://gitlab.com/gitlab-org/gitlab-ce/-/blob/master/Gemfile
- JavaScript: Used for client-side interactions and features. https://gitlab.com/gitlab-org/gitlab-ce/-/blob/master/app/assets/javascripts/application.js
- Go: Used for specific components like GitLab Runner. https://gitlab.com/gitlab-org/gitlab-runner
Frameworks and Libraries
- Ruby on Rails: GitLab CE is built on top of Ruby on Rails, a popular web application framework for Ruby. https://gitlab.com/gitlab-org/gitlab-ce/-/blob/master/Gemfile
- Vue.js: Used for building user interfaces and providing interactive experiences. https://gitlab.com/gitlab-org/gitlab-ce/-/blob/master/app/assets/javascripts/vue_shared/vue_shared.js
- React: Used for specific features, like the CI/CD pipeline editor. https://gitlab.com/gitlab-org/gitlab-ce/-/blob/master/app/assets/javascripts/ci/index.js
- GraphQL: Used for fetching data from the backend, providing a more efficient and flexible API. https://gitlab.com/gitlab-org/gitlab-ce/-/blob/master/app/graphql/resolvers/base_resolver.rb
- Redis: Used for caching and message brokering. https://gitlab.com/gitlab-org/gitlab-ce/-/blob/master/config/initializers/redis.rb
- PostgreSQL: Used as the primary database for storing GitLab CE data. https://gitlab.com/gitlab-org/gitlab-ce/-/blob/master/db/schema.rb
Other Technologies
- Git: Used for version control and managing code changes. https://gitlab.com/gitlab-org/gitlab-ce/-/blob/master/lib/gitlab/git/repository.rb
- Docker: Used for containerizing GitLab CE and its components. https://gitlab.com/gitlab-org/gitlab-ce/-/blob/master/docker/gitlab/Dockerfile
- Kubernetes: Used for deploying and managing GitLab CE in a cloud environment. https://gitlab.com/gitlab-org/gitlab-ce/-/blob/master/kubernetes/gitlab
Examples
- Ruby on Rails: The
Gemfile
lists various Ruby gems, including those associated with Ruby on Rails. - Vue.js: The
vue_shared.js
file in theapp/assets/javascripts/vue_shared
directory demonstrates the use of Vue.js for front-end development. - PostgreSQL: The
schema.rb
file in thedb
directory defines the database schema for GitLab CE.
This outline provides an overview of the key technologies used in GitLab CE. For more detailed information on specific technologies or components, please refer to the relevant source code and documentation within the GitLab CE repository.