From e6d63f620e4bfab0ea616da37512763da691bc30 Mon Sep 17 00:00:00 2001 From: lelemm Date: Mon, 9 Feb 2026 10:34:35 -0300 Subject: [PATCH] Auto note --- .../determine-category.js | 22 ++++++------------- .../generate-summary.js | 2 +- .../workflows/ai-generated-release-notes.yml | 15 +++++++++++-- 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/.github/actions/ai-generated-release-notes/determine-category.js b/.github/actions/ai-generated-release-notes/determine-category.js index fef54d77c4..2200b82827 100755 --- a/.github/actions/ai-generated-release-notes/determine-category.js +++ b/.github/actions/ai-generated-release-notes/determine-category.js @@ -28,7 +28,7 @@ try { } const data = JSON.stringify({ - model: 'gpt-4o-mini', + model: 'gpt-4.1-mini', messages: [ { role: 'system', @@ -71,30 +71,22 @@ 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 category = validCategories.find(cat => + rawContent.includes(cat), + ); + 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'); } diff --git a/.github/actions/ai-generated-release-notes/generate-summary.js b/.github/actions/ai-generated-release-notes/generate-summary.js index 244d0b2f45..8c8cf90a36 100755 --- a/.github/actions/ai-generated-release-notes/generate-summary.js +++ b/.github/actions/ai-generated-release-notes/generate-summary.js @@ -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', diff --git a/.github/workflows/ai-generated-release-notes.yml b/.github/workflows/ai-generated-release-notes.yml index a6ddb0449d..f99a1657e3 100644 --- a/.github/workflows/ai-generated-release-notes.yml +++ b/.github/workflows/ai-generated-release-notes.yml @@ -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 COKMMIT. CHANGING 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 }}