mirror of
https://github.com/zed-industries/zed.git
synced 2026-05-27 00:08:42 +00:00
Override project status in Closed Bugs workflow (#46253)
Since the project board to which the closed bugs with new comments are added might have an automated workflow for moving closed issues to the "Done" status, we need to override the status to ensure the bugs are actually surfaced to the team and not buried in "Done". Release Notes: - N/A
This commit is contained in:
parent
a35447386e
commit
136258205c
1 changed files with 62 additions and 1 deletions
|
|
@ -42,8 +42,69 @@ jobs:
|
|||
}
|
||||
|
||||
# Add to the support team's board for triage
|
||||
- if: steps.check-staff.outputs.result == 'false'
|
||||
- id: add-to-project
|
||||
if: steps.check-staff.outputs.result == 'false'
|
||||
uses: actions/add-to-project@244f685bbc3b7adfa8466e08b698b5577571133e # v1.0.2
|
||||
with:
|
||||
project-url: https://github.com/orgs/zed-industries/projects/71
|
||||
github-token: ${{ steps.get-app-token.outputs.token }}
|
||||
|
||||
# Set status to "Incoming" (overrides project's default "Closed" automation)
|
||||
- if: steps.add-to-project.outputs.itemId
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
with:
|
||||
github-token: ${{ steps.get-app-token.outputs.token }}
|
||||
script: |
|
||||
const itemId = '${{ steps.add-to-project.outputs.itemId }}';
|
||||
const projectNumber = 71;
|
||||
|
||||
// Get project ID and Status field in one query
|
||||
const { organization } = await github.graphql(`
|
||||
query($org: String!, $projectNumber: Int!) {
|
||||
organization(login: $org) {
|
||||
projectV2(number: $projectNumber) {
|
||||
id
|
||||
field(name: "Status") {
|
||||
... on ProjectV2SingleSelectField {
|
||||
id
|
||||
options {
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`, { org: 'zed-industries', projectNumber });
|
||||
|
||||
const project = organization.projectV2;
|
||||
if (!project.field) {
|
||||
throw new Error('Could not find "Status" field in project');
|
||||
}
|
||||
|
||||
const incomingOption = project.field.options.find(o => o.name === 'Incoming');
|
||||
if (!incomingOption) {
|
||||
throw new Error('Could not find "Incoming" status option');
|
||||
}
|
||||
|
||||
// Update the item's status
|
||||
await github.graphql(`
|
||||
mutation($projectId: ID!, $itemId: ID!, $fieldId: ID!, $optionId: String!) {
|
||||
updateProjectV2ItemFieldValue(input: {
|
||||
projectId: $projectId
|
||||
itemId: $itemId
|
||||
fieldId: $fieldId
|
||||
value: { singleSelectOptionId: $optionId }
|
||||
}) {
|
||||
projectV2Item {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
`, {
|
||||
projectId: project.id,
|
||||
itemId,
|
||||
fieldId: project.field.id,
|
||||
optionId: incomingOption.id
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue