GitHub ACTION
Update Issue
Update an existing issue: change its title, body, state (open/closed), labels, assignees, or milestone. Provide the repository as an
owner/repo string and the issue number. Setting labels replaces the full label set (it does not append), so include any existing labels you want to keep. Closing an issue is done here by setting state to closed. Use Get Issue first if you need the current values. See the documentation- Action
- Writes data
- Destructive
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's GitHub account once, then configure and run Update Issue from your backend or agent.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "github-update-issue",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
github: { authProvisionId: "apn_xxxxxxx" },
repoFullname: "Repository",
issueNumber: 10,
},
})
console.log(result)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "github-update-issue",
"configured_props": {
"github": { "authProvisionId": "apn_xxxxxxx" },
"repoFullname": "Repository",
"issueNumber": 10
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "github",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "github-update-issue",
arguments: {
repoFullname: "Repository",
issueNumber: 10,
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
repoFullname Repository | string | The repository in owner/repo format, for example PipedreamHQ/pipedream (not case sensitive). If you pass just a repository name with no owner (e.g. my-repo), the authenticated user is assumed as the owner — convenient for "my repo" requests. Do NOT repeat the repository name as the owner (e.g. my-repo/my-repo); if you don't know the owner, pass only the name or run List Repositories to find it. Required |
issueNumber Issue Number | integer | The issue number — the #N shown in the GitHub UI, not the global issue ID. Use Search Issues and Pull Requests or Get Issue to find it when you only know the title. Required |
title Title | string | The new title of the issue. Optional |
body Body | string | The new text body of the issue. Supports GitHub-flavored Markdown. Optional |
state State | string | Set the issue to open or closed. Optional |
labels Labels | string[] | Label names for the issue, e.g. ["bug", "enhancement"]. This replaces the existing labels — include any you want to keep. Labels must already exist in the repository. Optional |
assignees Assignees | string[] | GitHub logins to assign to the issue, e.g. ["octocat"]. Replaces the existing assignees. Optional |
milestoneNumber Milestone Number | integer | The number of an existing milestone to associate with the issue. Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- github-update-issue
- Version
- 0.3.3
- App
- GitHub
- Authentication
- OAuth
- Read-only
- No
- Destructive
- Yes
- Open world
- Yes
- Source
- View on GitHub ↗