Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions scripts/ci/pr-bot/processNewPrs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,26 @@ async function processPull(
reviewerConfig: typeof ReviewerConfig,
stateClient: typeof PersistentState
) {
if (pull.user.login === "dependabot[bot]") {
const files = await github.getPrFiles(pull.number);
const touchesContainer = files.some((file: string) =>
file.startsWith("sdks/python/container/")
);
if (touchesContainer) {
console.log(
`Closing PR ${pull.number} because it is a dependabot PR touching container/`
);
await github.addPrComment(
pull.number,
"Closing this PR because dependabot updates for container/** are not allowed due to generated files " +
"and excluded_paths is disabled due to dependabot/dependabot-core#14408. " +
"Once issue is resolved, please remove this step."
);
await github.closePr(pull.number);
return;
}
}

let prState = await stateClient.getPrState(pull.number);
if (!needsProcessed(pull, prState)) {
return;
Expand Down
21 changes: 21 additions & 0 deletions scripts/ci/pr-bot/shared/githubUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,27 @@ export async function nextActionAuthor(
});
}

export async function closePr(pullNumber: number) {
await getGitHubClient().rest.pulls.update({
owner: REPO_OWNER,
repo: REPO,
pull_number: pullNumber,
state: "closed",
});
}

export async function getPrFiles(pullNumber: number): Promise<string[]> {
const files = await getGitHubClient().paginate(
getGitHubClient().rest.pulls.listFiles,
{
owner: REPO_OWNER,
repo: REPO,
pull_number: pullNumber,
}
);
return files.map((file: any) => file.filename);
}

export async function checkIfCommitter(username: string): Promise<boolean> {
const permissionLevel = (
await getGitHubClient().rest.repos.getCollaboratorPermissionLevel({
Expand Down
Loading