Skip to content

feat: Redesign automation examples as card-based marketplace linked to use cases #1417

feat: Redesign automation examples as card-based marketplace linked to use cases

feat: Redesign automation examples as card-based marketplace linked to use cases #1417

name: Check Broken Links
on:
pull_request:
branches:
- '**'
push:
branches:
- main
schedule:
# Run weekly on Monday at 9 AM UTC to catch links that break over time
- cron: '0 9 * * 1'
workflow_dispatch:
inputs:
check_external:
description: 'Also check external links (slower)'
required: false
default: 'false'
type: boolean
permissions:
contents: read
jobs:
check-internal-links:
name: Check Internal Links (Mintlify)
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Install Mint CLI
run: npm install -g mint@latest
- name: Check for broken internal links
run: |
echo "Running Mintlify broken link detection..."
mint broken-links
echo "✓ No broken internal links found!"
check-external-links:
name: Check External Links
runs-on: ubuntu-latest
# Run on schedule or when manually triggered with check_external=true
if: github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && inputs.check_external == true)
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: pip install requests
- name: Check external links
run: |
echo "Running external link checker..."
python .github/scripts/check_external_links.py --verbose
continue-on-error: true # Don't fail the workflow on timeouts
- name: Summary
if: always()
run: |
echo "External link check complete."
echo "Note: Some links may timeout due to rate limiting or slow servers."
echo "HTTP 403 errors from Cloudflare-protected sites are expected and skipped."