/sync-github-pivotal

Bi-directional syncing between Pivotal Tracker & GitHub Issues

Primary LanguageTypeScript

Sync GitHub + Pivotal Tracker

Bi-directional syncing between Pivotal Tracker & GitHub Issues

How it Works

GitHub is the source of truth:

  • When a New GitHub Issue is created, create a Pivotal Story with external_id.
  • When a New GitHub Milestone is created, create a Pivotal Epic.
  • When a GitHub Issue is assigned to a GitHub MileStone, assign Pivotal Story to Epic.
  • When a GitHub Milestone is updated, update Pivotal Epic.
  • When a GitHub Label is assigned, create & assign label in Pivotal.
  • Sync GitHub Issue descriptions with Pivotal Story.

What's Missing

  • Sync Pivotal back to GitHub

Getting Started

  1. Fork or Clone this project.

  2. cp .env.example .env and adjust accordingly

  3. yarn

  4. yarn start will open http://localhost:3000

  5. yarn tunnel in another terminal to create an external tunnel (e.g. https://5a7811ca.ngrok.io/api/github):

    Dashboard: http://localhost:4040/inspect/http

  6. Add webhook to GitHub (e.g. https://github.com/ORG/REPO/settings/hooks/new) with the following permissions:

    Use your ngrok tunnel URL (e.g. https://••••.ngrok.io/dev/github) until you push to production.

    • Issues
    • Milestones
    • Pull Requests
    • Pull request reviews
    • Pull request review comments

Deploying

  1. Create a sync-github-pivotal profile in ~/.aws/credentials:

    [sync-github-pivotal]
    aws_access_key_id=••••••••
    aws_secret_access_key=••••••••••••••••
  2. yarn deploy

  3. Update your webhook to https://••••.execute-api.us-east-1.amazonaws.com/prod/github