Skip to content

Architecture

Components

Component Role
ApplicationService Orchestrates end-to-end flow.
GithubService GitHub GraphQL/REST operations: PR discovery/creation, label management, PR listing, tag inspection.
ChangelogService Builds structured changelog section and commits changes.
AISummarizer Optional AI summary generation.
types.ts Shared type contracts.
index.ts Entrypoint; sets outputs & error handling.

Workflow Diagrams

Development & Release Workflow

Action Internal Sequence (Detailed)

Version Strategy

Let latest tag = vA.B.C. Next version = A.B.(C+1). Major/minor changes require external tooling or manual override (future ADR).

Changelog Section Structure

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
## [version] - YYYY-MM-DD

### AI Summary (optional)
<summary bullets>

### Added

- item (#PR)

### Changed

... details ...

### Fixed

... details ...

### Breaking changes

... details ...

Replacement uses a regex anchored to existing ## [<version>] block.

Error Handling

  • Merge conflicts logged with a warning.
  • AI failures do not abort.
  • Missing repository/refs produce thrown errors (fail fast).

Extensibility Points

Area Potential Extension
Version policy Support conventional commit-based semver bump.
Changelog parsing Parse PR body standardized template.
AI model Configurable model & prompt customization.
Label taxonomy Multi-label classification for changelog categories.

Non-Goals

  • Publishing releases (delegated to semantic-release).
  • Semantic diffing of code changes.
  • Multi-repo release orchestration.

Risks

Risk Impact Mitigation
Regex replacement edge cases Corrupt changelog Unit tests around insertion logic (to add).
API rate limits Partial data Pagination implemented; could add backoff.
Inconsistent PR body formatting Category misclassification Fallback generic category heuristic.

See ADRs for decisions influencing this design.