[CI] improve pr comments bot (#23380)

This commit is contained in:
Simon Mo 2025-08-21 14:49:03 -07:00 committed by GitHub
parent 8b5fe6eb51
commit c5041f899f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -17,20 +17,18 @@ jobs:
const prAuthor = context.payload.pull_request.user.login;
// Check if this is the author's first PR in this repository
const { data: allPRs } = await github.rest.pulls.list({
owner: context.repo.owner,
repo: context.repo.repo,
state: 'all',
per_page: 100
// Use GitHub's search API to find all PRs by this author
const { data: searchResults } = await github.rest.search.issuesAndPullRequests({
q: `repo:${context.repo.owner}/${context.repo.repo} type:pr author:${prAuthor}`,
per_page: 100
});
// Filter to find PRs by this author
const authorPRs = allPRs.filter(pr => pr.user.login === prAuthor);
const authorPRCount = searchResults.total_count;
console.log(`Found ${authorPRs.length} PRs by ${prAuthor}`);
console.log(`Found ${authorPRCount} PRs by ${prAuthor}`);
// Only post comment if this is the first PR (only one PR by this author)
if (authorPRs.length === 1) {
if (authorPRCount === 1) {
console.log(`Posting welcome comment for first-time contributor: ${prAuthor}`);
await github.rest.issues.createComment({
owner: context.repo.owner,
@ -46,7 +44,7 @@ jobs:
'🚀'
});
} else {
console.log(`Skipping comment for ${prAuthor} - not their first PR (${authorPRs.length} PRs found)`);
console.log(`Skipping comment for ${prAuthor} - not their first PR (${authorPRCount} PRs found)`);
}
} catch (error) {
console.error('Error checking PR history or posting comment:', error);