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);
}
}