Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
5b6b478
feat: rewrite as Architecture Review action
brovatten May 25, 2026
8e512d4
chore: trigger CI
brovatten May 25, 2026
7c10e9b
fix: remove timeout-minutes from composite step (not allowed)
brovatten May 25, 2026
8581a59
fix: bundle webview-ui dist (CodeBoarding-vscode is private)
brovatten May 25, 2026
5ffc288
docs: update README to match shipped V1 (no vscode_ref, bundled dist)
brovatten May 25, 2026
cba8719
chore: trigger CI with new baseline on main
brovatten May 25, 2026
b695bc6
fix: use run_incremental directly against checked-out PR head
brovatten May 25, 2026
ecce426
test: pass agent/parsing models matching local .env presets
brovatten May 25, 2026
83ac257
test: read AGENT_MODEL and PARSING_MODEL from repo secrets
brovatten May 25, 2026
6938cc7
fix: pre-flight OpenRouter auth check (fail in 2s, not 9min)
brovatten May 25, 2026
03fdc9a
fix: strip whitespace from OPENROUTER_API_KEY / models before use
brovatten May 25, 2026
560dfaf
fix: also strip quotes/KEY= prefix from secret; report prefix sanity
brovatten May 25, 2026
df92624
fix: fall back to run_full on IncrementalCacheMissingError
brovatten May 25, 2026
609c0c4
fix: move Install Playwright AFTER seed step (it referenced base.found)
brovatten May 25, 2026
a5f75c6
debug: dump DOM + console logs on no-nodes; screenshot regardless
brovatten May 25, 2026
f803c55
fix: serve analysis at /sample-analysis.json so browser-dev-mock load…
brovatten May 25, 2026
22990fb
chore: drop unused analysis read (now served via http)
brovatten May 25, 2026
b7e9865
fix: hide welcome / demo / help / side chrome before screenshot
brovatten May 25, 2026
716fd6e
feat: crop screenshot to node bounds + 80px padding
brovatten May 25, 2026
8d0ec07
feat(comment): use branch name + smart pluralization in PR comment
brovatten May 25, 2026
53272a5
feat: append code-health warnings footer to PR comment
brovatten May 25, 2026
1b8f70c
feat(comment): expand warnings footer with examples + trace link
brovatten May 26, 2026
3bfeb79
fix(warnings): better entity-name extraction for examples
brovatten May 26, 2026
52654bd
chore: ignore webview-dist from CodeBoarding analysis
brovatten May 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
133 changes: 133 additions & 0 deletions .codeboarding/.codeboardingignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
# CodeBoarding Ignore File
# Add patterns here for files and directories that should be excluded from CodeBoarding analysis.
# Use the same format as .gitignore (gitignore syntax / gitwildmatch patterns).
#
# To stop ignoring a pattern, prefix it with ! (e.g., !important_file.txt)
#
# NOTE: The following are ALWAYS excluded (not configurable):
# - Hidden directories (starting with .)
# - .git/, .codeboarding/, node_modules/, __pycache__/
# - Build output: build/, dist/, coverage/
#
# This file is automatically loaded by CodeBoarding analysis tools to exclude
# specified paths from code analysis, architecture generation, and other processing.

# ============================================================================
# Ignored directories (customizable — remove lines to include them)
# ============================================================================

# Python virtual environments
venv/
env/
*.egg-info/

# Java (Maven/Gradle) and Rust (Cargo) build output. Both ecosystems
# produce a top-level ``target/`` directory full of compiled artifacts —
# kept here as well as in ``_ALWAYS_IGNORED_DIRS`` so users who customize
# their ``.codeboardingignore`` continue to skip it even after edits.
target/
bin/
out/

# .NET / C# build output
obj/

# Go
vendor/
testdata/

# PHP
cache/

# Custom
temp/
repos/

# Bundled React webview build (minified JS — not part of this repo's architecture)
webview-dist/
runs/

# ============================================================================
# Test and infrastructure files
# ============================================================================

# Test directories
**/__tests__/**
**/tests/**
**/test/**
**/__test__/**
**/testing/**
**/testutil/**

# Java/Kotlin test directories (Maven/Gradle structure)
**/src/test/**
**/src/testFixtures/**
**/src/integration-test/**
**/src/jmh/**
**/src/contractTest/**
**/osgi-tests/**

# Test files by naming convention
*.test.*
*.spec.*
*_test.*
*test_*.py
test_*.py
*Test.java
*IT.java
*Test.kt
*IT.kt
*Tests.java

# Mock, fixture, and stub directories
**/__mocks__/**
**/mocks/**
**/fixtures/**
**/fixture/**
**/stubs/**
**/stub/**
**/fakes/**
**/fake/**

# E2E and integration test directories
**/e2e/**
**/integration-tests/**
**/integration_test*/**

# ============================================================================
# Non-production code
# ============================================================================

# Example and documentation code
**/examples/**
**/documentation/examples/**

# Generated code
*.pb.go
**/generated_parser*

# Java/Kotlin metadata files
module-info.java

# ============================================================================
# Build artifacts and minified files
# ============================================================================

*.bundle.js
*.bundle.js.map
*.min.js
*.min.css
*.chunk.js
*.chunk.js.map

# ============================================================================
# Build tool configs and infrastructure
# ============================================================================

esbuild*
webpack*
rollup*
vite.config.*
gulpfile*
gruntfile*
*.config.*
134 changes: 19 additions & 115 deletions .github/workflows/example-usage.yml
Original file line number Diff line number Diff line change
@@ -1,126 +1,30 @@
name: Example Usage of CodeBoarding Action
name: Architecture review (self-test)

# Self-test: every PR opened against this repo runs the local action.
# Useful for verifying the action's wiring; on first runs this will hit
# the "no baseline" path because the repo has no .codeboarding/analysis.json.

on:
workflow_dispatch:
inputs:
repository_url:
description: 'Repository URL to test with'
required: false
default: 'https://github.com/microsoft/markitdown'
type: string
source_branch:
description: 'Source branch for comparison'
required: false
default: 'main'
type: string
target_branch:
description: 'Target branch for comparison'
required: false
default: 'develop'
type: string
output_format:
description: 'Output format for documentation'
required: false
default: '.md'
type: choice
options:
- '.md'
- '.rst'

pull_request:
branches: [ main, master ]
types: [opened, synchronize, reopened]
schedule:
# Run daily at 2 AM UTC
- cron: '0 2 * * *'
types: [opened, synchronize, reopened, ready_for_review]
workflow_dispatch:

permissions:
pull-requests: write
contents: write

jobs:
update-docs-action-usage:
architecture-review:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write

if: github.event_name == 'workflow_dispatch' || github.event.pull_request.draft == false
timeout-minutes: 60
steps:
- name: Checkout repository
- name: Checkout action
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0 # Required to access branch history

# Determine branches based on context
- name: Set branch variables
id: set-branches
run: |
if [ "${{ github.event_name }}" = "pull_request" ]; then
echo "source_branch=${{ github.head_ref }}" >> $GITHUB_OUTPUT
echo "target_branch=${{ github.base_ref }}" >> $GITHUB_OUTPUT
elif [ "${{ github.event.inputs.source_branch }}" != "" ] && [ "${{ github.event.inputs.target_branch }}" != "" ]; then
echo "source_branch=${{ github.event.inputs.source_branch }}" >> $GITHUB_OUTPUT
echo "target_branch=${{ github.event.inputs.target_branch }}" >> $GITHUB_OUTPUT
else
# Default to current branch and main
echo "source_branch=${{ github.ref_name }}" >> $GITHUB_OUTPUT
echo "target_branch=main" >> $GITHUB_OUTPUT
fi

- name: Fetch CodeBoarding Documentation
id: codeboarding
- name: Run CodeBoarding Architecture Review
uses: ./
with:
repository_url: ${{ github.event.inputs.repository_url }}
source_branch: ${{ steps.set-branches.outputs.source_branch }}
target_branch: ${{ steps.set-branches.outputs.target_branch }}
output_directory: 'docs'
output_format: ${{ github.event.inputs.output_format || '.md' }}

- name: Display Action Results
run: |
echo "Documentation files created: ${{ steps.codeboarding.outputs.markdown_files_created }}"
echo "JSON files created: ${{ steps.codeboarding.outputs.json_files_created }}"
echo "Documentation directory: ${{ steps.codeboarding.outputs.output_directory }}"
echo "JSON directory: ${{ steps.codeboarding.outputs.json_directory }}"
echo "Has changes: ${{ steps.codeboarding.outputs.has_changes }}"

# Check if we have any changes to commit
- name: Check for changes
id: git-changes
run: |
if [ -n "$(git status --porcelain)" ]; then
echo "has_git_changes=true" >> $GITHUB_OUTPUT
else
echo "has_git_changes=false" >> $GITHUB_OUTPUT
fi

- name: Create Pull Request
if: steps.git-changes.outputs.has_git_changes == 'true' && steps.codeboarding.outputs.has_changes == 'true'
uses: peter-evans/create-pull-request@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "docs: update codeboarding documentation"
title: "📚 CodeBoarding Documentation Update"
body: |
## 📚 Documentation Update

This PR contains updated documentation files fetched from the CodeBoarding service.

### 📊 Summary
- **Documentation files created/updated**: ${{ steps.codeboarding.outputs.markdown_files_created }}
- **JSON files created/updated**: ${{ steps.codeboarding.outputs.json_files_created }}
- **Documentation directory**: `${{ steps.codeboarding.outputs.output_directory }}/`
- **JSON directory**: `${{ steps.codeboarding.outputs.json_directory }}/`
- **Source branch**: `${{ steps.set-branches.outputs.source_branch }}`
- **Target branch**: `${{ steps.set-branches.outputs.target_branch }}`
- **Output format**: `${{ github.event.inputs.output_format || '.md' }}`
- **Repository analyzed**: `${{ steps.codeboarding.outputs.repo_url }}`

### 🔍 Changes
Files have been updated with fresh documentation content based on code changes between branches.

---

🤖 This PR was automatically generated by the CodeBoarding documentation update workflow.
branch: docs/codeboarding-update
base: ${{ steps.set-branches.outputs.target_branch }}
delete-branch: true
llm_api_key: ${{ secrets.OPENROUTER_API_KEY }}
agent_model: ${{ secrets.AGENT_MODEL }}
parsing_model: ${{ secrets.PARSING_MODEL }}
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ test_codeboarding/
# Logs
*.log

# Runtime deps (Playwright etc. installed at action execution time)
node_modules/
package-lock.json

# OS generated files
.DS_Store
.DS_Store?
Expand Down
Loading
Loading