GitLab¶
These interfaces operate on GitLab projects and merge requests. They do not implement the GitHub RunContext, artifact attribution, or journal contract. Read the GitLab guide before sharing measurement assumptions across runners.
GitLabRunner.run() creates a project, provisions assets/variables, calls legacy scenario setup, creates an MR, waits for its pipeline, evaluates directly, saves results, and tears down when requested. Its public arguments are workflow, scenario, and cleanup.
GitLabRunner ¶
Orchestrates a benchmark run on a real GitLab project.
Source code in src/benchmark/gl_runner.py
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | |
__init__ ¶
Source code in src/benchmark/gl_runner.py
run ¶
Source code in src/benchmark/gl_runner.py
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | |
GitLabClient requires a token argument or GITLAB_TOKEN; the URL defaults to https://gitlab.com. Its project is bound after creation. MR notes are plain strings rather than the GitHub structured artifact representation.
GitLabClient ¶
Thin wrapper around python-gitlab for benchmark provisioning and evaluation.
Source code in src/benchmark/utils/gl_client.py
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | |
__init__ ¶
Source code in src/benchmark/utils/gl_client.py
create_project ¶
Source code in src/benchmark/utils/gl_client.py
delete_project ¶
push_files ¶
Batch-commit multiple files to a branch in a single commit.
Source code in src/benchmark/utils/gl_client.py
create_branch ¶
create_merge_request ¶
create_merge_request(source_branch: str, target_branch: str, title: str, description: str = '') -> int
Source code in src/benchmark/utils/gl_client.py
get_mr_notes ¶
get_mr_pipelines ¶
wait_for_pipeline ¶
Source code in src/benchmark/utils/gl_client.py
set_variable ¶
Source code in src/benchmark/utils/gl_client.py
get_project_url ¶
GitLabProvisioner ¶
Handles lifecycle of a GitLab project for benchmarking.
Source code in src/benchmark/utils/gl_provisioner.py
__init__ ¶
provision ¶
provision(project_name: str, workflow_dir: str, required_files: dict | None = None, branch: str | None = None, variables: dict | None = None) -> None