{"id":15821232,"url":"https://github.com/flexoid/pivotal-slack-preview","last_synced_at":"2026-04-24T16:37:07.944Z","repository":{"id":44910336,"uuid":"329437426","full_name":"flexoid/pivotal-slack-preview","owner":"flexoid","description":"Slack app that provides preview of the pivotal tracker stories when story URLs are posted to the channels.","archived":false,"fork":false,"pushed_at":"2022-01-30T13:07:42.000Z","size":2197,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-12T07:44:16.532Z","etag":null,"topics":["golang","pivotal-tracker","pivotaltracker","preview","slack","slack-bot"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flexoid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-01-13T21:36:45.000Z","updated_at":"2022-01-21T14:07:45.000Z","dependencies_parsed_at":"2022-08-26T08:01:45.401Z","dependency_job_id":null,"html_url":"https://github.com/flexoid/pivotal-slack-preview","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flexoid%2Fpivotal-slack-preview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flexoid%2Fpivotal-slack-preview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flexoid%2Fpivotal-slack-preview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flexoid%2Fpivotal-slack-preview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flexoid","download_url":"https://codeload.github.com/flexoid/pivotal-slack-preview/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246598151,"owners_count":20802973,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["golang","pivotal-tracker","pivotaltracker","preview","slack","slack-bot"],"created_at":"2024-10-05T07:21:09.068Z","updated_at":"2026-04-24T16:37:02.924Z","avatar_url":"https://github.com/flexoid.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pivotal Tracker Slack Preview\n\nSlack app that provides preview of the pivotal tracker stories when story URLs\nare posted to the channels.\n\n## Features\n\n* Automatically post preview of Pivotal Tracker stories mentioned in the message.\n\n* Expand story details with message only visible to single user.\n\n   ![](assets/overview.gif)\n\n* Configurable number of stories in a single message to ask if preview is needed.\n\n   ![](assets/ask-for-preview.gif)\n\n## Installation\n\n1. Deploy this app using preferred way, you can refer to [Deployment](#deployment) section. The port needs to be publically available.\n2. Go to Pivotal Tracker [profile](https://www.pivotaltracker.com/profile) page. Generate API token, use it as a `PIVOTAL_TOKEN` environment variable value.\n3. Go to [My Apps](https://api.slack.com/apps) slack page and create new app. Choose the name (e.g \"Pivotal Tracker Slack Preview\") and select desired workspace.\n4. On the Basic Information page, copy \"Signing Secret\" and use it as a `SLACK_SIGNING_SECRET` environment variable value.\n5. Go to OAuth \u0026 Permissions page. Copy \"Bot User OAuth Access Token\" and use it as a `SLACK_TOKEN` value.\n6. Add the following OAuth scopes:\n   * `channels:history`\n   * `channels:read`\n   * `chat:write`\n   * `groups:history`\n   * `im:history`\n7. Go to the Event Subscriptions page. Subscribe to the following bot events:\n   * `message.channels`\n   * `message.groups`\n   * `message.im`\n8. Enable events and configure Request URL in the form `http://\u003chost\u003e:\u003cport\u003e/events-endpoint`. It is more secure to use `https`, but it will require some reverse proxy with certificate configured.\n9.  Go to Interactivity \u0026 Shortcuts page. Enable interactivity and add Request URL like `http://\u003chost\u003e:\u003cport\u003e/interactive-endpoint`.\n10. Add app to the channel. In Slack open:\n   * \"Channel Details\"\n   * \"(...) More\"\n   * \"Add apps\"\n   * Find an app in a list\n\n## Configuration\n\nEnvironment variables:\n\n| Env                    | Description                                                                    | Default |\n| ---------------------- | ------------------------------------------------------------------------------ | ------- |\n| `SLACK_TOKEN`          | Bot User OAuth Access Token                                                    | -       |\n| `SLACK_SIGNING_SECRET` | Slack Signing Secret                                                           | -       |\n| `PIVOTAL_TOKEN`        | Pivotal Tracker API token                                                      | -       |\n| `PORT`                 | HTTP port to listen                                                            | 8080    |\n| `STORIES_COUNT_TO_ASK` | Number of stories in a single message to start asking if needs to post preview | 2       |\n\n## Deployment\n\n### Docker Compose\n\nEdit `./configs/.env.prod` file to add all required configuration parameters.\n\nThen run:\n\n```console\n$ docker-compose -f ./deployment/docker-compose.yml --env-file ./configs/.env.prod up -d\n```\n\nTo update:\n\n```console\n$ docker-compose -f ./deployment/docker-compose.yml pull\n$ docker-compose -f ./deployment/docker-compose.yml --env-file ./configs/.env.prod up --no-deps -d web\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflexoid%2Fpivotal-slack-preview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflexoid%2Fpivotal-slack-preview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflexoid%2Fpivotal-slack-preview/lists"}