Skip to content

Commit a644f08

Browse files
committed
fix: exclude the assignedIssue from recommended issues pool
Signed-off-by: Parv Ninama <ninamaparv@gmail.com>
1 parent 268115c commit a644f08

3 files changed

Lines changed: 15 additions & 11 deletions

File tree

.github/scripts/bot-next-issue-recommendation.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,28 +55,28 @@ module.exports = async ({ github, context, core }) => {
5555
return;
5656
}
5757

58-
const issueNumber = extractLinkedIssueNumber(prBody);
59-
if (!issueNumber) {
58+
const linkedIssueNumber = extractLinkedIssueNumber(prBody);
59+
if (!linkedIssueNumber) {
6060
core.info('No linked issue found in PR body, skipping');
6161
return;
6262
}
6363

64-
core.info(`Linked issue: #${issueNumber}`);
64+
core.info(`Linked issue: #${linkedIssueNumber}`);
6565

6666
let issue;
6767
try {
6868
const { data } = await github.rest.issues.get({
69-
owner, repo, issue_number: issueNumber,
69+
owner, repo, issue_number: linkedIssueNumber,
7070
});
7171
issue = data;
7272
} catch (error) {
73-
core.warning(`Could not fetch issue #${issueNumber}: ${error.message}`);
73+
core.warning(`Could not fetch issue #${linkedIssueNumber}: ${error.message}`);
7474
return;
7575
}
7676

7777
const completedLevelKey = getHighestSkillLevelKey(issue, homeRepo);
7878
if (!completedLevelKey) {
79-
core.info(`Issue #${issueNumber} has no recognised skill level label, skipping`);
79+
core.info(`Issue #${linkedIssueNumber} has no recognised skill level label, skipping`);
8080
return;
8181
}
8282

@@ -86,7 +86,7 @@ module.exports = async ({ github, context, core }) => {
8686

8787
let result;
8888
try {
89-
result = await getRecommendedIssues(github, homeRepo, username, completedLevelKey, core);
89+
result = await getRecommendedIssues(github, homeRepo, username, completedLevelKey, linkedIssueNumber, core);
9090
} catch (error) {
9191
core.error(`Error generating recommendations: ${error.message}`);
9292
return;

.github/scripts/shared/core/recommendation.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ async function prefetchIssues(github, core) {
8989
* @param {object} core - @actions/core logger.
9090
* @returns {Promise<{ issues: Array, fromRepo: string|null, unlockedLevelKey: string|null }>}
9191
*/
92-
async function getRecommendedIssues(github, homeRepo, username, completedLevelKey, core) {
92+
async function getRecommendedIssues(github, homeRepo, username, completedLevelKey, linkedIssueNumber, core) {
9393
const [eligibleLevelKey, unlockedLevelKey] = await Promise.all([
9494
resolveEligibleLevel(github, homeRepo, username),
9595
detectUnlockedLevel(github, homeRepo, username, completedLevelKey),
@@ -108,7 +108,7 @@ async function getRecommendedIssues(github, homeRepo, username, completedLevelKe
108108
// Skip if the fetch failed (null) or the repo is missing from the cache (undefined).
109109
if (issues == null) continue;
110110

111-
const picked = filterIssuesByLevel(issues, levelKey, repoConfig);
111+
const picked = filterIssuesByLevel(issues, levelKey, repoConfig, linkedIssueNumber);
112112
if (picked.length > 0) {
113113
core.info(`Recommending ${levelKey} issues from ${repoKey}`);
114114
return { issues: picked, fromRepo: repoKey, unlockedLevelKey };

.github/scripts/shared/helpers/utils.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,16 @@ function hasLabel(issue, labelName) {
2525
/**
2626
* Filters issues by a specific skill level and caps the result size.
2727
*/
28-
function filterIssuesByLevel(issues, levelKey, repoConfig) {
28+
function filterIssuesByLevel(issues, levelKey, repoConfig, excludeIssueNumber = null) {
2929
const labelString = repoLabelFor(repoConfig, levelKey);
3030
if (!labelString) return [];
3131

3232
return issues
33-
.filter(issue => hasLabel(issue, labelString))
33+
.filter(issue =>
34+
hasLabel(issue, labelString) &&
35+
issue.pull_request == null &&
36+
issue.number !== excludeIssueNumber
37+
)
3438
.slice(0, CONFIG.maxRecommendations);
3539
}
3640

0 commit comments

Comments
 (0)