2. Who am I?
● Olupot Douglas
● Software Eng.
● Neptune Software
● gitlab/hub:
@oludouglas
3. What is Gitlab?
● Gitlab is an open source software development tool
which provides a single app for every stage of the
DevOps lifecycle.
● Goal is to make software development faster so
you can spend more time fixing bugs (writing
code) and less time mantaining your tool chain.
● Based on Git, the most widely adopted version
control system for software development.
5. Why Managed Version Control
● Easy management of privileges
● Inline feedback options
● Enforce reviews (releases and artefacts)
● Spend time coding, not managing tools and users.
● Firm control over source code access
● No external parties involved.
● Keep sensitive info inhouse
6. Some Gitlab Features
● Code reviews
● Bug tracking
● Personal and private branches
● Management of numerous Git repos
● Wikis (we all need wiki)
● Issue tracking
● Access control
● Highly available (active cluster where needed)
7. Gitlab is collaborative
● Unlimited number of public and private repos
● Unlimited number of public and private collabos
● Integrates with external ticket systems eg Redmine
● Works with JIRA for issue tracking.
● Displays merge request status for builds on Jenkins
CI (Oops only on EE).
9. Who works on Gitlab?
● Been around since 2011
● An active community with hundreds of
contributors
● Managed by Gitlab.com
● Enterprise support by Gitlab B.V
10. Traditional Git Workflow
● Clone a repository
● Create a branch
● Modify source code
● Check in
● Create a patch or push changes to upstream
11. Drawbacks and disadvantages
● Write access:
● every committer needs write access on projects
(intended workflows could be omitted)
● Format patch:
● Every committer submits their patches and has to
wait for the mantaining of a review. (quite labour
intensive)
12. The Gitlab Workflow
● Fork a repo into your own workspace
● Full access to your own forked copy
● Edit online in browser or local check outs
● Create merge request (MR)
● Reviewer coments on diffs on the platform
● Automated process for pulling forks back into
mainstream repo.
13. Access control
● Gitlab provides access control for user and group
based on permission levels.
● Users’ abilities depend on their access level on a
particular project or group
● If a user is in both a project group and in project
itself the highest permission level is considered.
● The Gitlab administrator receives all permissions.
14. Internal Issue/Review Ops
● Gitlab provides APIs for external ticketing
− Access to redmine tickets through commit messages in
Git
− Use of internal issue tracking.
● API for Gitlab CI
− Continuous integration: Automated builds and test
suites run on commit
− Improved software quality
− Use dead code detectors or code coverage tools.
15. More Info
● About Gitlab architecture
− http://gitlab.com
● Gitlab continuous integration
− https://about.gitlab.com/gitbal-ci
● Official Gitlab Documentation
− http://doc.gitlab.com/ee