Links Nosdesk tickets to GitHub issues for context alongside support work.
This is an official Nosdesk plugin, signed by the Nosdesk root key and distributed via the Nosdesk registry at https://nosdesk.com/registry/.
- Link issues: search and link GitHub issues to Nosdesk tickets.
- View status: see issue state (open/closed), labels, and recent activity without leaving the ticket.
- Quick access: click linked issues to open them in GitHub.
End users don't clone this repo. Install via the Nosdesk admin UI:
- Administration, Plugins, Registry
- Find "GitHub Integration" and click Install
The backend downloads the signed zip from this repository's latest release, verifies the Nosdesk root signature, and installs.
Create a GitHub Personal Access Token at https://github.com/settings/tokens. The fine-grained token flow needs only Issues: Read-only on the repositories you want visibility into.
In the Nosdesk admin UI (Administration, Plugins, settings):
github_token(secret): the PAT from abovedefault_owner(optional): e.g.nosdesk, used for text searchdefault_repo(optional): e.g.helpdesk
Tokens are encrypted at rest via the Nosdesk instance's configured
AES-256-GCM key path; the backend proxy injects
Authorization: Bearer <token> for requests to api.github.com
automatically.
- Open any ticket.
- Find the "GitHub Issues" panel in the sidebar.
- Click "Link Issue" to search. Enter either:
- A direct reference:
nosdesk/helpdesk#42 - Free-text search (requires
default_owner+default_repo).
- A direct reference:
- Click a result to link it. Hover a linked issue for the unlink button.
Releases are tagged vX.Y.Z on this repo. Each release has a
signed zip attached as an asset; that signed zip is what the
Nosdesk registry points at.
Per-release workflow:
-
Bump
manifest.jsonversion, commit, tag (git tag v0.2.0thengit push --tags). -
Build
dist/if applicable (this plugin currently shipsbundle.jsas a committed artefact; a future source+build layout will putdist/under a CI step). -
Sign from a machine with the Nosdesk root key:
nosdesk-cli plugin sign ./dist \ --key ~/.nosdesk-root/root.sk \ --out github-integration-0.2.0.zip \ --source nosdesk-root -
Create the GitHub release and attach the zip:
gh release create v0.2.0 github-integration-0.2.0.zip \ --title 'GitHub Integration 0.2.0' \ --notes-file RELEASE_NOTES.md -
Compute the zip's SHA-256:
shasum -a 256 github-integration-0.2.0.zip -
Open a PR on
Nosdesk/nosdesk-comadding the version entry underapps/marketing/registry-source/plugins/github-integration/versions.tomlwith the release asset URL + sha256. CI re-signs and publishes.
Current layout (single committed bundle.js for simplicity):
manifest.json # plugin identity, component + settings definitions
bundle.js # ES module with default export { GitHubPanel: ... }
When the plugin grows past the "ship the artefact directly" phase, move to:
src/ # TS/JS source
package.json # build deps
dist/ # build output (gitignored)
.github/workflows/
build.yml # produces dist/ on tag push
This plugin uses:
api.storage.get/api.storage.set: persist linked issues per ticket.api.fetch: proxied requests to GitHub API with automatic auth header injection.context.ticket: access the current ticket.- Component rendering in the
ticket-sidebarslot.
Components receive (api, context) as props.
This plugin is signed by the Nosdesk root key. Instances with the
correct NOSDESK_ROOT_PUBKEY baked in verify the signature
locally before executing any bundle bytes. The embedded signature
is also cross-checked against the registry-published
publisher_pubkey, tier, and plugin name, so a mix-up between
registry claim and shipped bytes is refused at install time.
See LICENSE.