Version 1

    The purpose of this document is to track the feature/functions of the GitHub4Jive integration.  These features/stories have been persisted into the Project code-base via the developer-notes.md files in relevant location.

     

    Application Name

    GitHub4Jive - jivesoftware/GitHub4Jive · GitHub

     

    Purpose

    Show a fully fleshed out Add-On using as many of the Jive Add-On Disciplines as possible in concert to solve a specific use-case.

     

    Functional Matrix

     

    CategoryAsset 1Asset 2Asset 3Asset 4Asset 5
    Tiles, Streams & Templates

    Activity Tile

    • Commits
      • Good: Deep Link back to GitHub for Commit
      • Better: ???
      • Best: !app View of Commit with Diff Viewer Recreation?
    • Issues
      • State Change Notifications
        • Good: Deep Link back to Issue
        • Better: Deep link back to Discussion in Jive
        • Best: !app View of Issue
    • Accordion Tile
      • Recent Commits
        • Header is Commit #name
        • Details included in expansion
        • Tile Action
          • Good: Deep Link back to GitHub for Commit
          • Better: ???
          • Best: !app View of Commit with Diff Viewer Recreation?

    List Tile

    • Latest Issues
    • Tile Action
      • Show the Issue Information from Jive Discussion
      • Show Meta-Data from GitHub API about Issue
        • Deep Link to See Discussion in Context
        • Deep Link to See Pull Request in GitHub

     

    List Tile

    • Pull Requests
      • Tile Action
        • Show the Document Information
        • Show Meta-Data from GitHub API about Pull Request
          • Deep Link to See Document in Context
          • Deep Link to See Pull Request in GitHub
      • View All Pull Requests
        • Good: Deep Link to Content View
      • Approve Pull Requests

    Gauge Tile

    • Project Health
      • TBD - But for Fun... How do we visualize the status of a project with a Gauge (and it is helpful) =)
      • Possibly Use Analytics API to make this work - Health of the Collaboration

    Templates

    All the Tiles Setup

    Apps

    Canvas

    • List of Places Activated with GitHub
      • Deep Link into the Place Tab
      • Top Level Statistics
        • # of Commits (since)
        • # of Pull Requests (since)
        • # Issues

    !app Embed

    • Commits
      • Good:  Show Details of the Commit
      • Better: ???
      • Best:  Show actual Diffs

    My Profile - Tab

    • GitHub Page for Person
    • List of Jive Place That Your are a Member that have GitHub Integration
      • Top Level Statistics
        • # of Commits (since)
        • # of Pull Requests (since)
        • # Issues
    • My Recent Commits???
    • My Recent Issues???

     

    3rd Person Profile - Tab

     

    • My Recent Commits???
    • My Recent Issues???
    • GitHub Page for Person

    Profile Button

    • Assign a Task / Issue (Take Action) in GitHub

    Places Tab

    • GitHub Tab Dashboard
      • Issues
      • Pull Requests
      • Commits
      • Show Analytics from Jive Project Using Analytics API

     

    Place Settings

    • Enable GitHub Repo for this Place

    App Action - Content

    • Issue - Change Status
    • Pull Request - Approve
    Cartridges

    Snippet Scrape from GitHub Pages

    • Issues
      • Create !app Experience upon Click to Discuss
    • Issues
      • Gleans issue information from the page.
      • Adds a !app viewer of the Issue to the Snippet
      • Pre-Select the Linked Project as a target (if possible)
    • Commits
      • Gleans commit information from the page and puts into the Snippet.
      • Pre-Select the Linked Project as a target (if possible)

    DOM Injection to Repository Page

    • Embed Jive Discussions for related repo onto Page

     

    REST API / Webhooks

    Raw API - Listening to GitHub Webhooks / Polling

    • Issues
      • Issues - Creates Discussion
        • Syncs Commentary
          • (optional) configuration
        • ExtProps for Linking to GitHub API
        • NOTE: If Issue Closed in GitHub, we need to reflect in Jive!!
    • Pull Requests - Listening to GitHub Webhooks / Polling
      • Pull Requests - Creates Document
        • ExtProps for Linking to GitHub API

     

    WebHooks

    • Issues
      • Conversation Synchronizer
        • Syncs Commentary
          • (optional) configuration

     

      • Closing Issues from Structured Outcomes on Discussions - Mark as Final/Official
    Producteev

    Producteev

    • TODO: MAY NOT USE
    Analytics
    • See Place Tab
    • See Gauge Tile
    Mobile

    TBD

    ESF

    N/A

    StreamOnce (N/A)N/A

     

    User Stories

    General:

    As a user, i should be able to:

        see what places are linked to GitHub.

              These should link to the place's page

              Show stats for the connected repository on commits, issues, pull requests.

     

    As a contributor, I should be able to:

        see a list of the places that I have contributed GitHub content to

              Each of these should show my activity in the form of statistics about commits, issues, and pull requests

        see a list of my recent commits regardless of place

        see a list of recent issues I have created or commented on

     

    As a person with the keys to the repository, I should be able to:

        hide a repository linked place from the public list (not sure if this can already be done with security groups).

        create a new place or link an existing one to a repository on GitHub.

        Desynchronize with GitHub (turn off webhooks).

     

    Issues:

    As a contributor, I should be able to:

        create an issue in Jive and all comments in Jive should be sent to GitHub.

        comment on an issue in GitHub and comments should be picked up in the Jive Issue discussion.

        change the state of an issue in Jive.

        see the most recent open issues related to a place.

        see issue state changes and comments in the activity feed.

     

    Commits:

    As any user, I should be able to:

        see recent commits and changes that have occurred on the repository.

              Those commits should also allow me to see the diff to allow me to see what code changed.

     

    As a contributor, I should be able to:

        reference any commit in the repository in a document or discussion.

              link to github.

              show at least the files changed.

              show diff of specific file(s) in commit if possible

     

    Pull Requests:

    As a contributor, I should be able to:

        make a pull request from within Jive.

        discuss the details of the pull request.

     

    As a person with the keys to the repository, I should be able to:

        approve pull requests from within Jive.

        see the most recent pull requests.

        see pull requests in the activity feed.