# 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