mirror of
https://github.com/tiennm99/is-a-dev.git
synced 2026-10-13 16:15:07 +00:00
Update and rename update-pr-branches.yml to pr-branches.yml
This commit is contained in:
1 parent
ea43ab9cd2
commit
6a98e27d1b
1 file changed
+1
-13
@@ -0,0 +1,95 @@
|
||||
name: PR Branches
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
update:
|
||||
name: Update
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Update branches
|
||||
uses: actions/github-script@v8
|
||||
with:
|
||||
github-token: ${{ secrets.BOT }}
|
||||
script: |
|
||||
const marker = "<!-- is-a-dev-bot: merge-conflict -->";
|
||||
|
||||
const prs = await github.paginate(
|
||||
github.rest.pulls.list,
|
||||
{
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
state: "open",
|
||||
per_page: 100
|
||||
}
|
||||
);
|
||||
|
||||
console.log(`Found ${prs.length} open PRs`);
|
||||
|
||||
for (const pr of prs) {
|
||||
try {
|
||||
await github.rest.pulls.updateBranch({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
pull_number: pr.number
|
||||
});
|
||||
|
||||
console.log(`Updated #${pr.number} (${pr.head.ref})`);
|
||||
} catch (error) {
|
||||
console.log(`Could not update #${pr.number}: ${error.message}`);
|
||||
|
||||
const { data: updatedPr } = await github.rest.pulls.get({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
pull_number: pr.number
|
||||
});
|
||||
|
||||
if (updatedPr.mergeable !== false) {
|
||||
continue;
|
||||
}
|
||||
|
||||
await github.rest.issues.addLabels({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: pr.number,
|
||||
labels: ["reason: merge conflict"]
|
||||
});
|
||||
|
||||
const comments = await github.paginate(
|
||||
github.rest.issues.listComments,
|
||||
{
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: pr.number
|
||||
}
|
||||
);
|
||||
|
||||
const alreadyCommented = comments.some(
|
||||
(comment) =>
|
||||
comment.user?.login === "is-a-dev-bot" &&
|
||||
comment.body?.includes(marker)
|
||||
);
|
||||
|
||||
if (!alreadyCommented) {
|
||||
const body = [
|
||||
marker,
|
||||
"## ❌ Merge conflict",
|
||||
"",
|
||||
"This pull request can not be merged because it has merge conflicts with `main`.",
|
||||
"",
|
||||
"***Please resolve the merge conflicts before this PR can be merged!***"
|
||||
].join("\n");
|
||||
|
||||
await github.rest.issues.createComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: pr.number,
|
||||
body
|
||||
});
|
||||
}
|
||||
|
||||
console.log(`Marked #${pr.number} as having merge conflicts`);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user