132 строки
4.1 KiB
YAML
132 строки
4.1 KiB
YAML
revision: 2
|
|
schema-version: 5
|
|
owner-ms-alias: adegeo
|
|
|
|
config:
|
|
DocMetadata:
|
|
Headers:
|
|
- ["---", "#### "]
|
|
|
|
ParserRegex: "^\\* (.*): (.*)$"
|
|
|
|
ContentUrlRegex:
|
|
- "### Page URL\n\n(.*)"
|
|
|
|
issues:
|
|
|
|
unlabeled: "labeled"
|
|
|
|
labeled:
|
|
|
|
# Temporary label to mark issues as updated for Quest. The label is instantly removed
|
|
- check:
|
|
- type: query
|
|
value: "length(Issue.Labels[?Name == ':world_map: mapQUEST']) != `0`"
|
|
pass:
|
|
- labels-remove: [":world_map: mapQUEST"]
|
|
|
|
# Handle issues with /svc /subsvc labels from label bot
|
|
- check:
|
|
- type: query
|
|
value: "length(Issue.Labels[?contains(Name, '/svc') || contains(Name, '/subsvc')]) != `0`"
|
|
|
|
# If the issue has a /svc or /subsvc label, it must be categorized otherwise it's considered untriaged
|
|
pass:
|
|
- check:
|
|
- type: query
|
|
value: "length(Issue.Labels[?Name == ':pushpin: seQUESTered' || Name == ':world_map: reQUEST' || Name == 'training-module' || Name == 'doc-enhancement' || Name == 'product-question' || Name == 'in-progress' || Name == 'test-issue' || Name == 'kudos' || Name == 'loc' || Name == 'doc-bug' || Name == 'product-feedback' || Name == 'code-of-conduct' || Name == 'support-request' || Name == 'duplicate' || Name == 'resolved-by-customer' || Name == 'docs-experience' || Name == 'doc-provided' || Name == 'doc-idea' || Name == 'needs-more-info']) != `0`"
|
|
pass:
|
|
- labels-remove: [":watch: Not Triaged"]
|
|
fail:
|
|
- labels-add: [":watch: Not Triaged"]
|
|
|
|
# Not an doc issue specifically
|
|
fail:
|
|
|
|
# If the issue is open, then we'll allow some further processing on it. If it's closed, ignore it and let the user do what they want.
|
|
- check:
|
|
- type: query
|
|
value: "Issue.State.StringValue == 'open'"
|
|
|
|
pass:
|
|
- check:
|
|
- type: query
|
|
value: "length(Issue.Labels[?Name == ':pushpin: seQUESTered' || Name == ':world_map: reQUEST' || Name == 'training-module' || Name == 'video-content'] || Name == 'test-issue') != `0`"
|
|
pass:
|
|
- labels-remove: [":watch: Not Triaged"]
|
|
fail:
|
|
- labels-add: [":watch: Not Triaged"]
|
|
|
|
opened:
|
|
# New issue opened, add Not Triaged
|
|
- labels-add: [":watch: Not Triaged"]
|
|
|
|
# Dependabot opened issue, label it
|
|
- check:
|
|
- type: query
|
|
value: "Issue.User.Login == 'dependabot'"
|
|
pass:
|
|
- labels-add: ["dependencies"]
|
|
|
|
# Try to detect an empty issue
|
|
- check:
|
|
- type: comment-body
|
|
value: "### Description[\\n\\r]+\\[Enter feedback here\\][\\n\\r]+###"
|
|
pass:
|
|
- labels-add: ["needs-more-info"]
|
|
- labels-remove: [":watch: Not Triaged"]
|
|
- close
|
|
|
|
# Add links to related issues if it's a doc issue
|
|
- check:
|
|
- type: metadata-exists
|
|
- type: variable-exists
|
|
name: "document_version_independent_id"
|
|
pass:
|
|
- link-related-issues
|
|
|
|
reopened:
|
|
|
|
# Remove won't fix label
|
|
- labels-remove: ["won't fix"]
|
|
|
|
closed:
|
|
|
|
# Issue closed, remove in-progress and not triaged labels
|
|
- labels-remove: ["in-progress", ":watch: Not Triaged"]
|
|
|
|
# Check if the issue was closed by the user who opened it
|
|
- check:
|
|
- type: query
|
|
value: "Issue.User.Id == EventPayload.sender.id"
|
|
pass:
|
|
- labels-add: ["resolved-by-customer"]
|
|
- labels-remove: [":watch: Not Triaged"]
|
|
|
|
projects_v2_item:
|
|
|
|
reordered:
|
|
|
|
- labels-add: [":world_map: mapQUEST"]
|
|
|
|
edited:
|
|
|
|
- check:
|
|
- type: query
|
|
value: "EventPayload.changes.field_value.field_name == 'Priority' || EventPayload.changes.field_value.field_name == 'Size'"
|
|
pass:
|
|
- labels-add: [":world_map: mapQUEST"]
|
|
|
|
issue_comment:
|
|
|
|
created:
|
|
|
|
# someone creates a comment with #please-review in it, add changes-addressed label
|
|
- check:
|
|
- type: query
|
|
value: "Issue.State.StringValue == 'open' && Issue.User.Id == Comment.User.Id"
|
|
- type: comment-body
|
|
value: ^#please-review$
|
|
pass:
|
|
- labels-add: ["changes-addressed"]
|