Skip to content

Update ownership.yaml

Federico Builes 1bd8b89
GitHub Service Catalog / service-catalog-lint-check failed Nov 21, 2023 in 0s

ownership.yaml validation contains 1 failure.

2/3 checks passed
If you need to re-run this validation as a CI check, use the .catalog lint chatop. See .help catalog lint for usage information.
PASS: Repository Permissions
PASS: Ownership.yaml Exists
PROBLEM: Ownership.yaml Schema Validation

### VALIDATION ERROR
Location: 
Error Type: object
Actual Data: 
Expected Schema: {"$schema"=>"http://json-schema.org/draft-06/schema#",
 "id"=>
  "https://github.com/github/durable-ownership/blob/master/ownership.schema.json",
 "title"=>"Ownership",
 "type"=>"object",
 "properties"=>
  {"version"=>{"type"=>"number", "enum"=>[1]},
   "ownership"=>
    {"type"=>"array",
     "items"=>{"$ref"=>"#/definitions/ownership-v1"},
     "minItems"=>1},
   "x-ownership"=>
    {"description"=>
      "Optional, used to store repetitive elements of ownership such as teams. These can be anchored and referenced in the main `ownership` section for deduplication."}},
 "required"=>["version", "ownership"],
 "additionalProperties"=>false,
 "definitions"=>
  {"ownership-v1"=>
    {"description"=>"Ownership information for GitHub services",
     "type"=>"object",
     "properties"=>
      {"name"=>
        {"description"=>"Unique name of the service, e.g. pages",
         "type"=>"string",
         "pattern"=>"^[^\\s]+$",
         "$comment"=>"Name should not include spaces"},
       "component_of"=>
        {"description"=>"Name of the parent service",
         "type"=>"string",
         "pattern"=>"^[^\\s]+$"},
       "long_name"=>
        {"description"=>"Friendly name of the service, e.g. GitHub Pages",
         "type"=>"string"},
       "description"=>
        {"description"=>"Description of service's purpose", "type"=>"string"},
       "kind"=>
        {"description"=>"The type of service or application being described",
         "type"=>"string",
         "enum"=>
          ["approle",
           "artifact",
           "code",
           "infrastructure",
           "lightrail",
           "logical",
           "moda",
           "saas",
           "repo"]},
       "team_slack"=>
        {"description"=>"Name of the team's slack channel for human support.",
         "type"=>"string",
         "pattern"=>"^[^#]+"},
       "component"=>
        {"description"=>
          "This represents a component that has a separate set of owners and escalation",
         "type"=>"string"},
       "tier"=>
        {"description"=>
          "An integer (0-3) representing how critical a service is from the business perspective",
         "type"=>"number",
         "enum"=>[0, 1, 2, 3]},
       "pillar"=>
        {"description"=>
          "The product management pillar that the service falls under",
         "type"=>"string"},
       "maintainer"=>
        {"description"=>
          "a single individual ultimately responsible for the application",
         "type"=>"string",
         "pattern"=>"^[^@/]+[^/]+$",
         "$comment"=>"Maintainer should not include leading @ or be a team"},
       "team"=>
        {"description"=>
          "a group that shares the ownership responsibilities with the maintainer",
         "type"=>"string",
         "pattern"=>"^[^@/]+/[^/]+$",
         "$comment"=>"Team must include a slash and no leading @"},
       "exec_sponsor"=>
        {"description"=>
          "the GitHub executive that sponsors work on this service",
         "type"=>"string",
         "pattern"=>"^[^@/]+[^/]+$",
         "$comment"=>"Exec Sponsor should not include leading @"},
       "product_manager"=>
        {"description"=>
          "the GitHub product manager that organizes work on this service",
         "type"=>"string",
         "pattern"=>"^[^@/]+[^/]+$",
         "$comment"=>"Product Manager should not include leading @"},
       "repo"=>
        {"description"=>"repo representing the application",
         "type"=>"string",
         "pattern"=>"https?://[A-Za-z0-9_.-]+/[A-Za-z0-9_-]+/[A-Za-z0-9_.-]+",
         "format"=>"uri"},
       "sev1"=>
        {"allOf"=>
          [{"$ref"=>"#/definitions/escalation"}, {"required"=>["tta"]}]},
       "sev2"=>
        {"allOf"=>
          [{"$ref"=>"#/definitions/escalation"}, {"required"=>["tta"]}]},
       "sev3"=>{"$ref"=>"#/definitions/escalation"},
       "support_squad"=>{"$ref"=>"#/definitions/escalation"},
       "qos"=>
        {"description"=>"quality of service behind the application",
         "type"=>"string",
         "enum"=>
          ["critical",
           "best_effort",
           "maintenance",
           "deprecated",
           "down",
           "unstaffed",
           "experimental"]},
       "dependencies"=>{"$ref"=>"#/definitions/dependencies"},
       "tags"=>
        {"description"=>
          "Tags are a list of words that can be used to filter services in searches and dashboards.",
         "type"=>"array",
         "items"=>
          {"type"=>"string",
           "pattern"=>"^[0-9A-Za-z\\-]{1,24}$",
           "$comment"=>
            "Tags may only contain letters, numbers, and dashes. 24 characters max."}},
       "links"=>
        {"description"=>
          "Links are a list of URLs for service-related resources",
         "type"=>"array",
         "items"=>{"$ref"=>"#/definitions/service-link-v2"}}},
     "required"=>["name", "kind", "repo", "qos"],
     "dependencies"=>{"sev1"=>["sev2"]},
     "additionalProperties"=>false},
   "escalation"=>
    {"description"=>"Incident escalation information",
     "type"=>"object",
     "properties"=>
      {"alert_issue"=>
        {"description"=>"Link to GitHub repo issues list for alerts",
         "type"=>"string",
         "pattern"=>"^https://[A-Za-z0-9_.-]+/[A-Za-z0-9_-]+/[^/]+/issues"},
       "alert_slack"=>
        {"description"=>"Name of slack room for alerts",
         "type"=>"string",
         "pattern"=>"^[^#]+"},
       "pagerduty"=>
        {"description"=>"Link to pagerduty escalation policy",
         "type"=>"string",
         "pattern"=>"^https://github.pagerduty.com/escalation_policies#"},
       "issue"=>
        {"description"=>"Link to GitHub repo issues list for issues",
         "type"=>"string",
         "pattern"=>"^https://[A-Za-z0-9_.-]+/[A-Za-z0-9_-]+/[^/]+/issues"},
       "slack"=>
        {"description"=>"Name of slack room for support",
         "type"=>"string",
         "pattern"=>"^[^#]+"},
       "icm_team_name"=>
        {"description"=>"Name of the IcM team to escalate to",
         "type"=>"string",
         "pattern"=>"^[^#]+"},
       "icm_incident_template_url"=>
        {"description"=>"Link to IcM incident creation template",
         "type"=>"string",
         "pattern"=>
          "^https://portal.microsofticm.com/imp/v3/incidents/create\\?tmpl="},
       "tta"=>
        {"description"=>"Time to ack an incident",
         "type"=>"string",
         "pattern"=>"^(None|[0-9]+ *(business)? *(m|h|d|w)[^ ]*)$"}},
     "additionalProperties"=>false,
     "anyOf"=>
      [{"required"=>["pagerduty"]},
       {"required"=>["issue"]},
       {"required"=>["slack"]},
       {"required"=>["icm_team_name", "icm_incident_template_url"]}]},
   "dependencies"=>
    {"description"=>"other services upon which this service depends",
     "type"=>"array",
     "items"=>{"$ref"=>"#/definitions/ownership-v1/properties/name"}},
   "service-link-v2"=>
    {"description"=>"Link to service related resource",
     "type"=>"object",
     "properties"=>
      {"description"=>
        {"description"=>"Description of the link", "type"=>"string"},
       "kind"=>
        {"description"=>"Kind of link",
         "type"=>"string",
         "enum"=>["tool", "playbook", "dashboard", "docs", "monitor"]},
       "name"=>
        {"description"=>"Name of the link",
         "type"=>"string",
         "pattern"=>"^[A-Za-z0-9\\?]"},
       "url"=>{"description"=>"Destination URL", "type"=>"string"}},
     "required"=>["description", "kind", "name", "url"],
     "additionalProperties"=>false}}}

Annotations

Check failure on line 1 in ownership.yaml

See this annotation in the file changed.

@github-service-catalog github-service-catalog / service-catalog-lint-check

ownership.yaml#L1

`ownership.yaml` is invalid, please visit https://catalog.githubapp.com/validator/ownership?branch=febuiles-patch-1&repo=dependency-submission-toolkit to check what validations are failing.
Also, ensure your branch is up to date with the default branch of your repository to avoid issues caused by an outdated ownership file.
Found problems:
- 
### VALIDATION ERROR
Location: 
Error Type: object
Actual Data: 
Expected Schema: {"$schema"=>"http://json-schema.org/draft-06/schema#",
 "id"=>
  "https://github.com/github/durable-ownership/blob/master/ownership.schema.json",
 "title"=>"Ownership",
 "type"=>"object",
 "properties"=>
  {"version"=>{"type"=>"number", "enum"=>[1]},
   "ownership"=>
    {"type"=>"array",
     "items"=>{"$ref"=>"#/definitions/ownership-v1"},
     "minItems"=>1},
   "x-ownership"=>
    {"description"=>
      "Optional, used to store repetitive elements of ownership such as teams. These can be anchored and referenced in the main `ownership` section for deduplication."}},
 "required"=>["version", "ownership"],
 "additionalProperties"=>false,
 "definitions"=>
  {"ownership-v1"=>
    {"description"=>"Ownership information for GitHub services",
     "type"=>"object",
     "properties"=>
      {"name"=>
        {"description"=>"Unique name of the service, e.g. pages",
         "type"=>"string",
         "pattern"=>"^[^\\s]+$",
         "$comment"=>"Name should not include spaces"},
       "component_of"=>
        {"description"=>"Name of the parent service",
         "type"=>"string",
         "pattern"=>"^[^\\s]+$"},
       "long_name"=>
        {"description"=>"Friendly name of the service, e.g. GitHub Pages",
         "type"=>"string"},
       "description"=>
        {"description"=>"Description of service's purpose", "type"=>"string"},
       "kind"=>
        {"description"=>"The type of service or application being described",
         "type"=>"string",
         "enum"=>
          ["approle",
           "artifact",
           "code",
           "infrastructure",
           "lightrail",
           "logical",
           "moda",
           "saas",
           "repo"]},
       "team_slack"=>
        {"description"=>"Name of the team's slack channel for human support.",
         "type"=>"string",
         "pattern"=>"^[^#]+"},
       "component"=>
        {"description"=>
          "This represents a component that has a separate set of owners and escalation",
         "type"=>"string"},
       "tier"=>
        {"description"=>
          "An integer (0-3) representing how critical a service is from the business perspective",
         "type"=>"number",
         "enum"=>[0, 1, 2, 3]},
       "pillar"=>
        {"description"=>
          "The product management pillar that the service falls under",
         "type"=>"string"},
       "maintainer"=>
        {"description"=>
          "a single individual ultimately responsible for the application",
         "type"=>"string",
         "pattern"=>"^[^@/]+[^/]+$",
         "$comment"=>"Maintainer should not include leading @ or be a team"},
       "team"=>
        {"description"=>
          "a group that shares the ownership responsibilities with the maintainer",
         "type"=>"string",
         "pattern"=>"^[^@/]+/[^/]+$",
         "$comment"=>"Team must include a slash and no leading @"},
       "exec_sponsor"=>
        {"description"=>
          "the GitHub executive that sponsors work on this service",
         "type"=>"string",
         "pattern"=>"^[^@/]+[^/]+$",
         "$comment"=>"Exec Sponsor should not include leading @"},
       "product_manager"=>
        {"description"=>
          "the GitHub product manager that organizes work on this service",
         "type"=>"string",
         "pattern"=>"^[^@/]+[^/]+$",
         "$comment"=>"Product Manager should not include leading @"},
       "repo"=>
        {"description"=>"repo representing the application",
         "type"=>"string",
         "pattern"=>"https?://[A-Za-z0-9_.-]+/[A-Za-z0-9_-]+/[A-Za-z0-9_.-]+",
         "format"=>"uri"},
       "sev1"=>
        {"allOf"=>
          [{"$ref"=>"#/definitions/escalation"}, {"required"=>["tta"]}]},
       "sev2"=>
        {"allOf"=>
          [{"$ref"=>"#/definitions/escalation"}, {"required"=>["tta"]}]},
       "sev3"=>{"$ref"=>"#/definitions/escalation"},
       "support_squad"=>{"$ref"=>"#/definitions/escalation"},
       "qos"=>
        {"description"=>"quality of service behind the application",
         "type"=>"string",
         "enum"=>
          ["critical",
           "best_effort",
           "maintenance",
           "deprecated",
           "down",
           "unstaffed",
           "experimental"]},
       "dependencies"=>{"$ref"=>"#/definitions/dependencies"},
       "tags"=>
        {"description"=>
          "Tags are a list of words that can be used to filter services in searches and dashboards.",
         "type"=>"array",
         "items"=>
          {"type"=>"string",
           "pattern"=>"^[0-9A-Za-z\\-]{1,24}$",
           "$comment"=>
            "Tags may only contain letters, numbers, and dashes. 24 characters max."}},
       "links"=>
        {"description"=>
          "Links are a list of URLs for service-related resources",
         "type"=>"array",
         "items"=>{"$ref"=>"#/definitions/service-link-v2"}}},
     "required"=>["name", "kind", "repo", "qos"],
     "dependencies"=>{"sev1"=>["sev2"]},
     "additionalProperties"=>false},
   "escalation"=>
    {"description"=>"Incident escalation information",
     "type"=>"object",
     "properties"=>
      {"alert_issue"=>
        {"description"=>"Link to GitHub repo issues list for alerts",
         "type"=>"string",
         "pattern"=>"^https://[A-Za-z0-9_.-]+/[A-Za-z0-9_-]+/[^/]+/issues"},
       "alert_slack"=>
        {"description"=>"Name of slack room for alerts",
         "type"=>"string",
         "pattern"=>"^[^#]+"},
       "pagerduty"=>
        {"description"=>"Link to pagerduty escalation policy",
         "type"=>"string",
         "pattern"=>"^https://github.pagerduty.com/escalation_policies#"},
       "issue"=>
        {"description"=>"Link to GitHub repo issues list for issues",
         "type"=>"string",
         "pattern"=>"^https://[A-Za-z0-9_.-]+/[A-Za-z0-9_-]+/[^/]+/issues"},
       "slack"=>
        {"description"=>"Name of slack room for support",
         "type"=>"string",
         "pattern"=>"^[^#]+"},
       "icm_team_name"=>
        {"description"=>"Name of the IcM team to escalate to",
         "type"=>"string",
         "pattern"=>"^[^#]+"},
       "icm_incident_template_url"=>
        {"description"=>"Link to IcM incident creation template",
         "type"=>"string",
         "pattern"=>
          "^https://portal.microsofticm.com/imp/v3/incidents/create\\?tmpl="},
       "tta"=>
        {"description"=>"Time to ack an incident",
         "type"=>"string",
         "pattern"=>"^(None|[0-9]+ *(business)? *(m|h|d|w)[^ ]*)$"}},
     "additionalProperties"=>false,
     "anyOf"=>
      [{"required"=>["pagerduty"]},
       {"required"=>["issue"]},
       {"required"=>["slack"]},
       {"required"=>["icm_team_name", "icm_incident_template_url"]}]},
   "dependencies"=>
    {"description"=>"other services upon which this service depends",
     "type"=>"array",
     "items"=>{"$ref"=>"#/definitions/ownership-v1/properties/name"}},
   "service-link-v2"=>
    {"description"=>"Link to service related resource",
     "type"=>"object",
     "properties"=>
      {"description"=>
        {"description"=>"Description of the link", "type"=>"string"},
       "kind"=>
        {"description"=>"Kind of link",
         "type"=>"string",
         "enum"=>["tool", "playbook", "dashboard", "docs", "monitor"]},
       "name"=>
        {"description"=>"Name of the link",
         "type"=>"string",
         "pattern"=>"^[A-Za-z0-9\\?]"},
       "url"=>{"description"=>"Destination URL", "type"=>"string"}},
     "required"=>["description", "kind", "name", "url"],
     "additionalProperties"=>false}}}