Verified Commit 0b69151a authored by Hercules Merscher's avatar Hercules Merscher 🌴
Browse files

feat: Covered Experience registry

parent fd80fe94
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -19,7 +19,8 @@ The changelog is available via [**tagged release notes**](https://gitlab.com/git
LabKit-Ruby provides functionality in a number of areas:

1. `Labkit::Context` used for providing context information to log messages.
1. `Labkit::Correlation` For accessing the correlation id. (Generated and propagated by `Labkit::Context`)
1. `Labkit::Correlation` for accessing the correlation id. (Generated and propagated by `Labkit::Context`)
1. `Labkit::CoveredExperience` for tracking covered experiences. More on the [README](./lib/labkit/covered_experiences/README.md).
1. `Labkit::FIPS` for checking for FIPS mode and using FIPS-compliant algorithms.
1. `Labkit::Logging` for sanitizing log messages.
1. `Labkit::Metrics` for metrics. More on the [README](./lib/labkit/metrics/README.md).
+43 −0
Original line number Diff line number Diff line
{
  "$schema": "http://json-schema.org/draft-06/schema#",
  "$id": "https://gitlab.com/gitlab-org/ruby/gems/labkit-ruby/-/raw/master/config/covered_experiences/schema.json",
  "title": "Covered Experience Definition",
  "description": "Schema for GitLab Covered Experience files",
  "type": "object",
  "properties": {
    "covered_experience_id": {
      "type": "string",
      "pattern": "^[a-z0-9_]+$",
      "minLength": 1,
      "description": "Unique identifier for the covered experience"
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "description": "Human-readable description of the covered experience"
    },
    "feature_category": {
      "type": "string",
      "minLength": 1,
      "description": "GitLab feature category this experience belongs to"
    },
    "urgency": {
      "type": "string",
      "enum": [
        "sync_fast",
        "sync_slow",
        "async_fast",
        "async_slow"
      ],
      "description": "Urgency level for this covered experience"
    }
  },
  "required": [
    "covered_experience_id",
    "description",
    "feature_category",
    "urgency"
  ],
  "additionalProperties": true
}
+5 −0
Original line number Diff line number Diff line
# yaml-language-server: $schema=./schema.json
covered_experience_id: "merge_request_creation"
description: "Creating a new merge request in a project"
feature_category: "source_code_management"
urgency: "sync_fast"
+1 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ Gem::Specification.new do |spec|
  spec.add_runtime_dependency "grpc", ">= 1.62" # Be sure to update the "grpc-tools" dev_dependency too
  spec.add_runtime_dependency "google-protobuf", "~> 3" # Keep the major version to 3 until we update the `grpc` gem
  spec.add_runtime_dependency "jaeger-client", "~> 1.1.0"
  spec.add_runtime_dependency 'json-schema', '~> 5.1'
  spec.add_runtime_dependency "opentracing", "~> 0.4"
  spec.add_runtime_dependency "pg_query", ">= 6.1.0", "< 7.0"
  spec.add_runtime_dependency "prometheus-client-mmap", "~> 1.2.9"
+2 −1
Original line number Diff line number Diff line
@@ -7,8 +7,9 @@
module Labkit
  autoload :System, "labkit/system"

  autoload :Correlation, "labkit/correlation"
  autoload :Context, "labkit/context"
  autoload :Correlation, "labkit/correlation"
  autoload :CoveredExperience, "labkit/covered_experience"
  autoload :FIPS, "labkit/fips"
  autoload :Tracing, "labkit/tracing"
  autoload :Logging, "labkit/logging"
Loading