async function syncPrChange()

in eng/copilot/testTranslation.js [24:63]


async function syncPrChange() {
    const languages = ["javascript", "python", "csharp", "go", "java"];
    const accessSession = await getSessionAccess();
    const lastSha = await getLatestCommitShaOnTestFolder(targetRepoOwner, targetRepo);
    const changedFiles = await getChangedFiles("Azure", "azure-webpubsub", lastSha);
    const changedFileLanguage = getChangedFileLanguage(changedFiles);
    let translatedFiles = [];
    const translationPromises = languages.map(async (language) => {
        if (language !== changedFileLanguage) {
            const languageFiles = changedFiles.filter(file => file.filename.includes(".cs") || file.filename.includes(".py") || file.filename.includes(".js") || file.filename.includes(".go") || file.filename.includes(".java"));
            const translationPromises = languageFiles.map(async (file) => {
                console.log(`[${changedFileLanguage} => ${language}]\tstart translating ${file.filename} ...`);
                const dpResponse = await translate(file, accessSession.session_id, accessSession.access_token, language);
                console.log(`[${changedFileLanguage} => ${language}]\t${file.filename} translation complete`);
                return dpResponse;
            });
            const translatedFilesForLanguage = await Promise.all(translationPromises);
            translatedFiles.push(...translatedFilesForLanguage);
        }
    });
    await Promise.all(translationPromises);


    //prepare for github commit
    const mainSha = await getLatestCommitShaOnMain(targetRepoOwner, targetRepo);
    let changeSha = await createChangeBranch(targetRepoOwner, targetRepo, mainSha, lastSha.substring(0, 7));

    //stash files -> commit -> push
    const blobs = await createBlob(targetRepoOwner, targetRepo, translatedFiles);
    const treeSha = await createTree(targetRepoOwner, targetRepo, blobs, changeSha);
    const commitSha = await createCommit(targetRepoOwner, targetRepo, treeSha, changeSha);
    await updateBranch(targetRepoOwner, targetRepo, commitSha);

    //create pr
    if (changeSha === sha) {
        console.log("Branch already exists. Skipping PR creation.");
    } else {
        await createPR(targetRepoOwner, targetRepo);
    }
}