GitLab Plugin Modernization

Goal: Cleaning and modernizing the extensively used GitLab plugin

Status: Selected

Team

Details

Abstract

The GitLab plugin enables Jenkins to seamlessly interact with GitLab. It allows Jenkins to automatically trigger builds, deploy code, etc., on the basis of GitLab events like Push, Merge Requests and many more. This project will replace usages of the very old version of the RESTEasy library with usages of gitlab4j-api via the GitLab API Jenkins library plugin, normalizing the GitLab plugin’s use of the GitLab API with regard to the GitLab Authentication, GitLab Branch Source, and GitLab Logo plugins.

Rationale

The plugin will be modernized to reduce future maintenance and to improve implementation consistency with the other GitLab plugins. Users will benefit from the actively supported GitLab4J-API and avoid the issues seen with the RESTEasy implementation.

Implementation

The RESTEasy implementation using GitLab v3 API calls will be incrementally replaced with GitLab4J-API calls. Tests will be adapted, updated, and implemented as needed. Care will be taken that errors propagate correctly and that there are no regressions in edge cases related to proxy servers. Documentation will also be improved and adapted. The implementation will be tested thoroughly before release.

A local instance of GitLab will be configured for functional testing during development. Existing code will be exercised against a real GitLab installation, then the ported version be tested to confirm that it still works in the same manner.

Office hours

  • (General) Official weekly Jenkins office hours: Thursdays 15:00 UTC

  • (Project-based) Details regarding the Weekly project-specific office hours can be found inside our Meeting Document along with important links via the Meetings link below.

Links