Skip to content

initial release#1

Merged
funkyshu merged 4 commits into
mainfrom
initial_release
Jun 16, 2026
Merged

initial release#1
funkyshu merged 4 commits into
mainfrom
initial_release

Conversation

@funkyshu

Copy link
Copy Markdown
Member

No description provided.

@funkyshu funkyshu requested a review from Copilot June 16, 2026 21:33
@c2fo-cibot c2fo-cibot Bot added the size/XXL Denotes a PR that changes 1000+ lines label Jun 16, 2026
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR delivers the initial ReleaseGen v2 codebase: a changelog-driven release automation tool (Go CLI + Docker image) that discovers per-module CHANGELOG.md files, determines the next SemVer, rewrites changelogs, commits/tags, and publishes matching GitHub Releases, with CI workflows and supporting docs.

Changes:

  • Adds the core ReleaseGen implementation (config parsing/validation, changelog parsing/classification/rewriting, repo discovery, git operations, GitHub release publication, runner orchestration).
  • Adds CI/release workflows (tests, lint, CodeQL, coverage gating, changelog enforcement) plus Docker build.
  • Adds foundational project docs (README, PRD, architecture), license, and community files.

Reviewed changes

Copilot reviewed 50 out of 55 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
README.md Full project overview, usage, workflow example, and FAQ.
LICENSE.md Adds MIT license text.
CHANGELOG.md Seeds Keep a Changelog formatted changelog with initial unreleased entry.
go.mod Defines module + dependencies for ReleaseGen.
go.sum Locks dependency checksums.
.testcoverage.yml Coverage gate configuration for go-test-coverage.
.prenup.yaml Local/dev task runner configuration (tests, lint, changelog check).
deployments/Dockerfile Multi-stage build for static ReleaseGen binary + alpine runtime image.
docs/PRD.md Product requirements document defining behavior/contract.
docs/ARCHITECTURE.md Maps PRD sections to packages and explains repo layout.
CODE_OF_CONDUCT.md Contributor Covenant code of conduct.
cmd/releasegen/main.go CLI entrypoint: env/flag parsing, wiring, exit-code mapping, self-release stdout behavior.
cmd/releasegen/main_test.go Tests flag overrides and exit-code mapping behavior.
internal/config/bump.go Defines bump enum + parsing for bump types.
internal/config/config.go Env parsing + validation for runtime configuration.
internal/config/config_test.go Tests config parsing and validation helpers.
internal/changelog/errors.go Defines changelog-specific sentinel errors.
internal/changelog/parser.go Extracts unreleased section and current version from changelog text.
internal/changelog/parser_test.go Tests/fuzzes changelog parsing logic.
internal/changelog/classifier.go Classifies unreleased section into SemVer bump type (incl. custom types).
internal/changelog/classifier_test.go Tests bump classification and version increment behavior.
internal/changelog/rewriter.go Rewrites changelog by promoting [Unreleased] into a linked, dated release section.
internal/changelog/rewriter_test.go Tests rewrite output and release URL/name helpers.
internal/changelog/update.go End-to-end pure update pipeline (extract → classify → bump/override → rewrite).
internal/changelog/update_test.go Tests update pipeline including manual override behavior.
internal/discovery/discovery.go Finds candidate changelogs to release (excludes, per-module latest tag, modified-since-tag check).
internal/discovery/discovery_test.go Tests discovery behavior and error propagation.
internal/forge/forge.go Defines releaser interface + sentinel error.
internal/forge/github.go GitHub implementation of release publishing via go-github.
internal/forge/github_test.go Tests GitHub releaser against httptest server.
internal/forge/mocks/mocks.go Mockery-generated forge.Releaser mock.
internal/logging/logging.go Slog handler + group markers with GitHub Actions formatting.
internal/logging/logging_test.go Tests logging output formats, levels, and CI detection.
internal/runner/runner.go Orchestrates discovery → changelog update → commit/tag/push → GitHub release + summary file.
internal/runner/runner_test.go Tests runner outcomes (happy path, skip, dry-run, failures, summary file, self-release tracking).
internal/vcs/vcs.go Defines VCS abstraction + options structs and sentinel error.
internal/vcs/git.go go-git implementation for discovery, tag reachability, modified-since-tag, commit/tag/push, token scrubbing.
internal/vcs/git_test.go Integration tests for GitRepo + helper selection logic.
internal/vcs/extract_module_name_internal_test.go Tests module name extraction from tag names.
internal/vcs/scrub_internal_test.go Tests token scrubbing from error messages.
internal/vcs/mocks/mocks.go Mockery-generated vcs.Repo mock.
.github/workflows/releasegen.yml Release workflow: build+run ReleaseGen and (if self-released) build/push Docker image.
.github/workflows/ci.yml PR test workflow.
.github/workflows/golangci-lint.yml PR lint workflow with per-module matrix.
.github/workflows/go-test-coverage.yml PR coverage workflow using go-test-coverage.
.github/workflows/ensure_changelog.yml PR changelog enforcement workflow.
.github/workflows/codeql.yml CodeQL advanced scanning workflow.
.github/workflows/scripts/changelog.sh Script enforcing directory-level changelog updates.
.github/ISSUE_TEMPLATE/bug_report.md Bug report template.
.github/ISSUE_TEMPLATE/feature_request.md Feature request template.
.github/ISSUE_TEMPLATE/custom.md Custom issue template stub.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread internal/vcs/git.go Outdated
Comment thread internal/runner/runner.go
Comment thread internal/changelog/update.go
Comment thread README.md
Comment thread internal/logging/logging.go
@funkyshu funkyshu merged commit 8f5facc into main Jun 16, 2026
7 checks passed
@funkyshu funkyshu deleted the initial_release branch June 18, 2026 17:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/XXL Denotes a PR that changes 1000+ lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants