GitHub

Developer tools OAuth, or a personal access token Windmill docs

Open issues, review and merge pull requests, commit files and dispatch Actions workflows from any Windmill script, flow or app.

What you can do with GitHub

Complete, deployable projects built around GitHub — the fastest way to get something real running.

Set up in 2 steps

1

Connect from the Resources page

Open Resources, click Add a resource/API and pick github from the OAuth APIs list. Click Connect, allow access in the window that opens, then name the resource and save it. Windmill asks GitHub for the repo and workflow scopes; tick gist for the gist scripts, read:project or project for the Projects scripts, or read:org to see private organization memberships.

2

Run your first script

Fork any script below and run it against one of your repositories.

Scripts

Building blocks, if none of the projects above fit. Fork one, run it, or call it as a step inside your own flow.

Submit a script →

Flows

Multi-step workflows that already wire GitHub to something else.

All flows →

Trigger flows from GitHub

GitHub is not only a destination. These inbound paths are supported today.

GitHub events (native GitHub trigger)

Connect GitHub once under Workspace settings > Integrations, then add a GitHub trigger on a script or flow, pick a repository and the events to listen to (push, pull_request, issues, release, star, workflow_run and more). Windmill creates the repository webhook for you, which needs admin rights on the repository, and starts a run with the event name and payload on every delivery. Fork the GitHub native trigger template script to get started.

Webhooks you manage yourself

To use a webhook you configured by hand (an organization webhook, say), point it at a flow's webhook URL and verify the X-Hub-Signature-256 header against your webhook secret.

Resource types

The credential shapes the scripts on this page expect — pick the one your script asks for.

FieldTypeRequiredWhat it is
tokenstringYes
FieldTypeRequiredWhat it is
app_idstringYes
private_keystringYes
installation_idstringNo

Questions

OAuth or a personal access token?

OAuth is one click and the token it stores does not expire. Reach for a personal access token when you script the setup, when you want a token scoped to fewer repositories, or when your instance has no OAuth client configured.

Classic or fine-grained token?

Either works. Fine-grained tokens are scoped per repository and expire.

There is no Connect button on my instance

Self-hosted instances need an OAuth client configured once by an admin before the tile appears. Until then, use the token.