Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Chandler <wchandler@gitlab.com>2022-12-06 22:11:21 +0300
committerWill Chandler <wchandler@gitlab.com>2022-12-21 20:42:14 +0300
commite6eaa0e37f1b8c8cc4652988b5b5e777dc3f2160 (patch)
tree2a938a9f006e49f359ac0e075bf9cabb43fbdc2d
parentf2b896476395d3071f59b72cbc7d4d5a6d947194 (diff)
Support: Add benchmarking Ansible scriptwc/benchmarking
Currently Gitaly running on GitLab.com is well-instrumented and allows us to generally catch major performance regressions quickly. However, small regressions are likely to sneak through due to the inherently noise nature of user traffic. To get well-defined measures of performance we will need a separate environment running consistent workloads against immutable repositories. To begin addressing this need, this commit add an Ansible script that will create a standalone Gitaly node and a client node from which to send traffic. We are not using Omnibus GitLab so that arbitrary Gitaly revisions may benchmarked. We use `ghz`, a gRPC benchmarking tool, to send traffic to Gitaly. This supports streaming RPCs, unlike k6s, which the Quality team uses for GPT. The `ghz` logs and Gitaly logs are included in the results archive. By default the Gitaly host will be profiled using `perf` and several `libbpf-tools` binaries. Testing shows this slows average response time by ~10%. This can be disabled by setting the `profile` variable to false. This initial MVC support only three RPCs are support, `FindCommit`, `GetBlobs`, and `ListCommitsByOid`. These are among the most commonly used RPCs in real traffic and are simple queries. Five open source repositories are used: - git/git: a relatively small repository and well-maintained repository - gitlab-org/gitlab: very large number of references and a pool repo - torvalds/linux: larger repository - homebrew/homebrew-core: very large number of tree objects - google/chromium: very large, large objects in repo, many refs Note that currently we are not setting `gitaly-session-id` on rquests, so the catfile cache is not being used and results will not match production environments.
-rw-r--r--_support/benchmarking/.gitignore4
-rw-r--r--_support/benchmarking/README.md65
-rw-r--r--_support/benchmarking/ansible.cfg5
-rw-r--r--_support/benchmarking/benchmark.yml6
-rwxr-xr-x_support/benchmarking/configure-benchmark-instance2
-rw-r--r--_support/benchmarking/configure.yml12
-rwxr-xr-x_support/benchmarking/create-benchmark-instance2
-rw-r--r--_support/benchmarking/create.yml21
-rwxr-xr-x_support/benchmarking/destroy-benchmark-instance2
-rw-r--r--_support/benchmarking/destroy.yml7
-rw-r--r--_support/benchmarking/group_vars/all.yml21
-rw-r--r--_support/benchmarking/roles/benchmark/handlers/main.yml6
-rw-r--r--_support/benchmarking/roles/benchmark/tasks/bench.yml78
-rw-r--r--_support/benchmarking/roles/benchmark/tasks/main.yml22
-rw-r--r--_support/benchmarking/roles/benchmark/vars/main.yml6
-rwxr-xr-x_support/benchmarking/roles/client/files/benchmark-gitaly.sh54
-rw-r--r--_support/benchmarking/roles/client/files/queries/FindCommit/chromium.git.json10
-rw-r--r--_support/benchmarking/roles/client/files/queries/FindCommit/git.git.json10
-rw-r--r--_support/benchmarking/roles/client/files/queries/FindCommit/gitlab.git.json12
-rw-r--r--_support/benchmarking/roles/client/files/queries/FindCommit/homebrew-core.git.json10
-rw-r--r--_support/benchmarking/roles/client/files/queries/FindCommit/linux.git.json10
-rw-r--r--_support/benchmarking/roles/client/files/queries/GetBlobs/chromium.git.json315
-rw-r--r--_support/benchmarking/roles/client/files/queries/GetBlobs/git.git.json1995
-rw-r--r--_support/benchmarking/roles/client/files/queries/GetBlobs/gitlab.git.json449
-rw-r--r--_support/benchmarking/roles/client/files/queries/GetBlobs/homebrew-core.git.json67
-rw-r--r--_support/benchmarking/roles/client/files/queries/GetBlobs/linux.git.json163
-rw-r--r--_support/benchmarking/roles/client/files/queries/ListCommitsByOid/chromium.git.json211
-rw-r--r--_support/benchmarking/roles/client/files/queries/ListCommitsByOid/git.git.json211
-rw-r--r--_support/benchmarking/roles/client/files/queries/ListCommitsByOid/gitlab.git.json213
-rw-r--r--_support/benchmarking/roles/client/files/queries/ListCommitsByOid/homebrew-core.git.json211
-rw-r--r--_support/benchmarking/roles/client/files/queries/ListCommitsByOid/linux.git.json211
-rw-r--r--_support/benchmarking/roles/client/tasks/main.yml66
-rw-r--r--_support/benchmarking/roles/client/vars/main.yml2
-rw-r--r--_support/benchmarking/roles/deploy/handlers/main.yml16
-rw-r--r--_support/benchmarking/roles/deploy/tasks/main.yml33
-rw-r--r--_support/benchmarking/roles/deploy/templates/all.yml.j221
-rw-r--r--_support/benchmarking/roles/deploy/templates/hosts.ini.j25
-rw-r--r--_support/benchmarking/roles/deploy/templates/terraform.tfvars.j23
-rw-r--r--_support/benchmarking/roles/destroy/handlers/main.yml5
-rw-r--r--_support/benchmarking/roles/destroy/tasks/main.yml8
-rw-r--r--_support/benchmarking/roles/gitaly/files/gitaly.service29
-rwxr-xr-x_support/benchmarking/roles/gitaly/files/profile-gitaly.sh90
-rw-r--r--_support/benchmarking/roles/gitaly/handlers/main.yml7
-rw-r--r--_support/benchmarking/roles/gitaly/tasks/initialize.yml44
-rw-r--r--_support/benchmarking/roles/gitaly/tasks/main.yml7
-rw-r--r--_support/benchmarking/roles/gitaly/tasks/setup_gitaly.yml128
-rw-r--r--_support/benchmarking/roles/gitaly/tasks/setup_gitlab_shell.yml42
-rw-r--r--_support/benchmarking/roles/gitaly/tasks/setup_go.yml14
-rw-r--r--_support/benchmarking/roles/gitaly/tasks/setup_profiling.yml87
-rw-r--r--_support/benchmarking/roles/gitaly/tasks/setup_ruby.yml33
-rw-r--r--_support/benchmarking/roles/gitaly/templates/config.toml.j261
-rw-r--r--_support/benchmarking/roles/gitaly/vars/main.yml3
-rwxr-xr-x_support/benchmarking/run-benchmarks2
-rw-r--r--_support/benchmarking/terraform/main.tf129
54 files changed, 5246 insertions, 0 deletions
diff --git a/_support/benchmarking/.gitignore b/_support/benchmarking/.gitignore
new file mode 100644
index 000000000..5b31103d1
--- /dev/null
+++ b/_support/benchmarking/.gitignore
@@ -0,0 +1,4 @@
+/hosts.ini
+/terraform/*
+!/terraform/main.tf
+/results/*
diff --git a/_support/benchmarking/README.md b/_support/benchmarking/README.md
new file mode 100644
index 000000000..f0cb150ef
--- /dev/null
+++ b/_support/benchmarking/README.md
@@ -0,0 +1,65 @@
+# Gitaly Benchmarking Tool
+
+## What is this?
+
+An Ansible script for running RPC-level benchmarks against Gitaly.
+Currently five open source repositories are used:
+
+- Git
+- GitLab
+- Linux
+- Homebrew-Core
+- Chromium
+
+Requests are sent to Gitaly via [ghz](https://ghz.sh/), a gRPC benchmarking
+tool. The details of the requests can be found in
+`roles/client/files/queries/<RPC_NAME>/<REPO_NAME>`.
+
+## Steps for use
+
+### 1. Create instance
+
+```
+./create-benchmark-instance
+```
+
+This will create a Gitaly node and a small client node to
+send requests to Gitaly over gRPC. This will ask for the Gitaly revision that
+will be built.
+
+### 2. Configure instance
+
+```
+./configure-benchmark-instance
+```
+
+Install Gitaly from source with from desired reference and install other
+required tools. A disk image containing the test repositories will be mounted
+to `/mnt/git-repositories` on the Gitaly node.
+
+### 3. Run benchmarks
+
+```
+./run-benchmarks
+```
+
+Run all RPCs against all repos listed in the `rpc` and `repos` section of
+`group_vars/all.yml`. By default the Gitaly node is profiled with `perf` and
+several `libbpf-tools` binaries for generating flamegraphs and other
+performance information. Profiling adds ~10% overhead, and can be disabled by
+running the job with:
+
+```
+./run-benchmarks --extra-vars "profile=false"
+```
+
+The output of the job will be written to an archive titled
+`benchmark-<GITALY_REV>-<EPOCH>.tar.gz` in the `results` directory.
+
+### 4. Destroy instance
+
+```
+./destroy-benchmark-instance
+```
+
+All nodes will be destroyed.
diff --git a/_support/benchmarking/ansible.cfg b/_support/benchmarking/ansible.cfg
new file mode 100644
index 000000000..9eec3508d
--- /dev/null
+++ b/_support/benchmarking/ansible.cfg
@@ -0,0 +1,5 @@
+[ssh_connection]
+pipelining = True
+
+[defaults]
+callbacks_enabled = profile_tasks
diff --git a/_support/benchmarking/benchmark.yml b/_support/benchmarking/benchmark.yml
new file mode 100644
index 000000000..0cfb92118
--- /dev/null
+++ b/_support/benchmarking/benchmark.yml
@@ -0,0 +1,6 @@
+---
+- hosts: gitaly
+ roles:
+ - benchmark
+ gather_facts: false
+ become: true
diff --git a/_support/benchmarking/configure-benchmark-instance b/_support/benchmarking/configure-benchmark-instance
new file mode 100755
index 000000000..290176ccd
--- /dev/null
+++ b/_support/benchmarking/configure-benchmark-instance
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec ansible-playbook -i hosts.ini configure.yml "$@"
diff --git a/_support/benchmarking/configure.yml b/_support/benchmarking/configure.yml
new file mode 100644
index 000000000..d7c292be2
--- /dev/null
+++ b/_support/benchmarking/configure.yml
@@ -0,0 +1,12 @@
+---
+- name: Client setup
+ hosts: client
+ roles:
+ - client
+ become: true
+
+- name: Gitaly setup
+ hosts: gitaly
+ roles:
+ - gitaly
+ become: true
diff --git a/_support/benchmarking/create-benchmark-instance b/_support/benchmarking/create-benchmark-instance
new file mode 100755
index 000000000..0173ac095
--- /dev/null
+++ b/_support/benchmarking/create-benchmark-instance
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec ansible-playbook -l localhost create.yml "$@"
diff --git a/_support/benchmarking/create.yml b/_support/benchmarking/create.yml
new file mode 100644
index 000000000..1e4942ba2
--- /dev/null
+++ b/_support/benchmarking/create.yml
@@ -0,0 +1,21 @@
+---
+- name: Set user-defined variables
+ hosts: localhost
+ vars_prompt:
+ - name: gitaly_revision
+ prompt: "Enter Gitaly revision to build"
+ default: HEAD
+ private: false
+
+ - name: gitaly_benchmarking_instance_name
+ prompt: "Enter a name for your benchmark instance"
+ default: "{{ lookup('env', 'USER') }}-{{ lookup('pipe', 'date +%Y-%m-%d') }}"
+ private: false
+
+ - name: ssh_pubkey
+ prompt: "Enter the path to your SSH public key"
+ default: "{{ lookup('env', 'HOME') }}/.ssh/id_ed25519.pub"
+ private: false
+ roles:
+ - deploy
+ gather_facts: false
diff --git a/_support/benchmarking/destroy-benchmark-instance b/_support/benchmarking/destroy-benchmark-instance
new file mode 100755
index 000000000..f5eaf5128
--- /dev/null
+++ b/_support/benchmarking/destroy-benchmark-instance
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec ansible-playbook -i hosts.ini destroy.yml "$@"
diff --git a/_support/benchmarking/destroy.yml b/_support/benchmarking/destroy.yml
new file mode 100644
index 000000000..da95995fb
--- /dev/null
+++ b/_support/benchmarking/destroy.yml
@@ -0,0 +1,7 @@
+---
+- name: Destroy benchmark cluster
+ hosts: localhost
+ roles:
+ - destroy
+ become: false
+ gather_facts: no
diff --git a/_support/benchmarking/group_vars/all.yml b/_support/benchmarking/group_vars/all.yml
new file mode 100644
index 000000000..802b9909b
--- /dev/null
+++ b/_support/benchmarking/group_vars/all.yml
@@ -0,0 +1,21 @@
+---
+gitaly_revision: HEAD
+repos:
+ - git.git
+ - linux.git
+ - gitlab.git
+ - homebrew-core.git
+ - chromium.git
+rpcs:
+ - find_commit:
+ rpc: FindCommit
+ service: gitaly.CommitService
+ proto: commit.proto
+ - get_blobs:
+ rpc: GetBlobs
+ service: gitaly.BlobService
+ proto: blob.proto
+ - list_commits_by_oid:
+ rpc: ListCommitsByOid
+ service: gitaly.CommitService
+ proto: commit.proto
diff --git a/_support/benchmarking/roles/benchmark/handlers/main.yml b/_support/benchmarking/roles/benchmark/handlers/main.yml
new file mode 100644
index 000000000..9b128e24d
--- /dev/null
+++ b/_support/benchmarking/roles/benchmark/handlers/main.yml
@@ -0,0 +1,6 @@
+---
+- name: Stop Gitaly service
+ systemd:
+ name: gitaly
+ state: stopped
+ listen: stop gitaly
diff --git a/_support/benchmarking/roles/benchmark/tasks/bench.yml b/_support/benchmarking/roles/benchmark/tasks/bench.yml
new file mode 100644
index 000000000..7116241d4
--- /dev/null
+++ b/_support/benchmarking/roles/benchmark/tasks/bench.yml
@@ -0,0 +1,78 @@
+---
+- name: Show repo and RPC being benched
+ debug:
+ msg: "Benchmarking {{ item.0.rpc }} against {{ item.1 }}"
+
+- name: Create benchmark results directory on Gitaly node
+ file:
+ path: "{{ output_dir }}"
+ state: directory
+ mode: '0755'
+ owner: git
+ group: git
+
+- name: Create benchmark results directory on client node
+ file:
+ path: "{{ output_dir }}"
+ state: directory
+ mode: '0755'
+ owner: git
+ group: git
+ delegate_to: "{{ groups['client'][0] }}"
+
+- name: Clear kernel page cache
+ shell: sync && echo 3 > /proc/sys/vm/drop_caches
+ when: clear_page_cache | bool
+
+# Create new Gitaly process for each run for easy log collection
+- name: Start Gitaly service
+ systemd:
+ name: gitaly
+ state: started
+ notify: stop gitaly
+
+- name: Pause for Gitaly to start up
+ pause:
+ seconds: 5
+
+- name: Run ghz
+ command:
+ argv:
+ - /usr/local/bin/benchmark-gitaly
+ - "-a{{ hostvars[groups['gitaly'][0]]['internal'] }}"
+ - "-d{{ bench_duration }}"
+ - "-o{{ output_dir }}"
+ - "-p{{ item.0.proto }}"
+ - "-s{{ item.0.service }}"
+ - "-r{{ item.0.rpc }}"
+ - "-g{{ item.1 }}"
+ async: "{{ ghz_wait_duration }}"
+ poll: 0
+ register: ghz_wait
+ delegate_to: "{{ groups['client'][0] }}"
+
+- name: Profile system with perf and libbpf-tools
+ command:
+ argv:
+ - /usr/local/bin/profile-gitaly
+ - "-d{{ profile_duration }}"
+ - "-o{{ output_dir }}"
+ - "-r{{ item.0.rpc }}"
+ - "-g{{ item.1 }}"
+ when: profile | bool
+
+- name: Wait for ghz to exit
+ async_status:
+ jid: "{{ ghz_wait.ansible_job_id }}"
+ register: ghz_result
+ until: ghz_result.finished
+ retries: 100
+ delay: 10
+ delegate_to: "{{ groups['client'][0] }}"
+
+- name: Copy ghz data to Gitaly node
+ synchronize:
+ src: "{{ output_dir }}/ghz.json"
+ dest: "{{ output_dir }}/"
+ private_key: /root/.ssh/id_ed25519
+ delegate_to: "{{ groups['client'][0] }}"
diff --git a/_support/benchmarking/roles/benchmark/tasks/main.yml b/_support/benchmarking/roles/benchmark/tasks/main.yml
new file mode 100644
index 000000000..73c1f4d45
--- /dev/null
+++ b/_support/benchmarking/roles/benchmark/tasks/main.yml
@@ -0,0 +1,22 @@
+---
+- name: Set run_name
+ set_fact: "run_name=benchmark-{{ gitaly_revision }}-{{ lookup('pipe', 'date +%s') }}"
+
+- name: Run benchmarks
+ vars:
+ output_dir: "/tmp/{{ run_name }}/{{ item.0.rpc }}/{{ item.1 }}"
+ include_tasks: bench.yml
+ loop: "{{ rpcs | product(repos) | list }}"
+
+- name: Archive results
+ archive:
+ path:
+ - "/tmp/{{ run_name }}"
+ dest: "/tmp/{{ run_name }}.tar.gz"
+ owner: git
+
+- name: Fetch results
+ fetch:
+ src: "/tmp/{{ run_name }}.tar.gz"
+ dest: "{{ playbook_dir }}/results/"
+ flat: true
diff --git a/_support/benchmarking/roles/benchmark/vars/main.yml b/_support/benchmarking/roles/benchmark/vars/main.yml
new file mode 100644
index 000000000..e23bd7641
--- /dev/null
+++ b/_support/benchmarking/roles/benchmark/vars/main.yml
@@ -0,0 +1,6 @@
+---
+profile: true
+clear_page_cache: true
+bench_duration: 35
+profile_duration: 30
+ghz_wait_duration: 120
diff --git a/_support/benchmarking/roles/client/files/benchmark-gitaly.sh b/_support/benchmarking/roles/client/files/benchmark-gitaly.sh
new file mode 100755
index 000000000..13dca9b85
--- /dev/null
+++ b/_support/benchmarking/roles/client/files/benchmark-gitaly.sh
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+# benchmark-gitaly: Run ghz against a remote Gitaly instance.
+#
+# Mandatory options:
+# -a: Gitaly address, without port
+# -d: duration to run in seconds
+# -o: directory to write results to
+# -p: protobuf file containing definition of RPC to test
+# -r: RPC name, e.g. GetBlobs
+# -s: RPC service name, e.g. gitaly.BlobService
+
+set -e
+
+usage() {
+ echo "Usage: $0 -a <GITALY_ADDR> -d <DURATION_SECS> -g <GIT_REPO> -o <OUTPUT_DIR> -p <PROTO_FILE> -r <RPC> -s <SERVICE>"
+ exit 1
+}
+
+main() {
+ while getopts "ha:d:g:o:p:q:r:s:" arg; do
+ case "$arg" in
+ a) gitaly_addr="$OPTARG"
+ ;;
+ d) seconds="$OPTARG"
+ ;;
+ g) repo="$OPTARG"
+ ;;
+ o) out_dir="$OPTARG"
+ ;;
+ p) proto="$OPTARG"
+ ;;
+ r) rpc="$OPTARG"
+ ;;
+ s) service="$OPTARG"
+ ;;
+ h|*) usage
+ ;;
+ esac
+ done
+ shift $((OPTIND-1))
+
+ if [ "$seconds" -le 0 ] || [ -z "$gitaly_addr" ] || [ -z "$out_dir" ] || [ -z "$repo" ] || [ -z "$proto" ] || [ -z "$rpc" ] || [ -z "$service" ]; then
+ usage
+ fi
+
+ query_file="/opt/ghz/queries/${rpc}/${repo}.json"
+
+ ghz --insecure --format=json --output="${out_dir}/ghz.json" --proto="/src/gitaly/proto/${proto}" \
+ --call="${service}/${rpc}" --concurrency=10 --duration="${seconds}s" --rps=100 \
+ --data-file="${query_file}" "${gitaly_addr}:8075"
+}
+
+main "$@"
diff --git a/_support/benchmarking/roles/client/files/queries/FindCommit/chromium.git.json b/_support/benchmarking/roles/client/files/queries/FindCommit/chromium.git.json
new file mode 100644
index 000000000..e26c39ade
--- /dev/null
+++ b/_support/benchmarking/roles/client/files/queries/FindCommit/chromium.git.json
@@ -0,0 +1,10 @@
+{
+ "repository": {
+ "storageName": "default",
+ "relativePath": "chromium.git",
+ "gitAlternateObjectDirectories": [],
+ "glRepository": "chromium",
+ "glProjectPath": "google/chromium"
+ },
+ "revision": "bWFpbg=="
+}
diff --git a/_support/benchmarking/roles/client/files/queries/FindCommit/git.git.json b/_support/benchmarking/roles/client/files/queries/FindCommit/git.git.json
new file mode 100644
index 000000000..92c62f30b
--- /dev/null
+++ b/_support/benchmarking/roles/client/files/queries/FindCommit/git.git.json
@@ -0,0 +1,10 @@
+{
+ "repository": {
+ "storageName": "default",
+ "relativePath": "git.git",
+ "gitAlternateObjectDirectories": [],
+ "glRepository": "git",
+ "glProjectPath": "git/git"
+ },
+ "revision": "bWFzdGVy"
+}
diff --git a/_support/benchmarking/roles/client/files/queries/FindCommit/gitlab.git.json b/_support/benchmarking/roles/client/files/queries/FindCommit/gitlab.git.json
new file mode 100644
index 000000000..dd76e0c54
--- /dev/null
+++ b/_support/benchmarking/roles/client/files/queries/FindCommit/gitlab.git.json
@@ -0,0 +1,12 @@
+{
+ "repository": {
+ "gitAlternateObjectDirectories": [
+ "../gitlab-pool.git"
+ ],
+ "storageName": "default",
+ "relativePath": "gitlab.git",
+ "glRepository": "gitlab",
+ "glProjectPath": "gitlab-org/gitlab"
+ },
+ "revision": "bWFzdGVy"
+}
diff --git a/_support/benchmarking/roles/client/files/queries/FindCommit/homebrew-core.git.json b/_support/benchmarking/roles/client/files/queries/FindCommit/homebrew-core.git.json
new file mode 100644
index 000000000..1aa5cf8c8
--- /dev/null
+++ b/_support/benchmarking/roles/client/files/queries/FindCommit/homebrew-core.git.json
@@ -0,0 +1,10 @@
+{
+ "repository": {
+ "storageName": "default",
+ "relativePath": "homebrew-core.git",
+ "gitAlternateObjectDirectories": [],
+ "glRepository": "homebrew",
+ "glProjectPath": "homebrew/homebrew-core"
+ },
+ "revision": "bWFzdGVy"
+}
diff --git a/_support/benchmarking/roles/client/files/queries/FindCommit/linux.git.json b/_support/benchmarking/roles/client/files/queries/FindCommit/linux.git.json
new file mode 100644
index 000000000..6562a2397
--- /dev/null
+++ b/_support/benchmarking/roles/client/files/queries/FindCommit/linux.git.json
@@ -0,0 +1,10 @@
+{
+ "repository": {
+ "storageName": "default",
+ "relativePath": "linux.git",
+ "gitAlternateObjectDirectories": [],
+ "glRepository": "linux",
+ "glProjectPath": "torvalds/linux"
+ },
+ "revision": "bWFzdGVy"
+}
diff --git a/_support/benchmarking/roles/client/files/queries/GetBlobs/chromium.git.json b/_support/benchmarking/roles/client/files/queries/GetBlobs/chromium.git.json
new file mode 100644
index 000000000..3ff33aae4
--- /dev/null
+++ b/_support/benchmarking/roles/client/files/queries/GetBlobs/chromium.git.json
@@ -0,0 +1,315 @@
+{
+ "revisionPaths": [
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "LmNsYW5nLWZvcm1hdA=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "LmNsYW5nLXRpZHk="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "LmVzbGludHJjLmpz"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "LmdpdC1ibGFtZS1pZ25vcmUtcmV2cw=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "LmdpdGF0dHJpYnV0ZXM="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "LmdpdGlnbm9yZQ=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "Lmdu"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "Lm1haWxtYXA="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "LnJ1c3RmbXQudG9tbA=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "LnZweXRob24z"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "LnlhcGZpZ25vcmU="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "QVVUSE9SUw=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "QlVJTEQuZ24="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "Q09ERV9PRl9DT05EVUNULm1k"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "REVQUw=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "RElSX01FVEFEQVRB"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "RU5HX1JFVklFV19PV05FUlM="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "TElDRU5TRQ=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "TElDRU5TRS5jaHJvbWl1bV9vcw=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "T1dORVJT"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "UFJFU1VCTUlULnB5"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "UFJFU1VCTUlUX3Rlc3QucHk="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "UFJFU1VCTUlUX3Rlc3RfbW9ja3MucHk="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "UkVBRE1FLm1k"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "V0FUQ0hMSVNUUw=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "YW5kcm9pZF93ZWJ2aWV3"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "YXBwcw=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "YXNo"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "YmFzZQ=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "YnVpbGQ="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "YnVpbGRfb3ZlcnJpZGVz"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "YnVpbGR0b29scw=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "Y2M="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "Y2hyb21l"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "Y2hyb21lY2FzdA=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "Y2hyb21lb3M="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "Y29kZWxhYnM="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "Y29kZXJldmlldy5zZXR0aW5ncw=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "Y29tcG9uZW50cw=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "Y29udGVudA=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "Y291cmdldHRl"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "Y3J5cHRv"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "ZGJ1cw=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "ZGV2aWNl"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "ZG9jcw=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "ZXh0ZW5zaW9ucw=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "ZnVjaHNpYV93ZWI="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "Z2lu"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "Z29vZ2xlX2FwaXM="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "Z29vZ2xlX3VwZGF0ZQ=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "Z3B1"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "aGVhZGxlc3M="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "aW5mcmE="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "aW9z"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "aXBj"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "bWVkaWE="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "bW9qbw=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "bmF0aXZlX2NsaWVudF9zZGs="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "bmV0"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "cGRm"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "cHBhcGk="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "cHJpbnRpbmc="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "cmVtb3Rpbmc="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "cmx6"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "c2FuZGJveA=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "c2VydmljZXM="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "c2tpYQ=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "c3Fs"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "c3RvcmFnZQ=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "c3R5bGVndWlkZQ=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "dGVzdGluZw=="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "dGhpcmRfcGFydHk="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "dG9vbHM="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "dWk="
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "dXJs"
+ },
+ {
+ "revision": "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "path": "d2VibGF5ZXI="
+ }
+ ],
+ "repository": {
+ "storageName": "default",
+ "relativePath": "chromium.git",
+ "gitAlternateObjectDirectories": [],
+ "glRepository": "chromium",
+ "glProjectPath": "google/chromium"
+ }
+}
diff --git a/_support/benchmarking/roles/client/files/queries/GetBlobs/git.git.json b/_support/benchmarking/roles/client/files/queries/GetBlobs/git.git.json
new file mode 100644
index 000000000..c4bc1c4e2
--- /dev/null
+++ b/_support/benchmarking/roles/client/files/queries/GetBlobs/git.git.json
@@ -0,0 +1,1995 @@
+{
+ "revisionPaths": [
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "LmNpcnJ1cy55bWw="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "LmNsYW5nLWZvcm1hdA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "LmVkaXRvcmNvbmZpZw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "LmdpdGF0dHJpYnV0ZXM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "LmdpdGh1Yg=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "LmdpdGlnbm9yZQ=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "LmdpdG1vZHVsZXM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Lm1haWxtYXA="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "LnRzYW4tc3VwcHJlc3Npb25z"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Q09ERV9PRl9DT05EVUNULm1k"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Q09QWUlORw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "RG9jdW1lbnRhdGlvbg=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "R0lULVZFUlNJT04tR0VO"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "SU5TVEFMTA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "TEdQTC0yLjE="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "TWFrZWZpbGU="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "UkVBRE1FLm1k"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "UmVsTm90ZXM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "U0VDVVJJVFkubWQ="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YWJzcGF0aC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YWNsb2NhbC5tNA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YWRkLWludGVyYWN0aXZlLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YWRkLWludGVyYWN0aXZlLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YWRkLXBhdGNoLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YWR2aWNlLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YWR2aWNlLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YWxpYXMuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YWxpYXMuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YWxsb2MuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YWxsb2MuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YXBwbHkuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YXBwbHkuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YXJjaGl2ZS10YXIuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YXJjaGl2ZS16aXAuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YXJjaGl2ZS5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YXJjaGl2ZS5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YXR0ci5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YXR0ci5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YmFubmVkLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YmFzZTg1LmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YmlzZWN0LmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YmlzZWN0Lmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YmxhbWUuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YmxhbWUuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YmxvYi5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YmxvYi5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YmxvY2stc2hhMQ=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Ymxvb20uYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Ymxvb20uaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YnJhbmNoLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YnJhbmNoLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YnVpbHRpbi5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YnVpbHRpbg=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YnVsay1jaGVja2luLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YnVsay1jaGVja2luLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YnVuZGxlLXVyaS5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YnVuZGxlLXVyaS5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YnVuZGxlLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "YnVuZGxlLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y2FjaGUtdHJlZS5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y2FjaGUtdHJlZS5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y2FjaGUuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y2J0cmVlLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y2J0cmVlLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y2hkaXItbm90aWZ5LmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y2hkaXItbm90aWZ5Lmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y2hlY2stYnVpbHRpbnMuc2g="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y2hlY2tvdXQuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y2hlY2tvdXQuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y2h1bmstZm9ybWF0LmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y2h1bmstZm9ybWF0Lmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y2k="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29sb3IuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29sb3IuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29sdW1uLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29sdW1uLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29tYmluZS1kaWZmLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29tbWFuZC1saXN0LnR4dA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29tbWl0LWdyYXBoLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29tbWl0LWdyYXBoLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29tbWl0LXJlYWNoLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29tbWl0LXJlYWNoLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29tbWl0LXNsYWItZGVjbC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29tbWl0LXNsYWItaW1wbC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29tbWl0LXNsYWIuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29tbWl0LmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29tbWl0Lmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29tbW9uLW1haW4uYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29tcGF0"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29uZmlnLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29uZmlnLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29uZmlnLm1hay5kZXY="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29uZmlnLm1hay5pbg=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29uZmlnLm1hay51bmFtZQ=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29uZmlndXJlLmFj"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29ubmVjdC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29ubmVjdC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29ubmVjdGVkLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29ubmVjdGVkLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29udHJpYg=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29udmVydC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29udmVydC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y29weS5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y3JlZGVudGlhbC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y3JlZGVudGlhbC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y3N1bS1maWxlLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y3N1bS1maWxlLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Y3R5cGUuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGFlbW9uLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGF0ZS5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGF0ZS5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGVjb3JhdGUuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGVjb3JhdGUuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGVsdGEtaXNsYW5kcy5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGVsdGEtaXNsYW5kcy5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGVsdGEuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGV0ZWN0LWNvbXBpbGVy"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlhZ25vc2UuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlhZ25vc2UuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlmZi1kZWx0YS5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlmZi1saWIuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlmZi1tZXJnZXMuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlmZi1tZXJnZXMuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlmZi1uby1pbmRleC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlmZi5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlmZi5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlmZmNvcmUtYnJlYWsuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlmZmNvcmUtZGVsdGEuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlmZmNvcmUtb3JkZXIuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlmZmNvcmUtcGlja2F4ZS5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlmZmNvcmUtcmVuYW1lLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlmZmNvcmUtcm90YXRlLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlmZmNvcmUuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlyLWl0ZXJhdG9yLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlyLWl0ZXJhdG9yLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlyLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZGlyLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZWRpdG9yLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZW50cnkuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZW50cnkuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZW52aXJvbm1lbnQuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZW52aXJvbm1lbnQuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZXdhaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZXhlYy1jbWQuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZXhlYy1jbWQuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZmV0Y2gtbmVnb3RpYXRvci5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZmV0Y2gtbmVnb3RpYXRvci5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZmV0Y2gtcGFjay5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZmV0Y2gtcGFjay5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Zm10LW1lcmdlLW1zZy5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Zm10LW1lcmdlLW1zZy5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZnNjay5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZnNjay5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZnNtb25pdG9yLS1kYWVtb24uaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZnNtb25pdG9yLWlwYy5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZnNtb25pdG9yLWlwYy5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZnNtb25pdG9yLXBhdGgtdXRpbHMuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZnNtb25pdG9yLXNldHRpbmdzLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZnNtb25pdG9yLXNldHRpbmdzLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZnNtb25pdG9yLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "ZnNtb25pdG9yLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2VuZXJhdGUtY21kbGlzdC5zaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2VuZXJhdGUtY29uZmlnbGlzdC5zaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2VuZXJhdGUtaG9va2xpc3Quc2g="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2V0dGV4dC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2V0dGV4dC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LWFkZC0taW50ZXJhY3RpdmUucGVybA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LWFyY2hpbXBvcnQucGVybA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LWJpc2VjdC5zaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LWNvbXBhdC11dGlsLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LWN1cmwtY29tcGF0Lmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LWN2c2V4cG9ydGNvbW1pdC5wZXJs"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LWN2c2ltcG9ydC5wZXJs"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LWN2c3NlcnZlci5wZXJs"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LWRpZmZ0b29sLS1oZWxwZXIuc2g="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LWZpbHRlci1icmFuY2guc2g="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LWd1aQ=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LWluc3Rhd2ViLnNo"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LW1lcmdlLW9jdG9wdXMuc2g="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LW1lcmdlLW9uZS1maWxlLnNo"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LW1lcmdlLXJlc29sdmUuc2g="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LW1lcmdldG9vbC0tbGliLnNo"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LW1lcmdldG9vbC5zaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LXA0LnB5"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LXF1aWx0aW1wb3J0LnNo"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LXJlcXVlc3QtcHVsbC5zaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LXNlbmQtZW1haWwucGVybA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LXNoLWkxOG4uc2g="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LXNoLXNldHVwLnNo"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LXN1Ym1vZHVsZS5zaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LXN2bi5wZXJs"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LXdlYi0tYnJvd3NlLnNo"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0LnJj"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0ay1naXQ="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z2l0d2Vi"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z3BnLWludGVyZmFjZS5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z3BnLWludGVyZmFjZS5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z3JhcGguYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z3JhcGguaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z3JlcC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "Z3JlcC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aGFzaC1sb29rdXAuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aGFzaC1sb29rdXAuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aGFzaC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aGFzaG1hcC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aGFzaG1hcC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aGVscC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aGVscC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aGV4LmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aG9vay5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aG9vay5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aHR0cC1iYWNrZW5kLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aHR0cC1mZXRjaC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aHR0cC1wdXNoLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aHR0cC13YWxrZXIuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aHR0cC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aHR0cC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aWRlbnQuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aW1hcC1zZW5kLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "aXRlcmF0b3IuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "anNvbi13cml0ZXIuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "anNvbi13cml0ZXIuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "a2hhc2guaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "a3dzZXQuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "a3dzZXQuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bGV2ZW5zaHRlaW4uYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bGV2ZW5zaHRlaW4uaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bGluZS1sb2cuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bGluZS1sb2cuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bGluZS1yYW5nZS5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bGluZS1yYW5nZS5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bGluZWFyLWFzc2lnbm1lbnQuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bGluZWFyLWFzc2lnbm1lbnQuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bGlzdC1vYmplY3RzLWZpbHRlci1vcHRpb25zLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bGlzdC1vYmplY3RzLWZpbHRlci1vcHRpb25zLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bGlzdC1vYmplY3RzLWZpbHRlci5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bGlzdC1vYmplY3RzLWZpbHRlci5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bGlzdC1vYmplY3RzLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bGlzdC1vYmplY3RzLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bGlzdC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bGwtbWVyZ2UuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bGwtbWVyZ2UuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bG9ja2ZpbGUuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bG9ja2ZpbGUuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bG9nLXRyZWUuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bG9nLXRyZWUuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bHMtcmVmcy5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bHMtcmVmcy5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWFpbGluZm8uYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWFpbGluZm8uaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWFpbG1hcC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWFpbG1hcC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWF0Y2gtdHJlZXMuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWVtLXBvb2wuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWVtLXBvb2wuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWVyZ2UtYmxvYnMuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWVyZ2UtYmxvYnMuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWVyZ2Utb3J0LXdyYXBwZXJzLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWVyZ2Utb3J0LXdyYXBwZXJzLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWVyZ2Utb3J0LmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWVyZ2Utb3J0Lmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWVyZ2UtcmVjdXJzaXZlLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWVyZ2UtcmVjdXJzaXZlLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWVyZ2UuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWVyZ2Vzb3J0Lmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWVyZ2V0b29scw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWlkeC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bWlkeC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bmFtZS1oYXNoLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bmVnb3RpYXRvcg=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bm90ZXMtY2FjaGUuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bm90ZXMtY2FjaGUuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bm90ZXMtbWVyZ2UuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bm90ZXMtbWVyZ2UuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bm90ZXMtdXRpbHMuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bm90ZXMtdXRpbHMuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bm90ZXMuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "bm90ZXMuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "b2JqZWN0LWZpbGUuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "b2JqZWN0LW5hbWUuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "b2JqZWN0LXN0b3JlLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "b2JqZWN0LmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "b2JqZWN0Lmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "b2lkLWFycmF5LmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "b2lkLWFycmF5Lmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "b2lkbWFwLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "b2lkbWFwLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "b2lkc2V0LmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "b2lkc2V0Lmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "b2lkdHJlZS5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "b2lkdHJlZS5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "b3NzLWZ1eno="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFjay1iaXRtYXAtd3JpdGUuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFjay1iaXRtYXAuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFjay1iaXRtYXAuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFjay1jaGVjay5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFjay1tdGltZXMuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFjay1tdGltZXMuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFjay1vYmplY3RzLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFjay1vYmplY3RzLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFjay1yZXZpbmRleC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFjay1yZXZpbmRleC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFjay13cml0ZS5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFjay5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFja2ZpbGUuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFja2ZpbGUuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFnZXIuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFyYWxsZWwtY2hlY2tvdXQuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFyYWxsZWwtY2hlY2tvdXQuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFyc2Utb3B0aW9ucy1jYi5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFyc2Utb3B0aW9ucy5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGFyc2Utb3B0aW9ucy5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGF0Y2gtZGVsdGEuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGF0Y2gtaWRzLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGF0Y2gtaWRzLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGF0aC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGF0aC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGF0aHNwZWMuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGF0aHNwZWMuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGVybA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGt0LWxpbmUuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cGt0LWxpbmUuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cG8="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cHJlbG9hZC1pbmRleC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cHJldHR5LmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cHJldHR5Lmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cHJpby1xdWV1ZS5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cHJpby1xdWV1ZS5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cHJvZ3Jlc3MuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cHJvZ3Jlc3MuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cHJvbWlzb3ItcmVtb3RlLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cHJvbWlzb3ItcmVtb3RlLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cHJvbXB0LmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cHJvbXB0Lmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cHJvdG9jb2wtY2Fwcy5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cHJvdG9jb2wtY2Fwcy5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cHJvdG9jb2wuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cHJvdG9jb2wuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cHJ1bmUtcGFja2VkLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cHJ1bmUtcGFja2VkLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cXVvdGUuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cXVvdGUuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmFuZ2UtZGlmZi5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmFuZ2UtZGlmZi5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVhY2hhYmxlLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVhY2hhYmxlLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVhZC1jYWNoZS5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmViYXNlLWludGVyYWN0aXZlLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmViYXNlLWludGVyYWN0aXZlLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmViYXNlLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmViYXNlLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVmLWZpbHRlci5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVmLWZpbHRlci5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVmbG9nLXdhbGsuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVmbG9nLXdhbGsuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVmbG9nLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVmbG9nLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVmcy5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVmcy5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVmcw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVmc3BlYy5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVmc3BlYy5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVmdGFibGU="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVtb3RlLWN1cmwuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVtb3RlLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVtb3RlLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVwbGFjZS1vYmplY3QuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVwbGFjZS1vYmplY3QuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVwby1zZXR0aW5ncy5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVwb3NpdG9yeS5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVwb3NpdG9yeS5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVyZXJlLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVyZXJlLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVzZXQuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVzZXQuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVzb2x2ZS11bmRvLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmVzb2x2ZS11bmRvLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmV2aXNpb24uYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cmV2aXNpb24uaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cnVuLWNvbW1hbmQuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "cnVuLWNvbW1hbmQuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2NhbGFyLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2VuZC1wYWNrLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2VuZC1wYWNrLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2VxdWVuY2VyLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2VxdWVuY2VyLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2VydmUuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2VydmUuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2VydmVyLWluZm8uYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2V0dXAuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2gtaTE4bi0tZW52c3Vic3QuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2hhMWNvbGxpc2lvbmRldGVjdGlvbg=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2hhMWRj"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2hhMWRjX2dpdC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2hhMWRjX2dpdC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2hhMjU2"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2hhbGxvdy5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2hhbGxvdy5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2hhcmVkLm1haw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2hlbGwuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2hvcnRsb2cuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2lkZWJhbmQuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2lkZWJhbmQuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2lnY2hhaW4uYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2lnY2hhaW4uaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c2ltcGxlLWlwYy5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3BhcnNlLWluZGV4LmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3BhcnNlLWluZGV4Lmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3BsaXQtaW5kZXguYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3BsaXQtaW5kZXguaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3RhYmxlLXFzb3J0LmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3RyYnVmLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3RyYnVmLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3RyZWFtaW5nLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3RyZWFtaW5nLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3RyaW5nLWxpc3QuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3RyaW5nLWxpc3QuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3RybWFwLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3RybWFwLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3RydmVjLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3RydmVjLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3ViLXByb2Nlc3MuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3ViLXByb2Nlc3MuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3VibW9kdWxlLWNvbmZpZy5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3VibW9kdWxlLWNvbmZpZy5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3VibW9kdWxlLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3VibW9kdWxlLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "c3ltbGlua3MuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dGFnLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dGFnLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dGFyLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dGVtcGZpbGUuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dGVtcGZpbGUuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dGVtcGxhdGVz"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dGhyZWFkLXV0aWxzLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dGhyZWFkLXV0aWxzLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dG1wLW9iamRpci5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dG1wLW9iamRpci5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dHJhY2UuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dHJhY2UuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dHJhY2UyLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dHJhY2UyLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dHJhY2Uy"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dHJhaWxlci5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dHJhaWxlci5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dHJhbnNwb3J0LWhlbHBlci5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dHJhbnNwb3J0LWludGVybmFsLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dHJhbnNwb3J0LmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dHJhbnNwb3J0Lmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dHJlZS1kaWZmLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dHJlZS13YWxrLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dHJlZS13YWxrLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dHJlZS5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dHJlZS5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dW5pY29kZS13aWR0aC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dW5pbXBsZW1lbnRlZC5zaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dW5peC1zb2NrZXQuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dW5peC1zb2NrZXQuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dW5peC1zdHJlYW0tc2VydmVyLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dW5peC1zdHJlYW0tc2VydmVyLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dW5wYWNrLXRyZWVzLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dW5wYWNrLXRyZWVzLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dXBsb2FkLXBhY2suYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dXBsb2FkLXBhY2suaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dXJsLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dXJsLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dXJsbWF0Y2guYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dXJsbWF0Y2guaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dXNhZ2UuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dXNlcmRpZmYuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dXNlcmRpZmYuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dXRmOC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dXRmOC5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dmFyaW50LmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dmFyaW50Lmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dmVyc2lvbi5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dmVyc2lvbi5o"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "dmVyc2lvbmNtcC5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "d2Fsa2VyLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "d2Fsa2VyLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "d2lsZG1hdGNoLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "d2lsZG1hdGNoLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "d29ya3RyZWUuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "d29ya3RyZWUuaA=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "d3JhcC1mb3ItYmluLnNo"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "d3JhcHBlci5j"
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "d3JpdGUtb3ItZGllLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "d3MuYw=="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "d3Qtc3RhdHVzLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "d3Qtc3RhdHVzLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "eGRpZmYtaW50ZXJmYWNlLmM="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "eGRpZmYtaW50ZXJmYWNlLmg="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "eGRpZmY="
+ },
+ {
+ "revision": "319605f8f00e402f3ea758a02c63534ff800a711",
+ "path": "emxpYi5j"
+ }
+ ],
+ "repository": {
+ "storageName": "default",
+ "relativePath": "git.git",
+ "gitAlternateObjectDirectories": [],
+ "glRepository": "git",
+ "glProjectPath": "git/git"
+ }
+}
diff --git a/_support/benchmarking/roles/client/files/queries/GetBlobs/gitlab.git.json b/_support/benchmarking/roles/client/files/queries/GetBlobs/gitlab.git.json
new file mode 100644
index 000000000..e2b6356da
--- /dev/null
+++ b/_support/benchmarking/roles/client/files/queries/GetBlobs/gitlab.git.json
@@ -0,0 +1,449 @@
+{
+ "revisionPaths": [
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LmJyb3dzZXJzbGlzdHJj"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LmNvZGVjbGltYXRlLnltbA=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LmNzc2NvbWIuanNvbg=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LmRvY2tlcmlnbm9yZQ=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LmVkaXRvcmNvbmZpZw=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LmVzbGludGlnbm9yZQ=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LmVzbGludHJjLnltbA=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LmZvcmVtYW4="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LmdpdC1ibGFtZS1pZ25vcmUtcmV2cw=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LmdpdGF0dHJpYnV0ZXM="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LmdpdGh1Yg=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LmdpdGlnbm9yZQ=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LmdpdGxhYi1jaS55bWw="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LmdpdGxhYg=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LmdpdHBvZC55bWw="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LmhhbWwtbGludC55bWw="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LmhhbWwtbGludF90b2RvLnltbA=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LmxpY2Vuc2VfZW5jcnlwdGlvbl9rZXkucHVi"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "Lm1haWxtYXA="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "Lm1hcmtkb3dubGludC55bWw="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "Lm52bXJj"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LnByZXR0aWVyaWdub3Jl"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LnByZXR0aWVycmM="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LnByb2plY3Rpb25zLmpzb24uZXhhbXBsZQ=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LnJ1Ym9jb3AueW1s"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LnJ1Ym9jb3BfdG9kby55bWw="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LnJ1Ym9jb3BfdG9kbw=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LnJ1YnktdmVyc2lvbg=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LnNlY3JldHNpZ25vcmU="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LnNvbGFyZ3JhcGgueW1sLmV4YW1wbGU="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LnN0eWxlbGludHJj"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LnRlc3RfbGljZW5zZV9lbmNyeXB0aW9uX2tleS5wdWI="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LnRoZWlh"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LnRvb2wtdmVyc2lvbnM="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LnZhbGUuaW5p"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LnZzY29kZQ=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "LnlhbWxsaW50"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "Q0hBTkdFTE9HLUVFLm1k"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "Q0hBTkdFTE9HLm1k"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "Q09OVFJJQlVUSU5HLm1k"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "RGFuZ2VyZmlsZQ=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "RG9ja2VyZmlsZS5hc3NldHM="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "R0lUQUxZX1NFUlZFUl9WRVJTSU9O"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "R0lUTEFCX0VMQVNUSUNTRUFSQ0hfSU5ERVhFUl9WRVJTSU9O"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "R0lUTEFCX0tBU19WRVJTSU9O"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "R0lUTEFCX01FVFJJQ1NfRVhQT1JURVJfVkVSU0lPTg=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "R0lUTEFCX1BBR0VTX1ZFUlNJT04="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "R0lUTEFCX1NIRUxMX1ZFUlNJT04="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "R0lUTEFCX1dPUktIT1JTRV9WRVJTSU9O"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "R2VtZmlsZQ=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "R2VtZmlsZS5jaGVja3N1bQ=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "R2VtZmlsZS5sb2Nr"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "R3VhcmRmaWxl"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "SU5TVEFMTEFUSU9OX1RZUEU="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "TElDRU5TRQ=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "TUFJTlRFTkFOQ0UubWQ="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "UEhJTE9TT1BIWS5tZA=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "UFJPQ0VTUy5tZA=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "UGlwZmlsZQ=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "UGlwZmlsZS5sb2Nr"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "UkVBRE1FLm1k"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "UmFrZWZpbGU="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "VkVSU0lPTg=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "YXBw"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "YmFiZWwuY29uZmlnLmpz"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "Ymlu"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "YnVpbGRz"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "Y2hhbmdlbG9ncw=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "Y29uZmlnLnJ1"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "Y29uZmln"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "Y3Jvd2Rpbi55bWw="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "ZGFuZ2Vy"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "ZGF0YQ=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "ZGI="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "ZG9j"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "ZG9ja2VyLWNvbXBvc2UueW1s"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "ZWU="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "ZmlsZV9ob29rcw=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "Zml4dHVyZXM="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "Z2VuZXJhdG9yX3RlbXBsYXRlcw=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "Z2xmbV9zcGVjaWZpY2F0aW9u"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "aGFtbF9saW50"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "amVzdC5jb25maWcuYmFzZS5qcw=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "amVzdC5jb25maWcuaW50ZWdyYXRpb24uanM="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "amVzdC5jb25maWcuanM="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "amVzdF9yZXNvbHZlci5qcw=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "bGVmdGhvb2sueW1s"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "bGli"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "bG9jYWxl"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "bG9n"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "bWV0cmljc19zZXJ2ZXI="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "cGFja2FnZS5qc29u"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "cGF0Y2hlcw=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "cHVibGlj"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "cWE="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "cmVzdWx0cy50eHQ="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "cnVib2NvcA=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "c2NyaXB0cw=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "c2VjdXJpdHkudHh0"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "c2hhcmVk"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "c2lkZWtpcV9jbHVzdGVy"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "c3BlYw=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "c3Rvcnlib29r"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "dGVzdHMueW1s"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "dG1w"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "dG9vbGluZw=="
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "dmVuZG9y"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "d29ya2hvcnNl"
+ },
+ {
+ "revision": "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "path": "eWFybi5sb2Nr"
+ }
+ ],
+ "repository": {
+ "gitAlternateObjectDirectories": [
+ "../gitlab-pool.git"
+ ],
+ "storageName": "default",
+ "relativePath": "gitlab.git",
+ "glRepository": "gitlab",
+ "glProjectPath": "gitlab-org/gitlab"
+ }
+}
diff --git a/_support/benchmarking/roles/client/files/queries/GetBlobs/homebrew-core.git.json b/_support/benchmarking/roles/client/files/queries/GetBlobs/homebrew-core.git.json
new file mode 100644
index 000000000..4dc7df745
--- /dev/null
+++ b/_support/benchmarking/roles/client/files/queries/GetBlobs/homebrew-core.git.json
@@ -0,0 +1,67 @@
+{
+ "revisionPaths": [
+ {
+ "revision": "bfafc58ebb4bf952bb3293d68f14e56b8e9810d9",
+ "path": "LmdpdGh1Yg=="
+ },
+ {
+ "revision": "bfafc58ebb4bf952bb3293d68f14e56b8e9810d9",
+ "path": "QWxpYXNlcw=="
+ },
+ {
+ "revision": "bfafc58ebb4bf952bb3293d68f14e56b8e9810d9",
+ "path": "Q09ERU9XTkVSUw=="
+ },
+ {
+ "revision": "bfafc58ebb4bf952bb3293d68f14e56b8e9810d9",
+ "path": "Q09OVFJJQlVUSU5HLm1k"
+ },
+ {
+ "revision": "bfafc58ebb4bf952bb3293d68f14e56b8e9810d9",
+ "path": "Rm9ybXVsYQ=="
+ },
+ {
+ "revision": "bfafc58ebb4bf952bb3293d68f14e56b8e9810d9",
+ "path": "TElDRU5TRS50eHQ="
+ },
+ {
+ "revision": "bfafc58ebb4bf952bb3293d68f14e56b8e9810d9",
+ "path": "UkVBRE1FLm1k"
+ },
+ {
+ "revision": "bfafc58ebb4bf952bb3293d68f14e56b8e9810d9",
+ "path": "YXVkaXRfZXhjZXB0aW9ucw=="
+ },
+ {
+ "revision": "bfafc58ebb4bf952bb3293d68f14e56b8e9810d9",
+ "path": "Y21k"
+ },
+ {
+ "revision": "bfafc58ebb4bf952bb3293d68f14e56b8e9810d9",
+ "path": "Zm9ybXVsYV9yZW5hbWVzLmpzb24="
+ },
+ {
+ "revision": "bfafc58ebb4bf952bb3293d68f14e56b8e9810d9",
+ "path": "cHlwaV9mb3JtdWxhX21hcHBpbmdzLmpzb24="
+ },
+ {
+ "revision": "bfafc58ebb4bf952bb3293d68f14e56b8e9810d9",
+ "path": "c3R5bGVfZXhjZXB0aW9ucw=="
+ },
+ {
+ "revision": "bfafc58ebb4bf952bb3293d68f14e56b8e9810d9",
+ "path": "c3luY2VkX3ZlcnNpb25zX2Zvcm11bGFlLmpzb24="
+ },
+ {
+ "revision": "bfafc58ebb4bf952bb3293d68f14e56b8e9810d9",
+ "path": "dGFwX21pZ3JhdGlvbnMuanNvbg=="
+ }
+ ],
+ "repository": {
+ "storageName": "default",
+ "relativePath": "homebrew-core.git",
+ "gitAlternateObjectDirectories": [],
+ "glRepository": "homebrew",
+ "glProjectPath": "homebrew/homebrew-core"
+ }
+}
diff --git a/_support/benchmarking/roles/client/files/queries/GetBlobs/linux.git.json b/_support/benchmarking/roles/client/files/queries/GetBlobs/linux.git.json
new file mode 100644
index 000000000..00b44273d
--- /dev/null
+++ b/_support/benchmarking/roles/client/files/queries/GetBlobs/linux.git.json
@@ -0,0 +1,163 @@
+{
+ "revisionPaths": [
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "LmNsYW5nLWZvcm1hdA=="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "LmNvY2NpY29uZmln"
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "LmdldF9tYWludGFpbmVyLmlnbm9yZQ=="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "LmdpdGF0dHJpYnV0ZXM="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "LmdpdGlnbm9yZQ=="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "Lm1haWxtYXA="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "LnJ1c3RmbXQudG9tbA=="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "Q09QWUlORw=="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "Q1JFRElUUw=="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "RG9jdW1lbnRhdGlvbg=="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "S2J1aWxk"
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "S2NvbmZpZw=="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "TElDRU5TRVM="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "TUFJTlRBSU5FUlM="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "TWFrZWZpbGU="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "UkVBRE1F"
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "YXJjaA=="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "YmxvY2s="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "Y2VydHM="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "Y3J5cHRv"
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "ZHJpdmVycw=="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "ZnM="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "aW5jbHVkZQ=="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "aW5pdA=="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "aW9fdXJpbmc="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "aXBj"
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "a2VybmVs"
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "bGli"
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "bW0="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "bmV0"
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "cnVzdA=="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "c2FtcGxlcw=="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "c2NyaXB0cw=="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "c2VjdXJpdHk="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "c291bmQ="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "dG9vbHM="
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "dXNy"
+ },
+ {
+ "revision": "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "path": "dmlydA=="
+ }
+ ],
+ "repository": {
+ "storageName": "default",
+ "relativePath": "linux.git",
+ "gitAlternateObjectDirectories": [],
+ "glRepository": "linux",
+ "glProjectPath": "torvalds/linux"
+ }
+}
diff --git a/_support/benchmarking/roles/client/files/queries/ListCommitsByOid/chromium.git.json b/_support/benchmarking/roles/client/files/queries/ListCommitsByOid/chromium.git.json
new file mode 100644
index 000000000..cce46313d
--- /dev/null
+++ b/_support/benchmarking/roles/client/files/queries/ListCommitsByOid/chromium.git.json
@@ -0,0 +1,211 @@
+{
+ "oid": [
+ "39c6baae380ed01b89dcacfd2923d8ac206aff7e",
+ "e751ae0357beef85e5b18d0a2e741592ba1e8a43",
+ "f4c17f031bb66e63a306f8d2aa84507e2ba63f5a",
+ "c8131acb55302618cd4cba9c1e06a3060c3eb96a",
+ "c3c6e4da4c73d8d7504e04665cf503c68a5caaa6",
+ "0bb86d3dec11d8de8c483276e92a4c7738f99cc2",
+ "4a06e44a622aa4203c248666cc54ee6992da62ee",
+ "7e6a1e09c13ee43939a981c7076c8fdc4ee136d8",
+ "8653e864e07125196295709fc26599bbb06190b9",
+ "2085ae22b243d8cb34cc48f5767d76c5cfab90b7",
+ "73998d718400e245f42da7e89c648a1c48098b1f",
+ "a1c0280ea8efacb1b7e496132c1c6ba230e9c258",
+ "56534c976491139cf49b1bc230f6eff656f0ab68",
+ "fee12f63806b22d33f35e5c63f4e58bb9e401ad8",
+ "e71d7f4546dd06aa23eedd568223962d9226cd9b",
+ "bd61ac06fac122501485acd9d77bd4e2b6926694",
+ "e790fe7eedfb4527e8ce77e031090920327cc3bd",
+ "06eac254b840fe5f2d269b53fc5ca7580536f17a",
+ "85e8e4cd45fcc1242f5596630f1b80cf18fc2196",
+ "27a3b015cded0e6c32ac6d0da2a195b001239ce8",
+ "f3155805535927929d08f273038bc35f5dc7a2c1",
+ "a732bc272a2110b7623a99e685741bb7a0367fdb",
+ "4cc5b5818e286eaa33fa895027e1cfca94c83dcc",
+ "4f296905be34d13993f00ad31402bba1b1180ddd",
+ "9ab841ad1ecfecb675569b0c8f8dc6c9dc3b939a",
+ "1afdc6c955a54fa410350d164c3b6a054b7f8937",
+ "901418a77309f65ecc5b4843aef7e8312c5c96e8",
+ "51d4286602e7a07065dba224fc6273855d91b270",
+ "e85b723b38cae1866dc04d550262b6e4c65184e6",
+ "a344d015817db3cf13ab1f8c36852e5185e11ba0",
+ "54f0b49376133a415434c6b6921e6e93152fb53f",
+ "98184667439d8d9a0f91283d46d7b04a3c531d17",
+ "cef24f8300d9262d86d8ab7d6dce9a9c017e1a24",
+ "19b511fa68de466c54de22818c97e341588fa23b",
+ "cbf4d1821269286d3dbfaeb94f00769e28908f08",
+ "9ecb185cead77c5af5c6e2884de52f2cf0238cc0",
+ "6ab90a483e7aca7b5ca6db06b62c3190dc715cb3",
+ "1f06be4004a278b948edfc5d29a16caf1244eb00",
+ "ea885045b11bea238809e5686e43ece351051201",
+ "7e15a799771dc15200c920148a2e1ef995943f79",
+ "65e9b36bc00ac584df5302ccdbec7132ba0f3e77",
+ "142394024b430e81e623e8af92efbcbe97445699",
+ "55acf5fcb5414e0150cad6538327703d04aeb024",
+ "b8954ec97e41dbea55aa54555f8bd8d60c3f11ec",
+ "58081f28288498455d6e59dc7546dbd69341329d",
+ "b6939b98e4ed84432b40a3122a4d1c2f0c252b08",
+ "1683df76cc0766ad5fa3a9b0e5e0375cdd2473cb",
+ "a9d8d3650ef6c2cf0a58de2db9621f8c647d8e58",
+ "d0f3ab046b2cc51642e9fb97817017e2b50de089",
+ "ab40895d0f98a855263aaec954298850694c752f",
+ "5c95b75885c1b72be25947734cc0c55fdcf9a126",
+ "9687f7c5f44dbb07230705fc1468583f3aa5ece4",
+ "5bfb376df46c64af0dc04aa553655506249c14d0",
+ "ce9882d7f12879cd125130ea1d11aa8ca072bb44",
+ "fe3f83b1fbfaeb50e164ee43431876fdd93057b4",
+ "f05af566d84254b47a93925e28ac4e631a748b3e",
+ "9d50563f66e6b6d9232f358073d28b8a1c3a6d4f",
+ "a9e1b484efda122606d499d786463da57b094a48",
+ "4a810ff45f3e37830a6fa5ef08a163a6e42c81be",
+ "7b6dc21c17dcd3fe79ab4afdb9b6ccaabeec1217",
+ "6b5a85c9b2ca9a445dbbde3ff903481476a37d82",
+ "091c06e22d99a000f522a71f9dc8cd4c99d3b8a0",
+ "a6162f54805e4c5c7b4e8a6efc3b1aa965896b87",
+ "2ee435097802c03e323c0664eaa1713b027c03d2",
+ "b8dbd949798eef3b401f6ce6253343716f58912d",
+ "7bd0af0b0defabf7a96ee06a48dd0313f95ae816",
+ "d0a7f261ef1b26effd4033dda229d5caefd3ea81",
+ "92cfac5da5e6f68358d2b303970430db0be29ba7",
+ "58d13af838438e57727340856ad4cecbe3e98049",
+ "f086205293c23cea33d680f89613ad04c20df4e0",
+ "be2e1c284674c6685c4a49b1d2b31e2c6e35c815",
+ "28c5d0dd5575809dcd14662468bc10288fe13f58",
+ "11bc1d7f955f30f6aff2ed11d2ece404474fb305",
+ "abf55e68797fa277ec7767d6e4d6b315530af893",
+ "801245d3de99156e657342a482b47b1192b7cd36",
+ "2014ea5d5bd68dc4630847a4c9225d425e2dcd13",
+ "a830efa09505cc9473dd5f3d42a58520ad3b2cfa",
+ "f671d019b2b4aad2d9172f2c3322cbe9a60d9112",
+ "e7505f4311d9cbceab1076131c7e2816c847e114",
+ "088f1303534fdc40c3d79ff8dfa2482584e862aa",
+ "147bd8979a6bb46153cda3e2b98535f7c96c1063",
+ "17043aa1fb5eb729636772c2422aa0f276975723",
+ "21c46f108c7d69d49531efd5e6d98699b99ab71a",
+ "fd16a37ba15ffa37a4ae692c9280de9f23bf2be9",
+ "4e1857fbc14edec69851226317d9e3d2adb96cd7",
+ "d5cb7afd8b5563fcfcd4c38607ade95df5b62b58",
+ "27dda7e2c0d40d0ba42c952161c9fc274ca5ce8b",
+ "a74ba25d897d3dfe3e7277e542c3231b383423e7",
+ "494a2e28e14d694e5eaaee6784b8e42520e6e293",
+ "95c70d3a7080ffd029d33e3e6c659144fa7c3da6",
+ "0bec2f75a1a1678c9a18eaf04972bc89a53875ce",
+ "277dd31699acb9b452b288dfb12b1d618c70a4cf",
+ "366e028e485ffd5de42a2f5a898a5eda1edbbc08",
+ "9677233ffd0c22f6a498717ec2942e4abca1580a",
+ "c21d8d08c64fdbba1a5097a89b56cc46648f6ba7",
+ "9ec5e34dc71ba5f01c59060623fd2d7750ddfe8a",
+ "738e225e9ade166bf248b3bed23893e927a8a3f1",
+ "b9e3ec28cc5736d85084ae2b59e0a99bf811a7b0",
+ "b9d7d59fe0574c161e39f3777f34010925e51798",
+ "5812f3cef96a586707bbb6bd65cc9bac897cfedd",
+ "e1b7df23c4755b715bc7b742c923badb2d22b25b",
+ "49628065adf881ba2167d49415d3de42347bfeeb",
+ "0c7c41fb8b1815ea2d76c7fbc5c68bfe10c9e7f5",
+ "2fd4ff1d6d733a544c6440d727fffb2ff7cae38c",
+ "80f02d365f51b1a416c0915ac5b4b73b5af58729",
+ "a4f5dc2d44bf46042618806c2d26c49a9d2c2555",
+ "961e904e814da6cd5eccd12fdf0140441e7510c6",
+ "d16a92152291b982bd91970ad38b2eefe93dc4f1",
+ "ad87eaa6711e768c35ec948372fe938c4c857f72",
+ "c08df2348fa29b6a92f8cdfe69d0217abb17838c",
+ "62d3b560ae4deba1a515b2a6c8c2f5ac78860911",
+ "ad404c7a5e2f2198a2aa1f16154bd3d7b5e2b187",
+ "cc2736073a5210d71ad4aecbd0e54f3a7a23bcdd",
+ "d661ab55a3c91a79559786504e4b4ea37725c1aa",
+ "46a24d724ca0fce309811e168b44e5cae48b8315",
+ "5ef43c939d94e4e22fdb10bb99561c133b807f9a",
+ "c041063702bbd0405110f2e42c13b090d570d333",
+ "f4c2762c36bf716261c154531834318751165527",
+ "2ed2602e39405f39593524db73596341f25b822f",
+ "7e0b10866debd71e2a49be5ec582c6c45c1a8780",
+ "d1cb1acc7ac39f2fb2a2b6c33331a66307173c41",
+ "a85ebcdf388cfd20c52a189a5924cf80d19e79ea",
+ "97cd92ec53de7c3e5121abbaa0956b5119537b32",
+ "4e47044011a4407b73c7171e1745a2397114f556",
+ "2cbea4d21713ad002d1b48186189255e2650608c",
+ "02ff6c29995009df2a071d142926b124e301e2a3",
+ "90833204a84a8502552792900f8cb9fae43a5f62",
+ "0cda83bd26dd8d05a1e48fefd8d5ba5d3bcc3657",
+ "3c6fe1273cb810a58c8ca92178245892cdc9cee6",
+ "b6501233fb3f6d2cf64c3d71da45fb7195e24077",
+ "35afead74bae7f3661606e2c0c48aa4a38e62183",
+ "3ccf789d78ce3d086294829ba04464ed9acdcd70",
+ "03bf182713e0e6b3ceb376a3f5830c86da371ed2",
+ "d20a06e99efaa33f6b9438a08d3b14051f8cffb3",
+ "5d1f495b22ba7eb2594388b6bbe91ecbc4bf6633",
+ "7935b621126280a8167a188c9979c72a0dd9ca6a",
+ "fab1a7eff8c37d66d8d4aa6fba6bc215c32480ea",
+ "89ecaa2974a247e401cf868416341c46b9b8eea4",
+ "814b8318e5733e783834ea3818d3cbc71ba44b21",
+ "f2a211f3ecc08c1ab3f809001f628fc4d1a2a78c",
+ "128fffa255a479017440b5330865d6b96d4dcec8",
+ "5593ebf77ce944bb4ce3f2b8f93d60527eee8b56",
+ "81b7d8060c5b3809f4701b74e5b5ba23052234bc",
+ "626c45739cd091f5334648494ff1d1edf7f912ba",
+ "dd9c0930525f82d6bb11d7ba322ac506b3966ed0",
+ "734d0d44bb67812c4611e8205e80651d46b994e2",
+ "e404d62d4553a76ce6d68c41ed30a904d1d307a4",
+ "516ef4f7ea4117ca4fe5b0e23a712dac1087e9ea",
+ "33bf9d836948b96a9123c589b9e1fc6938bb1de6",
+ "817afc8a9a3afacf568ff7ff0fa5515a1ec5cce2",
+ "2363dbc68de3a9a3839d370ee7129189ef3eedc4",
+ "c06176aa97295e202ed9da2027f984b289551371",
+ "dee1a3497530d88d87ffc01921d86543a0618ac7",
+ "ad1bb210e4a5a6bda2cdc1721b6e831504061c47",
+ "7c79c5fab0711898618f65a8346a625786ffbebf",
+ "a397df4ca9c92fe3dafb210fb47f8c1ea8113e2a",
+ "12a8d33c668a47a23a190b72ae94799ee5678086",
+ "a6c7db2b47c174154423c4bf5529250511a4d7dc",
+ "54a58643a94fd34ff8861000f00df4487ee416a8",
+ "68b3092380dae31901d8266a7980b0ce1e7faf9f",
+ "639a2fe82a2520a64167a6b4913a482580a4c2f2",
+ "53f1314ace4fb512b144d2853448d18dda975c83",
+ "1415beb0030bec53e6f6a6148ca2707b58f42fcc",
+ "1862f74b0fc7257ef4c7b524faaa40fa67f8bb02",
+ "e5325db11c60b4c410446e65cbb4feff9009c086",
+ "9bb6d5331cdb4c6291ac428064e9aafac739c977",
+ "4374d10bb2c46156265bc9042f62af0b2e6ece2b",
+ "ea11dc5590166d5b0cf2ae4b0e96923a54521f01",
+ "637f94ee1a6c50786cab4062d7653aca3cb48bb1",
+ "c3cbb0e89b5c8c02384ba139a86b243244db8df1",
+ "331b3a6a90a3b06a05de6d7fdf05a05b2ed62b6e",
+ "2396314f6db3fe738d1922ece3b7ed7e40b26882",
+ "2b8b41747708c46d9393d2d77733063deae52fb7",
+ "f7c0e47c19e949ce07ec290b860c7410dd5d1fad",
+ "123829f1f01a32b6557f881d5d949f8fdd7870be",
+ "80e9ffc55b8a5e71756eeeb62315ae4d1d865661",
+ "21c20be670310065cadb0940ef1be5bee42ceb58",
+ "ff54acfd8435612f10829b849a87aebf4ecdeb70",
+ "9ed8f9dbc03c198665488e52737bddff9c1eda07",
+ "034d56f047df2851d3fc11b93bb20d992ac79e52",
+ "69e81ec8b23ca7db25e7565d0c0d26e93897f3d9",
+ "9694bd0fef559b1942c9a660eae94be1a900acd1",
+ "d8a5ccea61e447843e5ed8480e6c07065f0b9c63",
+ "9ba2d22ab2af420a5cad3a7a6b18db156d2db3e8",
+ "a6850629478988884e4cbbb8a74e2bd91ec36eff",
+ "d62f036164ee2160327b766521baa2debbf40ec0",
+ "063704f43f7fb30149c0f48d92032d430254852e",
+ "f0ce85f62578741998c0c1d9b913ba4eba5aae36",
+ "bbac41e3a9b0d9797a08c50d90bb1bcad4c2041b",
+ "5cccbacc59750b4cbc585d779355d084c7246fe9",
+ "f970a28e6ce4860f7387c2f497427b9eda900f75",
+ "9534b16025c0e7c8fa2aaf5c709df7676a9773dc",
+ "646ea5e0a9f3992c598ef29fe78d86a88a191daf",
+ "5cda688ae91f96e62d82e6f0c1cfbdfdc57df35a",
+ "e839af0ca70706e349de9d690bbb8785b35d81e6",
+ "2b1628c6b46a24e3432609a02e631b88dbb71d78",
+ "00989aea5f66f7e161fc601b433cb829917d9dae",
+ "558ce061315f1511161a6437b74624ea936970c0",
+ "af7d87f941c26913001ae8382b2642ad6a385629",
+ "170472bd343dfaf1d643658b91bc84947dd47256"
+ ],
+ "repository": {
+ "storageName": "default",
+ "relativePath": "chromium.git",
+ "gitAlternateObjectDirectories": [],
+ "glRepository": "chromium",
+ "glProjectPath": "google/chromium"
+ }
+}
diff --git a/_support/benchmarking/roles/client/files/queries/ListCommitsByOid/git.git.json b/_support/benchmarking/roles/client/files/queries/ListCommitsByOid/git.git.json
new file mode 100644
index 000000000..5df7c4933
--- /dev/null
+++ b/_support/benchmarking/roles/client/files/queries/ListCommitsByOid/git.git.json
@@ -0,0 +1,211 @@
+{
+ "oid": [
+ "9e3f2dfb754145f8d2b0b45c2be1ca2e16fbe2f6",
+ "5a2ca43ef7e17617fcb7127ef0ecfbe333dd0091",
+ "729f1ccbd9f6b488cdb07a8bc4ca4be110ab3385",
+ "ba5c51c015f271c60959c515228c700dc437788d",
+ "c6435b135c12430e8c99d879da65ed6e4e88c02a",
+ "cb290473efbbc11bce6206fb9d213f4bdc88b995",
+ "997a4e139f58f05bac5985f6152ff5024ae0b5e4",
+ "f157378539d3f203f466fa79821e8e8880a4bf43",
+ "c9c459704f7210050af582c148b3fc2e99c12c11",
+ "f67d454f647a62a5e53c4fc563c1a4c26b5a08eb",
+ "91bad23b42eca9c2eaca2c403bb4ae65af13bcdd",
+ "8fe2ce96f17866c06931332df75c75b9535002d3",
+ "bb4ffbe30e8100c203663095afda4821eb3d86ce",
+ "adf780e00d2e7285234e363f6b091f60625fe1f5",
+ "65842eb6e196cc853eb51f419eb2d84b50ff92e6",
+ "fa45c35b151d7dba1e887fb9d051f435562d9397",
+ "eee9bb7e054c755a0799370ac3eeef4ea848d8b2",
+ "fd9c53d5e65d14e5076c13e615d726ed900ef950",
+ "244d1719af1ee07beccaf13a7de9b7d5e4bb0e29",
+ "82f56fe383c1c71f3107b6b0f24ad9786afd079c",
+ "72b3189970b5c54f963efabfe2b56e680ec758ac",
+ "3146a6d862d4c731142d09b97cbd9ed925d02aa5",
+ "e8ca6a25885fce63c45edaa5b250e69f2992e5a7",
+ "342535a0192e9f6f6c49ce8e9179c121e7071854",
+ "4f26b6fe473cb72672036a93a4bea6f25f73929f",
+ "50476ce4b3caf97e1f3aa05cc03db1c66497ed74",
+ "a187d1abd19e813e7fdcfc6972f0e8f37b6eaab3",
+ "2aec5765247f83052c6ac926ca53deb75d4dce8c",
+ "235bf37850f9afffa6cbe333763386d9a0467a09",
+ "b13b9e01589aef37bb54b603dffa831b8def99fc",
+ "dc474fafc733900d79bd5095038396f61748722a",
+ "276d31029f66a4ad7b8e70bf264ab85a4e101d42",
+ "eb5e54d8881bbb786fa05a99084fec8e45ed9c5e",
+ "ddb098fc287671a8329e9a4cd559c2cde43ceb1f",
+ "bd930c832520fe7aac5535d682fc91e1266caca6",
+ "d057121651946b86173436fe25cd55b9b9bea081",
+ "c208dec4ced03c467c3d9958d21dbe56be55e567",
+ "a0597dcb96f9ee4af0b1c34965f0b3fea3ba0a90",
+ "0df9044e57f0f87d669913c642fbe6894323777c",
+ "5c7ace1a74174fb862db0517b64de9f224d1fc0d",
+ "35c208498c2b5bc3f216fa3af7643fe20724010a",
+ "ff554cac35902b304f064d05bb79033c25cc82ac",
+ "2a5d0375cb3118756665f6654c2d2cb37851c31e",
+ "66484ac8d6b5eebe5f706130b00f5c0f64d6afdf",
+ "44710445da73cffbd810bff65c2871055b8a2d1b",
+ "59d992158534c8291f548563a9c949dae4ad7796",
+ "8412335fc3f2a3467d2d1594a9432775f11396e8",
+ "b69178c0ab22841859339d3b5d8ebd3a35a8e57e",
+ "19667e2de1297b4c586ce4c47d0e07da83ef9ad3",
+ "8eef5ae746709cebca411cb2286a522c38918c0b",
+ "a5d8d7256abf415c0558b436a2a04b913c04ae63",
+ "56913890e19ba6350770fcb70cb91831f66e139b",
+ "59a3e176af6b540c42957fd7f2ff5c55f306ad12",
+ "7eb68a6da75761966bcf87def3aaef9743da1229",
+ "23214fe8ad0739cf1f3b38488425ad307581c8d6",
+ "c0e3e9479112b8b0a027f8157ef0016d2a6fd0c2",
+ "39a0a24862a67dcdc08562d8ae35b372fb2a9e19",
+ "77ce05638ff467ab0b17b7d31fe48fe7c206a07e",
+ "341c4206c65df54d9901018f01b699e685767c48",
+ "e16743dc55bb15040a57f56fd07082eddf793378",
+ "c251ee53e7c2ba0e76a48d6a20b94f23d431fb98",
+ "8f2441c521622b8cc3517f0996abce55b072d949",
+ "5e2ec211741233c997e1a966683a4a10ea5c0d58",
+ "f9e6c34c38a7840478c5c25d2547cc62b64bb0eb",
+ "4d351f52722f19a56af5291cf5b94fd4d4a97547",
+ "d958ad873b6259e43e9d3ccb9aff91392e0a5f43",
+ "c90c6ce5940334c2666eea39829606e03e243a8e",
+ "d42bd3f245ef2d29f0610017033bfe20aac22c4c",
+ "7c89ac0feb9f27a4f5e09e4b3bb982938ceed976",
+ "dd20ac3198f98cd086674aab209417e1ade71a3e",
+ "f532eea27229dd8d87c3114a2ddc02ba18310040",
+ "4e1daed095e20d589dcf545a6acf43943e915c4e",
+ "a766380fae4b16cbfb5e2e2643aae6c1f2564cdd",
+ "e630d22cf8b934d5608bc80d3897751204ae0a9a",
+ "26efbe0c5fd42c6e0a2657837154720ae5b57527",
+ "0699cc56c369f467d2afacc593a3b402f2c9b7ce",
+ "1a9c1efd6406a7c5a6a2ab2da0678ed3eadddf8d",
+ "5b0c8f21deef031111fd055269990e38a37c70a5",
+ "fc403878a9fad6613031c3df306b8856a59d11b9",
+ "0f4e0b4ef69491279dbdbeedf2ef99770fc44f9f",
+ "490c8148aa21a3e820bfb058efc26831a4806d94",
+ "e659541d82341d73cd7d6e1366ad3228d13d36ab",
+ "a081b42c76d3d342adf132d17c37a6374b4631bb",
+ "3e940371c48370f0e8f636802dcb206c4a41a5bd",
+ "920b3885a300c03854a22eb48d47d86d96df31d0",
+ "435b0e37eae35f60408051423aa03ee25853139d",
+ "6bb20c6663e196d558148a06b898b408f9010308",
+ "0e7900e9bb6090153650369815c9484ae53f5013",
+ "b1b3e2657f1904c7c603ea4313382a24af0fd91f",
+ "cfdb4fca85e8fabb7da5c8aa0eea983eb8d4d675",
+ "75a9280f609c444754fc0f5f59fcfc91513d4bb9",
+ "39d7f421319a8b1ab01dae4d2a9ef3fdf99036f6",
+ "df06fd19ba7cc8c6e8f8015ddce7eded726374bc",
+ "4a693ca274febe70764491f402b6575e6518348c",
+ "73fb05af20a42bf6634544a133680f99e09ba943",
+ "8d482462f2a28a4b7132bb917cb89939971d8f9a",
+ "299cab39b3780f1ac50b6fb00a98bff352067c62",
+ "318da73d1dd9d83c3d3ddf4e3ead59443047e80e",
+ "72d66dab9ff8d825ed7f4bb92146253c142987f3",
+ "9921d88d209242ebbf4154890af84fc92b0704fe",
+ "5e3eaf38f26fc35f48653adbb4cc31ef5a5b8d43",
+ "58bd20f182ef40e62ca2b7183c8fa7cfda6ffde8",
+ "d7f018bfc9ef44fccb88f7586317d2cff75005d9",
+ "2bee5b8174dc82772256c3ea2bc44855f77fd5e9",
+ "d786c64cd65e891e14a19cd267b7e36056be0cbf",
+ "4401f32e03452483690f57132bdea0d1486272d6",
+ "cc12127673005e6686b10bff04856ee141b23830",
+ "181785487ecd48c7a3760ca31a6a245aabb2cbc8",
+ "089b1a8229d0a934b3bdb088d7128dd7c605b0b5",
+ "5aec8f423524b2100c4314d18555731ea5f532d9",
+ "05a45cda0a50da1386bd75850c42e431fd4b342a",
+ "e09a8b5320fdf7f57c11d82be40635b64f318e20",
+ "42d624f18437166c7c7c8b342ec9a981894d3ca6",
+ "0d3f465463990d406d975a5ba65e4d26021ad317",
+ "e2b566f3c67f61abc0301491d3ae1302a8b4fe62",
+ "510d42bf652ebc22ceb54ba76b4d9023320194fa",
+ "0f3654c4b7173328a1ad42949f202eddddeeea38",
+ "c161867edae5946a4fdf9a44f307e433d751da91",
+ "bb35080538b578c1852fd73e93381dc469d589b5",
+ "cd27c473b93c17b1c4ef87e0e7be42b7f142906e",
+ "f307b316ec0192a6cafd1df13d73b5e353bb41da",
+ "5877042f5ad06305217b72562784d171579a1921",
+ "545747bfd314ea6be19bad8738a7e9c2c6597dd3",
+ "97045d831334061694f4e72d464a5efc270947e3",
+ "c96e9bd64c39fa60e9e37e7d3ef53bf82871e782",
+ "17358c8cf31ef0e8ae68853091a8696f142ae25d",
+ "3d153c530249722e4af7053ca89231ed8fb33462",
+ "3c025b6fa35fa3089b8e2174ac78d79fabb3e829",
+ "3282ed08669d2b27b828d8fcae3a27c9a70e57d1",
+ "04050d587cac76d2100195af3b7a69ef710665e5",
+ "9fed826e4336e0c67e7dbf146088151c9e189b81",
+ "d50f041775036f45fb320db498b09fc683cf0a96",
+ "7da8973efc7538d213958b897d39fbd1243216f9",
+ "5ec7e19bc3e120d0dcf8caaf724cf5274001384a",
+ "2d679f40c21efe91581ef430fe197c0e43a20e34",
+ "771ea3b2e8dd50568c1ac5c9cace6c552360b80a",
+ "a06ef406ad8ba7f9e2f0c5ed8b4443426ce54dd5",
+ "91bb2276b9f52f3f18d458bc900921a1c6db9227",
+ "dc6f74fae2ea843b180ac7e0ec90a9d08abf12d0",
+ "41f1695ffe1b136d0a5af4d491ecaea3be4dec00",
+ "723ddc763f76d73ef7c0e7513e81601a2c7a3324",
+ "687d33056ee28fd03567f3725150e3fcd0582979",
+ "40e115628dcf97fee758020e6b8dcdd0209761b3",
+ "f839d65745f5b628d0ccc4446b6f521f3af4e1d0",
+ "93185c2ed09ffb5bc114be6354a9fd6234c97ca0",
+ "6b756ca743abbbf952fc5d927cfe6287b2718ebf",
+ "ba15317769e1c10287e31d6acfaad3134d407946",
+ "13ca902789b227b6a3cc62eee35ea16df892a365",
+ "a2bf769eb4df7fcc70dd30e0034fd2aa2bc01b82",
+ "055f745e1be2586c917e54de63f73a600b4aac61",
+ "ded2f065b417326184f3c71d5d3e8c701ebe3252",
+ "e53be185f4410b2a55046b5ae2b1c95e17dd9dd5",
+ "127280aedbd1d3957b1254305f2c6a2c294790f7",
+ "de5838d630fe43037d164f12a5b35af9de4a22f6",
+ "05ed4626637ce7f32636dce56234cb7f15fed7fe",
+ "872951c1f0ca75ca5bdb42b911b6376fd154f929",
+ "4cfdf76fec456f2e340c22e0eb2f744c507c4042",
+ "9c7452817bb4826aa95337086fa1fbfd66b78d2b",
+ "4f5efa39709b2d56f97de0b1f96140fabd29e7c9",
+ "a20ce86daaabe020c44e4ff8460421d07c61a60a",
+ "29b2935c5b672e8a82f259924c243e81e50b028e",
+ "0d156e9f5297f36a1d9f6d1589850fff57672f40",
+ "03a45dd540e27aad6d50ad99a9cf58df1d6b405e",
+ "e2d17bdce0def16c8ded1cd88bc182f99fb61112",
+ "6b8507d9f785944ecd79e80502ba3dce426b1faa",
+ "167c827110c6c03dd07b20f3b732702b580e81a6",
+ "dc18a92043b80d22cae2c054e49d9bd14a983fe5",
+ "2cbe4a3e125e059242544ae415ee82452eccc15b",
+ "8b018eb72d3c57d2b2e394f2e7b49cc554b56bd9",
+ "279e009d2c24c53833dd7b744dbffcf043a31369",
+ "94390190440bd1fd036dbf43c39a74da95b816cc",
+ "2cf7c155b89f82b059628f2431f0e58e26d3dbf2",
+ "b2876eed87b633dcc8b8f795ebb3b5e2edbce0d2",
+ "0ecfa1a4bbf8e1d2c9aa8eac06d674a4b5ebc350",
+ "d9bd6348a1752d07828a64892ac569d555483ddb",
+ "4ef2f2f30dacc55e7f825f10f946366460c43dc5",
+ "4b70489538fd1436b49902f05607e294b1e79319",
+ "85b2ea0dd5fdf24ef35d70e2462075c091d4a42c",
+ "844ee61ca490aea8bb46c9afed5b5ea5ca933682",
+ "e7ca304e556547c84eae15a193de64ee17b9b071",
+ "4e475162e431aada7a525bda5189519976104f07",
+ "1de9209a8798ef4ad406bcbfbaa5a7eff346755c",
+ "8658c7522b55f300d4e48d65007ee851a688d019",
+ "be30851f1db22bbb49d9f8bca174e901ab6c4382",
+ "4487e080a248726cfbf5c05d0097b4d4b993a11d",
+ "432c4f6cfdd725dce2e17ef228cbedebcc61c636",
+ "18b8aed3b3f6d0ae059cd17077225e147cdb52f0",
+ "6b51cb2e8fa6503f16cd95a73c7e5c65f3497a3a",
+ "209a6c0ad09b667399b3bd14c6b80315f6a3a1eb",
+ "a66fe4a14e0defbd0838ffac832d8756215a5ac2",
+ "a7e4220b7a7c3a4a50c447a233ce3b7fc0860f7b",
+ "a887ac9001fb85230c005bd696d0dc5ef5d3903e",
+ "5b24ed8d987d654154feb2e89bf822b05a648217",
+ "6ab646e998fc66e68c3571d5caded7784dcfd431",
+ "cd76584d3ae36a8d15d6eadf1c15246c4669f9ae",
+ "8b76b1495f082229d40cf4c0fed84a247beddd71",
+ "2f8517ffbace60c203fb0413eeaf68726f26b5b9",
+ "d5b41051d7547ce0110b11bee32c2f6c693c232e",
+ "7d9ec4c25ffefe4d12935c855bb49e65083be227",
+ "dfe9970c3ecba4619efeac0f2cb837c6f4530a01"
+ ],
+ "repository": {
+ "storageName": "default",
+ "relativePath": "git.git",
+ "gitAlternateObjectDirectories": [],
+ "glRepository": "git",
+ "glProjectPath": "git/git"
+ }
+}
diff --git a/_support/benchmarking/roles/client/files/queries/ListCommitsByOid/gitlab.git.json b/_support/benchmarking/roles/client/files/queries/ListCommitsByOid/gitlab.git.json
new file mode 100644
index 000000000..827c69073
--- /dev/null
+++ b/_support/benchmarking/roles/client/files/queries/ListCommitsByOid/gitlab.git.json
@@ -0,0 +1,213 @@
+{
+ "oid": [
+ "bdbf1535b8edd9995ed4c94aebc855123f02f05c",
+ "9e2df6d52f88744b50340aed91a9ecad97d54f48",
+ "ed3fa3ba517b95ff9b2be505c69301459e5bb357",
+ "22303e53fae8d1bb6b0cdc0402be13cde378b999",
+ "d9bc6728120dbd88b42a8d7e45caf73234340f6c",
+ "8a2cf30faf8b3696ff0938919af6c4edfc7f8190",
+ "edda74ea440afd907f3d3d764bc5cec52a41150b",
+ "2c8bdc452cdb7a9497d21e23ae4fc9bb36fce312",
+ "3f6b4e90e52e764d0094b1f884f39abc76040b5e",
+ "8cbf187cbbb38f0d7d51f499c661290d002bc87a",
+ "9a70d8082542eb6ca5cce09d1cd221f229ff2c6b",
+ "316e574d4b75fdc0696b727545e33e09c8efcfd1",
+ "ee75af81bd776e15e762b848f5698fa1907088e0",
+ "457741cd3533a6a98c260bc6df86c397119d5b08",
+ "f89542c7a4cf641d21f8d33055d159f49a3d5d94",
+ "7dcf02bc09b8654104dec7bd6f9f2feada34e701",
+ "33f5b3c3bcee5e448f52a96681103e31b5fc6d7b",
+ "3c480bcb8096e3f26d429295187343ab5dfcce00",
+ "9737769ac2e3e16418604080fee686e96b0d6b77",
+ "7b7902922224dd95e7c8c793073166d17d42c051",
+ "eb0fc620e7a8ad1ad9f6ba442662db5f469d26f8",
+ "309b13746f2de4abffd957f3e759ade82fcf5619",
+ "1dc40e9accc8d48ef804ccc363ba4ebdf23908d8",
+ "9c330baffe8ab40c834e8551bf2ffd7661b9d05e",
+ "bff4c83b8185a85f9b3240878787a2a0e29ca12e",
+ "8fdbfce34f015ab9a2f91a2a1842be3545ff2c2d",
+ "e80b589db6b07cc096fae6ebb958bfef310a640c",
+ "6316faa3fdcde5c03441dd5668bba14297de2305",
+ "ca2fa23f14064b046fa5ae91c0a38b8ebf2e0ba0",
+ "b5d07ea59e79103bf1fea961417db6c168177bab",
+ "58903b4cd4325841b5f7ee7e07250f23e7a4ea2c",
+ "78abe4f96481548fae33d593c0958865f7486e46",
+ "9b550e1aa7740c49dcf6e0411e61d0a5c5446cbd",
+ "fae831f2c655aad806fccc69ec0757cfee960d50",
+ "eb02849fe3005fcfb16d67f605822db0644cce9f",
+ "f5a59a4667b10a4796f6f61656c6c505eb5f5c33",
+ "e3d0aac8de075eb68ef44298cca584da9908d46c",
+ "ad9a4b59afc1038b78844c366d0f24fb8b2244d7",
+ "87348970ddc2e397c2a31387e388c23531e216f0",
+ "b3a29abd24595c7306d9322b013bd327688b7e68",
+ "12c351f82b8ddbea64d21efbf4773909a08d2b55",
+ "157481c07f43ccdeb4b8a18544b1f9de946d5d59",
+ "b54c71e897bf1143140e5dcb7838254970b70e7b",
+ "3b43588f6edb23608ab81b3d8ee342e2fe0271bf",
+ "00fa5b9e7665d9dbb2916a4d0166cbe8869f41c0",
+ "38222f47af90cb4e88f802603e5558dff0cfe109",
+ "81954e26938f02f54f435fc71e00872d58578fd3",
+ "bc9936984eff2f3ee76dcdaa319e9d0a229eb742",
+ "d7d3d73a0c463df33391520ec50ad24a3160e6ce",
+ "b9195294c6401761bfc598b3e8bfef4f2e11154a",
+ "aa7a503741a563e7a76364b2e7c628d72dda6880",
+ "79fc105144dae3052f1968c8696dea3365af6051",
+ "3147a0f33af5f356d55c85d74bfd999cc3c9fd99",
+ "325c6e813ac738a78419796163efdfecb74bee78",
+ "1c902e422fa670faa45817ef9dbe376d8b709f41",
+ "fa74c499e119440ede597857cdd3f8968462cae0",
+ "7f57dfcfcffbfcb46c8b003d92c96de0cdad2d4a",
+ "43606fd9fa3a2458a2d3ff93890130d2dbc4b899",
+ "410f2ed3340ebc247069a0ed24627f788cf98959",
+ "70c737215cd941605a53457626e51a96898b9061",
+ "5edfa152bc11edb8ecca4a6d18c3d378f81bb3a8",
+ "75bb937447b71a767eda8326e7073765c4e41d90",
+ "d3a110b64d59b4cae194c500f9c55370ea112ab5",
+ "d2f839753e98f9de5fca3ebcbc871f5d13c8212a",
+ "c8f59b54d02e8069a9dd405f8ce3e30c9b599bd6",
+ "7ce58056491eb3c2f3ad923d06f6f468f8547bfb",
+ "4a06bf9a05cdcb585fdc2b8c163e857e29af59f9",
+ "e50d051a187d3f8a90bdaae0a1e9336c0a65ea74",
+ "53bf2904614a5119fe29f4c2bda11ea15da4672a",
+ "3af6ea67cb70879ff783f1641af14abbc1fd5ae3",
+ "2f9da55202b2b61b6f1c3ef19df17cfe8e77ffd8",
+ "463f31135c6b0f38e5787ad6ae039997c964c2e3",
+ "bf47d1ce46dc198d6890ff27a8e08396ca51bbe6",
+ "795ef909534477eb0f2ccd476a36a0b8abe3914b",
+ "e81dd0f534c185a3ad28e2189e6610319a02cdfc",
+ "e4b491a189588ee79dc92897161987913e634082",
+ "dd944ccb2a9bd432ef46334556d9d3991f10a689",
+ "7a9846bfe83b4a414199fb5aa36f55153e426a81",
+ "f42aea060357e097bb942055af393bf901323c30",
+ "24bb35e73ac7492a9e7376f949da326bc303eb5a",
+ "5d382131ff656521996e22ebf21a551246991d0d",
+ "74fec51fc1d8b9d227854051ed53fe33ceb30555",
+ "236e85d4bd8aebc415622c1bd787d679c1f3bd28",
+ "0455c082dd4dac141f2b531cdbda553db36d68b1",
+ "e6919e8dcc5fa53352ae1380f7dd1e4fc7d6ce71",
+ "6cee85a4681004164cb6aa2695b69dc8fb3fce7c",
+ "ec121a8ecc0bc51180f82979f2b83c89414d1507",
+ "36c294c713cc06964d8521ba7e90d2fd26608cd7",
+ "aa94db644438e533b9421d52be7e5ec60c24593f",
+ "94ca3bf5460162a2543bb9f9f4a35e45fb78c49f",
+ "e656692e0f0b48297892e93adef8cb7009df0288",
+ "35a393ba98f84a1d143d37d951fb97e19e5757bb",
+ "505ab0c570e2f075e91e971c91efbaa7c938e1af",
+ "ba5c9ea018aacb331f59a3a1c96a2ffc57fafb28",
+ "0c2e69f0ddd18b90d1ea7c775fdfe2620a5c683f",
+ "2ebe073a86ba1c75f110aa3f0e74fcdc9de5003c",
+ "559c01a71b43d0ec6fb680db75eba793f3e94511",
+ "65fc8c7cc31620dca80c0beb21ac6d78c7dea7bc",
+ "487bc18e549cd173e32c1d14b6bf2a439b5f61a0",
+ "25b3dd5b4f9cfccca8c54622ec954452a49b7b36",
+ "35e847f11622bfe4efc602e3d83d8a9ad111feb4",
+ "f5bea0f4447a6be13dcba8bbe3c218b0436007fb",
+ "1b813441a2995424acd71e6642ac3f501e65d58c",
+ "def7daab2bb057f69cae8b7f6f1852ae70dcb22d",
+ "83d8aed68ce7647304debcbb6a5254fecacfce18",
+ "4ad0e9613ad531be094f68959bb544bb2293ecdb",
+ "7544e80b761f83447d578312c09204b3d88c58d1",
+ "b726ee28ea27e5f563986f60d232c4199b46afcd",
+ "4b22467ba89560d50f2893b3b9c374410609eba8",
+ "30d70abdc84a2bebf061005905913998705ab552",
+ "30d27a5f07fc6468a04a915a6423d3a1df8d056f",
+ "9f705a1330dea8684ea10f3797ee7d3372406333",
+ "f2809bfeaae26b05f84c26b167fe9a39c924cde3",
+ "4dce98c03e3de5644aadfe9461a980f62bac6823",
+ "01521c7a09a9360f7d2a3765469a7fb3d5019f9b",
+ "33502159c99ff0a93dfcabc01e153b2eef04dd20",
+ "8e1c218ff3bcab16678abca1a851da037eaa8445",
+ "6bd8dcb39e1f032f8509093a186c88b64a472092",
+ "79703fe05f4d285baea98f3db99a4b8859f21405",
+ "f1946e5c8546417bf00a2ade262b53aab60181b6",
+ "44212ea4433f46f47227b52f2071fd05e5182821",
+ "70b64ead1a58d7fd2ea3252c90ac15cfc023eb41",
+ "0762afbc2b92dda0c67f0b0c63b300b4be2162eb",
+ "adbfba49cb4df3d856239ecae882d71fbe3665b9",
+ "6546ad47e0e214d469fd941ac80b1e4a3a762f20",
+ "075db0c7ceb85995408edf29f85fcfd85ae6d55a",
+ "7de99fb44bfc0feef7f0b412775b14d972a354f9",
+ "d0fcdf8826d96493133be3e90f2c2ec5aca10a1d",
+ "dffa67861e44f24f1d1bbc991445b33eb0ae8c70",
+ "0a688ae5d281f731c20d2dad23be66479d6b1b23",
+ "42049e9153a9ac38021594e3fa9a51681a51241f",
+ "e80b4197f82191e7d8c5bd37350452a0f08c1bb0",
+ "f6ab21e1dc050f6fec2c4d76134131c3cf5a2390",
+ "653359ddb783ae4292ed9cb97c29a38254bbcebc",
+ "35a006c3c663f4b1bfa820e383da1d94c4848925",
+ "78b0521a75e39f8e9a68d4ae287114c605b98cde",
+ "799b663fba05b31d762f9d19574ae3e68b77a98e",
+ "74f19ea7f3404afc262e2f0d8a797ed7754b5f9c",
+ "1d880b79f9ab92b686aa323e26ac9eb8589b2332",
+ "5eb555220b405637cdc6b1fe8240c1e15a4447ca",
+ "f5b7b15e76311e6bfdbe14fc9df5d6badc9f91c7",
+ "b6a43abb4c6be25f72e24fdd13e9c5e03006bbdd",
+ "191dfd08ce6ec6fe0e23d8995b37a7b4334166fe",
+ "0ba7033d153a87bd08a18af78743848adc26037d",
+ "cccb31d56e2fcd10221223e4ad21cfa492cc76cd",
+ "79964061095a7caf2611ab7d30662e2e6095be2a",
+ "f167324725382fb8d12542216523b21578ead9cd",
+ "ac2c1d0d844423a77ad2a96580fef1ce1066e7fb",
+ "d76c9965e8a8dbe6a955cc2e4bb4ae7856dd49f9",
+ "1651c588bd5877633564f2f69f7412a7192c7534",
+ "89cab8a503cdcee46b963ce793c256a6fa6da6e4",
+ "fe1be5ae1f7375629ceaf02d6c7038a76315c8ee",
+ "9355175115f3ffc13fe56aab0a9db0ca94316e6f",
+ "e4b75fb2f4fd67d82268f0fd1950903bc46ac4dc",
+ "660dbd2669480912a9111c44169eeced9131b8ac",
+ "2810b8a90050eea7aa902914433a817e86113ba1",
+ "fee961dddc025a737d563e0b9d08de415f0bb11a",
+ "d28af9a7a70ea162664a3947b9b0f91e3fe96e7a",
+ "2f84907254a6dc72197c0fa480e567b42d3797c1",
+ "e6dce752392e6e95ceff692278bf241171334873",
+ "b2d89fffc682672ab2f3cf97c4ab6c71ebe4e637",
+ "72a2761d41f2be2709257151be55511c6af65ab7",
+ "81610accf0ad3c32afb58e449e9a4a7b24106041",
+ "bb3480e11f977c2b52f1a6b2f533b0a9b8a122e5",
+ "7b62aa66038112b7eefbc7106c98c8f75f7c2acd",
+ "13851b66df1cd30a92c4dc5f55a0a4bd5abb1846",
+ "1b9c1fcf215c7c3184496ab7d68a6a04b28bc97b",
+ "7b22cf06dfdcc0fc04466f6f8a88c918f4413439",
+ "d43b56c2a0b98922234251792e5959b4e07b7f92",
+ "fad52c7b82b598ced84913eb56ec31196b27244e",
+ "a886eb68803e262e40ecd8f54dab835197a04a41",
+ "21a749192184e71569b6782c08045dc408ee3e86",
+ "f52ba1228ce549cb212f5e2d1501a9dfc8c409c9",
+ "929999d71c8b949d3e9175706242b2b85b5279c2",
+ "cbfb759949d1f5f645c2400a3867d6a0c45a515a",
+ "893fb03730b1242e72b7edf9aac7c4d45c9275ff",
+ "67941482c74771dfaffb4c36be653b51d0936410",
+ "cf870bb0eca55c423e34e1e86b583a85b876dff6",
+ "60c1f2e4e211fa800d1d9ea251dbd9394dd6fc87",
+ "3de2b30c8d3989baecf548054b2c18afb0b923c6",
+ "bb022836f9e33b2711289d4de700d47a5f6b766e",
+ "2896fd555e842991276be4d17bf0fedcee2f8c4e",
+ "62da7e81aa5a2ee65732dded308e4f6e55996bea",
+ "9ba3f4c57c05c0969197f37d5c428d23c7f0820d",
+ "d8afef4e5840feae763989508182c14c29b5f9c0",
+ "f47d331188e21270f3959bdebaeec2658a27b8c4",
+ "e0a65787468aa727ce85e19fb098300f5fc8e1e0",
+ "884206f5fdfe480a5a28f3c4e74edc6f94e472a8",
+ "b0912bfe96e8aee4fa3385d29204a249f53e2adb",
+ "6c1ae5b57b8f4a6fc028e5726a82be21efae63fe",
+ "b9585e4c5eb875cabbb4b416ef71fe02c73b25c5",
+ "8d6a6b131433ec4a131a42aef7b27139b8dfc18a",
+ "4784f6dac217aee971a474265613605ec9ab6a36",
+ "c05672a29def0e940ecc7fa9528a9799881f6022",
+ "abc9d5d1c679a685a44527cc09ca9bccfcd64102",
+ "a9caed2dd37a91cc5ddbea23ace5beb4b9f4f5be",
+ "e2d8b3fcb971a8ad2258764643eaf380ce7e6359",
+ "661e63f05b7b67ec64f26050fcd7fd77251fa230",
+ "dc07829cd919eb8422973b0940220752d195086c",
+ "893bd214ec2ca9d4bf3d1f4dfed2b65558fd04f2"
+ ],
+ "repository": {
+ "gitAlternateObjectDirectories": [
+ "../gitlab-pool.git"
+ ],
+ "storageName": "default",
+ "relativePath": "gitlab.git",
+ "glRepository": "gitlab",
+ "glProjectPath": "gitlab-org/gitlab"
+ }
+}
diff --git a/_support/benchmarking/roles/client/files/queries/ListCommitsByOid/homebrew-core.git.json b/_support/benchmarking/roles/client/files/queries/ListCommitsByOid/homebrew-core.git.json
new file mode 100644
index 000000000..41a293072
--- /dev/null
+++ b/_support/benchmarking/roles/client/files/queries/ListCommitsByOid/homebrew-core.git.json
@@ -0,0 +1,211 @@
+{
+ "oid": [
+ "bfafc58ebb4bf952bb3293d68f14e56b8e9810d9",
+ "b50700a2c607dfebe5817a75638d412b5673ec18",
+ "a1c0cffa813ae059be0f23c226714dbbaf2749cf",
+ "d2c77371365daa077538bd4cafa7c5c905b8de8a",
+ "be71b87137bc5b83935e743b28475d3c0ca14515",
+ "8a067f33e5ebfd707fd6aeacc7fdbafd2c576355",
+ "54fe066a002f9e1c47d8e69238d130aed377cc3b",
+ "b83f3b8d6bd294a015ee977c751c963b0b5d4399",
+ "4b1bd13ea3e49f691aec877718c39b3e9b27007f",
+ "a538488671207ef08d94b0317086387ab930fe3a",
+ "76cfa62a5af99fb9babbcbfc460b1928e6bdbac7",
+ "bdbf199e3dce84edc30f4393c60c02dd3a39bcaa",
+ "5ea01649c0db04eb1dad0a564941d2d97555e4b4",
+ "a5f1cbe608c726668ec1ab357f5a2a9118c5537e",
+ "5b55d1fff15d65da35738ab8e1995779fe9718f8",
+ "9f037381477cada2d5baacd4d8da017a1a4fea1f",
+ "dad98aead6e64371ac2df3cf8c1b0fee1f2e799c",
+ "1477e0ea1ab5cc8430ead34c44e464a9a88d637e",
+ "8d395c37a32fa71ccd4f0600e0e9dc8ba007fc2e",
+ "154e6f13797e97aa7e84be4e809f7c28c0a02afc",
+ "c552310297a5b72e47959bb85bf5171bb1a402f4",
+ "43d28298affe42adbf321d7f80a1f2140ac9e5f6",
+ "c4f71d655c481599b0d69ffd4ccefdc020c8a2da",
+ "ce90278b27a16de7f86483a4a6c183b8c21c33be",
+ "ecd83837516ea3bb5e7a4fce839cdee4609f56de",
+ "f82de67a32e0bd8208d0660521b574bf81b12a40",
+ "671a0eb756c0b2ec3d046b8e773a95938711f50e",
+ "769a9550a8581c540904641663f0cf9aa688ec47",
+ "5265d4965e8a4aeb5b633bc1b8f40adbfa487e0a",
+ "5b84418097085bb36632b02fd91359a496d4b80b",
+ "8d793dac8687d7f60db352da1b30a849270e0059",
+ "63368f7402dfc62ff295139363fb8f589aa29387",
+ "c86010a2fd149a2c4ca96d4dd87d3dba870f72d4",
+ "cf1f22e644ff394c5b7e713dad35d70501d6609c",
+ "c9f9267d71170309cacfd8235010e4b1b159aa27",
+ "6d7d8acac910f1c8d27a0f0be7469d4e5e1db362",
+ "ae37b6cd07910ba388dddd0748562fc2b80ccd66",
+ "785cb1ab5e50a597be529ff441b6f8868d812ac3",
+ "501c0653c5c8775147d3b18f65b7b79bb6c2ffa3",
+ "7b8aeee5aa1a51ea3f5cda1a320dcfc010ee3676",
+ "51a99c0de4eb7f6b2077d5e8c665c69af725ec6a",
+ "a69d0de2cecf7ca997829140035d88f71de8c75c",
+ "377f15a31db1f43add65c17771f3e0501321ffdd",
+ "4e03754c27f5861574b19725b38c7d0f5cf66ccf",
+ "5daacf83c943f698d0429545cb2a4ea22f31f7af",
+ "53db31632bc491afca2e8907ee6678cdea2c53fd",
+ "4b2a9d52fe359a9450aae79360bd9a56541ea8f1",
+ "24ec867c3ec5665350d87d2026126ce59e98e5c2",
+ "8290e31d65d678158eab33ff7beb5ad1362f1a4f",
+ "d5adc6ad08c1329ddfad760622a27b508caa08f8",
+ "a08aad7294ccf3f669b05cdf71a461a085c8a09f",
+ "dac5f4483ecace2d3ade869c50394f6c899bf9fc",
+ "42a0ed482169228fa7c6b4ed6b95ebf68cbdf399",
+ "24e854f9d3c99955c6c84a74f612cc36cd6e2a77",
+ "b4805ff87cb3e69fff5b955406ae6fd4a66767d0",
+ "ec8da4d7ff7f41907dbc28d6e248240f19c31e5d",
+ "28d62d3deaf9e9cdee91b18c58a542e4227f9bad",
+ "1ead89633d6adf0e23f483c4b36603794c00514c",
+ "74c9c792b5e7a9071825d6109994b347220317f2",
+ "fe095b7d1a05fcc513241ba204ca3381088ee5b7",
+ "cee005e5d1e89309215c143a208108b0b3f0a404",
+ "70cfb85e541d795b3e7724c16c19b621ed9aa1e8",
+ "739551cdd2c1fa48805460c075918d0e9f7f186c",
+ "f66d5a2bc26ef6db3c46782e072973526dbc3cbd",
+ "925172be731975314e3517c01e4fd5d37c0c2003",
+ "d2804f13eb78d77f70145db1d8b72cd79699168d",
+ "05a63319e8298254e66d6cb363e03a7c082c70e2",
+ "6acbe974a57db9ca6bce13e675b0ef453b7500b6",
+ "06da957bf31672e8ddea10ca8329da774708eee8",
+ "87877f1a581df6aeae7caccddf0394d211a804f0",
+ "6224c6e51f4863950682fc0050e41d3baa2978b0",
+ "6809b6d5b7d1ce9b1af8e5eecedf20903b7391f3",
+ "6edff63fec09e51cf911c3038396a9c5f1bb424a",
+ "63625426dbbb8ebb8c8daea5dfba6e49f2752b88",
+ "c4aa4e7493e3f6664f380ec2bf0f4c1578bf37f0",
+ "02f54630e9471c6aaecd4931b3630d1cfbe54060",
+ "608597467ff1db5d1d1bdc0c84939ad2a46e1b9b",
+ "9fc963dc57e9c98cde4802516e78ca7a66658a04",
+ "4e79dc7e059a5fa0affb448aaa69626c4a260355",
+ "802e1de34609c19771ac8493d8e0106febda37e8",
+ "66b97cabcbf1bcd20c6e6363de13b1d64827a1fd",
+ "24bb25d888b34c966989fb2ab1ba3c44d4f2aa6e",
+ "cd69ce0d4493bcfe84564f2c63b7ad2fc9acaf1a",
+ "c3fca981b252f92554715a50f332b70724c9ab6b",
+ "feb1f07ee23b917163b832b120b239c08421aa48",
+ "d4490860852ffbaecb2839ef2d8ba54f94abcaf8",
+ "173e57fe7e25c9e2b31250d9096259d0edbe51e8",
+ "c083f767dc03c0aed0dd308239eda43ff8bb83a7",
+ "2ba81e3b30b9f6ab4153e3f3b1f017b7757bbce0",
+ "5d4f35ebf69f29e8dd41d8a53a04cf66eea8ab8c",
+ "d309f62a703a0e9f6ce6257ef53d698ec08f6340",
+ "87cfbf8bfc5eff1b3d84549483717f58949fb8e6",
+ "f26a8f0fd09f373b3f0492c0461db1c55c134b86",
+ "452fb2de330160ccb2010440396a841525bd0f5d",
+ "9d67378c8824bbce013c9a49120a2246e3834d60",
+ "7563eb6c6cedd03c3731947d01de9aa6c4dbc989",
+ "890fe087239138b99fe6692f8757178ce202d65d",
+ "d634490c2b91339c27fa34c4201bcf8d90a15e64",
+ "b10159cec1e7a3a627d87ee51b7e9203d04014a0",
+ "bb66dc65190c542d3d96340f01903658c19b119d",
+ "8861071bb1ddd9133615036100ee13c4e53661f9",
+ "2aeb8839194d2f12bb4822cc1c4fdf60c073fe8d",
+ "9cf57f3ad98ced7c5447ab2a91214a2a8010ab2a",
+ "1642e71bc369845338759a896684bbbdd73735d9",
+ "b739406ee071a5363b6ee16723fca4aa72a284c8",
+ "3caaf81ceeb19d4bd30c39ae2fa4127204fd292b",
+ "18ad4bc85b6c7a1d97e5f8d455c58867d7eca52a",
+ "6beb2cba27d8dc0c36eceafba789b0212ad08706",
+ "531270eef7bc5e55cd1b9f214b1283f9b2e45554",
+ "ac3a0e422bc26cbff1929e9aa42486046c303087",
+ "398c2ec85d157fe438304c36a22ccebad40ae1bc",
+ "059c7035c8f8f2d6c74e99b6e46507e085f0d588",
+ "c80fa80f313d881129570bce6faf3c9801c56dd8",
+ "16bfae43ffc378b807d12a637d24e5d932a64ead",
+ "515008d0b4b01975f3e883d4f4f8332cae994979",
+ "6f6b52423203dbc89449239b650db114cf01a27a",
+ "85be485fea27f75bb6d3d1d1cefd8304eceb8853",
+ "6bdfd00a53b04789c78cffa7e6824e1a5d87ae66",
+ "a57d7d788b6af19e65bdae9fab4e0b8acd4e2ded",
+ "4d2aa32b2bd31b463627ae806066b219a7a533da",
+ "7d12bb57d73be8ad1961e0f6c84c31f94f6772d3",
+ "6a46eb0692364c9f7bd3df936b17a1d42c8f5550",
+ "aa8dfa37b07ca13d05785db1c472ccb964708258",
+ "528a9454d6dfd8ad1cc64ec82ba2b6ed0ff1a94a",
+ "7af817bca048f845d02e1a448282ee58a38ee56e",
+ "6cec5ff74fe47f01d4921d14212ac5124a9dbaac",
+ "c71d2dfde1b44af75c9c39b9f46e932d9bfbf92d",
+ "d06a9c5b0dc93ae1cd27e8923b8fdaaee5b4423d",
+ "e13d0d652318ea3548a2a7cd62aea9ba54291c96",
+ "21b136a7953a8ac0b410954529480fd9cb542cec",
+ "2d1e0934f3427f18b2cc14375c756e9ed682c609",
+ "c47c609d3cb4206b93dcc97fffa6542fbed167a0",
+ "08facaa40411d5e6a9169ccb1f5f845cf27b41ad",
+ "3c5fb4cecc09dcf09f0160de6341cd3effd837a8",
+ "136b6963078868b63a3057912fa2a1029af3abe0",
+ "3a20cf1fded3917bbbd4ff0cb9dbcac16d32d892",
+ "8c8df8073b7689077a48785dbb1db14f35413302",
+ "b702b730e90707d0b01bbcee2ad01417083909e4",
+ "4e49b5d21cf22316c20a4e6b35c14b48ee8586f4",
+ "471d112179998c1b479d838469b3d2b2519cc760",
+ "e05da2967463bcdea6cc5f9715eaebdeba3e1cc0",
+ "b5b958e165e4040bf743f7c61e325a126f4866a4",
+ "28bb7df50238e593f47010a30e744aeda0457552",
+ "459cd66b3567d6e445fb7eeca9b917cb516346ae",
+ "db586604efa92e072dd4295a117dedd66da5a32d",
+ "7a6a42da02e45765e21c7d94bcb7cf1a518c71f7",
+ "19aed6f87a0b200bb3c4ca0b311f1be0ba1e1912",
+ "4e776b618d6d3ab6b75838523df938d4f6b225dc",
+ "809263e33a31ae87b42f29c9375d171a10d9e6b2",
+ "0d1d1fbab6dcd055b6fa5c1eafe9176e0a0a00d8",
+ "688cc92a23f482ff791257433e44b11c949c9bf7",
+ "313e418881e1a0f473aa8fce464ebf9514ba2b7e",
+ "0386b41e626343bd2b2733c01e3f7d26348821eb",
+ "ae94dbaf12d310ac3d13e14bc254f228106db453",
+ "2352750b20c9fe742af74f0015a3a435490cc5cc",
+ "9e7fa9fcda6afe70868ae1db2ff38223bda96d51",
+ "5f4670b82742089bb357b3f1e3d73adaac77decb",
+ "0a81380b2e7ea0f8d4f42da5ee134c234e921bcf",
+ "f86c8dd514f7382a43d9c705a21140d3a8d8d830",
+ "fdce9f0d8af0270a08e7aac993672d056758f11c",
+ "d14cf7cb776bf740cb0186a0f1ef635160e38168",
+ "82e17f4e314e3f5cd0dd9f94204360cb371ab5cc",
+ "bf0c7f13ed603f66a34ae27e0b762f75e8e33e9c",
+ "395e217f18e21deef83d78193e4662f3a97894bc",
+ "4955c2f2539c31167a2fecf48fd08e7dc7963441",
+ "b3cd293385032b4188240e23c0935253aff5ddfc",
+ "a37634ba3500591292d4e71b67cf22cca6d8de22",
+ "afeae09f8452633f9f3db36832f2c56294ca5512",
+ "95d4427527d72d981fb4f70e11853d2b5f8b5ec5",
+ "b40057b2cfafc57bef4e26ae6d6600e448562dd3",
+ "b233eba2a6f4230a3e9503eaad488786187e3de7",
+ "899b8e3448729125f9c10997822e11eca1e28157",
+ "b64cb55cee9bc92103dac2dbbb4a843e9869787e",
+ "abb660affb461dc2bb4b0ff5a4a5ee5b33a41856",
+ "39edce7d45123647d40f9be00be98d11d9dfd9cb",
+ "20e8c67dc0355302b0a45245d2f23ed1e88f6c19",
+ "89cb0ac05f09f7ccd2899e652ac4934825d36d91",
+ "c4303cb4a69a6db855347cba4a57847f7345c472",
+ "059360912fe677f5ac6abfc9e02d1b3ce73f2170",
+ "76df7fd57742a6d07a6111b1b03d913f7bd35bf3",
+ "b7404ddb77603f0a65ada7162651df29d0101d7b",
+ "66c889386eb8e4d2ad971d3b1b0aba160c6f0ada",
+ "246236355e2f04529249ef03fe2f4ff43643da28",
+ "e109c6a57ba6d9127870ce3ccb6307551dce00ce",
+ "670332f0bfe75cd8a0184f5f07bcc00bc9d2a477",
+ "3aa22b86c72b97423f445c85cff51af1cb311360",
+ "d051f8b1f7621aa9bd18b6377362b0b2b3a3c143",
+ "beafbe4f72db9523561341119be208a4a3c5c6ab",
+ "da212e4c68c0d1b26fcd519028718547f53155dd",
+ "ad5fe5d1de8c18d27e8e91791e05cfe33b85c560",
+ "12cb55611f0884a68921be5a0badf29b2b0e3f48",
+ "f4151f0971d72b862700088ca3d7dc4abcf996a4",
+ "d09702cca90b0688ef4306369c5c5ad5bfa47da0",
+ "61951d4f690bddf3318cabfd7b08b57746158e89",
+ "79605d03b9450c89048acf6b352b4d559a161177",
+ "54b53c45f4b9d9986891022b1d3b768a6b18f363",
+ "16901acf1f9bc61b40df349ccb56d578b8ef15f5",
+ "2efe85af77db375a51cb2607d921fb8af3c51bd7",
+ "6f9fad9e89942fced92daff4ad3e0eea847938f7",
+ "a7bd4830681e83d12dfa505e4acd64c51dff8cf6"
+ ],
+ "repository": {
+ "storageName": "default",
+ "relativePath": "homebrew-core.git",
+ "gitAlternateObjectDirectories": [],
+ "glRepository": "homebrew",
+ "glProjectPath": "homebrew/homebrew-core"
+ }
+}
diff --git a/_support/benchmarking/roles/client/files/queries/ListCommitsByOid/linux.git.json b/_support/benchmarking/roles/client/files/queries/ListCommitsByOid/linux.git.json
new file mode 100644
index 000000000..bb82ae09f
--- /dev/null
+++ b/_support/benchmarking/roles/client/files/queries/ListCommitsByOid/linux.git.json
@@ -0,0 +1,211 @@
+{
+ "oid": [
+ "f5020a08b2b371162a4a16ef97694cac3980397e",
+ "df65494ffbb351115e01016c376474bc424427a2",
+ "f9bbe0c99e5b76a76a1a7fe3bbdd7eaab9f5ab57",
+ "e2559b79127a92a36f907006fe89c137666fb3a5",
+ "eb037f16f7e843722db5f0275d84b3f738d5649d",
+ "991f173cd23cea2b4102cb78f779a7a43c29e76f",
+ "74bd160fd59f104ca15f4582fee97807146a3a7e",
+ "5be07b3fb53d14581f470745d129141b97d15614",
+ "91c77a6ec4e207085b9d4c27e6710f349d43195d",
+ "a83e18ccc486dc20fdb46109944ea1b450ac771e",
+ "7c42d6f5e663f39bcf56d08685d84a7b1d011c77",
+ "9c730fe10493d309f402cbd28ad539379b13a24d",
+ "64b4aef17ea65c423fbcdee323b503d8e3ffb3a2",
+ "fd979ca691715891a979ce12d1a485b108af74d3",
+ "6d3085e4d89ad7e6c7f1c6cf929d903393565861",
+ "4bbf3422df78029f03161640dcb1e9d1ed64d1ea",
+ "abd5ac18ae661681fbacd8c9d0a577943da4c89e",
+ "b3bbeba09453f87d37bd5f211887537c7bbc5a0b",
+ "de91b3197d15172407608b2c357aab7ac1451e2b",
+ "b7ffd9d9ee13de2c5ad88046a5149de4cfb2a74b",
+ "fcae44fd36d052e956e69a64642fc03820968d78",
+ "50e63dd8ed92045eb70a72d7ec725488320fb68b",
+ "42bf3ce70f2a969a1a92b797f8c690d43f968b1d",
+ "50f4dd657a0fcf90aa8da8dc2794a8100ff4c37c",
+ "6ce3df596be25d95c2cddc9e1b673394948e3732",
+ "6510c78490c490a6636e48b61eeaa6fb65981f4b",
+ "2e4b294576e32fb02562ad6839d6888ab7b45102",
+ "1767a722a708f1fa3b9af39eb091d79101f8c086",
+ "f014699cca9a9a28fbdc06a9225b54562154fc20",
+ "8395ee62b1b78a3d2789840bf6bf1a7c43deaa32",
+ "179228654ddefcbd99060a113ad02079dcdf22f1",
+ "23569b5652ee8e8e55a12f7835f59af6f3cefc30",
+ "acce40037041f97baad18142bb253064491ebde3",
+ "9a5523f72bd2b0d66eef3d58810c6eb7b5ffc143",
+ "9736a325137b62499d2b4be3fc2d742b131f75da",
+ "f111606b63ff2282428ffbac0447c871eb957b6c",
+ "0348c1ab980c1d43fb37b758d4b760990c066cb5",
+ "1893bb64c0d97f53febcfa606dc34dd581008d1d",
+ "879785def0f5e71d54399de0f8a5cb399db14171",
+ "1b16b3fdf675cca15a537572bac50cc5354368fc",
+ "63eec6f926ad8d1c8d658679349ef6581a800d4a",
+ "7f94d0498f9c763f37172c08059ae91804c3075a",
+ "fe5b3ce8b4377e543960220f539b989a927afd8a",
+ "f2d45fdf9a0ed2c94c01c422a0d0add8ffd42099",
+ "bf990c10231937c0f51e5da5558e08cf5adc6a78",
+ "5bf06c4c51c5948ec69cc5610aff945d98813010",
+ "79e28f2ab3440e08f5fbf65648b008341c37b496",
+ "c6092ea1e6d7bd12acd881f6aa2b5054cd70e096",
+ "d4072058af4fd8fb4658e7452289042a406a9398",
+ "dcea1a8107c04b9521dee1dd37971757a22db162",
+ "d75aed1428da787cbe42bc073d76f1354f364d92",
+ "6d47b53fb3f363a74538a1dbd09954af3d8d4131",
+ "675d84621a24490e1de3d59a4992a17fa9ff92b5",
+ "0c85c067c9d9d7a1b2cc2e01a236d5d0d4a872b5",
+ "e034a0d9aaee5c9129d5dfdfdfcab988a953412d",
+ "64f65135c41a75f933d3bca236417ad8e9eb75de",
+ "30b8e7b8ee3be003e0df85c857c5cd0e0bd58b82",
+ "ce902d987a8caa5c9a96080e280ecc992414a127",
+ "c0b2753f5db281b07013899c79b5f06a614055f9",
+ "ce62198d8b62734a985d22652e75a649be052390",
+ "0d5c5c210a4d4e655feb93b379647f0b179cdafe",
+ "ab4b35008db9b7ae747679250e5c26d7c3a90cea",
+ "632d06985235d988c9d7e6eec8fa655be0761fd0",
+ "77c092e054262b594614bad5e5f47e57c5d29639",
+ "b91c23e099f0b65d62159da13458c5eefa76083f",
+ "66f7903779fbbc620bf1040017e4833ef6a0b541",
+ "bc66c9ab162d2a633ee3eb864d7bc2369e79c1e4",
+ "0e710a3ffd0caaf23b8791b041e8792f252f8e4f",
+ "f23df5220d2bf8d5e639f074b76f206a736d09e1",
+ "f67dd6ce0723ad013395f20a3f79d8a437d3f455",
+ "7f1a6d4b9e820b08479a07f6e14c36ccfa641751",
+ "f4f4096b410e8d31c3f07f39de3b17d144edd53d",
+ "9e06430841363a1d2932d546fdce1cc5edb3c2a0",
+ "08912ea799cd2a43b8999457e316967fe4e2f327",
+ "8d4b475e9d0f100c3920d8bf7d392a6dac88583e",
+ "f9c955b4fe5c8626d11b8a9b93ccc0ba77358fec",
+ "7d167b4a4c810919ba1affd02fc6b7f40e7e6eeb",
+ "e12de39c07a7872c1ac7250311bb60b74ff29f25",
+ "2808b37b59288ad8f1897e3546c2296df3384b65",
+ "15f8f168952f54d3c86d734dc764f20844e423ac",
+ "30d17fac6aaedb40d111bb159f4b35525637ea78",
+ "d72cf8ffe460824fdc97f0a9295a2c4e0231a562",
+ "556f3c9ad7c101aa16a43ef4539f3aabc1d7b32e",
+ "4f1fa2a1bbeb2feca436d2c86bf6f78dc4e5e4c4",
+ "8631ef59b62290c7d88e7209e35dfb47f33f4902",
+ "0bd8bd2f7a789fe1dcb21ad148199d2f62d79873",
+ "2c1b54348a63096d4d4677743fba7a6d5fda9476",
+ "8e1071d0ad300fcce2e2b4e46cb15e41d0166bdc",
+ "bd3d394e367e66e773a6cb25a82c29b04464230b",
+ "9f2febf3f04daebdaaa5a43cfa20e3844905c0f9",
+ "e287bd005ad9d85dd6271dd795d3ecfb6bca46ad",
+ "e61ab42de874c5af8c5d98b327c77a374d9e7da1",
+ "73412dfeea724e6bd775ba64d21157ff322eac9a",
+ "181d0fb0bb023e8996b1cf7970e3708d72442b0b",
+ "001459787158280d84fce1bc94cec49f34f48b9f",
+ "f6d58266d731fd7e63163790aad21e0dbb1d5264",
+ "f7ef280132f9bf6f82acf5aa5c3c837206eef501",
+ "16fdc1de169ee0a4e59a8c02244414ec7acd55c3",
+ "debc5a1ec0d195ffea70d11efeffb713de9fdbc7",
+ "27c064ae14d1a80c790ce019759500c95a2a9551",
+ "a830a15678593948f3271a5a398c9b67d8beedb9",
+ "f352262f727215553879705bacbcb208979f3eff",
+ "5d041588e9f6aa79e4abfc26d93c948f15d4d5eb",
+ "980ec04a88c9f0046c1da65833fb77b2ffa34b04",
+ "02d2d2ea4a3bc2391f6ac31f6854da83e8a63829",
+ "035e3befc191347331dd2530c3686e05a8acfbb2",
+ "d38a648d2d6cc7bee11c6f533ff9426a00c2a74c",
+ "f002f45a00ee14214d96b18b9a555fe2c56afb20",
+ "c8af247de385ce49afabc3bf1cf4fd455c94bfe8",
+ "58bb78ce02269c0cf5b1f2bd2e4a605500b44c6b",
+ "8cbd4725ffff3eface1f5f3397af02acad5b2831",
+ "742c60e1285ca40642e988f7e3db92232171b27d",
+ "b06334919c7a068d54ba5b219c05e919d89943f7",
+ "07d120aa33cc9d9115753d159f64d20c94458781",
+ "519b58bbfa825f042fcf80261cc18e1e35f85ffd",
+ "2b0145032877fe0fa3460dfff285cc2fdcc9fc2e",
+ "03c1f1ef1584c981935fab2fa0c45d3e43e2c235",
+ "03832a32bf8ff0a8305d94ddd3979835a807248f",
+ "94d957ae513fc420d0a5a9bac815eb49ffebb56f",
+ "20ebc4a649b82e6ad892684c76ea1e8dd786d336",
+ "ad353b710c7493df3d4fc2d3a51819126bed2e81",
+ "84d1b2013272947ad9b13025df89226d8fa31cc5",
+ "f141df371335645ce29a87d9683a3f79fba7fd67",
+ "f49b2d89fb10ef5fa5fa1993f648ec5daa884bef",
+ "80ddf5ce1c9291cb175d52ed1227134ad48c47ee",
+ "9afea696a04af29b114b38aec734e28b03e93dae",
+ "6191de8b175fad1a877ae8ed4be699a5022b9c03",
+ "000f8870a47bdc36730357883b6aef42bced91ee",
+ "50256e4793a5e5ab77703c82a47344ad2e774a59",
+ "ce9e57feeed81d17d5e80ed86f516ff0d39c3867",
+ "2f01a612d4758b45f775dbb88a49cf534ba47275",
+ "e0b26b9482461e9528552f54fa662c2269f75b3f",
+ "f0dfc4c88ef39be0ba736aa0ce6119263fc19aeb",
+ "b0c09c7f08c2467b2089bdf4adb2fbbc2464f4a8",
+ "3faf7e14ec0c3462c2d747fa6793b8645d1391df",
+ "fdcc4c22b7ab20e90b97f8bc6225d876b72b8f16",
+ "653f2d94fcda200b02bd79cea2e0307b26c1b747",
+ "308451d9c7fece33d9551230cb8e5eb7f3914988",
+ "ea83ec50393a6993fa09315e4200240c938c21b3",
+ "971cb608d1c5d95533a43b549bb8ec9637f10043",
+ "c47e6403fa099f200868d6b106701cb42d181d2b",
+ "28cbe5a0a46a6637adbda52337d7b2777fc04027",
+ "580ee84405c27d6ed419abe4d2b3de1968abdafd",
+ "ef2cb4f0ce479f77607b04c4b0414bf32f863ee8",
+ "ba2423633ba646e1df20e30cb3cf35495c16f173",
+ "03ed9ba357cc78116164b90b87f45eacab60b561",
+ "6ba826cbb57d675f447b59323204d1473bbd5593",
+ "06988949df8c3007ad82036d3606d8ae72ed9000",
+ "c6babed879fbe82796a601bf097649e07382db46",
+ "6e5ad28d16f082efeae3d0bd2e31f24bed218019",
+ "f645f85ae1104f8bd882f962ac0a69a1070076dd",
+ "fcd37565efdaffeac179d0f0ce980ac79bfdf569",
+ "8a47221fc28417ff8a32a4f92d4448a56c3cf7e1",
+ "7176a6a8982d311e50a7c1168868d26e65bbba19",
+ "f1171bbdd2ba2a50ee64bb198a78c268a5baf5f1",
+ "140fd5e74a1cc7413df88c735fff5ec64d33c1d3",
+ "ac2b9f34f02052709aea7b34bb2a165e1853eb41",
+ "081195d17a0c4c636da2b869bd5809d42e8cbb13",
+ "8454f880c24bca0d9d4bfb6ed4a4a5429a4d9b20",
+ "0b8c97a1d8c1bb6a853b8bb1778e8fef17b86fc9",
+ "e8dbd6445dd6b38c4c50410a86f13158486ee99a",
+ "b3d726cb8497c6b12106fd617d46eef11763ea86",
+ "89bbe785b4d196cc3d00056adc58da8484a824a1",
+ "2f201ae14ae0f91dbf1cffea7bb1e29e81d4d108",
+ "9f0b773210c27a8f5d98ddb2fc4ba60a42a3285f",
+ "1c075b192fe41030457cd4a5f7dea730412bca40",
+ "8d820bc9d12b8beebca836cceaf2bbe68216c2f8",
+ "02f5999e652952d69c341a03d4313310703fd7f1",
+ "ec683f02a150b9c4428f08accd387c8c216ea0e5",
+ "ed4314f7729714d788698ade4f9905ee5378ebc0",
+ "59f2f4b8a757412fce372f6d0767bdb55da127a8",
+ "a1de832bd3243577de365222d8bc92708005ebf3",
+ "c18c20f16219516b12a4f2fd29c25e06be97e064",
+ "c4299907c09a638c0a30f029338d07941c049d73",
+ "c62f6bec53e63b11112e1ebce6bbaa39ce6f6706",
+ "a8d1b1647bf8244a5f270538e9e636e2657fffa3",
+ "21e61ec6d0bb786818490e926aa9aeb4de95ad0d",
+ "b75b51f886e9dd8cdfca1392ad43f4e542611c00",
+ "8bb808c6ad91ec3d332f072ce8f8aa4b16e307e0",
+ "9b2f20344d450137d015b380ff0c2e2a6a170135",
+ "0fca385d6ebc3cabb20f67bcf8a71f1448bdc001",
+ "178e31ce82d0308a9e5f2f15bfb4493160136729",
+ "19b168136395150a4a6e011f944eb30d3d85094b",
+ "4ff4ebac3f1378f4ba6e11fe5ad4a4ac590bb8a4",
+ "f90daa975911961b65070ec72bd7dd8d448f9ef7",
+ "8b043dfb3dc7c32f9c2c0c93e3c2de346ee5e358",
+ "ae64438be1923e3c1102d90fd41db7afcfaf54cc",
+ "3eb3d283e8579a22b81dd2ac3987b77465b2a22f",
+ "866337865f3747c68a3e7bb837611e39cec1ecd6",
+ "8aa59e355949442c408408c2d836e561794c40a1",
+ "a3335faebe1608f3e78e24f09501c9f7d5ebf87a",
+ "162503fd1c3a1d4e14dbe7f399c1d1bec1c8abbc",
+ "836078449464e6af3b66ae6652dae79af176f21e",
+ "fb1dec44c6750bb414f47b929c8c175a1a127c31",
+ "56baa208f91061ff27ec2d93fbc483f624d373b4",
+ "5d249ac37fc2396e8acc1adb0650cdacae5a990d",
+ "ebb5fd38f41132e6924cb33b647337f4a5d5360c",
+ "c23fb2c82267638f9d206cb96bb93e1f93ad7828",
+ "53eb64c88f17b14b324fbdfd417f56c5d3fa6fee",
+ "a977ece5773b6746b814aac410da4776023db239"
+ ],
+ "repository": {
+ "storageName": "default",
+ "relativePath": "linux.git",
+ "gitAlternateObjectDirectories": [],
+ "glRepository": "linux",
+ "glProjectPath": "torvalds/linux"
+ }
+}
diff --git a/_support/benchmarking/roles/client/tasks/main.yml b/_support/benchmarking/roles/client/tasks/main.yml
new file mode 100644
index 000000000..6683fab00
--- /dev/null
+++ b/_support/benchmarking/roles/client/tasks/main.yml
@@ -0,0 +1,66 @@
+---
+- name: Create 'git' user
+ user:
+ name: git
+ uid: 1999
+ groups: admin
+ append: true
+
+- name: Create /src directory
+ file:
+ path: /src
+ state: directory
+ mode: '0755'
+ owner: git
+ group: git
+
+- name: Clone Gitaly
+ git:
+ repo: https://gitlab.com/gitlab-org/gitaly.git
+ dest: /src/gitaly
+ version: "{{ gitaly_revision }}"
+ become_user: git
+
+- name: Find Gitaly's Golang version
+ shell: "awk '/^golang /{ print $2 }' /src/gitaly/.tool-versions"
+ register: golang_version
+
+- name: Persist golang_version
+ set_fact:
+ golang_version: "{{ golang_version['stdout'] }}"
+
+- name: Install ghz
+ unarchive:
+ src: "https://github.com/bojand/ghz/releases/download/{{ ghz_version }}/ghz-linux-x86_64.tar.gz"
+ dest: /usr/local/bin
+ include:
+ - ghz
+ remote_src: true
+
+- name: Copy query files
+ copy:
+ src: queries
+ dest: /opt/ghz
+ owner: git
+ group: git
+ mode: '0755'
+
+- name: Install benchmark-gitaly.sh as benchmark-gitaly
+ copy:
+ src: benchmark-gitaly.sh
+ dest: /usr/local/bin/benchmark-gitaly
+ mode: '0755'
+
+- name: Generate SSH key
+ shell: ssh-keygen -q -t ed25519 -f /root/.ssh/id_ed25519 -N ""
+ args:
+ creates: /root/.ssh/id_ed25519
+
+- name: Copy SSH key
+ slurp:
+ src: /root/.ssh/id_ed25519.pub
+ register: client_ssh_key_var
+
+- name: Persist SSH key as fact
+ set_fact:
+ client_ssh_key: "{{ client_ssh_key_var['content'] }}"
diff --git a/_support/benchmarking/roles/client/vars/main.yml b/_support/benchmarking/roles/client/vars/main.yml
new file mode 100644
index 000000000..a528472e8
--- /dev/null
+++ b/_support/benchmarking/roles/client/vars/main.yml
@@ -0,0 +1,2 @@
+---
+ghz_version: v0.111.0
diff --git a/_support/benchmarking/roles/deploy/handlers/main.yml b/_support/benchmarking/roles/deploy/handlers/main.yml
new file mode 100644
index 000000000..d5d2716a9
--- /dev/null
+++ b/_support/benchmarking/roles/deploy/handlers/main.yml
@@ -0,0 +1,16 @@
+---
+- name: scan SSH keys
+ command: "ssh-keyscan {{ item }}"
+ register: ssh_keys
+ loop: "{{ [tfstate.outputs.gitaly_ssh_ip.value] | list + [tfstate.outputs.client_ssh_ip.value] }}"
+ listen: add hostkeys
+ retries: 15
+ until: ssh_keys is not failed
+ delay: 10
+
+- name: add SSH keys to known hosts
+ known_hosts:
+ name: "{{ item.item }}"
+ key: "{{ item.stdout }}"
+ loop: "{{ ssh_keys.results }}"
+ listen: add hostkeys
diff --git a/_support/benchmarking/roles/deploy/tasks/main.yml b/_support/benchmarking/roles/deploy/tasks/main.yml
new file mode 100644
index 000000000..64ea5b1e2
--- /dev/null
+++ b/_support/benchmarking/roles/deploy/tasks/main.yml
@@ -0,0 +1,33 @@
+---
+- name: GCloud login
+ block:
+ - name: GCloud login status
+ command: gcloud auth application-default print-access-token
+ changed_when: false
+ rescue:
+ - name: GCloud login
+ command: gcloud auth application-default login
+
+- name: terraform.tfvars
+ template:
+ src: terraform.tfvars.j2
+ dest: "{{ playbook_dir }}/terraform/terraform.tfvars"
+
+- name: terraform apply
+ terraform:
+ project_path: "{{ playbook_dir }}/terraform"
+ variables_file: terraform.tfvars
+ force_init: true
+ register: tfstate
+ notify:
+ - add hostkeys
+
+- name: hosts.ini
+ template:
+ src: hosts.ini.j2
+ dest: "{{ playbook_dir }}/hosts.ini"
+
+- name: all.yml
+ template:
+ src: all.yml.j2
+ dest: "{{ playbook_dir }}/group_vars/all.yml"
diff --git a/_support/benchmarking/roles/deploy/templates/all.yml.j2 b/_support/benchmarking/roles/deploy/templates/all.yml.j2
new file mode 100644
index 000000000..6dced9368
--- /dev/null
+++ b/_support/benchmarking/roles/deploy/templates/all.yml.j2
@@ -0,0 +1,21 @@
+---
+gitaly_revision: "{{ gitaly_revision }}"
+repos:
+ - git.git
+ - linux.git
+ - gitlab.git
+ - homebrew-core.git
+ - chromium.git
+rpcs:
+ - find_commit:
+ rpc: FindCommit
+ service: gitaly.CommitService
+ proto: commit.proto
+ - get_blobs:
+ rpc: GetBlobs
+ service: gitaly.BlobService
+ proto: blob.proto
+ - list_commits_by_oid:
+ rpc: ListCommitsByOid
+ service: gitaly.CommitService
+ proto: commit.proto
diff --git a/_support/benchmarking/roles/deploy/templates/hosts.ini.j2 b/_support/benchmarking/roles/deploy/templates/hosts.ini.j2
new file mode 100644
index 000000000..19d7b70b2
--- /dev/null
+++ b/_support/benchmarking/roles/deploy/templates/hosts.ini.j2
@@ -0,0 +1,5 @@
+[gitaly]
+{{ tfstate.outputs.gitaly_ssh_ip.value }} internal={{ tfstate.outputs.gitaly_internal_ip.value }}
+
+[client]
+{{ tfstate.outputs.client_ssh_ip.value }} internal={{ tfstate.outputs.client_internal_ip.value }}
diff --git a/_support/benchmarking/roles/deploy/templates/terraform.tfvars.j2 b/_support/benchmarking/roles/deploy/templates/terraform.tfvars.j2
new file mode 100644
index 000000000..e8c156c55
--- /dev/null
+++ b/_support/benchmarking/roles/deploy/templates/terraform.tfvars.j2
@@ -0,0 +1,3 @@
+# This variable will be prefixed to all machines created by terraform
+gitaly_benchmarking_instance_name = "{{ gitaly_benchmarking_instance_name }}"
+ssh_pubkey = "{{ lookup('file', ssh_pubkey) }}"
diff --git a/_support/benchmarking/roles/destroy/handlers/main.yml b/_support/benchmarking/roles/destroy/handlers/main.yml
new file mode 100644
index 000000000..b2bb0d182
--- /dev/null
+++ b/_support/benchmarking/roles/destroy/handlers/main.yml
@@ -0,0 +1,5 @@
+---
+- name: Remove SSH keys from known hosts
+ command: "ssh-keygen -R {{ item }}"
+ loop: "{{ groups['gitaly'] | list + groups['client'] }}"
+ listen: remove hostkeys
diff --git a/_support/benchmarking/roles/destroy/tasks/main.yml b/_support/benchmarking/roles/destroy/tasks/main.yml
new file mode 100644
index 000000000..38c0d1f12
--- /dev/null
+++ b/_support/benchmarking/roles/destroy/tasks/main.yml
@@ -0,0 +1,8 @@
+---
+- name: terraform destroy
+ terraform:
+ project_path: "{{ playbook_dir }}/terraform"
+ variables_file: terraform.tfvars
+ state: absent
+ notify:
+ - remove hostkeys
diff --git a/_support/benchmarking/roles/gitaly/files/gitaly.service b/_support/benchmarking/roles/gitaly/files/gitaly.service
new file mode 100644
index 000000000..eb487d849
--- /dev/null
+++ b/_support/benchmarking/roles/gitaly/files/gitaly.service
@@ -0,0 +1,29 @@
+[Unit]
+Description=Gitaly
+After=syslog.target network.target remote-fs.target nss-lookup.target
+
+[Service]
+ExecStart=/opt/gitaly/bin/gitaly /var/opt/gitaly/config.toml
+ExecReload=/bin/kill -s HUP $MAINPID
+ExecStop=/bin/kill -s TERM $MAINPID
+WorkingDirectory=/var/opt/gitaly
+User=git
+Group=git
+LimitAS=infinity
+LimitCORE=0
+LimitCPU=infinity
+LimitDATA=infinity
+LimitFSIZE=infinity
+LimitLOCKS=infinity
+LimitMEMLOCK=64
+LimitMSGQUEUE=838860800
+LimitNICE=0
+LimitNOFILE=15000
+LimitNPROC=infinity
+LimitRSS=infinity
+LimitRTPRIO=0
+LimitSIGPENDING=62793
+LimitSTACK=10485760
+
+[Install]
+WantedBy=
diff --git a/_support/benchmarking/roles/gitaly/files/profile-gitaly.sh b/_support/benchmarking/roles/gitaly/files/profile-gitaly.sh
new file mode 100755
index 000000000..e7bfe01d0
--- /dev/null
+++ b/_support/benchmarking/roles/gitaly/files/profile-gitaly.sh
@@ -0,0 +1,90 @@
+#!/bin/sh
+#
+# profile-gitaly: Profile host with perf and libbpt-tools.
+# Must be run as root.
+#
+# Mandatory options:
+# -d <DURATION_SECS> : Number of seconds to profile for
+# -g <GIT_REPO> : Name of Git repository being used
+# -o <OUTPUT_DIR> : Directory to write output to
+# -r <RPC> : Name of RPC being executed
+
+set -e
+
+usage() {
+ echo "Usage: $0 -d <DURATION_SECS> -o <OUTPUT_DIR> -r <RPC> -g <GIT_REPOSITORY>"
+ exit
+}
+
+main() {
+ if [ "$(id -u)" -ne 0 ]; then
+ echo "$0 must be run as root"
+ exit 1
+ fi
+
+ while getopts "hd:g:o:r:" arg; do
+ case "$arg" in
+ d) seconds=${OPTARG}
+ ;;
+ g) repo=${OPTARG}
+ ;;
+ o) out_dir=${OPTARG}
+ ;;
+ r) rpc=${OPTARG}
+ ;;
+ h|*) usage
+ ;;
+ esac
+ done
+ shift $((OPTIND-1))
+
+ if [ "$seconds" -le 0 ] || [ -z "$out_dir" ] || [ -z "$rpc" ] || [ -z "$repo" ]; then
+ usage
+ exit 1
+ fi
+
+ if ! pidof gitaly > /dev/null; then
+ echo "Gitaly is not running, aborting"
+ exit 1
+ fi
+
+ # Add utilities to $PATH
+ export PATH="$PATH:/usr/local/bin"
+
+ perf_tmp_dir=$(mktemp -d /tmp/gitaly-perf.XXXXXX)
+
+ gitaly_perf_out=$(mktemp "${perf_tmp_dir}/gitaly-perf-${rpc}-${repo}.XXXXXX")
+ perf record --freq=99 --call-graph=fp --pid="$(pidof -s gitaly)" --no-inherit --output="$gitaly_perf_out" -- sleep "$seconds" &
+
+ all_perf_out=$(mktemp "${perf_tmp_dir}/all-perf-${rpc}-${repo}.XXXXXX")
+ perf record --freq=99 --call-graph=dwarf --all-cpus --output="$all_perf_out" -- sleep "$seconds" &
+
+ timeout "$seconds" execsnoop --uid=1999 --quote > "${out_dir}/gitaly-execs.txt" &
+
+ cpudist "$seconds" 1 > "${out_dir}/cpu-dist-on.txt" &
+
+ cpudist --offcpu "$seconds" 1 > "${out_dir}/cpu-dist-off.txt" &
+
+ biolatency --disk "$seconds" 1 > "${out_dir}/biolatency.txt" &
+
+ biotop --noclear --rows 100 "$seconds" 1 > "${out_dir}/biotop.txt" &
+
+ cachestat "$seconds" 1 > "${out_dir}/page-cachestat.txt" &
+
+ wait
+
+ journalctl --output=cat _PID="$(pidof -s gitaly)" > "${out_dir}/gitaly.log"
+
+ gitaly_perf_svg="${out_dir}/gitaly-perf.svg"
+ perf script --header --input="$gitaly_perf_out" | stackcollapse | flamegraph > "$gitaly_perf_svg" &
+
+ all_perf_svg="${out_dir}/all-perf.svg"
+ perf script --header --input="$all_perf_out" | stackcollapse | flamegraph > "$all_perf_svg" &
+
+ wait
+
+ chown -R git:git "$out_dir"
+ rm -rf "$perf_tmp_dir"
+}
+
+main "$@"
diff --git a/_support/benchmarking/roles/gitaly/handlers/main.yml b/_support/benchmarking/roles/gitaly/handlers/main.yml
new file mode 100644
index 000000000..266e768b6
--- /dev/null
+++ b/_support/benchmarking/roles/gitaly/handlers/main.yml
@@ -0,0 +1,7 @@
+---
+- name: Load Gitaly service
+ systemd:
+ name: gitaly
+ state: stopped
+ daemon_reload: true
+ listen: load service
diff --git a/_support/benchmarking/roles/gitaly/tasks/initialize.yml b/_support/benchmarking/roles/gitaly/tasks/initialize.yml
new file mode 100644
index 000000000..98ec67a90
--- /dev/null
+++ b/_support/benchmarking/roles/gitaly/tasks/initialize.yml
@@ -0,0 +1,44 @@
+---
+- name: Install client SSH pubkey
+ authorized_key:
+ user: root
+ key: "{{ hostvars[groups['client'][0]]['client_ssh_key'] | b64decode }}"
+
+# Set high uid to ensure it's not squashed by another service
+- name: Create 'git' user
+ user:
+ name: git
+ uid: 1999
+ groups: admin
+ append: true
+
+- name: Mount repositories disk
+ mount:
+ path: /mnt/git-repositories
+ src: /dev/disk/by-id/google-repository-disk
+ fstype: ext4
+ opts: discard,defaults
+ state: mounted
+
+- name: Set git as owner of git-repositories directory
+ file:
+ path: /mnt/git-repositories
+ owner: git
+ group: git
+ state: directory
+ recurse: yes
+
+- name: Create /src directory
+ file:
+ path: /src
+ state: directory
+ mode: '0755'
+ owner: git
+ group: git
+
+# Match limits set by Omnibus
+- name: Set file-max
+ shell: echo "1000000" > /proc/sys/fs/file-max
+
+- name: Update apt cache
+ apt: update_cache=yes
diff --git a/_support/benchmarking/roles/gitaly/tasks/main.yml b/_support/benchmarking/roles/gitaly/tasks/main.yml
new file mode 100644
index 000000000..5b2e640c8
--- /dev/null
+++ b/_support/benchmarking/roles/gitaly/tasks/main.yml
@@ -0,0 +1,7 @@
+---
+- include_tasks: initialize.yml
+- include_tasks: setup_go.yml
+- include_tasks: setup_ruby.yml
+- include_tasks: setup_gitaly.yml
+- include_tasks: setup_gitlab_shell.yml
+- include_tasks: setup_profiling.yml
diff --git a/_support/benchmarking/roles/gitaly/tasks/setup_gitaly.yml b/_support/benchmarking/roles/gitaly/tasks/setup_gitaly.yml
new file mode 100644
index 000000000..596883acb
--- /dev/null
+++ b/_support/benchmarking/roles/gitaly/tasks/setup_gitaly.yml
@@ -0,0 +1,128 @@
+---
+- name: Create /var/opt/gitaly directory
+ file:
+ path: /var/opt/gitaly
+ state: directory
+ mode: '0700'
+ owner: git
+ group: git
+
+- name: Create /opt/gitaly directory
+ file:
+ path: /opt/gitaly
+ state: directory
+ mode: '0755'
+ owner: git
+ group: git
+
+- name: Create runtime directory
+ file:
+ path: /var/opt/gitaly/run
+ state: directory
+ mode: '0700'
+ owner: git
+ group: git
+
+- name: Create log directory
+ file:
+ path: /var/log/gitaly
+ state: directory
+ mode: '0755'
+ owner: git
+ group: git
+
+- name: Create gitaly-ruby directory
+ file:
+ path: /opt/gitaly-ruby
+ state: directory
+ mode: '0755'
+ owner: git
+ group: git
+
+- name: Install Gitaly build dependencies
+ apt:
+ name:
+ - cmake
+ - libssl-dev
+ - pkg-config
+ state: present
+
+- name: Install Git build dependencies
+ apt:
+ name:
+ - dh-autoreconf
+ - libcurl4-gnutls-dev
+ - libexpat1-dev
+ - gettext
+ - libz-dev
+ - libssl-dev
+ - asciidoc
+ - libffi-dev
+ - xmlto
+ - docbook2x
+ - install-info
+ - libpcre2-dev
+ state: present
+
+- name: Clone Gitaly
+ git:
+ repo: https://gitlab.com/gitlab-org/gitaly.git
+ dest: /src/gitaly
+ version: "{{ gitaly_revision }}"
+ become_user: git
+
+- name: Build Gitaly
+ make:
+ target: build
+ params:
+ WITH_BUNDLED_GIT: YesPlease
+ jobs: "{{ ansible_processor_nproc }}"
+ chdir: /src/gitaly
+ environment:
+ PATH: '/usr/local/go/bin:{{ ansible_env.PATH }}'
+ become_user: git
+
+- name: Install Gitaly to /opt/gitaly
+ make:
+ target: install
+ params:
+ WITH_BUNDLED_GIT: YesPlease
+ PREFIX: /opt/gitaly
+ jobs: "{{ ansible_processor_nproc }}"
+ chdir: /src/gitaly
+ environment:
+ PATH: '/usr/local/go/bin:{{ ansible_env.PATH }}'
+ become_user: git
+
+- name: Copy Gitaly-Ruby to ruby directory
+ copy:
+ src: /src/gitaly/ruby/
+ dest: /opt/gitaly-ruby/
+ owner: git
+ group: git
+ mode: '0755'
+ remote_src: true
+
+- name: Install Gitaly config
+ template:
+ src: config.toml.j2
+ dest: /var/opt/gitaly/config.toml
+ owner: git
+ group: git
+ mode: '0600'
+
+- name: Install gems
+ shell: bundle install
+ args:
+ chdir: /opt/gitaly-ruby
+ become_user: git
+
+- name: Install Gitaly systemd service
+ copy:
+ src: gitaly.service
+ dest: /etc/systemd/system/gitaly.service
+ owner: root
+ group: root
+ mode: '0644'
+ notify:
+ - load service
diff --git a/_support/benchmarking/roles/gitaly/tasks/setup_gitlab_shell.yml b/_support/benchmarking/roles/gitaly/tasks/setup_gitlab_shell.yml
new file mode 100644
index 000000000..86726320b
--- /dev/null
+++ b/_support/benchmarking/roles/gitaly/tasks/setup_gitlab_shell.yml
@@ -0,0 +1,42 @@
+---
+- name: Create /opt/gitlab-shell directory
+ file:
+ path: /opt/gitlab-shell
+ state: directory
+ mode: '0755'
+ owner: git
+ group: git
+
+- name: Clone gitlab-shell
+ git:
+ repo: https://gitlab.com/gitlab-org/gitlab-shell.git
+ dest: /src/gitlab-shell
+ version: HEAD
+ become_user: git
+
+- name: Build gitlab-shell
+ make:
+ target: build
+ jobs: "{{ ansible_processor_nproc }}"
+ chdir: /src/gitlab-shell
+ environment:
+ PATH: '/usr/local/go/bin:{{ ansible_env.PATH }}'
+ become_user: git
+
+- name: Install gitlab-shell to /opt/gitlab-shell
+ make:
+ target: install
+ params:
+ PREFIX: /opt/gitlab-shell
+ jobs: "{{ ansible_processor_nproc }}"
+ chdir: /src/gitlab-shell
+ environment:
+ PATH: '/usr/local/go/bin:{{ ansible_env.PATH }}'
+
+- name: Create gitlab-shell secret
+ file:
+ path: /var/opt/gitaly/shell.secret
+ state: touch
+ mode: '0400'
+ owner: git
+ group: git
diff --git a/_support/benchmarking/roles/gitaly/tasks/setup_go.yml b/_support/benchmarking/roles/gitaly/tasks/setup_go.yml
new file mode 100644
index 000000000..afafb220a
--- /dev/null
+++ b/_support/benchmarking/roles/gitaly/tasks/setup_go.yml
@@ -0,0 +1,14 @@
+---
+- name: Create /usr/local/go directory
+ file:
+ path: /usr/local/go
+ state: directory
+ mode: 0755
+
+# Relies on client setup detecting Go version first
+- name: Install Go
+ unarchive:
+ src: "https://go.dev/dl/go{{ hostvars[groups['client'][0]]['golang_version'] }}.linux-amd64.tar.gz"
+ dest: /usr/local
+ remote_src: true
+ creates: /usr/local/go/bin/go
diff --git a/_support/benchmarking/roles/gitaly/tasks/setup_profiling.yml b/_support/benchmarking/roles/gitaly/tasks/setup_profiling.yml
new file mode 100644
index 000000000..7e8ff5dda
--- /dev/null
+++ b/_support/benchmarking/roles/gitaly/tasks/setup_profiling.yml
@@ -0,0 +1,87 @@
+---
+- name: Install perf
+ apt:
+ name:
+ - linux-tools-common
+ - "linux-tools-{{ ansible_kernel }}"
+ - "linux-headers-{{ ansible_kernel }}"
+ state: present
+
+- name: Install bcc dependencies
+ apt:
+ name:
+ - bison
+ - build-essential
+ - cmake
+ - clang
+ - flex
+ - git
+ - libedit-dev
+ - libllvm14
+ - llvm-14-dev
+ - libclang-14-dev
+ - python3
+ - zlib1g-dev
+ - libelf-dev
+ - libfl-dev
+ - python3-distutils
+ state: present
+
+- name: Clone bcc
+ git:
+ repo: https://github.com/iovisor/bcc.git
+ dest: /src/bcc
+ version: "{{ bcc_revision }}"
+ become_user: git
+
+# Required to build libbpf-tools
+- name: Symlink /usr/include/asm-generic to asm
+ file:
+ src: /usr/include/asm-generic
+ dest: /usr/include/asm
+ state: link
+
+# Required to build libbpf-tools
+- name: Symlink /usr/bin/llvm-strip-14 to llvm-strip
+ file:
+ src: /usr/bin/llvm-strip-14
+ dest: /usr/bin/llvm-strip
+ state: link
+
+- name: Make libbpf-tools
+ make:
+ chdir: /src/bcc/libbpf-tools
+ become_user: git
+
+- name: Install libbpf-tools
+ make:
+ target: install
+ chdir: /src/bcc/libbpf-tools
+
+- name: Clone Flamegraph
+ git:
+ repo: https://github.com/brendangregg/flamegraph.git
+ dest: /src/flamegraph
+ become_user: git
+
+- name: Install stackcollapse-perf.pl as stackcollapse
+ copy:
+ src: /src/flamegraph/stackcollapse-perf.pl
+ dest: /usr/local/bin/stackcollapse
+ mode: 0755
+ remote_src: true
+
+- name: Install flamegraph.pl as flamegraph
+ copy:
+ src: /src/flamegraph/flamegraph.pl
+ dest: /usr/local/bin/flamegraph
+ mode: 0755
+ remote_src: true
+
+- name: Install profile-gitaly.sh as profile-gitaly
+ copy:
+ src: profile-gitaly.sh
+ dest: /usr/local/bin/profile-gitaly
+ owner: root
+ group: root
+ mode: '0755'
diff --git a/_support/benchmarking/roles/gitaly/tasks/setup_ruby.yml b/_support/benchmarking/roles/gitaly/tasks/setup_ruby.yml
new file mode 100644
index 000000000..a71f5e61d
--- /dev/null
+++ b/_support/benchmarking/roles/gitaly/tasks/setup_ruby.yml
@@ -0,0 +1,33 @@
+---
+- name: Install Ruby build dependencies
+ apt:
+ name:
+ - autogen
+ - autoconf
+ - build-essential
+ - libtool
+ - libyaml-dev
+ - libreadline6-dev
+ - libncurses5-dev
+ - libffi-dev
+ - libgdbm-dev
+ - zlib1g-dev
+ state: present
+
+- name: Get ruby-build source
+ unarchive:
+ src: "https://github.com/rbenv/ruby-build/archive/refs/tags/v{{ ruby_build_version }}.tar.gz"
+ dest: /src
+ remote_src: true
+ creates: "/src/ruby-build-{{ ruby_build_version }}"
+ register: ruby_build
+ become_user: git
+
+- name: Install ruby-build
+ shell: "PREFIX=/usr/local /src/ruby-build-{{ ruby_build_version }}/install.sh"
+ when: ruby_build.changed == True
+
+- name: Build Ruby
+ shell: ruby-build 2.7.7 /usr/local
+ args:
+ creates: /usr/local/bin/ruby
diff --git a/_support/benchmarking/roles/gitaly/templates/config.toml.j2 b/_support/benchmarking/roles/gitaly/templates/config.toml.j2
new file mode 100644
index 000000000..9a9b2c230
--- /dev/null
+++ b/_support/benchmarking/roles/gitaly/templates/config.toml.j2
@@ -0,0 +1,61 @@
+socket_path = "/var/opt/gitaly/gitaly.socket"
+
+# The directory where Gitaly's executables are stored
+bin_dir = "/opt/gitaly/bin"
+
+# The directory where Gitaly creates all data required at runtime.
+runtime_dir = "/var/opt/gitaly/run"
+
+# # Optional: listen on a TCP socket. This is insecure (no authentication)
+listen_addr = "0.0.0.0:8075"
+# tls_listen_addr = "127.0.0.1:8888
+
+# # Optional: export metrics via Prometheus
+prometheus_listen_addr = "127.0.0.1:9236"
+
+# # Optional: authenticate Gitaly requests using a shared secret
+[auth]
+# token = 'abc123secret'
+
+# transitioning = false # Set `transitioning` to true to temporarily allow unauthenticated while rolling out authentication.
+
+# [tls]
+# certificate_path = '/home/git/cert.cert'
+# key_path = '/home/git/key.pem'
+
+# # Git settings
+[git]
+use_bundled_binaries = true
+catfile_cache_size = 10
+ignore_gitconfig = true
+
+[[storage]]
+name = "default"
+path = "/mnt/git-repositories"
+
+# # You can optionally configure Gitaly to output JSON-formatted log messages to stdout
+[logging]
+level = "info"
+format = "json"
+dir = "/var/log/gitaly"
+
+[gitaly-ruby]
+# The directory where gitaly-ruby is installed
+dir = "/opt/gitaly-ruby"
+
+[gitlab-shell]
+# The directory where gitlab-shell is installed
+dir = "/opt/gitlab-shell"
+
+[gitlab]
+url = "http://127.0.0.1:3001"
+secret_file = "/var/opt/gitaly/shell.secret"
+
+[gitlab.http-settings]
+self_signed_cert = false
+
+[pack_objects_cache]
+enabled = true
+dir = "/mnt/git-repositories/+gitaly/PackObjectsCache"
+max_age = '5m'
+
diff --git a/_support/benchmarking/roles/gitaly/vars/main.yml b/_support/benchmarking/roles/gitaly/vars/main.yml
new file mode 100644
index 000000000..5d2ee7318
--- /dev/null
+++ b/_support/benchmarking/roles/gitaly/vars/main.yml
@@ -0,0 +1,3 @@
+---
+bcc_revision: 88b5edbdc98a50dedf9a911b8f1ab5a63c574767
+ruby_build_version: 20221206
diff --git a/_support/benchmarking/run-benchmarks b/_support/benchmarking/run-benchmarks
new file mode 100755
index 000000000..21e5feeb7
--- /dev/null
+++ b/_support/benchmarking/run-benchmarks
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec ansible-playbook -i hosts.ini benchmark.yml "$@"
diff --git a/_support/benchmarking/terraform/main.tf b/_support/benchmarking/terraform/main.tf
new file mode 100644
index 000000000..2572c12a6
--- /dev/null
+++ b/_support/benchmarking/terraform/main.tf
@@ -0,0 +1,129 @@
+variable "project" { default = "group-gtly-bench" }
+variable "benchmark_region" { default = "us-central1" }
+variable "benchmark_zone" { default = "us-central1-a" }
+variable "gitaly_benchmarking_instance_name" { }
+variable "ssh_pubkey" { }
+variable "os_image" { default = "ubuntu-os-cloud/ubuntu-2204-lts" }
+variable "startup_script" {
+ default = <<EOF
+ set -e
+ if [ -d /src/gitaly ] ; then exit; fi
+ EOF
+}
+variable "gitaly_machine_type" { default = "t2d-standard-4" }
+variable "client_machine_type" { default = "n1-standard-1" }
+variable "boot_disk_size" { default = "20" }
+
+provider "google" {
+ project = var.project
+ region = var.benchmark_region
+ zone = var.benchmark_zone
+}
+
+resource "google_compute_firewall" "default" {
+ name = "gitaly-firewall"
+ network = "default"
+
+ allow {
+ protocol = "icmp"
+ }
+
+ allow {
+ protocol = "tcp"
+ ports = ["8075"]
+ }
+
+ source_ranges = ["10.0.0.0/24"]
+ target_tags = ["gitaly"]
+}
+
+resource "google_compute_network" "default" {
+ name = "test-network"
+}
+
+data "google_compute_disk" "repository-disk" {
+ name = "git-repos"
+ project = "wchandler-a1c8fd64"
+}
+
+resource "google_compute_disk" "repository-disk" {
+ name = format("%s-repository-disk", var.gitaly_benchmarking_instance_name)
+ type = "pd-balanced"
+ image = format("projects/%s/global/images/git-repositories", var.project)
+}
+
+resource "google_compute_instance" "gitaly" {
+ name = format("%s-gitaly", var.gitaly_benchmarking_instance_name)
+ machine_type = var.gitaly_machine_type
+
+ boot_disk {
+ initialize_params {
+ image = var.os_image
+ size = var.boot_disk_size
+ }
+ }
+
+ attached_disk {
+ source = google_compute_disk.repository-disk.name
+ device_name = "repository-disk"
+ }
+
+ network_interface {
+ network = "default"
+ subnetwork = "default"
+ access_config {}
+ }
+
+ metadata = {
+ ssh-keys = format("git:%s", var.ssh_pubkey)
+ startup-script = <<EOF
+ ${var.startup_script}
+ echo hello
+ EOF
+ }
+
+ tags = ["gitaly"]
+
+ lifecycle {
+ ignore_changes = [attached_disk]
+ }
+}
+
+resource "google_compute_instance" "client" {
+ name = format("%s-client", var.gitaly_benchmarking_instance_name)
+ machine_type = var.client_machine_type
+
+ boot_disk {
+ initialize_params {
+ image = var.os_image
+ size = var.boot_disk_size
+ }
+ }
+
+ network_interface {
+ subnetwork = "default"
+ access_config {}
+ }
+
+ metadata = {
+ ssh-keys = format("git:%s", var.ssh_pubkey)
+ startup-script = <<EOF
+ echo hello
+ EOF
+ }
+}
+
+output "gitaly_internal_ip" {
+ value = google_compute_instance.gitaly.network_interface[0].network_ip
+}
+output "gitaly_ssh_ip" {
+ value = google_compute_instance.gitaly.network_interface[0].access_config[0].nat_ip
+}
+
+output "client_internal_ip" {
+ value = google_compute_instance.client.network_interface[0].network_ip
+}
+
+output "client_ssh_ip" {
+ value = google_compute_instance.client.network_interface[0].access_config[0].nat_ip
+}