RISM18 GitOps Procedure

UCL Research Data Information Security Management System GitOps Procedure #

Document Name: RISM18-GitOps_Procedure

Classification: Public

Author: George Svarovsky

version: 1.1

Last Review: 10/04/2025

Last Reviewed by: Jack Hindley

Approved by: OMG

Approved date: 12/03/2025

Review Period: 3 years

1. Document Overview #

This document describes the procedure for managing [operational] change according to RISM08-Change_Management_Policy by using git repositories ("GitOps" i.e. git operations).

2. Scope #

This procedure applies to all changes to documented information, systems, applications, and infrastructure managed via GitOps practices across the Research Data Information Security Management System’s Environments, including production and pre-production systems.

3. Procedure #

Git repositories using GitOps for change management shall be cloned to GitHub under a suitable organisation managed by UCL.

Access controls shall be enforced on GitHub repositories, ensuring only authorised personnel can make or approve changes to production systems.

Change Requests are realised as follows.

3.1 Issues #

All changes shall be initiated from a GitHub Issue representing the Purpose of the request for change.

  • A Standard Change is labelled as change-type:standard.
  • A Emergency Change is labelled as change-type:emergency.
  • A Normal Change requires no specific label.

3.2 Branch Protection Settings #

The default branch and any dedicated production deployment branch shall be set to:

  • Require a Pull Request before merging
  • Require at least 1 Approval
  • Dismiss stale Pull Request Approvals when new commits are pushed

3.3 Pull Requests #

If an Issue gives rise to a change, a git branch shall be created for the changed repository content. The branch shall be pushed to the GitHub repository, and a Pull Request created. The change control inclusions required by RISM08 shall be realised in a Pull Request as follows:

Required InclusionRealisation
PurposeThe Issue, referenced by its GitHub Issue number in the Pull Request description.
ScopeThe Pull Request content (Files tab) precisely defining the difference to be applied.
ImpactOnly included if the impact is HIGH (see following section).
Risk assessmentIncluded or referenced in the Pull Request description.
ScheduleIf applicable, included or referenced in the Pull Request description.
Test planThe Pull Request content should include any related tests, scheduled according to test setup.
Communication planIncluded or referenced in the Pull Request description.
Contingency/Rollback plansUnless otherwise included in the Pull Request description, rollback is by git revert and re-deployment.
AuthorisationThe Approvers of the Pull Request.

3.4 Impact and Approvers #

Impact shall be assessed as either:

  • HIGH: The change could critically affect service components or the overall service quality. The Pull Request Approvers must include the Environment Owner; their approval shall be accompanied by a comment, which shall record, as appropriate, the considered input of other parties such as a supporting service owner, information governance advisory or the information security group.
  • Otherwise, the impact is not high, and the change may be approved by any Environment Developer.

Changes affecting levels of risk shall be assessed in line with RISM04 Risk Assessment and Treatment Procedure and escalated to the Operational Management Group where appropriate.

Emergency changes should be retrospectively reviewed and approved by the Environment Owner.

3.5 Testing and Validation #

  • Normal changes shall be tested in a pre-production environment before deployment.
  • Emergency changes should be tested in a pre-production environment before deployment where appropriate.
  • Live data shall not be used during testing or in non-production environments.
  • Automated testing (e.g. unit tests, integration tests) shall be used to validate changes.
  • For security-related changes, vulnerability assessments and penetration testing may be required.