diff --git a/.github/policies/close-issues.yml b/.github/policies/close-issues.yml index da7d8071bac24..467f33ec20d03 100644 --- a/.github/policies/close-issues.yml +++ b/.github/policies/close-issues.yml @@ -34,6 +34,7 @@ configuration: then: - removeLabel: label: needs-more-info + triggerOnOwnActions: true - description: Close issues labeled 'code-of-conduct' if: @@ -42,3 +43,16 @@ configuration: label: code-of-conduct then: - closeIssue + + - description: Close learn template issues with empty descriptions. (spam) + if: + - payloadType: Issues + - bodyContains: + pattern: '### Description[\n\r]+\[Enter feedback here\][\n\r]+###' + isRegex: true + then: + - addLabel: 'needs-more-info' + - removeLabel: ':watch: Not Triaged' + - addReply: + reply: This issue has been automatically closed due to an empty issue description from the original author. Feel free to reopen it if you have more information that can help us investigate the issue further. + - closeIssue diff --git a/.github/policies/label-issues.yml b/.github/policies/label-issues.yml index 7ced254b88bd3..af3fd34ba4780 100644 --- a/.github/policies/label-issues.yml +++ b/.github/policies/label-issues.yml @@ -1,6 +1,6 @@ -id: -name: GitOps.PullRequestIssueManagement -description: GitOps.PullRequestIssueManagement primitive +id: label.issues +name: GitOps.IssueManagement +description: Management logic around issues owner: resource: repository disabled: false @@ -24,6 +24,109 @@ configuration: label: okr-quality eventResponderTasks: + - description: >- + Add "not triaged" label when: + * Issue is opened + * Issue is reopened + * 'needs-more-info' label removed + if: + - payloadType: Issues + - or: + + - or: + - isAction: + action: Opened + - isAction: + action: Reopened + + - labelRemoved: + label: 'needs-more-info' + then: + - addLabel: ':watch: Not Triaged' + + - description: >- + Remove "not triaged" label when: + * Issue author closes the issue + * reQUEST label is added + if: + - payloadType: Issues + - hasLabel: + label: ':watch: Not Triaged' + - or: + - and: + - isAction: + action: Closed + - isActivitySender: + issueAuthor: true + + - labelAdded: + label: ':world_map: reQUEST' + then: + - removeLabel: ':watch: Not Triaged' + + - description: >- + When the label "mapQUEST" is added to an issue + * Remove label "mapQUEST" + if: + - or: + - payloadType: Issues + - payloadType: Pull_Request + + - labelAdded: + label: ':world_map: mapQUEST' + then: + - removeLabel: ':world_map: mapQUEST' + + - description: Label dependabot issues + if: + - payloadType: Issues + - isAction: + action: Opened + - or: + - isActivitySender: + user: dependabot + - isActivitySender: + user: dependabot[bot] + then: + - addLabel: + label: dependencies + + - description: Remove "won't fix" label when issue is reopened + if: + - payloadType: Issues + - isAction: + action: Reopened + - hasLabel: + label: "won't fix" + + then: + - removeLabel: + label: "won't fix" + + - description: Remove "in-progress" label when issue closed + if: + - payloadType: Issues + - isAction: + action: Closed + - hasLabel: + label: 'in-progress' + + then: + - removeLabel: + label: 'in-progress' + + - description: Add "resolved-by-customer" label when issue closed by author. + if: + - payloadType: Issues + - isAction: + action: Closed + - isActivitySender: + issueAuthor: true + + then: + - addLabel: + label: resolved-by-customer + - description: Add in-pr label to issues if: - payloadType: Pull_Request diff --git a/.github/policies/label-prs-services.yml b/.github/policies/label-prs-services.yml new file mode 100644 index 0000000000000..bf0d5da53b678 --- /dev/null +++ b/.github/policies/label-prs-services.yml @@ -0,0 +1,676 @@ +id: pullRequestManagement.serviceLabels +name: GitOps.PullRequestServiceLabels +description: Checks the files touched by a pull request and assigns area labels. +owner: +resource: repository +disabled: false +where: +configuration: + resourceManagementConfiguration: + eventResponderTasks: + - description: Add labels to PRs that touch certain files + triggerOnOwnActions: false + if: + - payloadType: Pull_Request + - or: + - isAction: + action: Opened + - isAction: + action: Synchronize + - not: + targetsBranch: + branch: live + then: + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*_csharplang.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: lang-spec/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*_csharpstandard.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: lang-spec/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*_vblang/spec.* + then: + - addLabel: + label: dotnet-visualbasic/svc + - addLabel: + label: vb-spec/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/architecture.* + then: + - addLabel: + label: dotnet-architecture/svc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/architecture/blazor-for-web-forms-developers.* + then: + - addLabel: + label: dotnet-architecture/svc + - addLabel: + label: blazor/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/architecture/cloud-native.* + then: + - addLabel: + label: dotnet-architecture/svc + - addLabel: + label: cloud-native/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/architecture/containerized-lifecycle.* + then: + - addLabel: + label: dotnet-architecture/svc + - addLabel: + label: containerized-lifecycle/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/architecture/grpc-for-wcf-developers.* + then: + - addLabel: + label: dotnet-architecture/svc + - addLabel: + label: grpc/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/architecture/microservices.* + then: + - addLabel: + label: dotnet-architecture/svc + - addLabel: + label: microservices/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/architecture/modernize-with-azure-containers.* + then: + - addLabel: + label: dotnet-architecture/svc + - addLabel: + label: modernize-with-azure-containers/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/architecture/modern-web-apps-azure.* + then: + - addLabel: + label: dotnet-architecture/svc + - addLabel: + label: modern-web-apps-azure/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/architecture/serverless.* + then: + - addLabel: + label: dotnet-architecture/svc + - addLabel: + label: serverless/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/azure.* + then: + - addLabel: + label: dotnet-azure/svc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/core.* + then: + - addLabel: + label: dotnet-fundamentals/svc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/core/tools.* + then: + - addLabel: + label: dotnet-fundamentals/svc + - addLabel: + label: dotnet-cli/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/core/docker.* + then: + - addLabel: + label: dotnet-fundamentals/svc + - addLabel: + label: dotnet-docker/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/core/install.* + then: + - addLabel: + label: dotnet-fundamentals/svc + - addLabel: + label: install/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp.* + then: + - addLabel: + label: dotnet-csharp/svc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/fundamentals.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: fundamentals/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/misc.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: csharp-errors-warnings/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/whats-new.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: whats-new/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/how-to.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: fundamentals/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/linq.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: csharp-linq/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/indexers.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: fundamentals/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/generics.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: fundamentals/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/strings.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: fundamentals/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/types.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: fundamentals/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/statements-expressions-operators.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: fundamentals/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/interop.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: advanced-concepts/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/language-reference/unsafe-code.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: advanced-concepts/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/namespaces.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: fundamentals/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/arrays.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: fundamentals/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/concepts/covariance-contravariance.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: advanced-concepts/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/concepts/serialization.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: fundamentals/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/concepts/expression-trees.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: advanced-concepts/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/asynchronous-programming/.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: async-task-programming/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/concepts/linq.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: csharp-linq/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/concepts/attributes.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: fundamentals/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/xmldoc.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: fundamentals/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/classes-and-structs.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: fundamentals/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/delegates.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: fundamentals/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/file-system.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: fundamentals/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/events.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: fundamentals/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/programming-guide/interfaces.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: fundamentals/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/tutorials.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: fundamentals/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/tutorials/exploration.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: get-started/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/language-reference.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: lang-reference/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/language-reference/compiler-messages.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: csharp-diagnostics/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/roslyn-sdk.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: roslyn-sdk/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/csharp/tour-of-csharp.* + then: + - addLabel: + label: dotnet-csharp/svc + - addLabel: + label: get-started/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/framework.* + then: + - addLabel: + label: dotnet-framework/svc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/framework/configure-apps/file-schema/network.* + then: + - addLabel: + label: dotnet-framework/svc + - addLabel: + label: networking/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/framework/configure-apps/file-schema/wcf.* + then: + - addLabel: + label: dotnet-framework/svc + - addLabel: + label: wcf/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/framework/data/adonet.* + then: + - addLabel: + label: dotnet-framework/svc + - addLabel: + label: data-access/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/framework/data/wcf.* + then: + - addLabel: + label: dotnet-framework/svc + - addLabel: + label: wcf/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/framework/docker.* + then: + - addLabel: + label: dotnet-framework/svc + - addLabel: + label: dotnet-docker/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/framework/install.* + then: + - addLabel: + label: dotnet-framework/svc + - addLabel: + label: install/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/framework/migration-guide.* + then: + - addLabel: + label: dotnet-framework/svc + - addLabel: + label: app-compat/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/framework/network-programming.* + then: + - addLabel: + label: dotnet-framework/svc + - addLabel: + label: dotnet-networking/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/fundamentals/networking.* + then: + - addLabel: + label: dotnet-fundamentals/svc + - addLabel: + label: dotnet-networking/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/core/extensions/http.* + then: + - addLabel: + label: dotnet-fundamentals/svc + - addLabel: + label: dotnet-networking/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/framework/wcf.* + then: + - addLabel: + label: dotnet-framework/svc + - addLabel: + label: dotnet-wcf/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/framework/windows-workflow-foundation.* + then: + - addLabel: + label: dotnet-framework/svc + - addLabel: + label: wf/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/fsharp.* + then: + - addLabel: + label: dotnet-fsharp/svc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/fundamentals.* + then: + - addLabel: + label: dotnet-fundamentals/svc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/standard.* + then: + - addLabel: + label: dotnet-fundamentals/svc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/standard/analyzers.* + then: + - addLabel: + label: dotnet-fundamentals/svc + - addLabel: + label: code-analyzers/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/machine-learning.* + then: + - addLabel: + label: dotnet-ml/svc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/spark.* + then: + - addLabel: + label: dotnet-spark/svc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/standard/data.* + then: + - addLabel: + label: dotnet-data/svc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/standard/design-guidelines.* + then: + - addLabel: + label: dotnet/svc + - addLabel: + label: standard-library/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/standard/security.* + then: + - addLabel: + label: dotnet/svc + - addLabel: + label: security-practices/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/visual-basic.* + then: + - addLabel: + label: dotnet-visualbasic/svc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/visual-basic/language-reference/error-messages.* + then: + - addLabel: + label: dotnet-visualbasic/svc + - addLabel: + label: errors-warnings/subsvc + - if: + - filesMatchPattern: + matchAny: true + pattern: (?i).*docs/visual-basic/misc.* + then: + - addLabel: + label: dotnet-visualbasic/svc + - addLabel: + label: errors-warnings/subsvc +onFailure: +onSuccess: diff --git a/.repoman.yml b/.repoman.yml index f39d4d341fa6d..f150681e20c44 100644 --- a/.repoman.yml +++ b/.repoman.yml @@ -1,4 +1,4 @@ -revision: 6 +revision: 7 schema-version: 5 owner-ms-alias: adegeo @@ -14,81 +14,7 @@ config: 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"] - - # Checks for binary/source incompatible checkboxes and adds a label - - check: - - type: query - value: "contains(InstanceData.IssuePrBody, '- [x] **Binary incompatible**') == `true` || contains(InstanceData.IssuePrBody, '- [X] **Binary incompatible**') == `true`" - pass: - - labels-add: ["binary incompatible"] - - - check: - - type: query - value: "contains(InstanceData.IssuePrBody, '- [x] **Source incompatible**') == `true` || contains(InstanceData.IssuePrBody, '- [X] **Source incompatible**') == `true`" - pass: - - labels-add: ["source incompatible"] - 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: @@ -98,23 +24,10 @@ issues: 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" + - type: metadata-exists pass: - - labels-add: ["resolved-by-customer"] - - labels-remove: [":watch: Not Triaged"] + - svc_subsvc_labels: true projects_v2_item: @@ -138,288 +51,4 @@ pull_request: # Set default sprint for new PRs - milestone-set: "![sprint]" - - - check: - - type: query - value: "PullRequest.Base.Ref != 'live'" - pass: - - files-changed: - # csharplang - - path: "(?i).*_csharplang.*" - run: - - labels-add: ["dotnet-csharp/svc", "lang-spec/subsvc"] - - # csharpstandard - - path: "(?i).*_csharpstandard.*" - run: - - labels-add: ["dotnet-csharp/svc", "lang-spec/subsvc"] - - # vbspec - - path: "(?i).*_vblang\/spec.*" - run: - - labels-add: ["dotnet-visualbasic/svc", "vb-spec/subsvc"] - - # architecture - - path: "(?i).*docs\/architecture.*" - run: - - labels-add: ["dotnet-architecture/svc"] - - path: "(?i).*docs\/architecture\/blazor-for-web-forms-developers.*" - run: - - labels-add: ["dotnet-architecture/svc", "blazor/subsvc"] - - path: "(?i).*docs\/architecture\/cloud-native.*" - run: - - labels-add: ["dotnet-architecture/svc", "cloud-native/subsvc"] - - path: "(?i).*docs\/architecture\/containerized-lifecycle.*" - run: - - labels-add: ["dotnet-architecture/svc", "containerized-lifecycle/subsvc"] - - path: "(?i).*docs\/architecture\/grpc-for-wcf-developers.*" - run: - - labels-add: ["dotnet-architecture/svc", "grpc/subsvc"] - - path: "(?i).*docs\/architecture\/microservices.*" - run: - - labels-add: ["dotnet-architecture/svc", "microservices/subsvc"] - - path: "(?i).*docs\/architecture\/modernize-with-azure-containers.*" - run: - - labels-add: ["dotnet-architecture/svc", "modernize-with-azure-containers/subsvc"] - - path: "(?i).*docs\/architecture\/modern-web-apps-azure.*" - run: - - labels-add: ["dotnet-architecture/svc", "modern-web-apps-azure/subsvc"] - - path: "(?i).*docs\/architecture\/serverless.*" - run: - - labels-add: ["dotnet-architecture/svc", "serverless/subsvc"] - - # azure - - path: "(?i).*docs\/azure.*" - run: - - labels-add: ["dotnet-azure/svc"] - - # core - - path: "(?i).*docs\/core.*" - run: - - labels-add: ["dotnet-fundamentals/svc"] - - path: "(?i).*docs\/core\/tools.*" - run: - - labels-add: ["dotnet-fundamentals/svc", "dotnet-cli/subsvc"] - - path: "(?i).*docs\/core\/docker.*" - run: - - labels-add: ["dotnet-fundamentals/svc", "dotnet-docker/subsvc"] - - # core/install - - path: "(?i).*docs\/core\/install.*" - run: - - labels-add: ["dotnet-fundamentals/svc", "install/subsvc"] - - # csharp - - path: "(?i).*docs\/csharp.*" - run: - - labels-add: ["dotnet-csharp/svc"] - - path: "(?i).*docs\/csharp\/fundamentals.*" - run: - - labels-add: ["dotnet-csharp/svc", "fundamentals/subsvc"] - - path: "(?i).*docs\/csharp\/misc.*" - run: - - labels-add: ["dotnet-csharp/svc", "csharp-errors-warnings/subsvc"] - - path: "(?i).*docs\/csharp\/whats-new.*" - run: - - labels-add: ["dotnet-csharp/svc", "whats-new/subsvc"] - - path: "(?i).*docs\/csharp\/how-to.*" - run: - - labels-add: ["dotnet-csharp/svc", "fundamentals/subsvc"] - - path: "(?i).*docs\/csharp\/linq.*" - run: - - labels-add: ["dotnet-csharp/svc", "csharp-linq/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/indexers.*" - run: - - labels-add: ["dotnet-csharp/svc", "fundamentals/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/generics.*" - run: - - labels-add: ["dotnet-csharp/svc", "fundamentals/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/strings.*" - run: - - labels-add: ["dotnet-csharp/svc", "fundamentals/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/types.*" - run: - - labels-add: ["dotnet-csharp/svc", "fundamentals/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/statements-expressions-operators.*" - run: - - labels-add: ["dotnet-csharp/svc", "fundamentals/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/interop.*" - run: - - labels-add: ["dotnet-csharp/svc", "advanced-concepts/subsvc"] - - path: "(?i).*docs\/csharp\/language-reference\/unsafe-code.*" - run: - - labels-add: ["dotnet-csharp/svc", "advanced-concepts/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/namespaces.*" - run: - - labels-add: ["dotnet-csharp/svc", "fundamentals/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/arrays.*" - run: - - labels-add: ["dotnet-csharp/svc", "fundamentals/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/concepts\/covariance-contravariance.*" - run: - - labels-add: ["dotnet-csharp/svc", "advanced-concepts/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/concepts\/serialization.*" - run: - - labels-add: ["dotnet-csharp/svc", "fundamentals/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/concepts\/expression-trees.*" - run: - - labels-add: ["dotnet-csharp/svc", "advanced-concepts/subsvc"] - - path: "(?i).*docs\/csharp\/asynchronous-programming\/.*" - run: - - labels-add: ["dotnet-csharp/svc", "async-task-programming/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/concepts\/linq.*" - run: - - labels-add: ["dotnet-csharp/svc", "csharp-linq/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/concepts\/attributes.*" - run: - - labels-add: ["dotnet-csharp/svc", "fundamentals/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/xmldoc.*" - run: - - labels-add: ["dotnet-csharp/svc", "fundamentals/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/classes-and-structs.*" - run: - - labels-add: ["dotnet-csharp/svc", "fundamentals/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/delegates.*" - run: - - labels-add: ["dotnet-csharp/svc", "fundamentals/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/file-system.*" - run: - - labels-add: ["dotnet-csharp/svc", "fundamentals/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/events.*" - run: - - labels-add: ["dotnet-csharp/svc", "fundamentals/subsvc"] - - path: "(?i).*docs\/csharp\/programming-guide\/interfaces.*" - run: - - labels-add: ["dotnet-csharp/svc", "fundamentals/subsvc"] - - path: "(?i).*docs\/csharp\/tutorials.*" - run: - - labels-add: ["dotnet-csharp/svc", "fundamentals/subsvc"] - - path: "(?i).*docs\/csharp\/tutorials\/exploration.*" - run: - - labels-add: ["dotnet-csharp/svc", "get-started/subsvc"] - - path: "(?i).*docs\/csharp\/language-reference.*" - run: - - labels-add: ["dotnet-csharp/svc", "lang-reference/subsvc"] - - path: "(?i).*docs\/csharp\/language-reference\/compiler-messages.*" - run: - - labels-add: ["dotnet-csharp/svc", "csharp-diagnostics/subsvc"] - - path: "(?i).*docs\/csharp\/roslyn-sdk.*" - run: - - labels-add: ["dotnet-csharp/svc", "roslyn-sdk/subsvc"] - - path: "(?i).*docs\/csharp\/tour-of-csharp.*" - run: - - labels-add: ["dotnet-csharp/svc", "get-started/subsvc"] - - # framework - - path: "(?i).*docs\/framework.*" - run: - - labels-add: ["dotnet-framework/svc"] - - path: "(?i).*docs\/framework\/configure-apps\/file-schema\/network.*" - run: - - labels-add: [ "dotnet-framework/svc", "networking/subsvc" ] - - path: "(?i).*docs\/framework\/configure-apps\/file-schema\/wcf.*" - run: - - labels-add: [ "dotnet-framework/svc", "wcf/subsvc" ] - - path: "(?i).*docs\/framework\/data\/adonet.*" - run: - - labels-add: [ "dotnet-framework/svc", "data-access/subsvc" ] - - path: "(?i).*docs\/framework\/data\/wcf.*" - run: - - labels-add: [ "dotnet-framework/svc", "wcf/subsvc" ] - - path: "(?i).*docs\/framework\/docker.*" - run: - - labels-add: [ "dotnet-framework/svc", "dotnet-docker/subsvc" ] - - path: "(?i).*docs\/framework\/install.*" - run: - - labels-add: [ "dotnet-framework/svc", "install/subsvc" ] - - path: "(?i).*docs\/framework\/migration-guide.*" - run: - - labels-add: [ "dotnet-framework/svc", "app-compat/subsvc" ] - - path: "(?i).*docs\/framework\/network-programming.*" - run: - - labels-add: [ "dotnet-framework/svc", "dotnet-networking/subsvc" ] - - path: "(?i).*docs\/fundamentals\/networking.*" - run: - - labels-add: [ "dotnet-fundamentals/svc", "dotnet-networking/subsvc" ] - - path: "(?i).*docs\/core\/extensions\/http.*" - run: - - labels-add: [ "dotnet-fundamentals/svc", "dotnet-networking/subsvc" ] - - path: "(?i).*docs\/framework\/wcf.*" - run: - - labels-add: [ "dotnet-framework/svc", "dotnet-wcf/subsvc" ] - - path: "(?i).*docs\/framework\/windows-workflow-foundation.*" - run: - - labels-add: [ "dotnet-framework/svc", "wf/subsvc" ] - - # fsharp - - path: "(?i).*docs\/fsharp.*" - run: - - labels-add: ["dotnet-fsharp/svc"] - - # fundamentals - - path: "(?i).*docs\/fundamentals.*" - run: - - labels-add: ["dotnet-fundamentals/svc"] - - # standard - - path: "(?i).*docs\/standard.*" - run: - - labels-add: ["dotnet-fundamentals/svc"] - - # analyzers - - path: "(?i).*docs\/standard\/analyzers.*" - run: - - labels-add: [ "dotnet-fundamentals/svc", "code-analyzers/subsvc" ] - - # machine learning - - path: "(?i).*docs\/machine-learning.*" - run: - - labels-add: ["dotnet-ml/svc"] - - # spark - - path: "(?i).*docs\/spark.*" - run: - - labels-add: ["dotnet-spark/svc"] - - # data - - path: "(?i).*docs\/standard\/data.*" - run: - - labels-add: ["dotnet-data/svc"] - - # design guidelines - - path: "(?i).*docs\/standard\/design-guidelines.*" - run: - - labels-add: [ "dotnet/svc", "standard-library/subsvc" ] - - # security - - path: "(?i).*docs\/standard\/security.*" - run: - - labels-add: [ "dotnet/svc", "security-practices/subsvc" ] - - # visual-basic - - path: "(?i).*docs\/visual-basic.*" - run: - - labels-add: ["dotnet-visualbasic/svc"] - - # visual-basic lang ref error messages - - path: "(?i).*docs\/visual-basic\/language-reference\/error-messages.*" - run: - - labels-add: [ "dotnet-visualbasic/svc", "errors-warnings/subsvc" ] - - # visual-basic misc - - path: "(?i).*docs\/visual-basic\/misc.*" - run: - - labels-add: ["dotnet-visualbasic/svc", "errors-warnings/subsvc"] - -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"] + \ No newline at end of file