Compare commits

...

5 Commits

Author SHA1 Message Date
lelemm
d0c00252e3 code rabbit suggestion 2026-02-09 10:46:37 -03:00
lelemm
f53d3c662d Update .github/workflows/ai-generated-release-notes.yml
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-02-09 10:44:09 -03:00
lelemm
a8a3355354 lint 2026-02-09 10:41:56 -03:00
github-actions[bot]
9d51ef7ce8 Add release notes for PR #6917 2026-02-09 13:40:37 +00:00
lelemm
e6d63f620e Auto note 2026-02-09 10:34:35 -03:00
4 changed files with 31 additions and 18 deletions

View File

@@ -28,7 +28,7 @@ try {
}
const data = JSON.stringify({
model: 'gpt-4o-mini',
model: 'gpt-4.1-mini',
messages: [
{
role: 'system',
@@ -71,30 +71,26 @@ try {
const rawContent = response.choices[0].message.content.trim();
console.log('Raw content from OpenAI:', rawContent);
let category;
try {
category = JSON.parse(rawContent);
console.log('Parsed category:', category);
} catch (parseError) {
console.log(
'JSON parse error, using raw content:',
parseError.message,
);
category = rawContent;
}
//CHANGED HOW IT READS THE CATEGORY TO AVOID ERRORS WHEN LLM DOESNT ANSWER A JSON
// Validate the category response
const validCategories = [
'Features',
'Bugfixes',
'Enhancements',
'Maintenance',
];
if (validCategories.includes(category)) {
const lowerContent = rawContent.toLowerCase();
const category = validCategories.find(cat =>
lowerContent.includes(cat.toLowerCase()),
);
if (category) {
console.log('OpenAI categorized as:', category);
setOutput('result', category);
} else {
console.log('Invalid category from OpenAI:', category);
console.log(
'No valid category found in OpenAI response:',
rawContent,
);
console.log('Valid categories are:', validCategories);
setOutput('result', 'null');
}

View File

@@ -28,7 +28,7 @@ try {
console.log('CodeRabbit comment body:', commentBody);
const data = JSON.stringify({
model: 'gpt-4o-mini',
model: 'gpt-4.1-mini',
messages: [
{
role: 'system',

View File

@@ -83,11 +83,22 @@ jobs:
PR_DETAILS: ${{ steps.pr-details.outputs.result }}
SUMMARY_DATA: ${{ steps.generate-summary.outputs.result }}
# Internal bot doesn't trigger workflows on commit; switching to Actual Bot App
- name: Generate GitHub App token
if: steps.check-first-comment.outputs.result == 'true' && steps.check-release-notes-exists.outputs.result == 'false' && steps.generate-summary.outputs.result != 'null' && steps.determine-category.outputs.result != 'null' && steps.determine-category.outputs.result != ''
id: app-token
uses: actions/create-github-app-token@v2
with:
app-id: ${{ vars.ACTUAL_BOT_APP_ID }}
private-key: ${{ secrets.ACTUAL_BOT_PRIVATE_KEY }}
owner: actualbudget
repositories: actual
- name: Create and commit release notes file via GitHub API
if: steps.check-first-comment.outputs.result == 'true' && steps.check-release-notes-exists.outputs.result == 'false' && steps.generate-summary.outputs.result != 'null' && steps.determine-category.outputs.result != 'null' && steps.determine-category.outputs.result != ''
run: node .github/actions/ai-generated-release-notes/create-release-notes-file.js
env:
GITHUB_TOKEN: ${{ secrets.ACTIONS_UPDATE_TOKEN }}
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
GITHUB_REPOSITORY: ${{ github.repository }}
GITHUB_EVENT_ISSUE_NUMBER: ${{ github.event.issue.number }}
SUMMARY_DATA: ${{ steps.generate-summary.outputs.result }}
@@ -97,7 +108,7 @@ jobs:
if: steps.check-first-comment.outputs.result == 'true' && steps.check-release-notes-exists.outputs.result == 'false' && steps.generate-summary.outputs.result != 'null' && steps.determine-category.outputs.result != 'null' && steps.determine-category.outputs.result != ''
run: node .github/actions/ai-generated-release-notes/comment-on-pr.js
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
GITHUB_REPOSITORY: ${{ github.repository }}
GITHUB_EVENT_ISSUE_NUMBER: ${{ github.event.issue.number }}
SUMMARY_DATA: ${{ steps.generate-summary.outputs.result }}

View File

@@ -0,0 +1,6 @@
---
category: Enhancements
authors: [lelemm]
---
Enhance auto-generated release notes with improved model, category extraction, and GitHub App token integration.