Initial commit
This commit is contained in:
179
skills/repomix/scripts/README.md
Normal file
179
skills/repomix/scripts/README.md
Normal file
@@ -0,0 +1,179 @@
|
||||
# Repomix Scripts
|
||||
|
||||
Utility scripts for batch processing repositories with Repomix.
|
||||
|
||||
## repomix_batch.py
|
||||
|
||||
Batch process multiple repositories (local or remote) using the repomix CLI tool.
|
||||
|
||||
### Features
|
||||
|
||||
- Process multiple repositories in one command
|
||||
- Support local and remote repositories
|
||||
- Configurable output formats (XML, Markdown, JSON, Plain)
|
||||
- Environment variable loading from multiple .env file locations
|
||||
- Comprehensive error handling
|
||||
- Progress reporting
|
||||
|
||||
### Installation
|
||||
|
||||
Requires Python 3.10+ and repomix CLI:
|
||||
|
||||
```bash
|
||||
# Install repomix
|
||||
npm install -g repomix
|
||||
|
||||
# Install Python dependencies (if needed)
|
||||
pip install pytest pytest-cov pytest-mock # For running tests
|
||||
```
|
||||
|
||||
### Usage
|
||||
|
||||
**Process single repository:**
|
||||
```bash
|
||||
python repomix_batch.py /path/to/repo
|
||||
```
|
||||
|
||||
**Process multiple repositories:**
|
||||
```bash
|
||||
python repomix_batch.py /repo1 /repo2 /repo3
|
||||
```
|
||||
|
||||
**Process remote repositories:**
|
||||
```bash
|
||||
python repomix_batch.py owner/repo1 owner/repo2 --remote
|
||||
```
|
||||
|
||||
**From JSON file:**
|
||||
```bash
|
||||
python repomix_batch.py -f repos.json
|
||||
```
|
||||
|
||||
**With options:**
|
||||
```bash
|
||||
python repomix_batch.py /repo1 /repo2 \
|
||||
--style markdown \
|
||||
--output-dir output \
|
||||
--remove-comments \
|
||||
--include "src/**/*.ts" \
|
||||
--ignore "tests/**" \
|
||||
--verbose
|
||||
```
|
||||
|
||||
### Configuration File Format
|
||||
|
||||
Create `repos.json` with repository configurations:
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"path": "/path/to/local/repo",
|
||||
"output": "custom-output.xml"
|
||||
},
|
||||
{
|
||||
"path": "owner/repo",
|
||||
"remote": true
|
||||
},
|
||||
{
|
||||
"path": "https://github.com/owner/repo",
|
||||
"remote": true,
|
||||
"output": "repo-output.md"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
|
||||
Loads .env files in order of precedence:
|
||||
1. Process environment (highest priority)
|
||||
2. `./repomix/.env` (skill-specific)
|
||||
3. `./skills/.env` (skills directory)
|
||||
4. `./.claude/.env` (lowest priority)
|
||||
|
||||
### Command Line Options
|
||||
|
||||
```
|
||||
positional arguments:
|
||||
repos Repository paths or URLs to process
|
||||
|
||||
options:
|
||||
-h, --help Show help message
|
||||
-f, --file FILE JSON file containing repository configurations
|
||||
--style {xml,markdown,json,plain}
|
||||
Output format (default: xml)
|
||||
-o, --output-dir DIR Output directory (default: repomix-output)
|
||||
--remove-comments Remove comments from source files
|
||||
--include PATTERN Include pattern (glob)
|
||||
--ignore PATTERN Ignore pattern (glob)
|
||||
--no-security-check Disable security checks
|
||||
-v, --verbose Verbose output
|
||||
--remote Treat all repos as remote URLs
|
||||
```
|
||||
|
||||
### Examples
|
||||
|
||||
**Process local repositories:**
|
||||
```bash
|
||||
python repomix_batch.py /path/to/repo1 /path/to/repo2 --style markdown
|
||||
```
|
||||
|
||||
**Process remote repositories:**
|
||||
```bash
|
||||
python repomix_batch.py yamadashy/repomix facebook/react --remote
|
||||
```
|
||||
|
||||
**Mixed configuration:**
|
||||
```bash
|
||||
python repomix_batch.py \
|
||||
/local/repo \
|
||||
--remote owner/remote-repo \
|
||||
-f additional-repos.json \
|
||||
--style json \
|
||||
--remove-comments
|
||||
```
|
||||
|
||||
**TypeScript projects only:**
|
||||
```bash
|
||||
python repomix_batch.py /repo1 /repo2 \
|
||||
--include "**/*.ts,**/*.tsx" \
|
||||
--ignore "**/*.test.ts,dist/" \
|
||||
--remove-comments \
|
||||
--style markdown
|
||||
```
|
||||
|
||||
### Testing
|
||||
|
||||
Run tests with coverage:
|
||||
|
||||
```bash
|
||||
cd tests
|
||||
pytest test_repomix_batch.py -v --cov=repomix_batch --cov-report=term-missing
|
||||
```
|
||||
|
||||
Current coverage: 99%
|
||||
|
||||
### Exit Codes
|
||||
|
||||
- `0` - All repositories processed successfully
|
||||
- `1` - One or more repositories failed or error occurred
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
**repomix not found:**
|
||||
```bash
|
||||
npm install -g repomix
|
||||
```
|
||||
|
||||
**Permission denied:**
|
||||
```bash
|
||||
chmod +x repomix_batch.py
|
||||
```
|
||||
|
||||
**Timeout errors:**
|
||||
- Default timeout: 5 minutes per repository
|
||||
- Reduce scope with `--include` patterns
|
||||
- Exclude large directories with `--ignore`
|
||||
|
||||
**No repositories specified:**
|
||||
- Provide repository paths as arguments
|
||||
- Or use `-f` flag with JSON config file
|
||||
Reference in New Issue
Block a user