Upgrade to PRO for Only $50/Yearβ€”Limited-Time Offer! πŸ”₯

Integrations

Avatar for Keavy McMinn Keavy McMinn
September 15, 2016
740

Β Integrations

Avatar for Keavy McMinn

Keavy McMinn

September 15, 2016
Tweet

Transcript

  1. repo Grants read/write access to code, commit statuses, repository invitations,

    collaborators, and deployment statuses for public and private repositories
  2. repo Grants read/write access to code, commit statuses, repository invitations,

    collaborators, and deployment statuses for public and private repositories and organizations.
  3. β”Œβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”‚Userβ”‚ β”‚ Integrator β”‚ β”‚ GitHub β”‚

    β””β”€β”€β”¬β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ User visits Integrator site β”‚ β”‚ β”‚ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β–Ά β”‚ β”‚ β”‚ β”‚ β”‚ Authorize Integrator with OAuth β”‚ β”‚ β”‚ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β–Ά β”‚ β”‚ β”‚ Integrator receives and stores β”‚ β”‚ OAuth access token for user β”‚ β”‚ β”‚ βΎ’ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ List accessible orgs for user β”‚ β”‚ β”‚ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β–Ά β”‚ β”‚ β”‚ β”‚ List accessible repos for user β”‚ β”‚ β”‚ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β–Ά β”‚ β”‚ β”‚ β”‚ Display list of repos to user β”‚ β”‚ β”‚ βΎ’ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ User selects repos to build β”‚ β”‚ β”‚ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β–Ά β”‚ β”‚ β”‚ β”‚ Set up hooks, create keys for β”‚ selected repos β”‚ β”‚ β”‚ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β–Ά β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
  4. β€œIf we were building integrations from scratch, knowing what we

    know now... what would we do differently?” b jasonrudolph
  5. # A user with push access to commit status role

    :status_writer do |context| ... user && repo.pushable_by?(user) end Checking permissions
  6. # A user with push access to commit status role

    :status_writer do |context| ... user && (repo.pushable_by?(user) || repo.statuses.writeable_by?(user)) end Checking permissions
  7. # A user with push access to commit status role

    :status_writer do |context| ... user && repo.resources.statuses.writeable_by?(user) end Checking permissions
  8. repo Grants read/write access to code, commit statuses, repository invitations,

    collaborators, and deployment statuses for public and private repositories and organizations.
  9. β”Œβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”‚Userβ”‚ β”‚ Integrator β”‚ β”‚ GitHub β”‚

    β””β”€β”€β”¬β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ User visits Integrator site β”‚ β”‚ β”‚ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β–Ά β”‚ β”‚ β”‚ β”‚ β”‚ Authorize Integrator with OAuth β”‚ β”‚ β”‚ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β–Ά β”‚ β”‚ β”‚ Integrator receives and stores β”‚ β”‚ OAuth access token for user β”‚ β”‚ β”‚ βΎ’ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ List accessible orgs for user β”‚ β”‚ β”‚ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β–Ά β”‚ β”‚ β”‚ β”‚ List accessible repos for user β”‚ β”‚ β”‚ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β–Ά β”‚ β”‚ β”‚ β”‚ Display list of repos to user β”‚ β”‚ β”‚ βΎ’ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ User selects repos to build β”‚ β”‚ β”‚ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β–Ά β”‚ β”‚ β”‚ β”‚ Set up hooks, create keys for β”‚ selected repos β”‚ β”‚ β”‚ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β–Ά β”‚ β”‚ β”‚
  10. β”Œβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”‚Userβ”‚ β”‚ Integrator β”‚ β”‚ GitHub β”‚

    β””β”€β”€β”¬β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ User visits integration page β”‚ β”‚ β”‚ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β”Ό ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─▢ β”‚ β”‚ User installs integration on selected repos β”‚ β”‚ β”‚ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─▢ β”‚ β”‚ β”‚ Integrator receives webhook event β”‚ β”‚ of new installation β”‚ β”‚ β”‚ βΎ’ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
  11. Take action independently of a specific user Allow users to

    install on an organization Allow users to install on a per repository basis Want granular permissions When to use an Integration?
  12. Take action only as a specific user Full access is

    desired Using GitHub as an identity provider When to use an OAuth application?
  13. b keavy b jch b tarebyte b jmilas b kdaigle

    b pifafu b cmwinters b tclem b jasonrudolph b jdpace b pengwynn b ptoomey3 b janester