Owner
RequiredTextUser or organisation.
This input offers a picker for repository from your connected account. You can also supply its value directly.
octocat
Edit, close, reopen, relabel or reassign an issue.
First, connect GitHub in Services. Then open Actions → + → GitHub and choose Update an Issue.
Running or testing this action changes something in your connected service.
Everything is optional: send only what should change. State closed plus State Reason not_planned is the "won't fix" close; reopened is implied by State open.
Labels and Assignees replace the whole set rather than adding to it. Sending one label removes every other label on the issue, so read the issue first if the intent is to add.
The REST API has no way to delete an issue — that exists only in GitHub's GraphQL API, and only for users with admin rights. Closing with State Reason not_planned is as close as this catalog gets, and unlike a delete it is reversible.
Open an input to choose its value. Keep a fixed value with Text, receive it from Shortcuts, ask when the action runs, or use an Earlier Step. Read how input sources work.
User or organisation.
This input offers a picker for repository from your connected account. You can also supply its value directly.
octocat
Name only, without the owner and without .git.
This input offers a picker for repository from your connected account. You can also supply its value directly.
Hello-World
The number shown in the interface, not the internal id.
This input offers a picker for issue from your connected account. You can also supply its value directly.
42
Replaces the existing title.
Replaces the whole body. Markdown.
closed to close it, open to reopen it.
Choices: open, closed
Why it closed. Shown as the icon beside the issue.
Choices: completed, not_planned, reopened, duplicate
Replaces every label. Send an empty value to clear them.
A list of text values. Use a comma-separated list.
This input offers a picker for label from your connected account. You can also supply its value directly.
Replaces every assignee.
A list of text values. Use a comma-separated list.
This input offers a picker for person from your connected account. You can also supply its value directly.
Milestone number.
This input offers a picker for milestone from your connected account. You can also supply its value directly.
In the action editor, open Output → Returned Value to choose fields for your shortcut. These are the response fields described by the app; a service may omit an optional field or return an empty list. JSON File contains the full response.
| Returned field | Type | Meaning |
|---|---|---|
number | integer | The issue number shown in the UI. |
id | integer | Internal id. Not the number. |
title | string | Text value. |
state | string | open or closed. |
state_reason | string | completed, not_planned, reopened or duplicate. |
body | string | The issue text, as Markdown. |
html_url | string | The issue page. |
comments | integer | How many comments it has. |
locked | boolean | True or false. |
created_at | string | ISO 8601. |
updated_at | string | Text value. |
closed_at | string | Null while open. |
user | object | Who opened it. |
user.login | string | Username. |
user.id | integer | Whole-number value. |
user.html_url | string | Their profile page. |
user.avatar_url | string | Text value. |
user.type | string | User, Organization or Bot. |
assignees | array | Everyone assigned. |
assignees[].login | string | Username. |
assignees[].id | integer | Whole-number value. |
assignees[].html_url | string | Their profile page. |
assignees[].avatar_url | string | Text value. |
assignees[].type | string | User, Organization or Bot. |
milestone | object | Null when unset. |
milestone.number | integer | Whole-number value. |
milestone.title | string | Text value. |
milestone.due_on | string | Text value. |
labels | array | Each entry is either an object or a plain string. |
labels[].name | string | Text value. |
labels[].color | string | Six hex digits, no leading #. |
labels[].description | string | Text value. |
pull_request | object | Present only when the issue is a pull request. |
pull_request.html_url | string | Text value. |
pull_request.merged_at | string | Null unless it was merged. |
If the result is unexpected, open Logs in Shortcutify, select the run, and inspect this step’s inputs and response.
Request: PATCH https://api.github.com/repos/{owner}/{repo}/issues/{issue_number}
Action identifier: github.issues.update.v1
Permissions declared for this action: issues:write. The account’s own access rules also apply.
| Input | Request key | Location |
|---|---|---|
| Owner | owner | path |
| Repository | repo | path |
| Issue Number | issue_number | path |
| Title | title | body |
| Body | body | body |
| State | state | body |
| State Reason | state_reason | body |
| Labels | labels | body |
| Assignees | assignees | body |
| Milestone | milestone | body |