Skip to main content

Scans GitLab instance and ranks projects against a set of criteria. Can be used to identiy projects that may have too much metadata/size to reliably export or import.

Project description

Evaluate

Evaluate is a script that can be run to gather information about projects from a gitlab self-managed instance. This information is useful to the GitLab Professional Services (PS) team to accurately scope migration services.

Use Case

GitLab PS plans to share this script with a Customer to run against their self managed instance. Then the customer can send back the output files to enable GitLab engagement managers to scope engagements accurately.

Install

pip install gitlab-evaluate

Usage

# For evaluating a GitLab instance
evaluate-gitlab -p <access-token-with-api-admin-privileges> -s https://gitlab.example.com

# For evaluating a single git repo's CI readiness
evaluate-ci-readiness -r|--repo <git-repo-url>

Using a docker container

Docker containers with evaluate installed are also available to use.

Local usage

# Spin up container
docker run --name evaluate -it registry.gitlab.com/gitlab-org/professional-services-automation/tools/utilities/evaluate:latest /bin/bash

# In docker shell
evaluate-ci-readiness -r|--repo <git-repo-url>
evaluate-gitlab -p <access-token-with-api-admin-privileges> -s https://gitlab.example.com

Example GitLab CI job using evaluate ci readiness script

evaluate node-js:
  stage: test
  script:
    - evaluate-ci-readiness --repo=https://github.com/nodejs/node.git
  artifacts:
    paths:
      - node.csv

To test, consider standing up local docker container of gitlab. Provision a personal access token of a user who has system admin priviledges. Create multiple projects with varying number of commits, pipelines, merge requests, issues. Consider importing an open source repo or using GPT to add projects to the system.

Design

Design for the script can be found here

Project Thresholds

Below are the thresholds we will use to determine whether a project can be considered for normal migration or needs to have special steps taken in order to migrate

Project Data

  • Pipelines - 1,500 max
  • Issues - 1,500 total (not just open)
  • Merge Requests - 1,500 total (not just merged)
  • Container images - 400 images, 150GB total disk, individual image 2GB

Repo Data

  • commits - 20K
  • branches - 1K
  • tags - 1K
  • Disk Size - 10GB

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitlab_evaluate-0.3.0.tar.gz (15.2 kB view hashes)

Uploaded Source

Built Distribution

gitlab_evaluate-0.3.0-py3-none-any.whl (18.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page