async function prepareForValidation()

in src/server/api/cla.js [569:601]


async function prepareForValidation(item, user) {
    const needRemove = []
    let foundPR = false

    await Promise.all(user.requests.map(async (pullRequests, index) => {
        try {
            const linkedItem = await cla.getLinkedItem({
                repo: pullRequests.repo,
                owner: pullRequests.owner
            })
            if ((linkedItem.owner === item.owner && linkedItem.repo === item.repo) || (item.org && linkedItem.org === item.org) || (linkedItem.gist === item.gist && item.sharedGist === true && linkedItem.sharedGist === true)) {
                foundPR = true
                needRemove.push(index)
                validateUserPRs(pullRequests.repo, pullRequests.owner, linkedItem.gist, linkedItem.sharedGist, pullRequests.numbers, linkedItem.token, linkedItem)
            }
            return linkedItem
        } catch (e) {
            needRemove.push(index)
            logger.warn(e.stack)
        }
    }).filter((promise) => {
        return promise !== undefined
    }))

    needRemove.sort()
    for (let i = needRemove.length - 1; i >= 0; --i) {
        user.requests.splice(needRemove[i], 1)
    }
    user.save()
    if (!foundPR) {
        throw new Error('No user PRs found for the linked item')
    }
}