Building the GitHub workspace app

Building the GitHub workspace app

In February 2018 we launched a new GitHub + Slack integration. These slides are from Slack's Spec developer conference sharing some of our experience working with their new workspace app tokens.

20bfe76b3d6105641f879fe45cfc9272?s=128

Brandon Keepers

May 22, 2018
Tweet

Transcript

  1. Building the GitHub workspace app Brandon Keepers – GitHub

  2. Wilhelm Klopp @wilhelmklopp Brandon Keepers @bkeepers

  3. None
  4. Compatible Platforms + Similar Audience

  5. Built on open platforms
 & public APIs Showcase the potential

    of integrating the two platforms GitHub Apps +
 Slack Workspace apps
  6. Overview Benefits Challenges Next

  7. Overview

  8. None
  9. None
  10. Authenticating Workspaces

  11. None
  12. None
  13. None
  14. None
  15. None
  16. None
  17. None
  18. None
  19. None
  20. None
  21. Authenticating Users

  22. None
  23. None
  24. None
  25. None
  26. None
  27. None
  28. Benefits

  29. For our users • Smooth installation • Better, progressive permissions

    • Invite GitHub app to specific channels
  30. For us as implementers • Just as easy as user

    and bot tokens • A single token to persist and use • Everything happens in Slack or GitHub
  31. Challenges

  32. Simplifying setup

  33. Simplifying setup

  34. Simplifying setup • • •

  35. Simplifying setup • • •

  36. Simplifying setup • • • • • •

  37. Simplifying setup • • • • • •

  38. GitHub User 1 Slack User 1 Identity & Access

  39. Organization A GitHub User 1 GitHub User 2 Workspace A

    Slack User 1 Slack User 2 Identity & Access
  40. Organization A GitHub User 1 GitHub User 2 Workspace A

    Slack User 1 Slack User 2 Repository A Channel A Identity & Access
  41. Organization A Organization B GitHub User 1 GitHub User 2

    GitHub User 3 Workspace A Slack User 1 Slack User 2 Repository A Channel A Repository B Identity & Access
  42. Organization A Organization B GitHub User 1 GitHub User 2

    GitHub User 3 Workspace A Workspace B Slack User 1 Slack User 2 Slack User 3 Slack User 4 Repository A Channel A Repository B Identity & Access
  43. Organization A Organization B GitHub User 1 GitHub User 2

    GitHub User 3 Workspace A Workspace B Slack User 1 Slack User 2 Slack User 3 Slack User 4 Repository A Channel A Repository B Identity & Access
  44. Organization A Organization B GitHub User 1 GitHub User 2

    GitHub User 3 Workspace A Workspace B Slack User 1 Slack User 2 Slack User 3 Slack User 4 Repository A Channel A Repository B Channel B Identity & Access
  45. Organization A Organization B GitHub User 1 GitHub User 2

    GitHub User 3 Workspace A Workspace B Slack User 1 Slack User 2 Slack User 3 Slack User 4 Repository A Channel A Repository B Channel B Repository C Identity & Access
  46. Organization A Organization B GitHub User 1 GitHub User 2

    GitHub User 3 Workspace A Workspace B Slack User 1 Slack User 2 Slack User 3 Slack User 4 Repository A Channel A Repository B Channel B Repository C Identity & Access
  47. Create an explicit relationship between work artifacts. Delegate access control

    for work artifacts to Slack. Takeaways:
  48. Next

  49. Recent Improvements Take Action from Slack
 with Slash commands

  50. Experimental API $ curl -i -H "Authorization: token $token" -XPOST

    \ https://slack.github.com/repos/myorg/myrepo -d @- <<EOF { "pretext": "@wilhelmklopp, you're up to deploy!", "color": "#36a64f", "title": "#554: Open Issue from slack", "title_link": “https://github.com/myorg/myrepo/pull/554", "actions": [ { "name": "action", "text": "Unqueue", "type": "button" }, { "name": "action", "text": "Deploy", "style": "danger", "type": "button" } ] } EOF
  51. Bi-directional integration Connect your code back to the conversation that

    influenced it.
  52. It’s all open source! Contribute on GitHub
 github.com/integrations/slack Built on

    Probot, a framework for building GitHub Apps
 probot.github.io
  53. Thank you! @bkeepers

  54. None