Commit 7123d52
feat: add security scanning and code quality tools (#129)
* feat(docs): landing page improvements and new standalone pages
- Add QuickStart section with 3-step installation guide
- Add UseCases section showcasing Figma, GitHub, Linear, Notion workflows
- Create /templates page with all 18 templates from ralph-templates repo
- Create /use-cases page with detailed workflow explanations
- Create /integrations page with setup guides for all sources
- Add navbar links to new pages
- Remove tooltips from ClientShowcase section
- Fix robots.txt invalid syntax (orphaned directives)
- Add Google Analytics 4 tracking (G-4HSM6GRG3R)
- Update docs to use ralph-starter config commands instead of export
- Add docs:dev, docs:build, docs:serve scripts to root package.json
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(docs): prevent subtitle line break in QuickStart section
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: update LLM provider configuration instructions
- Add config commands for Anthropic, OpenAI, and OpenRouter
- Update config.md with all provider keys and env variables
- Fix storage location (config.json, not sources.json)
- Add Figma token to documented config keys
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: link to ghuntley.com/ralph instead of inline explanation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: remove duplicate command tables and sections
Removed redundant sections:
- Integrations & Input Sources (duplicated main Integrations section)
- Quick Setup table (duplicated integrations table)
- Managing Integrations (duplicated integrations code examples)
- Integration Commands (duplicated integrations section)
- Source Commands (Legacy) (outdated)
- Managing Config (duplicated Config Commands)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: streamline README structure
- Fix Table of Contents to match actual sections
- Remove redundant "Summary" header
- Keep Key Features table in a cleaner position
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(git): add labels support to createPullRequest
- Add labels field to PROptions interface
- Auto-create labels using gh label create --force
- Apply labels to PR using --label flags
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(git): add semantic PR title generator
- Add generateSemanticPrTitle() function
- Infer type from task: fix, test, docs, refactor, perf
- Format: type(scope): lowercase description
- Ensures title passes semantic PR validation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(git): add PR body formatter with issue linking
- Add formatPrBody() function for proper markdown PR bodies
- Include issue linking with Closes owner/repo#number format
- Add task summary, commits list, and execution details
- Properly detected by pr-issue-check.yml action
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(executor): use semantic titles and AUTO label for auto mode
- Import new git utilities for title generation and body formatting
- Add prLabels, prIssueRef, prType to LoopOptions interface
- Generate semantic PR titles: feat(auto): description
- Format PR body with proper markdown sections
- Auto-add AUTO label when running in auto mode
- Include issue reference for auto-close on merge
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(run): extract issue reference from source metadata
- Import IssueRef type from git module
- Extract owner/repo/number from GitHub source metadata
- Pass prIssueRef and prLabels to loop executor
- Remove hardcoded prTitle generation (let executor handle it)
- AUTO label added for auto mode runs
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: update CHANGELOG.md and auto-generate on release
- Backfill CHANGELOG.md with all beta releases from 0.1.1-beta.1 to beta.15
- Update prepare-release workflow to auto-generate changelog entries
- Use node script to avoid YAML parsing issues with markdown syntax
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add security scanning and code quality tools
- Add CodeRabbit config with custom review instructions
- Add security.yml with CodeQL, Trivy, Gitleaks, OSSF Scorecard
- Add SonarCloud integration for code quality metrics
- Add bundle analysis workflow for PR size monitoring
- Add stale workflow to keep issues/PRs clean
- Add workflow to trigger CodeRabbit on all open PRs
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: remove SonarCloud (not needed for now)
* fix: remove invalid CodeRabbit properties and fix dependency-review
* chore: add CodeRabbit as default reviewer in CODEOWNERS
* feat: smart auto-labeling and auto-assign for PRs
- Add auto-label.yml with intelligent label detection:
- Labels based on changed files (core, docs, ci/cd, security, etc.)
- Labels based on PR title (feat, fix, docs, etc.)
- Only adds candidate-release for actual src changes
- Auto-assign @rubenmarcus on PRs they create
- Remove duplicate auto-label job from prepare-release.yml
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback on workflows
- bundle-analysis.yml: Add build failure handling, fix divide-by-zero, fix shell substitution in JS
- coderabbit-review.yml: Use pagination for PRs, handle empty TS files, deduplicate issues
- prepare-release.yml: Extract changelog logic to external script with dynamic insertion
- security.yml: Remove redundant Trivy (have CodeQL + Dependency Review), fix scorecard permissions
- stale.yml: Remove bug/enhancement from exempt labels, add release to exempt PR labels
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add manual trigger to security scanning workflow
* fix: migrate dependency-review to config file (fix deprecation warning)
* fix(security): update dependencies to fix high/medium vulnerabilities
- Fix @modelcontextprotocol/sdk cross-client data leak (HIGH)
- Fix hono XSS, cache deception, IP spoofing vulnerabilities (MEDIUM)
Remaining issues are in dev-only dependencies (esbuild, lodash, tmp)
and don't affect the published CLI.
* fix: remove allow-licenses from dependency-review config
* fix: shorten CodeRabbit tone_instructions (max 250 chars)
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>1 parent a9a509a commit 7123d52
File tree
11 files changed
+826
-79
lines changed- .github
- scripts
- workflows
11 files changed
+826
-79
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
0 commit comments