mirror of
https://github.com/desktop/desktop
synced 2024-08-28 12:40:55 +00:00
32 KiB
32 KiB
Download Desktop
- User can download latest (Mac & Windows) Desktop
- 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
linkSign 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
- User can reissue auth code with
- If 2FA activated, user sent auth code to enter (test SMS and authenticator app)
- 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 pageSign-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
- If successful, Desktop shown in
- Browser login, "authorize" GitHub Desktop, “accept” link
Sign in to Enterprise
link (v2.8 and up)Continue
successful if server address is valid, else error messageSign 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
- Name and email pulled from global
- 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
- Configure Git
- 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
- Clicking
Cancel
returns to initial Configure Git page
- Checked by default; user can uncheck. (Should not be checked by default if user on free plan only.)
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
- Adding a repository will automatically exit Onboarding
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
- If
Create Repository
button adds new repo, which is added to Repo listCancel
button does not save any changes made; modal closed- User cannot create a new repo inside a locked local directory
- Modal opens with name, path (choose option), readme (unchecked), git ignore, license. Name and path mandatory.
- 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
orSave and Retry
buttons- If successful, repo is cloned
- If authentication error for Github.com, modal with username/password surfaced;
- 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
- User must be logged in to view list; else
Clone
creates repo at selected path- Repo added to Repo list
Cancel
closes modal, no repo cloned
- Enter valid URL or
- 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
orInitialize Git LFS
- Link takes user to (
- Drag and drop repository
- User can drag existing local repository into Desktop
- Successful attempt adds repo to Repo list; else error message
- User can drag existing local repository into Desktop
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
- User must be signed-in to publish, else
- 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
- Clicking
- '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
- GitHub tab is default; Enterprise tab is also present
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) andrestart 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
- 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
andwhat’s 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
- If update available,
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
- GitHub.com name, handle, avatar,
- 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 madeCancel
button does not save any changes made; modal closed
- Username and email are displayed if
- 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://
- Verify positive
- Confirmation dialogue for discarding files is checked by default; user can toggle
- Verify positive
ConfirmRepoRemoval
value in Dev Tools > Application > Local storage > file://
- Verify positive
- Confirmation dialogue for force pushing files is checked by default; user can toggle
- Verify positive
confirmForcePush
value in Dev Tools > Application > Local storage > file://
- Verify positive
Save
button saves any changes madeCancel
button does not save any changes made; modal closed- Shared usage data option; selection carried through from Welcome flow
anonymous usage data
link opens https://desktop.github.com/usage-data/- Verify positive
stats-opt-out
value in Dev Tools > Application > Local storage > file://
- Accounts
- 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 entryCancel
button closes modal
- User can opt for
Setup custom remote
for a non-GitHub repositorySave & Publish
button saves last entryCancel
button closes modal
- Ignored Files
.gitignore
file contents are shown and can be edited
Saved
button saves last entry; changes create a new commitCancel
button closes modal
- Remote path can be edited for existing repository; origin already set. Cannot be empty string, else error message.
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
- Clicking
- 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
- Merge success banner is shown temporarily; user can
- 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, whileCommit 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
orAbort merge
buttons
- If conflict resolved, files marked green, and user can click
- If merged, success banner is shown temporarily; user can
- 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, whileContinue 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
orAbort merge
buttons
- If conflicts resolved, files marked green, and user can click
- If rebase, success banner is shown temporarily; user can
- Compare on GitHub (Mac:
⇧⌘C
; Windows:Ctrl+Shift+C
) (if repository already published ongithub.com
) - Create Pull Request (Mac:
⌘R
; Windows:Ctrl+R
) opens Pull Request ongithub.com
- If branch unpublished, dialogue asks to publish the branch
Push Local Changes
modal surfaces with option toCreate Without Pushing
andPush 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 ongithub.com
Contact GitHub Support...
openshttps://github.com/contact
page with user and build prepopulatedShow User Guides
opens Desktop help page ongithub.com
Show Keyboard Shortcuts
openshttps://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
- Mac:
- 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]
andView in GitHub
- First step is not always shown, and it can be
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
- If no Changes, Diff area shows
Right-click
revealsOpen in [Shell]
,Open in Finder/Explorer
,Open in [Editor]
, andRemove
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 again
overrides 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
orSwitch 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
- If stashed then changes shown under Stashed Changes section below Changes tab when returning to the original branch
- Modal asks user to stash on current branch or bring changes to 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 hint shown below
- User can toggle between behind/ahead, with counts shown; Behind tab is shown by default
- 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
, orX
to close
- All commits listed in chronological order, with avatar, date and name; list is scrollable with arrow keys enabled
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
- Reverting commit repopulates commit area
- Long commit descriptions can be toggled with expand/collapse icon
- 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
- Diffs are viewable; list is scrollable with arrow keys enabled
- 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 fileFetch origin
changes toPush
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 toFetch 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
- Commits with
- 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
- Publishing successful if logged in only; else error message
- 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 toPublish
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'sClone 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 list can be filtered;
- 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 ofapi.github.com
; user canCancel
orContinue