Skip to content

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, and 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: as 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:org and project scopes, then lets you pick an account or organisation on a "Choose an account" screen. Note that the repo scope 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

  1. Start the connect flowFrom your workspace, create a new board and choose the connect option, or open the Connected tab and choose Connect GitHub.
  2. Pick GitHub as the sourceOn the "Which tool is it in?" screen, choose GitHub.
  3. 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.
  4. Choose an accountAfter OAuth, pick an account or organisation on the "Choose an account" screen. With a personal access token, the address you enter in Account or organization URL picks it: your own account, or an organisation the token can read.
  5. Choose boards to mirrorThe "Choose boards to mirror" list offers both repositories (their issues) and Projects v2 boards. Tick what you want to mirror.
  6. MirrorSelect Mirror N boards → and wait for "You're live in Laya", then Open board.

What syncs

GitHub sync coverage on mirrored boards
DataGitHub → LayaLaya → GitHub
IssuesYes, from repositories and Projects v2 boardsYes: create, edit, close and reopen
StatusYes: open/closed plus status labels, or the Projects v2 Status fieldYes: Done closes the issue and swaps the lane label; Projects v2 also writes the Status field
AssigneesYesYes, replacing the whole assignee set on each edit
Milestones (sprints)Yes, on repository boardsYes: create milestones and assign issues
Projects v2 iterationsYes, read onlyNo: iterations are managed in the Projects UI
DescriptionYes, with Markdown converted to Laya blocksYes, converted back to Markdown
CommentsYes, read in the side panelYes: post new comments
Pull requestsNo: pull requests are not mirroredNo
AttachmentsNoNo

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: instant push on repository boards, set up for you. When you connect a repository board, Laya registers a repository webhook with GitHub, so changes reach the board in a second or two. Registering one needs permission to manage the repository's webhooks; the board's badge shows Instant updates when the hook is in place. A Project board spans repositories and has no single hook, so it updates when you press Sync now.
  • On demand. Sync now on the board or from the connection's Boards tab pulls the latest at any time; boards also refresh at mirror time.
  • Background polling. Where Laya runs a 60-second poll for GitHub, it also refreshes mirrored boards; the Polling card in the connection's Settings tab says whether it runs for that connection, and its toggle switches it.

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, so concurrent GitHub-side edits can be overwritten.
  • Imported (native) rows sync title, status and description only.
  • Instant updates need a repository webhook, which Laya can register when the connection may manage the repository's webhooks; Project boards, and repositories where it may not, update with Sync now.
Still stuck?

Email support@laya.net and include what you expected, what happened, and a link to the affected board or item so we can help quickly.

Contact support