GitHub ACTION
Create Branch
Create a new branch in a repository, pointing at the tip of a source branch. Provide the repository as an
owner/repo string, the new branchName, and optionally the sourceBranch to branch from (defaults to the repository's default branch). Use Create or Update File Contents to add commits to the new branch, then Create Pull Request to open a PR. See the documentation- Action
- Writes data
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's GitHub account once, then configure and run Create Branch 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-create-branch",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
github: { authProvisionId: "apn_xxxxxxx" },
repoFullname: "Repository",
branchName: "Branch Name",
},
})
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-create-branch",
"configured_props": {
"github": { "authProvisionId": "apn_xxxxxxx" },
"repoFullname": "Repository",
"branchName": "Branch Name"
}
}'// 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-create-branch",
arguments: {
repoFullname: "Repository",
branchName: "Branch Name",
},
})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 |
branchName Branch Name | string | The name of the new branch to create, e.g. feature/new-paddock. Required |
sourceBranch Source Branch | string | The existing branch to create the new branch from. Defaults to the repository's default branch (usually main or master). 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-create-branch
- Version
- 1.0.2
- App
- GitHub
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗