Skip to content

Implemented automated changelog generation#444

Merged
Xhristin3 merged 4 commits into
rinafcode:mainfrom
Juwonlo:impact
Apr 27, 2026
Merged

Implemented automated changelog generation#444
Xhristin3 merged 4 commits into
rinafcode:mainfrom
Juwonlo:impact

Conversation

@Juwonlo
Copy link
Copy Markdown
Contributor

@Juwonlo Juwonlo commented Apr 26, 2026

Closes #377


Fixed Issue #377

Copilot AI review requested due to automatic review settings April 26, 2026 02:27
@drips-wave
Copy link
Copy Markdown

drips-wave Bot commented Apr 26, 2026

@Juwonlo Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Implements automated changelog generation tied to git tags and adds supporting CI automation, while also introducing new explainability/privacy patterns in the recommendation system and adding logging strategy documentation plus a NestJS logger module/service.

Changes:

  • Add a Node-based changelog generator script that parses conventional commit messages between tags and updates CHANGELOG.md.
  • Add a GitHub Actions workflow to run the generator on tag pushes and commit the updated changelog.
  • Refactor recommendation explainability to a Strategy pattern, add a privacy manager Builder, and introduce logging strategy docs + logger module/service.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
scripts/generate-changelog.js New changelog generator script using git tags + conventional commits
.github/workflows/generate-changelog.yml Workflow to run generator on tag pushes / manual trigger and push results
recommendation-system/src/privacy/privacy.ts Adds PrivacyComplianceManagerBuilder for configurable construction
recommendation-system/src/explainability/explainability.ts Introduces ExplanationStrategy + concrete strategies and refactors dominant-signal explanation
docs/logger.service.ts Adds a NestJS LoggerService implementation with structured JSON output in production
docs/logger.module.ts Adds a NestJS global module exporting the logger service
docs/LOGGING_STRATEGY.md Adds documented logging standards and schema
docs/DESIGN_PATTERNS.md Documents Strategy/Builder/Facade/DI patterns used in the codebase

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

chore: { title: '🔧 Chores & Maintenance', items: [] },
};

const commitRegex = /^(feat|fix|docs|style|refactor|perf|test|chore|security)(?:\(([^)]+)\))?:\s*(.+)$/i;
Comment on lines +8 to +11
inputs:
version:
description: 'Version to generate changelog for (e.g., v1.0.0)'
required: false
Comment on lines +27 to +29
- name: Generate Changelog
run: node scripts/generate-changelog.js

Comment thread docs/logger.service.ts
Comment on lines +19 to +24
private shouldLog(level: string): boolean {
const levels = ['debug', 'info', 'warn', 'error'];
const configuredIndex = levels.indexOf(this.logLevel.toLowerCase());
const targetIndex = levels.indexOf(level);
return targetIndex >= configuredIndex;
}
Comment thread docs/logger.service.ts
Comment on lines +47 to +53
const logEntry = {
timestamp,
level,
context: currentContext,
message: typeof message === 'object' ? JSON.stringify(message) : message,
...(Object.keys(metadata).length > 0 ? { data: metadata } : {}),
};
Comment on lines +182 to +183
if (!userProfile) return ''; // Guard clause

required: false

jobs:
changelog:
try {
return execSync(command, { encoding: 'utf-8' }).trim();
} catch (error) {
return '';
Comment on lines +36 to +40
previousTag = tags[1];
gitLogCmd = `git log ${previousTag}..${currentVersion} --format="%H|%s"`;
} else {
gitLogCmd = `git log ${currentVersion} --format="%H|%s"`;
}
@Xhristin3 Xhristin3 merged commit 96db8dc into rinafcode:main Apr 27, 2026
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement automated changelog generation

3 participants