Files
Alex Notov 5e02d662d1 fix(ci): expand CI coverage to all notebook directories
Previously, CI workflows only monitored notebooks in the skills/ directory.
This caused PR #193 to merge without pedagogical review since its notebook
was in tool_evaluation/.

Changes:
- Update all notebook-related CI workflows to monitor **/*.ipynb
- Add SAST security monitoring workflow for code security analysis
- Update validate_notebooks.py to check all repository notebooks
- Fix notebook discovery in links.yml workflow

This ensures comprehensive CI coverage for all 9+ directories containing
notebooks (skills/, tool_evaluation/, misc/, tool_use/, third_party/, etc.)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-11 14:46:30 -06:00

65 lines
1.6 KiB
YAML

name: Link Check
on:
pull_request:
types: [opened, synchronize]
schedule:
- cron: "0 0 * * SUN"
workflow_dispatch:
permissions:
contents: read
pull-requests: write
jobs:
check-links:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Convert notebooks for link extraction
run: |
pip install jupyter nbconvert
mkdir -p temp_md
for nb in $(find . -name "*.ipynb" -not -path "*/.*"); do
echo "Converting: $nb"
jupyter nbconvert --to markdown "$nb" \
--output-dir=temp_md \
--ExtractOutputPreprocessor.enabled=False
done
- name: Check Links with Lychee
id: lychee
uses: lycheeverse/lychee-action@v2
with:
args: |
--config lychee.toml
--format markdown
--no-progress
skills/**/*.md
temp_md/*.md
README.md
output: lychee-report.md
fail: false
- name: Comment PR with results
if: github.event_name == 'pull_request' && steps.lychee.outputs.exit_code != 0
uses: marocchino/sticky-pull-request-comment@v2
with:
header: link-check
path: lychee-report.md
- name: Upload link check results
if: always()
uses: actions/upload-artifact@v4
with:
name: link-check-results
path: |
lychee-report.md
.lycheecache