Connect GitHub
Mirror GitHub issues and Projects v2 boards into Laya — token or OAuth setup, what syncs, timing and current limitations.
Last updated
On this page
Connecting GitHub mirrors repository issues and GitHub Projects v2 boards into Laya as live, editable Connected boards. Issues stay in GitHub — Laya syncs changes both ways.
Why connect GitHub
- Mirror two kinds of board per connection: a repository's issues, or a GitHub Projects v2 board.
- Lanes map to Laya's four sync buckets — Queued, In motion, Done, Hold — from open/closed state and status labels, or from the Projects v2 Status field. (These sync buckets are distinct from the five status buckets on native Laya boards.)
- Moving an issue to Done in Laya really closes it in GitHub; moving it out reopens it.
- Track milestones as sprints on repository boards, and create new milestones from Laya.
Before you start
There are two ways to authenticate:
- Personal access token — the setup card explains: "In GitHub: Settings → Developer settings → Personal access tokens. A fine-grained token needs Issues (Read & write) and Metadata (Read) — add Projects (Read & write) for Projects v2 boards."
- Continue with GitHub (OAuth) — shown when OAuth is configured on the server. It requests the
repo,read:organdprojectscopes, then lets you pick an account or organisation on a "Choose an account" screen. Note that thereposcope covers every repository your account can access, including code — to limit Laya to specific repositories, use a fine-grained personal access token instead.
Connect step by step
- Start the connect flowFrom your workspace, create a new board and choose the connect option — or open the Connected tab and choose Connect GitHub.
- Pick GitHub as the sourceOn the "Which tool is it in?" screen, choose GitHub.
- ConnectSelect Continue with GitHub and complete the consent — or use the Personal access token form instead. The connection is created in the workspace you started the flow from.
- Choose an accountAfter OAuth, pick an account or organisation on the "Choose an account" screen.
- Choose boards to mirrorThe "Choose boards to mirror" list offers both repositories (their issues) and Projects v2 boards. Tick what you want to mirror.
- MirrorSelect Mirror N boards → and wait for "You're live in Laya", then Open board.
What syncs
| Data | GitHub → Laya | Laya → GitHub |
|---|---|---|
| Issues | Yes — from repositories and Projects v2 boards | Yes — create, edit, close and reopen |
| Status | Yes — open/closed plus status labels, or the Projects v2 Status field | Yes — Done closes the issue and swaps the lane label; Projects v2 also writes the Status field |
| Assignees | Yes | Yes — replaces the whole assignee set on each edit |
| Milestones (sprints) | Yes — on repository boards | Yes — create milestones and assign issues |
| Projects v2 iterations | Yes — read only | No — iterations are managed in the Projects UI |
| Description | Yes — Markdown converted to Laya blocks | Yes — converted back to Markdown |
| Comments | Yes — read in the side panel | Yes — post new comments |
| Pull requests | No — pull requests are not mirrored | — |
| Attachments | No | No |
Status labels and values can be re-mapped per board: the column mapping drawer lets you point any status value or label at a different bucket. Issues imported as native Laya rows (via a master board) keep syncing title, status and description in both directions. Priority, story points, due date, assignee and milestone do not sync on imported rows.
Sync triggers and timing
- Laya → GitHub: immediate. Edits call the GitHub API as part of the action, with per-item badges showing Queued, Syncing, Synced or Failed.
- GitHub → Laya: on demand. Use Sync now on the board or from the connection's Boards tab; boards also refresh at mirror time.
- Background polling. A 60-second poll exists and is controlled per connection by the Polling toggle, but it may not be enabled on every deployment — treat Sync now as the reliable way to pull fresh changes.
Managing the connection
Manage the connection from workspace Settings → integrations → GitHub: tabs Boards, Sync log and Settings, a health card, + Mirror a board, the Polling toggle, Refresh credentials and Disconnect. See Managing connections.
Limitations
- Pull requests are not mirrored — issues and Projects v2 items only.
- Projects v2 iterations cannot be created from Laya (they are managed in the Projects UI).
- No attachment sync in either direction.
- Assignee edits replace the whole set — concurrent GitHub-side edits can be overwritten.
- Imported (native) rows sync title, status and description only.
- No working inbound webhook yet.
Email support@laya.net — include what you expected, what happened, and a link to the affected board or item so we can help quickly.