GitHub Source
Pull files directly from a GitHub repository:
yaml
documents: - description: Repository Source Files outputPath: docs/repo-files.md sources: - type: github description: Repository Source Files repository: owner/repo sourcePaths: - src branch: main filePattern: "*.php" excludePatterns: - tests - vendor showTreeView: true githubToken: ${GITHUB_TOKEN} modifiers: - php-signature
Parameters
Parameter | Type | Default | Description |
---|---|---|---|
type | string | required | Must be "github" |
description | string | "" | Human-readable description of the source |
repository | string | required | GitHub repository in format "owner/repo" |
sourcePaths | string|array | required | Path(s) within the repository to include |
branch | string | "main" | Branch or tag to fetch from |
filePattern | string|array | "*.*" | File pattern(s) to match |
excludePatterns | array | [] | Patterns to exclude files |
notPath (or excludePatterns ) | array | [] | Patterns to exclude files |
path | string|array | [] | Patterns to include only files in specific paths |
contains | string|array | [] | Patterns to include only files containing specific content |
notContains | string|array | [] | Patterns to exclude files containing specific content |
showTreeView | boolean | true | Whether to display a directory tree visualization |
githubToken | string | null | GitHub API token for private repositories (can use env var pattern ${TOKEN_NAME} ) |
modifiers | array | [] | Content modifiers to apply |
tags | array | [] | List of tags for this source |
Multiple Source Paths
You can include files from multiple directories:
yaml
documents: - description: Multiple Source Directories outputPath: docs/multiple-dirs.md sources: - type: github description: Multiple Source Directories repository: owner/repo sourcePaths: - src/Controllers - src/Models - config filePattern: "*.php" showTreeView: true
Multiple File Patterns
Include different file types:
yaml
documents: - description: Multiple File Types outputPath: docs/multiple-types.md sources: - type: github description: Multiple File Types repository: owner/repo sourcePaths: - src filePattern: - "*.php" - "*.json" - "*.md" showTreeView: true
Path-Based Filtering
Target specific subdirectories or files:
yaml
documents: - description: Only Controller Files outputPath: docs/controllers.md sources: - type: github description: Only Controller Files repository: owner/repo sourcePaths: - src path: Controller filePattern: "*.php" showTreeView: true
This will only include files with "Controller" in their path. You can also use an array:
yaml
documents: - description: Controllers and Services outputPath: docs/controllers-services.md sources: - type: github description: Controllers and Services repository: owner/repo sourcePaths: - src path: - Controller - Service filePattern: "*.php" showTreeView: true
Content-Based Filtering
Include or exclude files based on their content:
yaml
documents: - description: Repository Classes outputPath: docs/repositories.md sources: - type: github description: Repository Classes repository: owner/repo sourcePaths: - src contains: class Repository filePattern: "*.php" showTreeView: true
You can also exclude files containing specific content:
yaml
documents: - description: Non-Deprecated Classes outputPath: docs/non-deprecated.md sources: - type: github description: Non-Deprecated Classes repository: owner/repo sourcePaths: - src notContains: @deprecated filePattern: "*.php" showTreeView: true
Use arrays for multiple patterns:
yaml
documents: - description: Service Classes outputPath: docs/services.md sources: - type: github description: Service Classes repository: owner/repo sourcePaths: - src contains: - class Service - implements ServiceInterface notContains: - @deprecated - @internal filePattern: "*.php" showTreeView: true