Fix exception during github issue id reading (#10500)

Signed-off-by: Artem Savchenko <armisav@gmail.com>
This commit is contained in:
Artyom Savchenko
2026-02-12 11:12:36 +07:00
committed by GitHub
parent cebcf1ab1f
commit bf705d9bef
2 changed files with 10 additions and 6 deletions
@@ -939,7 +939,9 @@ export class IssueSyncManager extends IssueSyncManagerBase implements DocSyncMan
break
}
const docsPart = allSyncDocs.splice(0, partsize)
const idsPart = docsPart.map((it) => (it.external as IssueExternalData).id).filter((it) => it !== undefined)
const idsPart = docsPart
.map((it) => (it.external as IssueExternalData | undefined)?.id)
.filter((id): id is string => id !== undefined)
if (idsPart.length === 0) {
break
}
@@ -986,7 +988,7 @@ export class IssueSyncManager extends IssueSyncManagerBase implements DocSyncMan
})
} else if (partsize === 1) {
// We need to update issue, since it is missing on external side.
const syncDoc = syncDocs.find((it) => it.external.id === idsPart[0])
const syncDoc = syncDocs.find((it) => it.external?.id === idsPart[0])
if (syncDoc !== undefined) {
ctx.warn('mark missing external PR', {
errors: err.errors,
@@ -1008,7 +1010,7 @@ export class IssueSyncManager extends IssueSyncManagerBase implements DocSyncMan
}
}
for (const d of syncDocs) {
if ((d.external as IssueExternalData).id == null) {
if ((d.external as IssueExternalData)?.id == null) {
ctx.error('failed to do external sync for', { objectClass: d.objectClass, _id: d._id })
// no external data for doc
await derivedClient.update<DocSyncInfo>(d, {
@@ -1319,7 +1319,9 @@ export class PullRequestSyncManager extends IssueSyncManagerBase implements DocS
try {
while (true) {
const docsPart = allSyncDocs.splice(0, partsize)
const idsPart = docsPart.map((it) => (it.external as IssueExternalData).id).filter((it) => it !== undefined)
const idsPart = docsPart
.map((it) => (it.external as IssueExternalData | undefined)?.id)
.filter((id): id is string => id !== undefined)
if (idsPart.length === 0) {
break
}
@@ -1366,7 +1368,7 @@ export class PullRequestSyncManager extends IssueSyncManagerBase implements DocS
})
} else if (partsize === 1) {
// We need to update issue, since it is missing on external side.
const syncDoc = syncDocs.find((it) => it.external.id === idsPart[0])
const syncDoc = syncDocs.find((it) => it.external?.id === idsPart[0])
if (syncDoc !== undefined) {
ctx.warn('mark missing external PR', {
errors: err.errors,
@@ -1388,7 +1390,7 @@ export class PullRequestSyncManager extends IssueSyncManagerBase implements DocS
}
}
for (const d of syncDocs) {
if ((d.external as IssueExternalData).id == null) {
if ((d.external as IssueExternalData | undefined)?.id == null) {
ctx.error('failed to do external sync for', { objectClass: d.objectClass, _id: d._id })
// no external data for doc
await derivedClient.update<DocSyncInfo>(d, {