{"id":37103283,"url":"https://github.com/skybet/go-helpdesk","last_synced_at":"2026-01-14T12:30:34.244Z","repository":{"id":55044117,"uuid":"140434180","full_name":"skybet/go-helpdesk","owner":"skybet","description":"Library for building helpdesk bots in Go","archived":false,"fork":false,"pushed_at":"2021-01-13T10:38:53.000Z","size":2512,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-08-03T07:23:42.692Z","etag":null,"topics":["go","golang","slack","slackbot"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skybet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-10T13:11:59.000Z","updated_at":"2023-11-20T12:25:40.000Z","dependencies_parsed_at":"2022-08-14T10:00:39.455Z","dependency_job_id":null,"html_url":"https://github.com/skybet/go-helpdesk","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/skybet/go-helpdesk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skybet%2Fgo-helpdesk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skybet%2Fgo-helpdesk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skybet%2Fgo-helpdesk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skybet%2Fgo-helpdesk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skybet","download_url":"https://codeload.github.com/skybet/go-helpdesk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skybet%2Fgo-helpdesk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28420772,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T10:47:48.104Z","status":"ssl_error","status_checked_at":"2026-01-14T10:46:19.031Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go","golang","slack","slackbot"],"created_at":"2026-01-14T12:30:33.378Z","updated_at":"2026-01-14T12:30:34.183Z","avatar_url":"https://github.com/skybet.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# go-helpdesk\n\n## A library for building helpdesk bots in Go\n\n[![CircleCI](https://circleci.com/gh/skybet/go-helpdesk/tree/master.svg?style=svg)](https://circleci.com/gh/skybet/go-helpdesk/tree/master) [![CodeFactor](https://www.codefactor.io/repository/github/skybet/go-helpdesk/badge)](https://www.codefactor.io/repository/github/skybet/go-helpdesk) [![Coverage Status](https://coveralls.io/repos/github/skybet/go-helpdesk/badge.svg?branch=master\u0026\u0026service=github)](https://coveralls.io/github/skybet/go-helpdesk?branch=master\u0026\u0026service=github)\n\n`go-helpdesk` is a library and standalone binary designed to be run as a server to respond to Slack slash commands, although it should be possible to use any messaging platform with little effort. Once a user has engaged with the app, you can then configure it to raise JIRA tickets, call someone out on PagerDuty or whatever. The library consists of a server which responds to webhooks from messaging platforms and some common handlers and a wrapper library for Slack and JIRA. It is a simple aid to take some of the sting out of first-line support and incident management using ChatOps.\n\nIt is possible to use the basic bundled functionality by simply deploying the bundled implementation or you can import it as a library and write your own.\n\n## Development\n\n### Dependencies\n\nWe have chosen to commit the vendor tree as it gives us repeatable builds and control over our dependencies. Please run `dep ensure` to update the vendor tree. This is not done by CI.\n\n### Automated Testing\n\nWe use [Mockery](https://github.com/vektra/mockery) for test mocks. Use `go generate` to regenerate test doubles after you have go getted the mockery package. If you need to add new interfaces to be mocked, add new generate comments to the top of `main.go`.\n\nAny commit without appropriate test coverage will be rejected.\n\n## CLI Usage\n\n### Flags\n\n```\n  -a, --app-token string        Slack API token for your slash command (required)\n  -b, --bot-token string        Slack API token for bot integration (required)\n  -s, --signing-secret string   Slack API signing secret for request verification (required)\n  -l, --listen-address string   Address to listen for Slack callbacks on (default \":4390\")\n```\n\n### Environment Variables\n\nYou can set flags from environment variables instead. You simply take the log form of the flag and prefix it with `HELP_`, replacing any hyphens with underscores. \n\n\u003e Example: `HELP_APP_TOKEN` will set the `app-token` flag\n\n_Nb._ Flags take precedence over environment variables.\n\n### Slack Tokens\n\n`go-helpdesk` requires three different tokens to connect to Slack. An app token is provided when creating a new slash command and a bot token is required to send messages etc. A signing secret for your app is also required, to enable us to ensure that requests are legitimate.(_TODO: expand this_)\n\n### Deployment\n\nAn example [LinuxKit](https://github.com/linuxkit/linuxkit) configuration is included which is capable of creating a minimal OS image and running it, for example, on AWS.\n\nYou will want to edit/make a copy of this file for your own use and add you Slack tokens and secret. Remember not to commit these!\n\nRefer to the LinuxKit documentation for full usage. However, you can run this locally with just a few commands.\n\n```\ngo get -u github.com/linuxkit/linuxkit/src/cmd/linuxkit\nlinuxkit build linuxkit-example.yml\n\n# Using QEMU\nlinuxkit run qemu linuxkit-example\n# HyperKit (OSX)\nlinuxkit run hyperkit linuxkit-example\n```\n\n## Library Usage\n\nCheck the example `main.go` (_TODO: write a proper guide once API is stable_)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskybet%2Fgo-helpdesk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskybet%2Fgo-helpdesk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskybet%2Fgo-helpdesk/lists"}