# Copyright 2020 The Actions Ecosystem Authors # Modifications Copyright Materialize, Inc. and contributors. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Portions of this file are derived from the README examples in the Action # Slack Notifier project. The original source code was retrieved on # January 5, 2022 from: # # https://github.com/actions-ecosystem/action-slack-notifier/blob/fc778468d09c43a6f4d1b8cccaca59766656996a/README.md # Send a notification to the #team-testing-risky Slack channel when a risky change is made. name: Slack QA Risky Notifications on: pull_request_target: types: - opened - reopened - ready_for_review paths: - src/pgwire/src/message.rs - src/sql/src/plan/statement.rs - src/catalog/src/builtin.rs - src/sql/src/rbac.rs - src/sqllogictest/src/runner.rs - src/adapter/src/coord/command_handler.rs - src/expr/src/relation/mod.rs - src/adapter/src/coord.rs - src/sql-parser/src/ast/defs/statement.rs - src/adapter/src/catalog.rs - src/sql/src/catalog.rs - src/pgwire/src/protocol.rs - src/expr/src/scalar/mod.rs - src/adapter/src/coord/sequencer.rs - src/sql/src/func.rs - src/sql/src/plan.rs - src/adapter/src/coord/sequencer/inner.rs - src/expr/src/scalar/func.rs - src/sql/src/plan/statement/ddl.rs - src/adapter/src/catalog.rs - src/adapter/src/coord.rs - src/sql/src/plan/query.rs - src/sql-parser/src/parser.rs jobs: notify: name: "Notify about risky PRs" runs-on: ubuntu-latest if: ${{ !github.event.pull_request.draft }} steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 1 - name: "Long change filter" id: long run: | num_lines=$(git diff --diff-filter=AM ${{ github.event.pull_request.base.sha }} -- '*.rs' | grep "^+" | grep -v "^+++" | wc -l) if [[ $num_lines -gt 300 ]]; then echo "long=true" >> $GITHUB_OUTPUT fi - name: "Push to Slack" if: steps.long.outputs.long == 'true' uses: actions-ecosystem/action-slack-notifier@fc778468d09c43a6f4d1b8cccaca59766656996a with: slack_token: ${{ secrets.SLACK_TOKEN }} channel: team-testing-risky custom_payload: | { "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": "• <${{ github.event.pull_request.html_url }}|${{ github.event.pull_request.title }}>" } } ] }