7979 const contributorNames = new Map()
8080 const profileReplacements = new Set()
8181 const skippedBotAccounts = new Set()
82+ const missingAuthors = new Map()
8283 for (const repo of allRepos) {
8384 let [organization, repository] = repo.split('/')
8485 let contributors = computeIfAbsent(orgaContributors, organization, () => new Set())
@@ -130,6 +131,7 @@ jobs:
130131 computeIfAbsent(contributorNames, profile, () => new Set()).add(authorName)
131132 } else { // author is null for directly pushed commits, which happens e.g. for I-build submodule updates
132133 console.log("Skip commit of " + authorName)
134+ computeIfAbsent(missingAuthors, authorName, () => new Set()).add(commitData.html_url)
133135 }
134136 commitCount++
135137 }
@@ -211,9 +213,41 @@ jobs:
211213 fs.writeFileSync(acknowledgementsFile, lines.join('\n'), {encoding: 'utf8'})
212214
213215 // Set adjustments as outputs in order to append them to the PR message
214- core.setOutput('profile-replacements', Array.from(profileReplacements).map(r => " - " + r).join("\n"));
215- core.setOutput('skipped-bots', Array.from(skippedBotAccounts).map(b => " - @" + b).join("\n"));
216- core.setOutput('name-inconsistencies', nameInconsistencies.map(l => " - " + l).join("\n"));
216+ let contributorAdjustments = ''
217+ if (nameInconsistencies.length) {
218+ contributorAdjustments += `
219+ > [!WARNING]
220+ > Profiles with inconsistent git author names:
221+ ${nameInconsistencies.map(n => '> - ' + n).join('\n')}
222+ >
223+ > _To avoid name inconsistencies in the future, please ensure you use the same author names across all your local git repositories (e.g. by setting \`git config --global user.name "Your Name"\`) and across devices!
224+ > If the selected name, simply the longest one (and marked in bold), is incorrect, please let us know._
225+ `
226+ }
227+ if (missingAuthors.size > 0) {
228+ contributorAdjustments += `
229+ > [!WARNING]
230+ > Authors skipped due to missing author metadata on GitHub:
231+ ${Array.from(missingAuthors.keys()).map(a => '> - \`' + a + '\` contributed\n' + Array.from(missingAuthors.get(a)).map(c => '> - ' + c).join('\n') ).join('\n')}
232+ >
233+ > Probably the author's email isn't connected to their GitHub accounts.
234+ `
235+ }
236+ if (profileReplacements.size > 0) {
237+ contributorAdjustments += `
238+ > [!IMPORTANT]
239+ > Replaced profiles:
240+ ${Array.from(profileReplacements).map(r => '> - ' + r).join('\n')}
241+ `
242+ }
243+ if (skippedBotAccounts.size > 0) {
244+ contributorAdjustments += `
245+ > [!NOTE]
246+ > Excluded bot accounts:
247+ ${Array.from(skippedBotAccounts).map(b => '> - @' + b).join('\n')}
248+ `
249+ }
250+ core.setOutput('contributor-adjustments', contributorAdjustments)
217251
218252 function isTagAvailable(tagName) {
219253 return github.rest.git.getRef({
@@ -230,7 +264,7 @@ jobs:
230264
231265 function isBot(author) {
232266 const email = author.email.toLowerCase()
233- return email.endsWith("-bot@eclipse.org") || email.endsWith("[bot]@users.noreply.github.com") || author.name == 'eclipse-releng-bot'
267+ return email.endsWith("-bot@eclipse.org") || email.endsWith("[bot]@users.noreply.github.com")
234268 || email.endsWith('+copilot@users.noreply.github.com')
235269 || email.endsWith('+claude@users.noreply.github.com')
236270 }
@@ -255,15 +289,7 @@ jobs:
255289 body : |
256290 Update the list of contributors in the Acknowledgements for `${{ inputs.eclipse-version }}`.
257291
258- Adjustments to the lists of contributors:
259- - Replaced profiles:
260- ${{ steps.collect-contributors.outputs.profile-replacements && steps.collect-contributors.outputs.profile-replacements || 'None' }}
261- - Profiles with inconsistent git author names:
262- _To avoid this in the future, please ensure you use the same author names across all your local git repositories (e.g. by setting `git config --global user.name "Your Name"`) and across devices!
263- If the selected name, simply the longest one (and marked in bold), is incorrect, please let us know._
264- ${{ steps.collect-contributors.outputs.name-inconsistencies && steps.collect-contributors.outputs.name-inconsistencies || 'None' }}
265- - Excluded bot-accounts:
266- ${{ steps.collect-contributors.outputs.skipped-bots && steps.collect-contributors.outputs.skipped-bots || 'None' }}
267-
268- Please verify these adjustments for correctness and grant those who are affected sufficient time to refine the adjustments.
292+ The list of contributors has been adjusted with the changes listed below.
293+ Verify them for correctness and, if necessary, grant the affected persons sufficient time to refine these adjustments.
294+ ${{ steps.collect-contributors.outputs.contributor-adjustments }}
269295 delete-branch : true
0 commit comments