github-desktop/docs/process/testing.md
2021-01-25 14:27:13 -05:00

32 KiB
Raw Blame History

Download Desktop

  • User can download latest (Mac & Windows) Desktop
    • Mac
      • Homebrew package manager: brew cask install github-desktop
    • Windows
      • Chocolatey package manager: choco install github-desktop
      • 64-bit and up
    • Data is retained if you download and open a fresh copy
  • Release notes page is up-to-date in app and can be accessed from here
  • Help page is accessible
  • 'Please update' notification shown in Classic apps

Welcome Flow

  • Create your free account (/join?source=github-desktop)
    • User is not automatically logged into Desktop post account creation
  • Sign in to Github.com link
    • Sign in successful if valid username/email and password
      • If 2FA activated, user sent auth code to enter (test SMS and authenticator app)
        • User can reissue auth code with Resend SMS link
    • Sign in successful with active 2FA code, user goes to Configure Git page
      • User sees Repository landing page if sign-in successful
      • Error message if code is wrong or inactive
      • Error message if incorrect username/email or password
    • Forgot link (/password_reset)
    • Cancel returns to initial Welcome Flow page
    • Sign-in using your browser opens default browser for confirmation
      • Browser login, "authorize" GitHub Desktop, “accept” link
        • If successful, Desktop shown in /settings/applications in user profile
  • Sign in to Enterprise link (v2.8 and up)
    • Continue successful if server address is valid, else error message
      • Sign in using your browser opens default browser for confirmation
        • Browser login, [insert custom security measure], Authorize GitHub Desktop, “accept” link
    • User goes to Configure Git if successful
    • Cancel returns to initial Welcome Flow
    • User served generic message if not authorized to access Enterprise
  • Skip "username+password" step
    • Configure Git
      • Name and email pulled from global .gitconfig file, if configured
    • If recognized, your avatar is present in example commit; gravatars not recognized
      • Continue allowed if fields populated or blank
    • Valid login credentials from github.com or Enterprise carried through
      • User sees Repository landing page if sign-in successful
  • Usage Data
    • Checked by default; user can uncheck. (Should not be checked by default if user on free plan only.)
      • Clicking Finish, results in user being signed-in successfully
    • Cancel returns to initial Configure Git page

Onboarding & Tutorial

  • Onboarding shown if user is new to Desktop and has no repositories in the application
    • If user logged in during sign-up process with repository lists for GitHub.com and/or Enterprise
    • Always show suggested steps: Clone repository, Add existing repository, Add new repository
    • If logged into GitHub, show button for creating tutorial
      • Adding a repository will automatically exit Onboarding
        • User can revert to Onboarding if all repositories are removed
      • Tutorial can only be started if there is no local or remote desktop-tutorial repository, else error surfaced
        • Repository is created as first step, with green checkmarks for each completed step.
      • User can click Exit Tutorial anytime to return to Onboarding page

Repositories landing page; default no repositories

  • Create New Repository (Mac: ⌘N; Windows: Ctrl+N)
    • Modal opens with name, path (choose option), readme (unchecked), git ignore, license. Name and path mandatory.
      • If Add this repository warning message appears, clicking it adds to Repo list
      • If repository name is over 100 characters, warning message is surfaced in modal
      • If repository contains URL-hostile characters, show error message
    • Create Repository button adds new repo, which is added to Repo list
    • Cancel button does not save any changes made; modal closed
    • User cannot create a new repo inside a locked local directory
  • Clone a Repository (Mac: ⇧⌘O; Windows: Ctrl+Shift+O)
    • Enter valid URL or username/repo/gist, else error message
      • If authentication error for Github.com, modal with username/password surfaced; Cancel or Save and Retry buttons
        • If successful, repo is cloned
    • Modal surfaces again if unsuccessful
      • If authentication error for Enterprise, user redirected to Preferences
    • Valid path can be entered or selected
      • Local path is prepopulated; if not unique then error surfaced
    • All repos from both GitHub.com and Enterprise are populated -- your repos are listed first, followed by org(s)
      • User must be logged in to view list; else Sign In button present
      • Results are filterable, and can be selected for cloning
    • Clone creates repo at selected path
      • Repo added to Repo list
    • Cancel closes modal, no repo cloned
  • Add a Local Repository (Mac: ⌘O; Windows: Ctrl+O)
    • Valid path can be entered or selected
    • Add repository activated if repo path exists
      • Repo added to Repo list
      • If directory path not valid, 'Create a new repo' error message is present
    • Cancel closes modal, no repo added
    • Large repos (> 100MB) trigger Initialize Git LFS modal
      • Link takes user to (https://git-lfs.github.com/)
      • Local path to repo is displayed
      • User can click Cancel or Initialize Git LFS
  • Drag and drop repository
    • User can drag existing local repository into Desktop
      • Successful attempt adds repo to Repo list; else error message

Publishing a repository

  • Publish Repository modal present if repo is unpublished and user clicks Publish repository button
    • GitHub tab is default; Enterprise tab is also present
      • User must be signed-in to publish, else Sign In button present on tab
    • Modal fields are Name, Description (optional), Keep this code private checkbox, Organization list (alpha order, tab-specific, if orgs exist), Cancel button, Publish Repository button
      • Clicking Publish Repository button pushes repo to GitHub.com or Enterprise; Cancel button closes modal
        • Repository is present on GitHub.com or Enterprise if published
    • 'Visibility can't be private error' shown, if user's plan is not sufficient
    • A .gitattributes file is added to the repository as part of the initial commit
    • If repo is forked and upstream remote does not match, then modal is surfaced with Ignore/Update button

Application

  • Minimize, Maximize, Close buttons work in top nav
    • If user zooms in and quits app, settings should be retained when reopened
  • Double-clicking local desktop icon opens the application (Mac OS only)
  • Double clicking top nav bar toggles full-screen / last used screen-size (Mac OS only); Exit by (Mac: ^⌘f11; Windows: Alt)
  • Clicking Desktop icon in dock/taskbar opens the application
  • Changing desktop icon name while app is open results in package error; if app is closed then name change successful

GitHub Desktop menu top-level

  • About GitHub Desktop
    • Current version shown
    • Links to release notes (modal), terms (modal), licenses (modal)
    • Update banner shows whats new (modal) and restart now; App will restart with latest build
    • Update modal shows enhancements / bug fixes in latest build with Install button; user can X the banner
    • Clicking the build version number copies to clipboard
    • Edge case: If build is "old", error message displays warning user to "... manually check for updates".
      • Clicking Check for updates button produces "read-only volume" error message, with link for help
    • Clicking Check for updates button timestamps last attempt; periodic autochecking in the background
      • If update available, Install Update button will quit app and install update
      • If update available, download banner is present in main window with restart and whats new links
      • If checking for update or download latest update in progress, the Check for updates button is disabled
      • Restarting the app automatically checks for updates
    • Close button closes modal
  • Preferences/Options (Mac: ⌘, Windows: Ctrl+,)
    • Accounts
      • GitHub.com name, handle, avatar, sign out button, if user signed in
      • Enterprise handle, avatar, sign out button, if user signed in
      • User can sign out of either account
      • User can be signed-in to both Enterprise and GitHub.com at same time
    • Integrations
      • External Editor options shown in dropdown; else show link to install the default editor
      • Shell options shown in dropdown
    • Git
      • Username and email are displayed if .gitconfig configured for Welcome flow
      • Save button saves any changes made
      • Cancel button does not save any changes made; modal closed
    • Appearance
      • Light theme is default
      • Dark theme is optional
      • For Mac, users can opt to match system preference theme with checkbox
    • Advanced
      • Stashing options include "Ask me..", "Always bring my changes...", and "Always stash...". "Ask Me" is default.
      • Confirmation dialogue for removing repositories is checked by default; user can toggle
        • Verify positive ConfirmDiscardChanges value in Dev Tools > Application > Local storage > file://
      • Confirmation dialogue for discarding files is checked by default; user can toggle
        • Verify positive ConfirmRepoRemoval value in Dev Tools > Application > Local storage > file://
      • Confirmation dialogue for force pushing files is checked by default; user can toggle
        • Verify positive confirmForcePush value in Dev Tools > Application > Local storage > file://
      • Save button saves any changes made
      • Cancel button does not save any changes made; modal closed
      • Shared usage data option; selection carried through from Welcome flow
  • Install command line tool installs tool at /usr/local/bin/github (Mac only as Windows done automagically; Helper may require password, else error message)
    • If already installed, user sees: "The command line tool has been installed at /usr/local/bin/github"
    • Clicking OK closes modal
  • Quit/Exit Desktop (Mac: ⌘Q)
    • Quitting/Exiting and reopening Desktop returns you to last visited repo
  • Menu items are disabled if any modal is present; MacOS-default menu items not applicable

File top-level menu

  • New Repository... (Mac: ⌘N; Windows: Ctrl+N)
  • Add Local Repository... (Mac: ⌘O; Windows: Ctrl+O)
  • Clone Repository... (Mac: ⇧⌘O; Windows: Ctrl+Shift+O)
  • Options... (Windows only: Ctrl+,)
  • Exit (Windows only; quits the app)

Edit top-level menu

  • Undo (Mac: ⌘Z; Windows: Ctrl+Z)
  • Redo (Mac: ⇧⌘Z; Windows: Ctrl+Y)
  • Cut (Mac: ⌘X; Windows: Ctrl+X)
  • Copy (Mac: ⌘C; Windows: Ctrl+C)
  • Paste (Mac: ⌘V; Windows: Ctrl+V)
  • Select all (Mac: ⌘A; Windows: Ctrl+A)

View top-level menu

  • Show Changes (Mac: ⌘1; Windows: Ctrl+1)
  • Show History (Mac: ⌘2; Windows: Ctrl+2)
  • Show Repositories List (Mac: ⌘T; Windows: Ctrl+T)
  • Show Branches List (Mac: ⌘B; Windows: Ctrl+B)
  • Go to Summary (Mac: ⌘G; Windows: Ctrl+G)
  • Show/Hide Stashed Changes (Mac: ^H; Windows: Ctrl+H)
  • Enter Full Screen (Mac: ^⌘F; Windows: F11)
  • Reset Zoom (Mac: ⌘0; Windows: Ctrl+0)
  • Zoom In (Mac: ⌘=; Windows: Ctrl+=)
  • Zoom Out (Mac: ⌘-; Windows: Ctrl+-)
  • Toggle Developer Tools (Mac: ⌥⌘I; Windows: Ctrl+Shift+I)

Repository top-level menu. (Only enabled if one repo present)

  • Push (Mac: ⌘P; Windows: Ctrl+P)
    • Commits from repository are pushed to github.com; error message shown if conflicts
  • Pull (Mac: ⇧⌘P; Windows: Ctrl+Shirt+P)
    • Commits from repository are pulled from github.com; error message shown if conflicts
  • Remove
    • Repository is removed from Repository List; confirmation dialogue shown if Preferences option enabled
  • View on GitHub (Mac: ⌥⌘G; Windows: Ctrl+Alt+G)
    • Repository on github.com is opened; must be logged in if private repository or Enterprise repository
  • Open in [insert shell] (Mac: ^[tilde-sign]; Windows: ); see Shell options in preferences
    • Local repository is opened
    • If git not installed, modal asks to Open with Git or Install Git
  • Show in Finder/Explorer (Mac: ⇧⌘F; Windows: Ctrl+Shift+F)
    • Local repository is opened
  • Open in [insert editor] (Mac: ⇧⌘A; Windows: Ctrl+Shift+A); see External Editor option in preferences
    • Secondary modal appears if no Editors set; option to download the default editor
  • Repository settings...
    • Remote path can be edited for existing repository; origin already set. Cannot be empty string, else error message.
      • Saved button saves last entry
      • Cancel button closes modal
    • User can opt for Setup custom remote for a non-GitHub repository
      • Save & Publish button saves last entry
      • Cancel button closes modal
    • Ignored Files
      • .gitignore file contents are shown and can be edited
    • Saved button saves last entry; changes create a new commit
    • Cancel button closes modal

Branch top-level menu

  • New Branch... (Mac: ⇧⌘N; Windows: Ctrl+Shift+N)
    • Clicking Create Branch makes new branch based on the entered name, if not a duplicate
    • Master branch is mentioned in the list; current branch shown first
    • Cancel button closes modal
  • Rename... (cannot be default branch)
    • Rename button changes branch name if field updated
      • Same branch on github.com is not renamed
    • Cancel button closes modal
    • Protected branches cannot be renamed
  • Delete... (cannot be default branch)
    • Option to delete branch on the remote; default is unchecked
    • Delete button deletes branch (and remote too if option checked)
    • Cancel button closes modal
    • Protected branches cannot be deleted
  • Update from [default branch] (cannot be default; Mac: ⇧⌘U; Windows: Ctrl+Shift+U)
    • Merge success banner is shown temporarily; user can X to remove
  • Compare to Branch (Mac: ⇧⌘B; Windows: Ctrl+Shift+B)
    • Takes you to the history tab with the input selected so you can directly choose a branch
  • Merge into Current Branch... (Mac: ⇧⌘M; Windows: Ctrl+Shift+M)
    • Use can filter to find existing branches
    • User can select branch, other than current one
    • Merge hint shows status and branches to be merged
    • Merge button only activated if something to merge (includes awaiting conflicts)
      • If merged, success banner is shown temporarily; user can X to remove
      • If conflicts, conflict modal shows quantity of files, ability to open in [editor], open in command line, Abort button, while Commit merge button is deactivated until files are resolved; Changes tab shows all files
        • If conflict resolved, files marked green, and user can click Commit merge button
        • If merged, success banner is shown temporarily; user can X to remove
        • Binary files must be resolved in command line before committing merge
        • Aborting partially resolved commit surfaces "Are you sure?" dialogue; Cancel or Abort merge buttons
  • Rebase Current Branch...
    • User can filter to find existing branches
    • User can select branch, other than current one
    • Rebase hint shows status and branches to be merged
    • Start rebase button only activated if something to rebase
      • If rebase, success banner is shown temporarily; user can X to remove
      • If conflicts, conflict modal shows quantity of files, ability to open in [editor], open in command line, Abort button, while Continue rebase button is deactivated until files are resolved
        • If conflicts resolved, files marked green, and user can click Continue rebase button
        • If rebased, success banner is shown temporarily; user can X to remove
        • Aborting partially resolved rebase surfaces "Are you sure?" dialogue; Cancel or Abort merge buttons
  • Compare on GitHub (Mac: ⇧⌘C; Windows: Ctrl+Shift+C) (if repository already published on github.com)
  • Create Pull Request (Mac: ⌘R; Windows: Ctrl+R) opens Pull Request on github.com
    • If branch unpublished, dialogue asks to publish the branch
    • Push Local Changes modal surfaces with option to Create Without Pushing and Push Commits;(trigger: Create Pull Request after commit on branch before pushing)

Window top-level menu (Mac only)

  • Minimize, Zoom (maximize app size), Close, Bring All to Front, GitHub Desktop

Help top-level menu

  • Report Issue... opens issue filing in Desktop repository on github.com
  • Contact GitHub Support... opens https://github.com/contact page with user and build prepopulated
  • Show User Guides opens Desktop help page on github.com
  • Show Keyboard Shortcuts opens https://help.github.com/en/desktop/getting-started-with-github-desktop/keyboard-shortcuts-in-github-desktop
  • Show Logs in Finder/Explorer opens Finder/Explorer logs in local directory
    • Mac: ls ~/Library/Application\ Support/GitHub\ Desktop/Logs/*.log
    • Windows: %LOCALAPPDATA%\\Desktop\\*.desktop.production.log
  • About GitHub Desktop (Windows only)

Next Steps

  • Up to four suggested steps are shown at any given time, contingent on the state of the repository and/or branch
    • First step is not always shown, and it can be View Stash, Pull Origin, Pull Origin, Create Pull Request, Publish Repository
    • Other steps are Open in [editor] with Preferences/Options link, Show in [Finder/Explorer] and View in GitHub

Repositories list

  • Current repository is always shown in top slot with respective icon; if repository exists
  • Opening list shows all repositories, categorized by owner in alpha format with a working filter
    • If more than six repositories, a Recent group will appear at the top of the list; limit 3 repositories
    • ESC clears the filter
    • Search filter match results in bold characters
    • A repository with uncommitted files shows a next to name
    • All repositories (private, enterprise, local, public, forked, other) have proper icon and found in the proper category (GitHub.com/Enterprise/Other)
      • Hover shows username/repository, url, and/or local path in tooltip
      • User must have paid account for private repositories
      • Repository icon is updated if admin changes status (public vs private)
  • Add button dropdown shows three options: Clone Repository, Add Existing Repository, Create New Repository
  • Repositories cloned from non-github servers should always be in the Other group, and have the 'computer' icon.
  • Selecting a repository updates Changes/History/Diff areas
    • If no Changes, Diff area shows Open this repository link to Finder/Explorer on local
  • Right-click reveals Open in [Shell], Open in Finder/Explorer, Open in [Editor], and Remove options
  • Repositories which have been removed locally (and trash emptied) have 'cannot find repository' warning
    • Relaunching the app when it displays a missing repository preserves the repository's name and last seen path
    • Remove a repository which can not be found (deleted locally & trash emptied)
  • Repositories which are cloning display a progress bar

Changes tab

  • Changes tab shows icon if files are waiting to be committed
    • Number of changed files is always present; it can be 0
  • Any changed files appear in the list, with respective +/•/- sign; with arrow keys enabled
    • Merge-conflicted files shown with hazard icon; cannot be committed until fixed
    • User can check none, or check one or more files to commit; list is scrollable
      • User can select one or more lines to commit; diff is scrollable
      • Right-clicking opens context menu
        • User can discard the file (or all files); pending confirmation dialogue
      • Do not show this message againoverrides the preference setting if true
        • User can ignore single/all files, show in Finder/Explorer, reveal in external editor, or open in default program
      • A specific file can only be ignored once
      • All ignored files found in Repository Settings > Ignored Files tab
    • User can open in finder, preferred editor, or OS default program
  • Panes can be resized horizontally, and contents resize to take the full width
    • Quitting Desktop and relaunching remembers pane sizes
  • Uncommitted files are optionally stashed if user attempts to switch branches; depends on Preferences.
    • Modal asks user to stash on current branch or bring changes to new branch; Cancel or Switch Branch buttons
      • If stashed then changes shown under Stashed Changes section below Changes tab when returning to the original branch
        • Stashed changes section show all stashed files and diffs; user can discard or restore to Changes
      • If moved to new branch, all previously changed files will exist under Changes tab on the new branch

History tab

  • History tab shows commits on your current branch by default
    • All commits listed in chronological order, with avatar, date and name; list is scrollable with arrow keys enabled
      • Right clicking any commit shows options: Revert This Commit, Copy SHA, View on GitHub
      • Hover shows file name in tooltip
    • Placing cursor in search field show all branches with number of commits behind/ahead; list is alpha and categorized
      • Filtering for branch name that doesn't exist shows "Sorry, I can't find that branch"
    • User can search to a target branch to filter commits; esc key to exit; autocomplete and text prediction intact
      • User can toggle between behind/ahead, with counts shown; Behind tab is shown by default
        • If more than 0 commits behind, a list of commits are shown in reverse chronological order
        • If more than 0 commits ahead, a list of commits are shown in reverse chronological order
      • User can merge in any commits into current branch for the "behind" tab; (button disabled if 0 commits behind)
        • Merge hint shown below Merge into X button with status, numbers of commits, and branch names
        • After successful merge, tab counts update and merge button is disabled
        • Merge conflict results in dialog shown directing user to commit view
    • Merge prompt shown above filter if comparing two branches and commits are behind default branch
      • View commits shows commits in Changes list, Merge... opens Merge in Current Branch modal, or X to close

Diffs section (History tab)

  • All commits have avatar, selectable SHA, # of files changed, commit message, commit description (optional)
    • Long commit descriptions can be toggled with expand/collapse icon
      • Reverting commit repopulates commit area
        • Error message if no changes to commit
  • All files within a commit listed, with respective +/•/-/-> sign; list is scrollable
    • Diffs are viewable; list is scrollable with arrow keys enabled
      • Green is for additions, red for deletions
      • Different file types are rendered properly
      • Single pic file with the -> sign has multiple view options: 2-up (default); Swipe; Onion Skin; and Difference
  • Panes can be resized horizontally, and contents resize to take the full width
  • Diffs cannot be over 3MB
  • Diffs cannot be longer than 500,000 characters

Commit section (Changes tab)

  • Commit created if user clicks Commit to [branch] button with commit message and at least one checked file
    • Fetch origin changes to Push with number of commits badge
  • Avatar of user is shown
  • User can 'at-mention' those associated with the respective repository; either summary or description field is ok (published repositories only)
  • User can 'pound-mention' an issue in the either summary or description field; issue number should populate (published repositories only)
  • Summary field is required
  • Description field is optional
  • User can undo last commit
    • Push with number of commits badge is decremented or reverts to Fetch origin
  • Undo button disabled if user is pushing commit
  • User can publish a new repository with no commits (aka unborn repository/branch)
  • User can make new branch the default branch, by making the initial commit on the new branch
  • User can select individual file(s) -- and individual lines of a file(s) -- to commit at a time
  • Forked messaging shown if user cannot write to cloned repository and there are changes
    • If user opts to fork the repository, a confirmation dialogue surfaced. Errors caught within the dialogue.
    • Clicking confirm results in successful fork creation
  • Protected branches messaging shown if branch is protected and there are changes

Co-authoring (Changes tab)

  • clicking co-author icon toggles co-author field; or right-click within commit area
    • Hovering over the icon reveals add/remove 'action' text
    • Right-click includes Mac/Windows context menus; option greyed out if repo not published to github.com
    • User can tag other GitHub.com users only, or those within your Enterprise org
      • Tag is tied to public API name/email; email is "no-reply" if user setting is enabled
      • Mouseover tooltip reveals name and email of any entered tags
      • Tagging those outside of GitHub turns tag red
      • You cannot tag a user more than once via the autocomplete; manually you can
      • Typing a GitHub name not part of the initial autocomplete will initiate a search
        • Found names are tagged; all others are turned red
        • Navigating away from the Changes tab will clear red tags
    • Toggling the co-author icon clears the field
  • All co-authors show up in History and diff view
    • Commits with Co-Authored-By: Name <username@github.com>in the description field reveal avatar of user
    • Hovering over an avatar reveals all tagged users
    • Hovering over the "people" text reveals all names/emails of tagged users
  • Undoing a commit re-enables the valid tags
  • Reverting a commit does not re-enable any tags

Branches list

  • Current branch always shows if repository present
    • Hover shows full branch name in tooltip
    • Long branch names are truncated, with beginning/end of branch name shown
  • Opening list shows all branches in categorized format with a working filter
    • New button opens 'New Branch' modal
    • If filters results are nil, then prefill branch name in modal if user clicks Create New Branch
    • Active branch is highlighted and marked with a check
    • esc clears the filter
    • Search filter match results in bold characters
    • Hover shows full branch name in tooltip
    • Choose a branch to merge into [current branch] button is shown; (Mac: ⇧⌘M; Windows: Ctrl+Shift+M)
  • Default branch labeled and listed first, with timestamp
  • Selecting a branch switches branches
  • Creating a new branch shows Publish branch button
    • Publishing successful if logged in only; else error message
      • Create Pull Request menu option shows warning if branch not published yet
  • Renamed branches updated on github.com and vice-versa if logged in; else error message
    • Opens modal with ability to enter new name
  • Deleted branches updated on github.com and vice-versa if logged in; else error message
    • Deleting branch show warning message

Fetching origin/Pull

  • Code is constantly being fetched from github.com with timestamp
    • Hover shows timestamp in tooltip
    • If Pull Requests on github.com, they are reflected with down arrow and quantity
    • Pull Requests and Commits can co-exist; error surfaces if merge commit
  • User cannot Push/Pull without being signed-in; error message surfaced
    • Push/Pull works with public/private/Enterprise repos
    • Tooltip shows status upon hover, if progress to display
  • When a branch is local-only make sure that the Fetch button changes to Publish and it publishes

Publishing only

  • Unpublished repository, unborn HEAD - Publish button enabled (user can publish repository)
  • Unpublished repository, valid branch - Publish button enabled (user can publish repository and branch)
  • Published repository, unborn HEAD - Publish button disabled (no branch to push)
  • Published repository, branch without tracking - Publish button enabled (user can publish branch)
  • Published repository, network action - Publish button disabled (don't interfere with existing action)

Github.com

  • If Desktop linked to .com (/settings/applications), the Desktop icon should show on File Revisions tab for all Pull Requests
    • Clicking the "computer icon" opens from a Pull Request page opens the branch on Desktop
  • Open in Desktop button under a repo's Clone and Download button should open repo in Desktop
  • If private email is enabled (http://github.com/settings/emails), user is blocked from pushing to all associated repositories on Desktop?
  • If user updates name in Settings, change should reflect in Preferences

Pull Request list + Continuous Integration (CI) status

  • Pull request list shown as tab on Branch list; quality shown in tab
    • Only open Pull Requests are reflected; closed Pull Requests are not shown in the list
  • Pull Request toolbar status is surfaced with yellow/green/red icon, or no icon if no status
  • If no pull requests, then no badge shown, and Pull Request tab shows 0
    • User shown current branch in text area, and given option to create a new branch or create new pull request
  • Pull request for the current branch selected by default, with pull-request-number badge in header
    • Pull request list can be filtered; esc key clears filter; arrow keys can scroll list
    • Results in chronological order, with name, id number, date, username, and CI status (if enabled)
      • Status checks run frequently in background, especially if yellow
      • If user hovers over CI status icons, tooltips show individual/group status details
  • Pull Request status in the list can be updated independently of respective Pull Request being viewed (background job)
  • Show link to upstream pull requests in pull request list of a fork if PR for current branch is in upstream repo
  • Show link to create a pull request if there is no PR for current branch

Security

  • Untrusted server warning surfaced if GitHub cannot verify the identity of api.github.com; user can Cancel or Continue