Professional Documents
Culture Documents
ICTS Gitlab
ICTS Gitlab
ICTS Gitlab
Document No: 1
Prepared by: Riaan Barkhuizen
Date: 27 March 2019
Version: 1.0
DOCUMENT INFORMATION
DOCUMENT APPROVAL
AUTHOR:
REVIEWER(S):
APPROVER(S):
CLIENT SIGNATURE:
DOCUMENT CONTROL
REVISION HISTORY:
VERSION NO AUTHOR DATE Revision
1.1 Riaan Barkhuizen 12/03/2019 Draft
Table of Contents
1. GitLab on premise
1.1. Introduction
GitLab is the first single application for the entire DevOps lifecycle. From planning
to monitoring, GitLab covers every stage and additionally lets you manage and
secure across stages. Only GitLab enables Concurrent DevOps, unlocking
organizations from the constraints of the toolchain. GitLab provides unmatched
visibility, higher levels of efficiency, and comprehensive governance. This makes
the software lifecycle 200% faster, radically improving the speed of business.
The service is available to all UCT Staff and 3rd party contractors. This service is
not intended for research purposes. GitLab helps teams manage and optimize their
software delivery lifecycle with effective central management of code and user
access.
Users get access to the system by completing the application process.
1.2. Objective
The UCT GitLab application is on-premise for the following reasons:
1. The rights to the source code is owned by UCT and is private to internal use only.
GitHub, on the other hand, is a hosted solution and does not protect the rights to
any code as it is publicly available.
2. Integration into the UCT Active Directory cluster for authentication and access
control.
3. Improved security through authenticated access only, unlike GitHub with public
access on site with no public access for GitLab specific.
1.3. Scope
4. GitLab will be the software revision system and central repository for all code.
GitLab does not replace the change management process and all changes,
including deployment of new code to production systems, must follow the formal
change management process .
The solution includes the handling of incoming GitLab project software development
requests, version control and ticketing, security, programming methodology and
various development guidelines and standards for the specific project.
TERM DESCRIPTION
AS Application Services (see also: EIS)
Central repository A central place where data is stored and maintained. A repository
can be a place where multiple databases or files are located for
distribution over the network, or a repository can be a location that
is directly accessible to the user without having to travel across a
network. In the UCT context a central repository implies that it is
the designated repository for a particular type of content.
Content services Defined by Gartner as “a set of services and micro-services
embodied either as an integrated product suite or as separate
applications that share common APIs and repositories, to exploit
diverse content types and to serve multiple constituencies and
numerous cases across the organisation.” (Gartner, OnBase by
Hyland Terminology)
DevOps Development operations
EIS Enterprise Infrastructure Services (for more information, see: EIS)
End user / Users A university staff member using computer equipment connected
to the university network. (see also: UCT member)
Enterprise Content This program was initiated in 2011 and aimed to create an
Management (ECM) integrated and consolidated set of principles, frameworks, scope
Program and governance for the implementation of ECM capabilities at
UCT. (For more information, see:
https://www.news.uct.ac.za/article/-2011-04-04-new-content-
management-programme-will-bring-order)
Enterprise content “Enterprise Content Management (ECM) is the strategies, methods
management and tools used to capture, manage, store, preserve, and deliver
content and documents related to organizational processes. “ (AIIM)
External A person who is not a staff member or student at UCT and who
does not have a UCT employee / student staff number.
GitLab GitLab is a single application for the entire DevOps process. It
allows multiple users to work together in a seamless, more
effective way improving business productivity. It centralises the
2. Applicable to
All UCT staff and external contractors that make use of UCT’s code repository, UCT
GitLab and its available services. GitLab will be used to address the current issues
where no central code is being managed, no central backups performed, and no version
tracking of changes being done.
3. Exclusions
This does not apply to the storing of code of purchased commercial products.
4. Summary
• Presence/Usage: The GitLab has a defined URL, specified availability and usage
criteria, and must only be on-premise.
• Design and structure: The UCT GitLab repository will have UCT branding and will
not be customised.
• Code creation, maintenance, publishing, and archiving: Code must be created,
maintained, published, and archived according to the principles outlined below, with
ICTS being the code custodian for UCT.
• Classification governance: Project names and descriptions must comply with the
principles outlined below.
• Security: Access requests and maintenance and revoking of access must comply
with the principles outlined below.
• System maintenance: The ICTS EIS: Application Services team is responsible for
system maintenance according to the principles outlined below.
• Roles and responsibilities: The various role players in the UCT GitLab DevOps
process (Applications Services; Guests; Project owners; Developers; Maintainers),
must fulfil their responsibilities outlined below.
• Policy violations: Any non-compliance of the policy must be reported to ICTS who
will deal with it according to this policy.
5. Details:
5.1. Presence/Usage
5.1.1. UCT GitLab can be accessed using https://gitlab.uct.ac.za
5.1.2. UCT GitLab will only be available internally or by using the UCT VPN connection
off-campus.
5.1.3. UCT GitLab will at all times only be an on-premise application. (see: 1.2.
Rationale)
5.1.4. UCT GitLab must not be used for research development.
5.1.5. End users must not engage in any activity, intentionally or otherwise, that may
cause this SOP to be violated
The user is no • This user must ensure that the project owner is
longer working on a informed of this.
UCT GitLab project
• The project owner must remove the project members
access from within the GitLab portal.
The project owner • The current project owner must request a change of
changes ownership in ServiceNow, completing the request form
with all required details.
IF… THEN…
User accounts are • As a standard procedure, inactive user accounts will be
inactive disabled by ICTS.
7. Coding standards
UCT coding standards are to be followed at all times. See SOP – Software Development
Services.docx for reference.
8. Related Links
• ServiceNow: https://uct.service-now.com/sp