feat: enhance changelog generator to accept version parameter for PR processing

## CHANGES

- Pass version parameter to changelog generation workflow
- Update ProcessIncomingPRs method to accept version string
- Add commit SHA tracking to prevent duplicate entries
- Modify process-prs flag to require version parameter
- Improve changelog formatting with proper spacing
- Update configuration to use ProcessPRsVersion string field
- Enhance direct commit filtering with SHA exclusion
- Update documentation to reflect version parameter requirement
This commit is contained in:
Kayvan Sylvan
2025-07-21 07:36:30 -07:00
parent b8008a34fb
commit 91c1aca0dd
6 changed files with 59 additions and 48 deletions

View File

@@ -156,9 +156,9 @@ Add to `internal/config/config.go`:
```go
type Config struct {
// ... existing fields
IncomingPR int // PR number for --incoming-pr
ProcessPRs bool // Flag for --process-prs
IncomingDir string // Directory for incoming files (default: ./cmd/generate_changelog/incoming/)
IncomingPR int // PR number for --incoming-pr
ProcessPRsVersion string // Flag for --process-prs (new version string)
IncomingDir string // Directory for incoming files (default: ./cmd/generate_changelog/incoming/)
}
```
@@ -166,7 +166,7 @@ type Config struct {
```go
rootCmd.Flags().IntVar(&cfg.IncomingPR, "incoming-pr", 0, "Pre-process PR for changelog (provide PR number)")
rootCmd.Flags().BoolVar(&cfg.ProcessPRs, "process-prs", false, "Process all incoming PR files for release")
rootCmd.Flags().StringVar(&cfg.ProcessPRsVersion, "process-prs", "", "Process all incoming PR files for release (provide version like v1.4.262)")
rootCmd.Flags().StringVar(&cfg.IncomingDir, "incoming-dir", "./cmd/generate_changelog/incoming", "Directory for incoming PR files")
```
@@ -314,22 +314,22 @@ Update `.github/workflows/update-version-and-create-tag.yml`.
### Phase 1: Implement Developer Tooling
- [ ] Add new command line flags and configuration
- [ ] Implement `--incoming-pr` functionality
- [ ] Add validation for PR states and git status
- [ ] Create auto-commit logic
- [x] Add new command line flags and configuration
- [x] Implement `--incoming-pr` functionality
- [x] Add validation for PR states and git status
- [x] Create auto-commit logic
### Phase 2: Integration (CI/CD) Readiness
- [ ] Implement `--process-prs` functionality
- [ ] Add CHANGELOG.md insertion logic
- [ ] Update database storage for version entries
- [x] Implement `--process-prs` functionality
- [x] Add CHANGELOG.md insertion logic
- [x] Update database storage for version entries
### Phase 3: Deployment
- [ ] Update GitHub Actions workflow
- [ ] Create developer documentation in ./docs/ directory
- [ ] Test full end-to-end workflow (the PR that includes these modifications can be its first production test)
- [x] Update GitHub Actions workflow
- [x] Create developer documentation in ./docs/ directory
- [x] Test full end-to-end workflow (the PR that includes these modifications can be its first production test)
### Phase 4: Adoption

View File

@@ -94,7 +94,7 @@ Specify custom directory for incoming PR files (default: `./cmd/generate_changel
Process all incoming PR files for release aggregation. Used by CI/CD during release creation.
**Usage**: `./generate_changelog --process-prs`
**Usage**: `./generate_changelog --process-prs {new_version_string}`
**Mutual Exclusivity**: Cannot be used with `--incoming-pr` flag