diff --git a/.github/workflows/monitor-slack-link.yml b/.github/workflows/monitor-slack-link.yml new file mode 100644 index 00000000000..648e047a153 --- /dev/null +++ b/.github/workflows/monitor-slack-link.yml @@ -0,0 +1,53 @@ +# Copyright 2021 Collate +# 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. + +name: monitor-slack-link +on: + schedule: + - cron: '0 */2 * * *' + workflow_dispatch: + +permissions: + id-token: write + contents: read + +jobs: + monitor-slack-link: + runs-on: ubuntu-latest + + steps: + - name: Monitor Link + id: monitor + continue-on-error: true + run: | + sudo apt-get update && sudo apt-get install -y jq + + curl -XPOST \ + https://www.linkmonitor.dev/api/v1/validate \ + -H "Content-Type: application/json" \ + --data '{"url": "https://slack.open-metadata.org"}' | jq -e '.status == "active"' || exit 1 + + - name: Slack on Failure + if: steps.monitor.outcome != 'success' + uses: slackapi/slack-github-action@v1.23.0 + with: + payload: | + { + "text": "🔥 Slack invitation link has expired! 🔥" + } + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_MONITOR_SLACK_WEBHOOK }} + SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK + + - name: Force failure + if: steps.monitor.outcome != 'success' + run: | + exit 1