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
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}}}
Loading