Module · requires task boards
The repository and the board, telling the same story
Enclessa connects to GitHub and turns issues and pull requests into cards on a task board, keeping the two in step in both directions. A pull request that closes an issue attaches to that issue’s card rather than becoming a second card, the check rollup and the review decision are shown on the card, and board columns map onto a GitHub Projects v2 Status field. Writing changes back to GitHub is a setting an organisation switches on deliberately; with it off the connector reads and never writes.
Open betaThe platform is being built in the open, so parts of it are not there yet, behaviour changes between releases, and no availability figure is committed while it is in beta. What is still being built.
- Plattform
- Betrieb2
- Onboarding
- enclessa/platform42
- enclessa/web9
Plattform
Board · Betrieb Nord
Gateway drain never runs on rolling restart
Sessions are dropped instead of drained when a gateway is replaced. Reproduced on staging twice; the outbox holds, so nothing is lost, but every client reconnects at once.
platform#421Open
Drain sessions before a gateway leaves the pool
Closes #418 · 4 commits · +212 −38
- build2m 41s
- test (go)4m 06s
- test (web)1m 12s
- licence-gate18s
Where this came from
leitstand · 09:43
“Confirmed. Reconnect took 1.8 s at the ninety-fifth percentile. I opened a card on the Betrieb board.”
Open the message
The card keeps the message it was created from, so the decision and the work do not live in two systems that never learn about each other.
At a glance
- Direction
- GitHub to Enclessa always; back to GitHub is opt-in
- What syncs
- Issues, pull requests, Projects v2 status, checks, reviews
- Card linking
- A pull request attaches to the issue card it closes
- Hosts
- GitHub.com and GitHub Enterprise Server
- Auth
- A GitHub App or a personal access token, stored sealed
- Requires
- The task boards module
How does the GitHub connection work?
It is three layers, and keeping them separate is what stops one careless click rewiring an organisation. An administrator makes one connection per organisation, using either a GitHub App or a personal access token. Somebody who may manage boards then links a board to a repository, a Projects v2 project, or both. From there each card carries its own reference to the issue, pull request or project item it stands for.
- One connection per organisation, made by an administrator
- One link per board, guarded by the permission that already governs boards
- One reference per card, guarded by the permission that already governs cards
- GitHub Enterprise Server is supported by storing its API host and its web host separately
- Credentials are encrypted with AES-256-GCM before they are stored, never held in the clear
What actually crosses between GitHub and the board?
Issues and pull requests arrive as board items. Board columns map onto the Status field of a GitHub Projects v2 project, so moving a card and moving a project item mean the same thing. Each card caches what it points at — the state, the review decision and the check rollup — so a reviewer can see that the build is red without opening another tab.
- Issues in, cards out, kept in step as either side changes
- A pull request that closes an issue attaches to that issue’s card
- Column to Projects v2 Status field mapping, set once per board
- Check rollup and review decision cached on the card
- A card can be filed as a new GitHub issue from Enclessa
What stops it writing to the repository by accident?
A setting called “write changes back to GitHub”, which an organisation controls. When it is off, a link that would push a moved card to GitHub stops writing and carries on reading. It is the first module setting the platform actually reads at runtime, and it exists because a connector that silently starts editing a repository because somebody tidied a board is a connector nobody keeps.
- Write-back is a per-organisation setting, not a per-user habit
- With it off, the connector is read-only and says so
- Every inbound delivery is signature-verified before it is acted on
- Deliveries are recorded before they are applied, and a replayed delivery id is a no-op
- The console shows a delivery log, so a missing update is diagnosable
Which GitHub events does it listen to?
A closed set of six, chosen rather than accumulated: issues, issue comments, pull requests, pull-request reviews, Projects v2 item changes and check suites. Anything else that arrives is recorded as ignored rather than half-handled. Deliveries are applied one at a time per installation, because GitHub’s secondary rate limits punish concurrency from a single installation harder than they punish volume.
- issues, issue_comment, pull_request, pull_request_review, projects_v2_item, check_suite
- Unrecognised events are recorded as ignored, not guessed at
- Applied strictly in order per installation, to stay inside GitHub’s rate limits
- Recorded deliveries are pruned after a week
What this does not do
- The GitHub connector requires the task boards module, because the things it syncs are board cards. Turning boards off turns GitHub off with it, and resuming GitHub first is refused.
- GitHub only. There is no GitLab, Bitbucket, Azure DevOps or Gitea connector, and none is promised.
- Enclessa does not host code, run pipelines or review diffs. It shows you the state of work that lives in GitHub; the work stays in GitHub.
- Write-back covers the fields the sync owns — status and the issue a card was filed as. It is not a general-purpose repository editor.
- The connector works on managed rooms and their boards. End-to-end encrypted rooms have no server-side key, so nothing server-side can read or post in them.
Related
GitHub: common questions
Does Enclessa sync with GitHub issues?
Does Enclessa write changes back to GitHub?
Does the GitHub integration work with GitHub Enterprise Server?
Do I need the task boards module to use GitHub sync?
Does Enclessa integrate with GitLab or Jira?
Encrypted collaboration, hosted in Europe.
Create a workspace in a couple of minutes. It is yours at your-team.enclessa.app, hosted in the European Union, with encrypted direct messages from the first one you send.
Open beta. Free plan, no payment card to start.