Generates diagram-first visualizations of your codebase using static analysis and large language models.
name: Generate Documentation
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
types: [opened, synchronize, reopened]
jobs:
documentation:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # Required to access branch history
- name: Generate Documentation
uses: codeboarding/codeboarding-ghaction@v1
with:
repository_url: ${{ github.server_url }}/${{ github.repository }}
source_branch: ${{ github.head_ref || github.ref_name }}
target_branch: ${{ github.base_ref || 'main' }}
output_directory: 'docs'
output_format: '.md'
- name: Upload Documentation
uses: actions/upload-artifact@v4
with:
name: documentation
path: |
docs/
.codeboarding/
Input | Description | Required | Default |
---|---|---|---|
repository_url |
Repository URL for which documentation will be generated | Yes | - |
source_branch |
Source branch for comparison (typically the PR branch) | Yes | - |
target_branch |
Target branch for comparison (typically the base branch) | Yes | - |
output_directory |
Directory where documentation files will be saved | No | docs |
output_format |
Format for documentation files (either .md or .rst ) |
No | .md |
Output | Description |
---|---|
markdown_files_created |
Number of documentation files created |
json_files_created |
Number of JSON files created |
output_directory |
Directory where documentation files were saved |
json_directory |
Directory where JSON files were saved (always .codeboarding ) |
has_changes |
Whether any files were created or changed |
The action works by:
- Analyzing the differences introduced in the source branch and putting the results in the target branch
- Generating documentation files based on the latest version of the source branch
- Outputting two types of files:
- Documentation files (Markdown or RST) in the specified output directory
- Metadata files in the
.codeboarding
directory
MIT License - see LICENSE file for details.
For large repositories, the analysis can take 15-45 minutes. Make sure to configure appropriate timeouts in your workflow:
jobs:
generate-docs:
runs-on: ubuntu-latest
timeout-minutes: 60 # Set to 60+ minutes for large repositories
steps:
- uses: actions/checkout@v4
- uses: your-username/codeboarding-ghaction@v1
with:
# your inputs here
- Small repositories (<1k files): 10-15 minutes
- Medium repositories (1k-5k files): 20-30 minutes
- Large repositories (5k+ files): 30-60 minutes
- Very large repositories (10k+ files): 45-90 minutes
If your workflow consistently times out, consider:
- Increasing
timeout-minutes
to 90 or higher - Running the action on a schedule during off-peak hours
- Analyzing specific branches with smaller diffs