Skip to content

Commit 97e8688

Browse files
committed
fix: extend gitHub noreply matching to username-typed identities
Signed-off-by: Yeganathan S <63534555+skwowet@users.noreply.github.com>
1 parent deda42a commit 97e8688

2 files changed

Lines changed: 8 additions & 8 deletions

File tree

services/apps/merge_suggestions_worker/src/activities/memberMergeSuggestions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,8 @@ export async function getMemberMergeSuggestions(
113113
targetLists.usernameEmail.push({ value })
114114
}
115115

116-
// Noreply email -> platform username extraction
117-
if (isEmail && verified) {
116+
// No type check — git ingest stores noreply addresses as type=username, not type=email.
117+
if (verified) {
118118
const ghUsername = parseGitHubNoreplyEmail(value)
119119
if (ghUsername) {
120120
noreplyEmailUsernameMatches.push({ value: ghUsername, platform: PlatformType.GITHUB })

services/apps/merge_suggestions_worker/src/memberSimilarityCalculator.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -213,14 +213,14 @@ class MemberSimilarityCalculator {
213213
}
214214

215215
/**
216-
* Checks if a noreply email in one member matches a username in the other (e.g. GitHub noreply email -> GitHub username)
217-
* Works bidirectionally: primary email -> similar username, and similar email -> primary username.
216+
* Checks bidirectionally if a noreply address on one member resolves to a platform username on the other.
217+
* No identity type filter — git ingest stores noreply addresses as type=username, not type=email.
218218
*/
219219
static hasMatchingUsernameFromNoreplyEmail(
220220
primaryMember: IMemberWithAggregatesForMergeSuggestions,
221221
similarMember: IMemberOpensearch,
222222
): boolean {
223-
// Primary member's noreply emails -> similar member's platform usernames
223+
// Primary member's noreply -> similar member's platform usernames
224224
const similarUsernamesByPlatform = {
225225
[PlatformType.GITHUB]: new Set(
226226
similarMember.nested_identities
@@ -234,15 +234,15 @@ class MemberSimilarityCalculator {
234234
}
235235

236236
for (const identity of primaryMember.identities) {
237-
if (!identity.verified || identity.type !== MemberIdentityType.EMAIL) continue
237+
if (!identity.verified) continue
238238

239239
const ghUsername = parseGitHubNoreplyEmail(identity.value)
240240
if (ghUsername && similarUsernamesByPlatform[PlatformType.GITHUB].has(ghUsername)) {
241241
return true
242242
}
243243
}
244244

245-
// Similar member's noreply emails -> primary member's platform usernames
245+
// Similar member's noreply -> primary member's platform usernames
246246
const primaryUsernamesByPlatform = {
247247
[PlatformType.GITHUB]: new Set(
248248
primaryMember.identities
@@ -254,7 +254,7 @@ class MemberSimilarityCalculator {
254254
}
255255

256256
for (const identity of similarMember.nested_identities) {
257-
if (!identity.bool_verified || identity.keyword_type !== MemberIdentityType.EMAIL) continue
257+
if (!identity.bool_verified) continue
258258

259259
const ghUsername = parseGitHubNoreplyEmail(identity.string_value)
260260
if (ghUsername && primaryUsernamesByPlatform[PlatformType.GITHUB].has(ghUsername)) {

0 commit comments

Comments
 (0)