Files
docs-blackroad-io/.github/workflows/visual-docs-bot.yml
Workflow config file is invalid. Please check your config file: yaml: line 40: could not find expected ':'
Alexa Louise ca8c67ea3f 🎨 Add Visual Docs Bot integration
- Automated visual documentation generation
- Canva integration for architecture diagrams
- PR comments with visual updates
- Artifact uploads for review

Deployed by: claude-pegasus-1766972309
2025-12-28 19:52:54 -06:00

142 lines
4.0 KiB
YAML

name: 🎨 Visual Docs Bot
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
workflow_dispatch:
jobs:
generate-visual-docs:
runs-on: ubuntu-latest
name: Generate Visual Documentation
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: |
npm install -g @canva/cli
pip3 install pyyaml requests
- name: Generate architecture diagrams
run: |
echo "🎨 Generating visual documentation..."
# Create docs directory
mkdir -p docs/visual
# Generate diagrams from codebase structure
python3 << 'PYTHON'
import os
import json
import yaml
from pathlib import Path
def analyze_repo_structure():
"""Analyze repository structure for visualization"""
structure = {
"name": os.path.basename(os.getcwd()),
"components": [],
"workflows": [],
"configs": []
}
# Find key files
for root, dirs, files in os.walk('.', topdown=True):
dirs[:] = [d for d in dirs if not d.startswith('.') and d != 'node_modules']
for file in files:
if file.endswith(('.yml', '.yaml')):
structure["workflows"].append(os.path.join(root, file))
elif file in ['package.json', 'requirements.txt', 'Dockerfile']:
structure["configs"].append(os.path.join(root, file))
return structure
def generate_diagram_spec(structure):
"""Generate Canva-compatible diagram specification"""
return {
"type": "architecture_diagram",
"title": f"{structure['name']} Architecture",
"components": structure["components"],
"connections": [],
"metadata": {
"workflows": len(structure["workflows"]),
"configs": len(structure["configs"])
}
}
if __name__ == "__main__":
structure = analyze_repo_structure()
diagram_spec = generate_diagram_spec(structure)
with open('docs/visual/architecture-spec.json', 'w') as f:
json.dump(diagram_spec, f, indent=2)
print(f"✅ Generated architecture spec for {structure['name']}")
PYTHON
- name: Create visual documentation index
run: |
cat > docs/visual/README.md << 'DOCS'
# 🎨 Visual Documentation
This directory contains automatically generated visual documentation.
## Generated Diagrams
- **Architecture Diagram**: System component overview
- **Workflow Diagrams**: CI/CD and automation flows
- **Dependency Graph**: Package and module relationships
## Automation
Visual docs are automatically updated on:
- Push to main/master branch
- Pull request creation
- Manual workflow dispatch
Generated by: Visual Docs Bot 🤖
DOCS
- name: Commit visual docs
if: github.event_name == 'push'
run: |
git config --local user.email "blackroad-bot@users.noreply.github.com"
git config --local user.name "BlackRoad Visual Docs Bot"
git add docs/visual/ || true
git diff --staged --quiet || git commit -m "🎨 Update visual documentation [skip ci]"
git push || echo "No changes to push"
- name: Comment on PR
if: github.event_name == 'pull_request'
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: '🎨 **Visual Documentation Generated**\n\nArchitecture diagrams have been created for this change. Check `docs/visual/` for details.'
});
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: visual-docs
path: docs/visual/
retention-days: 30