Skip to content
This repository has been archived by the owner on Oct 13, 2024. It is now read-only.

fix: re-apply request label on comment command edit #2614

Merged
Merged
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
85 changes: 61 additions & 24 deletions .github/workflows/Comment_command.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,7 @@ jobs:
// approve
if (args[1] === "approve") {
console.log("approve command running")
// add label "approve-queue"
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ["approve-queue"]
})
let labelsToAdd = ["approve-queue"]

// get list of open issues with label "approve-theme"
const running_issues = await github.rest.issues.listForRepo({
Expand All @@ -93,44 +87,87 @@ jobs:
})

// add approve-theme label if no other issues have it
if (issues.data.length === 0) {
if (running_issues.data.length === 0) {
console.log("no other issues have approve-theme label, adding label")
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ["approve-theme"]
})
labelsToAdd.push("approve-theme")
}
else {
console.log("other issues have approve-theme label, not adding label")
}

console.log(`Adding labels: ${labelsToAdd}`)
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: labelsToAdd
})

command_ran = true
}

// edit
if (args[1] === "edit") {
console.log("edit command running")
// replace youtube url in issue body
let issue_body = `${ISSUE_BODY}`
let og_issue_body = `${ISSUE_BODY}`
console.log(`issue_body: ${issue_body}`)

let current_url = issue_body.match(YT_REGEX)
let current_url = og_issue_body.match(YT_REGEX)
console.log(`current_url: ${current_url}`)

// if current_url is not null
if (current_url !== null) {
// replace current_url with args[2]
issue_body = issue_body.replace(current_url[0], args[2])
let issue_body = og_issue_body.replace(current_url[0], args[2])
console.log(`updated issue_body: ${issue_body}`)

// update issue body
github.rest.issues.update({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: issue_body
})
if (issue_body !== og_issue_body) {
// update issue body
github.rest.issues.update({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: issue_body
})

// re-apply labels since the relabeler ignores edits from LizardByte-bot

// get labels
const labels = await github.rest.issues.listLabelsOnIssue({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo
})

// list of labels to permanently remove
const labels_remove = ["approve-theme", "approve-queue", "request-theme"]

// check if labels list contains any of the labels to remove
for (var label_name of labels_remove) {
var label_remove = labels.data.some(label => label.name === label_name)
if (label_remove) {
github.rest.issues.removeLabel({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
name: [label_name]
})
}
}

// add a delay to allow the label to be removed before trying to re-add it
await new Promise(r => setTimeout(r, 10000))

// re-add request-theme label
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ["request-theme"]
})

}
}
command_ran = true
}
Expand Down