add automerge (#3081)
parent
4d5a55e870
commit
e4002f7a04
2 changed files with 37 additions and 0 deletions
@ -0,0 +1,36 @@ |
||||
|
||||
function _get_autoupdate_pr_list() |
||||
local result = {} |
||||
local list = os.iorun("gh pr list --label auto-update --state open -R xmake-io/xmake-repo") |
||||
if list then |
||||
for _, line in ipairs(list:split("\n")) do |
||||
if line:find("Auto-update", 1, true) then |
||||
local id = line:match("(%d+)%s+Auto%-update") |
||||
if id then |
||||
table.insert(result, {id = id, title = line}) |
||||
end |
||||
end |
||||
end |
||||
end |
||||
return result |
||||
end |
||||
|
||||
function _check_pr_passed(id) |
||||
local ok = os.vexecv("gh", {"pr", "checks", id, "-R", "xmake-io/xmake-repo"}, {try = true}) |
||||
if ok == 0 then |
||||
return true |
||||
end |
||||
end |
||||
|
||||
function main() |
||||
local pr_list = _get_autoupdate_pr_list() |
||||
for _, info in ipairs(pr_list) do |
||||
local id = info.id |
||||
local title = info.title |
||||
print("checking %s ...", title) |
||||
if _check_pr_passed(id) then |
||||
print("pull/%d passed, it will be merged next.", id) |
||||
os.vexec("gh pr merge %d --squash -d -R xmake-io/xmake-repo", id) |
||||
end |
||||
end |
||||
end |
Loading…
Reference in new issue