Skip to content

Commit d3ee8c6

Browse files
committed
Extend display of adjustments made during Acknowledgements generation
Assign a severity to the different kind of adjustments. Additionally list contributors that are missing due to missing Github author metadata.
1 parent 0672fdc commit d3ee8c6

1 file changed

Lines changed: 41 additions & 15 deletions

File tree

.github/workflows/generateAcknowledgements.yml

Lines changed: 41 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ jobs:
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

Comments
 (0)