a8trejo 1 год назад
Родитель
Сommit
2b8e85ab52
2 измененных файлов с 35 добавлено и 0 удалено
  1. 17 0
      .github/scripts/release-notes-prompt.py
  2. 18 0
      .github/workflows/changeset-ai-releases.yml

+ 17 - 0
.github/scripts/release-notes-prompt.py

@@ -0,0 +1,17 @@
+import os
+from datetime import datetime;
+from pytz import timezone
+
+GITHUB_OUTPUT = os.getenv("GITHUB_OUTPUT")
+
+TODAY = datetime.now(timezone('US/Eastern')).isoformat(sep=' ', timespec='seconds')
+
+BASE_PROMPT = f"""Based on the following 'PR Information', please generate a concise and informative release notes to be read by developers.
+Format the release notes with markdown, and always use this structure: a descriptive and very short title (no more than 8 words) with heading level 2, a paragraph with a summary of changes (no header), and sections for '🚀 New Features & Improvements', '🐛 Bugs Fixed' and '🔧 Other Updates', with heading level 3, skip respectively the sections if not applicable. 
+Finally include the following markdown comment with the PR merged date: <!-- PR_DATE: {TODAY} -->.
+Avoid being repetitive and focus on the most important changes and their impact, don't mention version bumps, nor changeset files, nor environment variables, nor syntax updates.
+PR Information:"""
+
+# Write the prompt to GITHUB_OUTPUT
+with open(GITHUB_OUTPUT, "a") as outputs_file:
+    outputs_file.write(f"BASE_PROMPT<<EOF\n{BASE_PROMPT}\nEOF")

+ 18 - 0
.github/workflows/changeset-ai-releases.yml

@@ -85,6 +85,23 @@ jobs:
           echo "version=$VERSION"
           echo "prev_version=$PREV_VERSION"
 
+      - name: Release Notes Prompt
+        id: ai_prompt
+        run: |
+          # Get today's date in YYYY-MM-DD format
+          TODAY=$(date +'%Y-%m-%d %H:%M')
+
+          echo "BASE_PROMPT<<EOF" >> $GITHUB_OUTPUT
+          echo "Based on the following 'PR Information', please generate concise and informative release notes to be read by developers.
+
+          Format the release notes with markdown, and always use this structure: a descriptive and very short title (no more than 8 words) with heading level 2, a paragraph with a summary of changes (no header), and sections for '🚀 New Features & Improvements', '🐛 Bugs Fixed' and '🔧 Other Updates', with heading level 3, skip respectively the sections if not applicable, 
+          finally include the following markdown comment with the PR merged date: <!-- PR_DATE: $TODAY -->.
+
+          Avoid being repetitive and focus on the most important changes and their impact, don't mention version bumps, nor changeset files, nor environment variables, nor syntax updates.
+
+          PR Information:" >> $GITHUB_OUTPUT
+          echo "EOF" >> $GITHUB_OUTPUT
+
       # Github outputs: 'RELEASE_NOTES' and 'OPENAI_PROMPT'
       - name: AI Release Notes
         if: ${{ !contains(github.event.pull_request.labels.*.name, 'openai-edited') }}
@@ -96,6 +113,7 @@ jobs:
           model_name: gpt-4o-mini
           repo_path: ${{ env.REPO_PATH }}
           git_ref: ${{ env.GIT_REF }}
+          custom_prompt: ${{ steps.ai_prompt.outputs.BASE_PROMPT }}
 
       - name: Update Changeset Changelog
         if: ${{ !contains(github.event.pull_request.labels.*.name, 'openai-edited') }}