In this guide

Update an Issue

Edit, close, reopen, relabel or reassign an issue.

Action referenceChange

What this action does #

First, connect GitHub in Services. Then open Actions → + → GitHub and choose Update an Issue.

What a run does

Running or testing this action changes something in your connected service.

More about this action

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.

Inputs to fill in #

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.

Owner

RequiredText

User or organisation.

This input offers a picker for repository from your connected account. You can also supply its value directly.

Example value (replace with your own):
octocat

Repository

RequiredText

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.

Example value (replace with your own):
Hello-World

Issue Number

RequiredWhole number

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.

Example value (replace with your own):
42

Title

OptionalText

Replaces the existing title.

Body

OptionalText

Replaces the whole body. Markdown.

State

OptionalChoice

closed to close it, open to reopen it.

Choices: open, closed

State Reason

OptionalChoice

Why it closed. Shown as the icon beside the issue.

Choices: completed, not_planned, reopened, duplicate

Labels

OptionalList

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.

Assignees

OptionalList

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

OptionalWhole number

Milestone number.

This input offers a picker for milestone from your connected account. You can also supply its value directly.

What comes back #

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 fieldTypeMeaning
numberintegerThe issue number shown in the UI.
idintegerInternal id. Not the number.
titlestringText value.
statestringopen or closed.
state_reasonstringcompleted, not_planned, reopened or duplicate.
bodystringThe issue text, as Markdown.
html_urlstringThe issue page.
commentsintegerHow many comments it has.
lockedbooleanTrue or false.
created_atstringISO 8601.
updated_atstringText value.
closed_atstringNull while open.
userobjectWho opened it.
user.loginstringUsername.
user.idintegerWhole-number value.
user.html_urlstringTheir profile page.
user.avatar_urlstringText value.
user.typestringUser, Organization or Bot.
assigneesarrayEveryone assigned.
assignees[].loginstringUsername.
assignees[].idintegerWhole-number value.
assignees[].html_urlstringTheir profile page.
assignees[].avatar_urlstringText value.
assignees[].typestringUser, Organization or Bot.
milestoneobjectNull when unset.
milestone.numberintegerWhole-number value.
milestone.titlestringText value.
milestone.due_onstringText value.
labelsarrayEach entry is either an object or a plain string.
labels[].namestringText value.
labels[].colorstringSix hex digits, no leading #.
labels[].descriptionstringText value.
pull_requestobjectPresent only when the issue is a pull request.
pull_request.html_urlstringText value.
pull_request.merged_atstringNull unless it was merged.

Run it from Shortcuts #

  1. Give the action a recognizable name and tap Save.
  2. In Apple Shortcuts, add Shortcutify’s Execute Action and select the saved action.
  3. Supply any Param or File slots you bound in the inputs, then run the shortcut.

If the result is unexpected, open Logs in Shortcutify, select the run, and inspect this step’s inputs and response.

Advanced reference #

Request, permissions, and identifiers

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.

InputRequest keyLocation
Ownerownerpath
Repositoryrepopath
Issue Numberissue_numberpath
Titletitlebody
Bodybodybody
Statestatebody
State Reasonstate_reasonbody
Labelslabelsbody
Assigneesassigneesbody
Milestonemilestonebody

GitHub API reference