tree 3aa7377ad7d441e10bfd0cf5e5f73a82de198764
parent c5848f3cb9753e94feddc04b8910b4ff113a458c
author Josh Bleecher Snyder <josharian@gmail.com> 1748458697 +0000
committer Josh Bleecher Snyder <josharian@gmail.com> 1748458889 -0700

github: fix Discord notification to handle multiple commits in queue push

Previously, commit queue pushes only notified about the final commit
instead of all commits being pushed to main. We now properly detect and
notify about all commits in a queue push in chronological order.

Changes include:

1. Enhanced push step in queue-main.yml and queue-dev.yml:
   - Capture range of commits being pushed using git log origin/main..COMMIT_TO_PUSH
   - Use --reverse flag to get commits in chronological order (oldest first)
   - Store commit list in GITHUB_OUTPUT for notification step

2. Updated Discord notification steps:
   - Iterate through all commits in the push (not just the final one)
   - Checkout each commit individually before calling discord_notify.py
   - Send separate notification for each commit in correct chronological order

3. Proper edge case handling:
   - Single commit pushes: Works correctly (sends one notification)
   - Empty pushes: Skips notification when no commits to notify about
   - Formatted commits: Includes both original and formatting commits

The fix ensures that when developers push multiple commits to a queue branch
(e.g., queue-main-username), Discord notifications are sent for each commit
that gets pushed to main, not just the latest one. Notifications appear in
chronological order matching the actual commit sequence.

Co-Authored-By: sketch <hello@sketch.dev>

Change-ID: s6a336eb2f945539fk