pr diff
<!--
Please make sure you read our contributing guidelines at
https://github.com/cli/cli/blob/master/.github/CONTRIBUTING.md
before opening opening a pull request. Thanks!
-->

## Summary

closes #917

This is a first pass on a `gh pr diff` command. It can be invoked on the current branch's PR, a URL,
or a pr number.

It does not call out to a pager like `git diff` does.

You can control its use of color with `--color={always|never|auto}`. It won't colorize in
non-interactive settings.

![image](https://user-images.githubusercontent.com/98482/82266353-13a03300-992f-11ea-8d71-2a0995707f87.png)


### Describe the feature or problem you’d like to solve

It's hard to see the changes from a given pull request. You can produce a diff with git but it can
take some trial and error (and it's easy to accidentally diff against the wrong HEAD). github.com
cleanly solves this problem and we have all the same context to solve it in the CLI. Having this
will make code review easier from the command line.

### Proposed solution

```
$ gh pr diff     # produce diff for current branch's PR or a diff of the current branch against what we would open a pr against by default in pr create
$ gh pr diff 123 # produce diff for specific PR
```

In both cases we'd form the correct call to `git diff` and hand off to that (potentially dropping
into a pager).

### Open Questions

cc @ampinsk

- In the above example, should it produce the hypothetical diff for a branch not yet associated with
  a pull request? or just error?
- I couldn't think of any options this would need to take...am I missing anything?

gh pr diff
diff --git a/api/queries_pr.go b/api/queries_pr.go
index c0b16f3c445..26c88af01b2 100644
--- a/api/queries_pr.go
+++ b/api/queries_pr.go
@@ -2,7 +2,10 @@ package api
 
 import (
 	"context"
+	"errors"
 	"fmt"
+	"io/ioutil"
+	"net/http"
 	"strings"
 
 	"github.com/shurcooL/githubv4"
@@ -201,6 +204,39 @@ func (pr *PullRequest) ChecksStatus() (summary PullRequestChecksStatus) {
 	return
 }
 
+func (c Client) PullRequestDiff(baseRepo ghrepo.Interface, prNum int) (string, error) {
+	url := fmt.Sprintf("https://api.github.com/repos/%s/pulls/%d",
+		ghrepo.FullName(baseRepo), prNum)
+	req, err := http.NewRequest("GET", url, nil)
+	if err != nil {
+		return "", err
+	}
+
+	req.Header.Set("Accept", "application/vnd.github.v3.diff; charset=utf-8")
+
+	resp, err := c.http.Do(req)
+	if err != nil {
+		return "", err
+	}
+	defer resp.Body.Close()
+
+	b, err := ioutil.ReadAll(resp.Body)
+	if err != nil {
+		return "", err
+	}
+
+	if resp.StatusCode == 200 {
+		return string(b), nil
+	}
+
+	if resp.StatusCode == 404 {
+		return "", &NotFoundError{errors.New("pull request not found")}
+	}
+
+	return "", errors.New("pull request diff lookup failed")
+
+}
+
 func PullRequests(client *Client, repo ghrepo.Interface, currentPRNumber int, currentPRHeadRef, currentUsername string) (*PullRequestsPayload, error) {
 	type edges struct {
 		TotalCount int
diff --git a/command/pr_diff.go b/command/pr_diff.go
new file mode 100644
index 00000000000..6e4bb4bdb35
--- /dev/null
+++ b/command/pr_diff.go
@@ -0,0 +1,138 @@
+package command
+
+import (
+	"errors"
+	"fmt"
+	"os"
+	"strconv"
+	"strings"
+
+	"github.com/cli/cli/api"
+	"github.com/cli/cli/utils"
+	"github.com/spf13/cobra"
+)
+
+var prDiffCmd = &cobra.Command{
+	Use:   "diff {<number> | <url>}",
+	Short: "View a pull request's changes.",
+	RunE:  prDiff,
+}
+
+func init() {
+	prDiffCmd.Flags().StringP("color", "c", "auto", "Whether or not to output color: {always|never|auto}")
+
+	prCmd.AddCommand(prDiffCmd)
+}
+
+func prDiff(cmd *cobra.Command, args []string) error {
+	color, err := cmd.Flags().GetString("color")
+	if err != nil {
+		return err
+	}
+	if !validColorFlag(color) {
+		return fmt.Errorf("did not understand color: %q. Expected one of always, never, or auto", color)
+	}
+
+	ctx := contextForCommand(cmd)
+	apiClient, err := apiClientForContext(ctx)
+	if err != nil {
+		return err
+	}
+
+	baseRepo, err := determineBaseRepo(apiClient, cmd, ctx)
+	if err != nil {
+		return fmt.Errorf("could not determine base repo: %w", err)
+	}
+
+	// begin pr resolution boilerplate
+	var prNum int
+	branchWithOwner := ""
+
+	if len(args) == 0 {
+		prNum, branchWithOwner, err = prSelectorForCurrentBranch(ctx, baseRepo)
+		if err != nil {
+			return fmt.Errorf("could not query for pull request for current branch: %w", err)
+		}
+	} else {
+		prArg, repo := prFromURL(args[0])
+		if repo != nil {
+			baseRepo = repo
+		} else {
+			prArg = strings.TrimPrefix(args[0], "#")
+		}
+		prNum, err = strconv.Atoi(prArg)
+		if err != nil {
+			return errors.New("could not parse pull request argument")
+		}
+	}
+
+	if prNum < 1 {
+		pr, err := api.PullRequestForBranch(apiClient, baseRepo, "", branchWithOwner)
+		if err != nil {
+			return fmt.Errorf("could not find pull request: %w", err)
+		}
+		prNum = pr.Number
+	}
+	// end pr resolution boilerplate
+
+	diff, err := apiClient.PullRequestDiff(baseRepo, prNum)
+	if err != nil {
+		return fmt.Errorf("could not find pull request diff: %w", err)
+	}
+
+	out := cmd.OutOrStdout()
+	if color == "auto" {
+		color = "never"
+		isTTY := false
+		if outFile, isFile := out.(*os.File); isFile {
+			isTTY = utils.IsTerminal(outFile)
+			if isTTY {
+				color = "always"
+			}
+		}
+	}
+
+	if color == "never" {
+		fmt.Fprint(out, diff)
+		return nil
+	}
+
+	out = colorableOut(cmd)
+	for _, diffLine := range strings.Split(diff, "\n") {
+		output := diffLine
+		switch {
+		case isHeaderLine(diffLine):
+			output = utils.Bold(diffLine)
+		case isAdditionLine(diffLine):
+			output = utils.Green(diffLine)
+		case isRemovalLine(diffLine):
+			output = utils.Red(diffLine)
+		}
+
+		fmt.Fprintln(out, output)
+	}
+
+	return nil
+}
+
+func isHeaderLine(dl string) bool {
+	prefixes := []string{"+++", "---", "diff", "index"}
+	for _, p := range prefixes {
+		if strings.HasPrefix(dl, p) {
+			return true
+		}
+	}
+	return false
+}
+
+func isAdditionLine(dl string) bool {
+	return strings.HasPrefix(dl, "+")
+}
+
+func isRemovalLine(dl string) bool {
+	return strings.HasPrefix(dl, "-")
+}
+
+func validColorFlag(c string) bool {
+	return c == "auto" || c == "always" || c == "never"
+}

diff --git a/command/pr_diff_test.go b/command/pr_diff_test.go
new file mode 100644
index 00000000000..ab883dcabf2
--- /dev/null
+++ b/command/pr_diff_test.go
@@ -0,0 +1,99 @@
+package command
+
+import (
+	"bytes"
+	"testing"
+)
+
+func TestPRDiff_validation(t *testing.T) {
+	_, err := RunCommand("pr diff --color=doublerainbow")
+	if err == nil {
+		t.Fatal("expected error")
+	}
+	eq(t, err.Error(), `did not understand color: "doublerainbow". Expected one of always, never, or auto`)
+}
+
+func TestPRDiff_no_current_pr(t *testing.T) {
+	initBlankContext("", "OWNER/REPO", "master")
+	http := initFakeHTTP()
+	http.StubRepoResponse("OWNER", "REPO")
+	http.StubResponse(200, bytes.NewBufferString(`
+		{ "data": { "repository": { "pullRequests": { "nodes": [
+			{ "url": "https://github.com/OWNER/REPO/pull/123",
+			  "number": 123,
+			  "id": "foobar123",
+			  "headRefName": "feature",
+				"baseRefName": "master" }
+		] } } } }`))
+	http.StubResponse(200, bytes.NewBufferString(testDiff))
+	_, err := RunCommand("pr diff")
+	if err == nil {
+		t.Fatal("expected error", err)
+	}
+	eq(t, err.Error(), `could not find pull request: no open pull requests found for branch "master"`)
+}
+
+func TestPRDiff_argument_not_found(t *testing.T) {
+	initBlankContext("", "OWNER/REPO", "master")
+	http := initFakeHTTP()
+	http.StubRepoResponse("OWNER", "REPO")
+	http.StubResponse(404, bytes.NewBufferString(""))
+	_, err := RunCommand("pr diff 123")
+	if err == nil {
+		t.Fatal("expected error", err)
+	}
+	eq(t, err.Error(), `could not find pull request diff: pull request not found`)
+}
+
+func TestPRDiff(t *testing.T) {
+	initBlankContext("", "OWNER/REPO", "feature")
+	http := initFakeHTTP()
+	http.StubRepoResponse("OWNER", "REPO")
+	http.StubResponse(200, bytes.NewBufferString(`
+		{ "data": { "repository": { "pullRequests": { "nodes": [
+			{ "url": "https://github.com/OWNER/REPO/pull/123",
+			  "number": 123,
+			  "id": "foobar123",
+			  "headRefName": "feature",
+				"baseRefName": "master" }
+		] } } } }`))
+	http.StubResponse(200, bytes.NewBufferString(testDiff))
+	output, err := RunCommand("pr diff")
+	if err != nil {
+		t.Fatalf("unexpected error: %s", err)
+	}
+	eq(t, output.String(), testDiff)
+}
+
+const testDiff = `diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml
+index 73974448..b7fc0154 100644
+--- a/.github/workflows/releases.yml
++++ b/.github/workflows/releases.yml
+@@ -44,6 +44,11 @@ jobs:
+           token: ${{secrets.SITE_GITHUB_TOKEN}}
+       - name: Publish documentation site
+         if: "!contains(github.ref, '-')" # skip prereleases
++        env:
++          GIT_COMMITTER_NAME: cli automation
++          GIT_AUTHOR_NAME: cli automation
++          GIT_COMMITTER_EMAIL: noreply@github.com
++          GIT_AUTHOR_EMAIL: noreply@github.com
+         run: make site-publish
+       - name: Move project cards
+         if: "!contains(github.ref, '-')" # skip prereleases
+diff --git a/Makefile b/Makefile
+index f2b4805c..3d7bd0f9 100644
+--- a/Makefile
++++ b/Makefile
+@@ -22,8 +22,8 @@ test:
+ 	go test ./...
+ .PHONY: test
+ 
+-site:
+-	git clone https://github.com/github/cli.github.com.git "$@"
++site: bin/gh
++	bin/gh repo clone github/cli.github.com "$@"
+ 
+ site-docs: site
+ 	git -C site pull
+`

{"TestPRDiff_no_current_pr": {"run": "NONE", "test": "FAIL", "fix": "PASS"}, "TestPRDiff_validation": {"run": "NONE", "test": "FAIL", "fix": "PASS"}, "TestPRDiff": {"run": "NONE", "test": "FAIL", "fix": "PASS"}, "TestPRDiff_argument_not_found": {"run": "NONE", "test": "FAIL", "fix": "PASS"}}
{"TestPRView_Preview/Closed_PR": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPullRequest_ChecksStatus": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueCreate_webTitleBody": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCreate_defaults_error_autofill": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoFork_in_parent_yes": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestConfigSet": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPrStateTitleWithColor/Format_MERGED_state": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestExtractName/Incomplete_front-matter": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueStateTitleWithColor/Open_state": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCompletion_fish": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoClone/shorthand_with_directory": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestReplaceExcessiveWhitespace": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestConfigGet": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRView_web_currentBranch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_repoFromURL/unsupported_hostname": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_resolvedRemotes_triangularSetup": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoClone/clone_arguments_with_directory": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFind/Multiple_templates": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFind": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoFork_outside_survey_no": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueView_Preview/Closed_issue": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_determineTrackingBranch_noMatch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRStatus_reviewsAndChecks": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoClone": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestChangelogURL": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRView_web_numberArgWithHash": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCheckForUpdate": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_listHeader/one_result_after_filters": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueReopen": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCreate_survey_autofill": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRView_web_branchWithOwnerArg": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_determineTrackingBranch_respectTrackingConfig": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueClose_issuesDisabled": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGraphQL": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_RepoCreate": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRReview_validation": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRStatus_blankSlate": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestTruncate": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestTruncate/Japanese": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRView_Preview/Open_PR_with_reviewers_by_number": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_RepoMetadata": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCompletion_bash": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestParseExtraArgs": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestExtractName/No_front-matter": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoCreate_org": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueReopen_alreadyOpen": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCreate_survey_defaults_multicommit": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueView_web_numberArgWithHash": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_listHeader": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_printError/Cobra_flag_error": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRView_Preview": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueView_web": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_determineTrackingBranch_empty": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCompletion_zsh": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCreate_defaults_error_interactive": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestForOS": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueView_Preview/Open_issue_without_metadata": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueClose": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueStateTitleWithColor/Closed_state": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoView_web_ownerRepo": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_repoFromURL/filesystem_path": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRReopen": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestConfigSetHost": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPrClose": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPrStateTitleWithColor/Format_OPEN_state_for_Draft_PR": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoCreate": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoFork_outside_yes": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_ttyTablePrinter_truncate": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_printError/DNS_error": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueStatus": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFind/Template_in_docs": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRReview_interactive": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRView_Preview/Open_PR_with_metadata_by_branch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestExtractContents": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPrClose_alreadyClosed": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFind/Template_in_.github_takes_precedence": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_printError/generic_error": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCheckout_urlArg_differentBase": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRList_filteringClosed": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestConfigGetHost": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueView_Preview/Open_issue_with_metadata": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCheckout_sameRepo": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoFork_outside/url_arg": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueList_disabledIssues": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCreate_alreadyExistsDifferentBase": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRReview_interactive_blank_approve": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRList_filteringAssigneeLabels": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestExtractContents/Has_front-matter": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueList_withFlags": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoFork_reuseRemote": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoCreate_orgWithTeam": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRView_Preview/Draft_PR_by_branch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_Remotes_FindByName": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueView_Preview": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueView_disabledIssues": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoView_web_fullURL": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRView_Preview/Open_PR_wth_empty_body_for_the_current_branch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRReview_blank_request_changes": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_listHeader/one_result_in_total": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoClone/HTTPS_URL": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCheckForUpdate/latest_is_current": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRReview": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoView_web": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRemoteURLFormatting_ssh_config": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCreate_web": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_determineTrackingBranch_hasMatch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPrStateTitleWithColor": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCheckout_branchArg": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueCreate_metadata": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCheckout_differentRepo": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRView_Preview/Open_PR_without_metadata": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_listHeader/multiple_results": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoClone_hasParent": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_resolvedRemotes_forkLookup": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRList_filtering": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRView_web_urlArg": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_resolvedRemotes_clonedFork": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRESTGetDelete": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestConfigSetHost_update": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCreate_withForking": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRView_web_numberArg": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRView_Preview/Open_PR_with_metadata_by_number": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestConfigGet_default": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestConfigSet_update": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoFork_outside/full_name_arg": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRStatus_currentBranch_defaultBranch_repoFlag": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRList_filteringRemoveDuplicate": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCreate_metadata": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCheckout_differentRepo_existingBranch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPrMerge_noPrNumberGiven": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCreate_alreadyExists": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoFork_already_forked": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCheckForUpdate/current_is_prerelease": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestConfigGet_not_found": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoClone/clone_arguments": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_repoFromURL/github.com_URL": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueStatus_disabledIssues": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPrStateTitleWithColor/Format_OPEN_state": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueCreate": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRView_Preview/Draft_PR": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestTruncate/Korean_filled": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGraphQLError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRStatus_currentBranch_Closed_defaultBranch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_listHeader/one_result_in_total_after_filters": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCompletion_powerShell": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFind/Empty_multiple_templates_directory": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestExtractName": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRReview_blank_comment": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestForOS/Windows": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueView_web_urlArg": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFuzzyAgo": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoClone/shorthand": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRStatus_fork": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRView_Preview/Open_PR_for_the_current_branch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRView_web_noResultsForBranch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPrMerge_alreadyMerged": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestTruncate/Chinese_filled": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestTruncate/Korean": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRStatus_currentBranch_defaultBranch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestParseExtraArgs/only_args": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoFork_in_parent_survey_yes": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRReview_no_arg": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoView": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRReview_url_arg": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRList": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRView_Preview/Merged_PR": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestConfigGetHost_unset": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_RepoResolveMetadataIDs": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_listHeader/no_results": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_listHeader/no_matches_after_filters": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRReopen_alreadyOpen": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoView_blanks": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCheckout_differentRepo_remoteExists": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCreate_ReportsUncommittedChanges": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestParseExtraArgs/args_and_target": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCheckout_urlArg": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRemoteURLFormatting_no_config": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_translateRemotes": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCreate_defaults_error_web": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestExtractName/Complete_front-matter": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRStatus_currentBranch_Closed": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestParseExtraArgs/no_args": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoView_nonmarkdown_readme": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueCreate_web": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueView_Preview/Open_issue_with_empty_body": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueClose_alreadyClosed": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRView_web_branchArg": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueReopen_issuesDisabled": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRReview_bad_body": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCheckout_existingBranch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueCreate_disabledIssues": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFind/Template_in_root": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCompletion_unsupported": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPrMerge_squash": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCreate": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueStateTitleWithColor": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRStatus_currentBranch_Merged_defaultBranch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCreate_survey_defaults_monocommit": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRReview_number_arg": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRList_filteringAssignee": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCheckout_differentRepo_currentBranch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestExtractContents/No_front-matter": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCheckForUpdate/latest_is_older": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_listHeader/multiple_results_after_filters": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueList": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestParseExtraArgs/only_target": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCheckout_maintainerCanModify": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPrStateTitleWithColor/Format_CLOSED_state": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPrMerge_rebase": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestTruncate/Japanese_filled": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_printError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_listHeader/one_result": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPrMerge": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRStatus": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_printError/unknown_Cobra_command_error": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoFork_outside": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestForOS/macOS": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoFork_in_parent": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestForOS/Linux": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRReview_interactive_no_body": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRStatus_currentBranch_showTheMostRecentPR": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRReopen_alreadyMerged": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoFork_in_parent_survey_no": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueView_web_notFound": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRCreate_cross_repo_same_branch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoClone/SSH_URL": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_repoFromURL": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPRStatus_currentBranch_Merged": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueStatus_blankSlate": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIssueList_nullAssigneeLabels": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_repoFromURL/www.github.com_URL": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCheckForUpdate/latest_is_newer": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestTruncate/Chinese": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRepoFork_outside_survey_yes": {"run": "PASS", "test": "PASS", "fix": "PASS"}}
{"TestPRDiff_no_current_pr": {"run": "NONE", "test": "FAIL", "fix": "PASS"}, "TestPRDiff_validation": {"run": "NONE", "test": "FAIL", "fix": "PASS"}, "TestPRDiff": {"run": "NONE", "test": "FAIL", "fix": "PASS"}, "TestPRDiff_argument_not_found": {"run": "NONE", "test": "FAIL", "fix": "PASS"}}
{"passed_count": 234, "failed_count": 2, "skipped_count": 0, "passed_tests": ["TestPRView_Preview/Closed_PR", "TestPullRequest_ChecksStatus", "TestIssueCreate_webTitleBody", "TestPRCreate_defaults_error_autofill", "TestRepoFork_in_parent_yes", "TestConfigSet", "TestPrStateTitleWithColor/Format_MERGED_state", "TestExtractName/Incomplete_front-matter", "TestIssueStateTitleWithColor/Open_state", "TestCompletion_fish", "TestRepoClone/shorthand_with_directory", "TestReplaceExcessiveWhitespace", "TestConfigGet", "TestPRView_web_currentBranch", "Test_repoFromURL/unsupported_hostname", "Test_resolvedRemotes_triangularSetup", "TestRepoClone/clone_arguments_with_directory", "TestFind/Multiple_templates", "TestFind", "TestRepoFork_outside_survey_no", "TestIssueView_Preview/Closed_issue", "Test_determineTrackingBranch_noMatch", "TestPRStatus_reviewsAndChecks", "TestRepoClone", "TestChangelogURL", "TestPRView_web_numberArgWithHash", "TestCheckForUpdate", "Test_listHeader/one_result_after_filters", "TestIssueReopen", "TestPRCreate_survey_autofill", "TestPRView_web_branchWithOwnerArg", "Test_determineTrackingBranch_respectTrackingConfig", "TestIssueClose_issuesDisabled", "TestGraphQL", "Test_RepoCreate", "TestPRReview_validation", "TestPRStatus_blankSlate", "TestTruncate", "TestTruncate/Japanese", "TestPRView_Preview/Open_PR_with_reviewers_by_number", "Test_RepoMetadata", "TestCompletion_bash", "TestParseExtraArgs", "TestExtractName/No_front-matter", "TestRepoCreate_org", "TestIssueReopen_alreadyOpen", "TestPRCreate_survey_defaults_multicommit", "TestIssueView_web_numberArgWithHash", "Test_listHeader", "Test_printError/Cobra_flag_error", "TestPRView_Preview", "TestIssueView_web", "Test_determineTrackingBranch_empty", "TestCompletion_zsh", "TestPRCreate_defaults_error_interactive", "TestForOS", "TestIssueView_Preview/Open_issue_without_metadata", "TestIssueClose", "TestIssueStateTitleWithColor/Closed_state", "TestRepoView_web_ownerRepo", "Test_repoFromURL/filesystem_path", "TestPRReopen", "TestConfigSetHost", "TestPrClose", "TestPrStateTitleWithColor/Format_OPEN_state_for_Draft_PR", "TestRepoCreate", "TestRepoFork_outside_yes", "Test_ttyTablePrinter_truncate", "Test_printError/DNS_error", "TestIssueStatus", "TestFind/Template_in_docs", "TestPRReview_interactive", "TestPRView_Preview/Open_PR_with_metadata_by_branch", "TestExtractContents", "TestPrClose_alreadyClosed", "TestFind/Template_in_.github_takes_precedence", "Test_printError/generic_error", "TestPRCheckout_urlArg_differentBase", "TestPRList_filteringClosed", "TestConfigGetHost", "TestIssueView_Preview/Open_issue_with_metadata", "TestPRCheckout_sameRepo", "TestRepoFork_outside/url_arg", "TestIssueList_disabledIssues", "TestPRCreate_alreadyExistsDifferentBase", "TestPRReview_interactive_blank_approve", "TestPRList_filteringAssigneeLabels", "TestExtractContents/Has_front-matter", "TestIssueList_withFlags", "TestRepoFork_reuseRemote", "TestRepoCreate_orgWithTeam", "TestPRView_Preview/Draft_PR_by_branch", "Test_Remotes_FindByName", "TestIssueView_Preview", "TestIssueView_disabledIssues", "TestRepoView_web_fullURL", "TestPRView_Preview/Open_PR_wth_empty_body_for_the_current_branch", "TestPRReview_blank_request_changes", "Test_listHeader/one_result_in_total", "TestRepoClone/HTTPS_URL", "TestCheckForUpdate/latest_is_current", "TestPRReview", "TestRepoView_web", "TestRemoteURLFormatting_ssh_config", "TestPRCreate_web", "Test_determineTrackingBranch_hasMatch", "TestPrStateTitleWithColor", "TestPRCheckout_branchArg", "TestIssueCreate_metadata", "TestPRCheckout_differentRepo", "TestPRView_Preview/Open_PR_without_metadata", "Test_listHeader/multiple_results", "TestRepoClone_hasParent", "Test_resolvedRemotes_forkLookup", "TestPRList_filtering", "TestPRView_web_urlArg", "Test_resolvedRemotes_clonedFork", "TestRESTGetDelete", "TestConfigSetHost_update", "TestPRCreate_withForking", "TestPRView_web_numberArg", "TestPRView_Preview/Open_PR_with_metadata_by_number", "TestConfigGet_default", "TestConfigSet_update", "TestRepoFork_outside/full_name_arg", "TestPRStatus_currentBranch_defaultBranch_repoFlag", "TestPRList_filteringRemoveDuplicate", "TestPRCreate_metadata", "TestPRCheckout_differentRepo_existingBranch", "TestPrMerge_noPrNumberGiven", "TestPRCreate_alreadyExists", "TestRepoFork_already_forked", "TestCheckForUpdate/current_is_prerelease", "TestConfigGet_not_found", "TestRepoClone/clone_arguments", "Test_repoFromURL/github.com_URL", "TestIssueStatus_disabledIssues", "TestPrStateTitleWithColor/Format_OPEN_state", "TestIssueCreate", "TestPRView_Preview/Draft_PR", "TestTruncate/Korean_filled", "TestGraphQLError", "TestPRStatus_currentBranch_Closed_defaultBranch", "Test_listHeader/one_result_in_total_after_filters", "TestCompletion_powerShell", "TestFind/Empty_multiple_templates_directory", "TestExtractName", "TestPRReview_blank_comment", "TestForOS/Windows", "TestIssueView_web_urlArg", "TestFuzzyAgo", "TestRepoClone/shorthand", "TestPRView_Preview/Open_PR_for_the_current_branch", "TestPRView_web_noResultsForBranch", "TestPrMerge_alreadyMerged", "TestTruncate/Chinese_filled", "TestTruncate/Korean", "TestPRStatus_currentBranch_defaultBranch", "TestParseExtraArgs/only_args", "TestRepoFork_in_parent_survey_yes", "TestPRReview_no_arg", "TestRepoView", "TestPRReview_url_arg", "TestPRList", "TestPRView_Preview/Merged_PR", "TestConfigGetHost_unset", "Test_RepoResolveMetadataIDs", "Test_listHeader/no_results", "Test_listHeader/no_matches_after_filters", "TestPRReopen_alreadyOpen", "TestRepoView_blanks", "TestPRCheckout_differentRepo_remoteExists", "TestPRCreate_ReportsUncommittedChanges", "TestParseExtraArgs/args_and_target", "TestPRCheckout_urlArg", "TestRemoteURLFormatting_no_config", "Test_translateRemotes", "TestPRCreate_defaults_error_web", "TestExtractName/Complete_front-matter", "TestPRStatus_currentBranch_Closed", "TestParseExtraArgs/no_args", "TestRepoView_nonmarkdown_readme", "TestIssueCreate_web", "TestIssueView_Preview/Open_issue_with_empty_body", "TestIssueClose_alreadyClosed", "TestPRView_web_branchArg", "TestIssueReopen_issuesDisabled", "TestPRReview_bad_body", "TestPRCheckout_existingBranch", "TestIssueCreate_disabledIssues", "TestFind/Template_in_root", "TestCompletion_unsupported", "TestPrMerge_squash", "TestPRCreate", "TestIssueStateTitleWithColor", "TestPRStatus_currentBranch_Merged_defaultBranch", "TestPRCreate_survey_defaults_monocommit", "TestPRReview_number_arg", "TestPRList_filteringAssignee", "TestPRCheckout_differentRepo_currentBranch", "TestExtractContents/No_front-matter", "TestCheckForUpdate/latest_is_older", "Test_listHeader/multiple_results_after_filters", "TestIssueList", "TestParseExtraArgs/only_target", "TestPRCheckout_maintainerCanModify", "TestPrStateTitleWithColor/Format_CLOSED_state", "TestCheckForUpdate/latest_is_newer", "TestPrMerge_rebase", "TestTruncate/Japanese_filled", "Test_printError", "Test_listHeader/one_result", "TestPrMerge", "TestPRStatus", "Test_printError/unknown_Cobra_command_error", "TestRepoFork_outside", "TestForOS/macOS", "TestRepoFork_in_parent", "TestForOS/Linux", "TestPRReview_interactive_no_body", "TestPRStatus_currentBranch_showTheMostRecentPR", "TestPRReopen_alreadyMerged", "TestRepoFork_in_parent_survey_no", "TestIssueView_web_notFound", "TestPRCreate_cross_repo_same_branch", "TestRepoClone/SSH_URL", "Test_repoFromURL", "TestPRStatus_currentBranch_Merged", "TestIssueStatus_blankSlate", "TestIssueList_nullAssigneeLabels", "Test_repoFromURL/www.github.com_URL", "TestPRStatus_fork", "TestTruncate/Chinese", "TestRepoFork_outside_survey_yes"], "failed_tests": ["github.com/cli/cli/git", "github.com/cli/cli/internal/config"], "skipped_tests": []}
{"passed_count": 234, "failed_count": 7, "skipped_count": 0, "passed_tests": ["TestPRView_Preview/Closed_PR", "TestPullRequest_ChecksStatus", "TestIssueCreate_webTitleBody", "TestPRCreate_defaults_error_autofill", "TestRepoFork_in_parent_yes", "TestConfigSet", "TestPrStateTitleWithColor/Format_MERGED_state", "TestExtractName/Incomplete_front-matter", "TestIssueStateTitleWithColor/Open_state", "TestCompletion_fish", "TestRepoClone/shorthand_with_directory", "TestReplaceExcessiveWhitespace", "TestConfigGet", "TestPRView_web_currentBranch", "Test_repoFromURL/unsupported_hostname", "Test_resolvedRemotes_triangularSetup", "TestRepoClone/clone_arguments_with_directory", "TestFind/Multiple_templates", "TestFind", "TestRepoFork_outside_survey_no", "TestIssueView_Preview/Closed_issue", "Test_determineTrackingBranch_noMatch", "TestPRStatus_reviewsAndChecks", "TestRepoClone", "TestChangelogURL", "TestPRView_web_numberArgWithHash", "TestCheckForUpdate", "Test_listHeader/one_result_after_filters", "TestIssueReopen", "TestPRCreate_survey_autofill", "TestPRView_web_branchWithOwnerArg", "Test_determineTrackingBranch_respectTrackingConfig", "TestIssueClose_issuesDisabled", "TestGraphQL", "Test_RepoCreate", "TestPRReview_validation", "TestPRStatus_blankSlate", "TestTruncate", "TestTruncate/Japanese", "TestPRView_Preview/Open_PR_with_reviewers_by_number", "Test_RepoMetadata", "TestCompletion_bash", "TestParseExtraArgs", "TestExtractName/No_front-matter", "TestRepoCreate_org", "TestIssueReopen_alreadyOpen", "TestPRCreate_survey_defaults_multicommit", "TestIssueView_web_numberArgWithHash", "Test_listHeader", "Test_printError/Cobra_flag_error", "TestPRView_Preview", "TestIssueView_web", "Test_determineTrackingBranch_empty", "TestCompletion_zsh", "TestPRCreate_defaults_error_interactive", "TestForOS", "TestIssueView_Preview/Open_issue_without_metadata", "TestIssueClose", "TestIssueStateTitleWithColor/Closed_state", "TestRepoView_web_ownerRepo", "Test_repoFromURL/filesystem_path", "TestPRReopen", "TestConfigSetHost", "TestPrClose", "TestPrStateTitleWithColor/Format_OPEN_state_for_Draft_PR", "TestRepoCreate", "TestRepoFork_outside_yes", "Test_ttyTablePrinter_truncate", "Test_printError/DNS_error", "TestIssueStatus", "TestFind/Template_in_docs", "TestPRReview_interactive", "TestPRView_Preview/Open_PR_with_metadata_by_branch", "TestExtractContents", "TestPrClose_alreadyClosed", "TestFind/Template_in_.github_takes_precedence", "Test_printError/generic_error", "TestPRCheckout_urlArg_differentBase", "TestPRList_filteringClosed", "TestConfigGetHost", "TestIssueView_Preview/Open_issue_with_metadata", "TestPRCheckout_sameRepo", "TestRepoFork_outside/url_arg", "TestIssueList_disabledIssues", "TestPRCreate_alreadyExistsDifferentBase", "TestPRReview_interactive_blank_approve", "TestPRList_filteringAssigneeLabels", "TestExtractContents/Has_front-matter", "TestIssueList_withFlags", "TestRepoFork_reuseRemote", "TestRepoCreate_orgWithTeam", "TestPRView_Preview/Draft_PR_by_branch", "Test_Remotes_FindByName", "TestIssueView_Preview", "TestIssueView_disabledIssues", "TestRepoView_web_fullURL", "TestPRView_Preview/Open_PR_wth_empty_body_for_the_current_branch", "TestPRReview_blank_request_changes", "Test_listHeader/one_result_in_total", "TestRepoClone/HTTPS_URL", "TestCheckForUpdate/latest_is_current", "TestPRReview", "TestRepoView_web", "TestRemoteURLFormatting_ssh_config", "TestPRCreate_web", "Test_determineTrackingBranch_hasMatch", "TestPrStateTitleWithColor", "TestPRCheckout_branchArg", "TestIssueCreate_metadata", "TestPRCheckout_differentRepo", "TestPRView_Preview/Open_PR_without_metadata", "Test_listHeader/multiple_results", "TestRepoClone_hasParent", "Test_resolvedRemotes_forkLookup", "TestPRList_filtering", "TestPRView_web_urlArg", "Test_resolvedRemotes_clonedFork", "TestRESTGetDelete", "TestConfigSetHost_update", "TestPRCreate_withForking", "TestPRView_web_numberArg", "TestPRView_Preview/Open_PR_with_metadata_by_number", "TestConfigGet_default", "TestConfigSet_update", "TestRepoFork_outside/full_name_arg", "TestPRStatus_currentBranch_defaultBranch_repoFlag", "TestPRList_filteringRemoveDuplicate", "TestPRCreate_metadata", "TestPRCheckout_differentRepo_existingBranch", "TestPrMerge_noPrNumberGiven", "TestPRCreate_alreadyExists", "TestRepoFork_already_forked", "TestCheckForUpdate/current_is_prerelease", "TestConfigGet_not_found", "TestRepoClone/clone_arguments", "Test_repoFromURL/github.com_URL", "TestIssueStatus_disabledIssues", "TestPrStateTitleWithColor/Format_OPEN_state", "TestIssueCreate", "TestPRView_Preview/Draft_PR", "TestTruncate/Korean_filled", "TestGraphQLError", "TestPRStatus_currentBranch_Closed_defaultBranch", "Test_listHeader/one_result_in_total_after_filters", "TestCompletion_powerShell", "TestFind/Empty_multiple_templates_directory", "TestExtractName", "TestPRReview_blank_comment", "TestForOS/Windows", "TestIssueView_web_urlArg", "TestFuzzyAgo", "TestRepoClone/shorthand", "TestPRView_Preview/Open_PR_for_the_current_branch", "TestPRView_web_noResultsForBranch", "TestPrMerge_alreadyMerged", "TestTruncate/Chinese_filled", "TestTruncate/Korean", "TestPRStatus_currentBranch_defaultBranch", "TestParseExtraArgs/only_args", "TestRepoFork_in_parent_survey_yes", "TestPRReview_no_arg", "TestRepoView", "TestPRReview_url_arg", "TestPRList", "TestPRView_Preview/Merged_PR", "TestConfigGetHost_unset", "Test_RepoResolveMetadataIDs", "Test_listHeader/no_results", "Test_listHeader/no_matches_after_filters", "TestPRReopen_alreadyOpen", "TestRepoView_blanks", "TestPRCheckout_differentRepo_remoteExists", "TestPRCreate_ReportsUncommittedChanges", "TestParseExtraArgs/args_and_target", "TestPRCheckout_urlArg", "TestRemoteURLFormatting_no_config", "Test_translateRemotes", "TestPRCreate_defaults_error_web", "TestExtractName/Complete_front-matter", "TestPRStatus_currentBranch_Closed", "TestParseExtraArgs/no_args", "TestRepoView_nonmarkdown_readme", "TestIssueCreate_web", "TestIssueView_Preview/Open_issue_with_empty_body", "TestIssueClose_alreadyClosed", "TestPRView_web_branchArg", "TestIssueReopen_issuesDisabled", "TestPRReview_bad_body", "TestPRCheckout_existingBranch", "TestIssueCreate_disabledIssues", "TestFind/Template_in_root", "TestCompletion_unsupported", "TestPrMerge_squash", "TestPRCreate", "TestIssueStateTitleWithColor", "TestPRStatus_currentBranch_Merged_defaultBranch", "TestPRCreate_survey_defaults_monocommit", "TestPRReview_number_arg", "TestPRList_filteringAssignee", "TestPRCheckout_differentRepo_currentBranch", "TestExtractContents/No_front-matter", "TestCheckForUpdate/latest_is_older", "Test_listHeader/multiple_results_after_filters", "TestIssueList", "TestParseExtraArgs/only_target", "TestPRCheckout_maintainerCanModify", "TestPrStateTitleWithColor/Format_CLOSED_state", "TestCheckForUpdate/latest_is_newer", "TestPrMerge_rebase", "TestTruncate/Japanese_filled", "Test_printError", "Test_listHeader/one_result", "TestPrMerge", "TestPRStatus", "Test_printError/unknown_Cobra_command_error", "TestRepoFork_outside", "TestForOS/macOS", "TestRepoFork_in_parent", "TestForOS/Linux", "TestPRReview_interactive_no_body", "TestPRStatus_currentBranch_showTheMostRecentPR", "TestPRReopen_alreadyMerged", "TestRepoFork_in_parent_survey_no", "TestIssueView_web_notFound", "TestPRCreate_cross_repo_same_branch", "TestRepoClone/SSH_URL", "Test_repoFromURL", "TestPRStatus_currentBranch_Merged", "TestIssueStatus_blankSlate", "TestIssueList_nullAssigneeLabels", "Test_repoFromURL/www.github.com_URL", "TestPRStatus_fork", "TestTruncate/Chinese", "TestRepoFork_outside_survey_yes"], "failed_tests": ["TestPRDiff", "TestPRDiff_no_current_pr", "github.com/cli/cli/git", "github.com/cli/cli/command", "TestPRDiff_argument_not_found", "github.com/cli/cli/internal/config", "TestPRDiff_validation"], "skipped_tests": []}
{"passed_count": 238, "failed_count": 2, "skipped_count": 0, "passed_tests": ["TestPRView_Preview/Closed_PR", "TestPullRequest_ChecksStatus", "TestIssueCreate_webTitleBody", "TestPRCreate_defaults_error_autofill", "TestRepoFork_in_parent_yes", "TestConfigSet", "TestPrStateTitleWithColor/Format_MERGED_state", "TestExtractName/Incomplete_front-matter", "TestIssueStateTitleWithColor/Open_state", "TestCompletion_fish", "TestRepoClone/shorthand_with_directory", "TestReplaceExcessiveWhitespace", "TestConfigGet", "TestPRView_web_currentBranch", "Test_repoFromURL/unsupported_hostname", "Test_resolvedRemotes_triangularSetup", "TestRepoClone/clone_arguments_with_directory", "TestFind/Multiple_templates", "TestFind", "TestRepoFork_outside_survey_no", "TestIssueView_Preview/Closed_issue", "Test_determineTrackingBranch_noMatch", "TestPRStatus_reviewsAndChecks", "TestRepoClone", "TestChangelogURL", "TestPRView_web_numberArgWithHash", "TestCheckForUpdate", "Test_listHeader/one_result_after_filters", "TestIssueReopen", "TestPRCreate_survey_autofill", "TestPRView_web_branchWithOwnerArg", "Test_determineTrackingBranch_respectTrackingConfig", "TestIssueClose_issuesDisabled", "TestGraphQL", "Test_RepoCreate", "TestPRReview_validation", "TestPRStatus_blankSlate", "TestTruncate", "TestTruncate/Japanese", "TestPRView_Preview/Open_PR_with_reviewers_by_number", "Test_RepoMetadata", "TestCompletion_bash", "TestParseExtraArgs", "TestExtractName/No_front-matter", "TestRepoCreate_org", "TestIssueReopen_alreadyOpen", "TestPRCreate_survey_defaults_multicommit", "TestIssueView_web_numberArgWithHash", "Test_listHeader", "Test_printError/Cobra_flag_error", "TestPRView_Preview", "TestIssueView_web", "Test_determineTrackingBranch_empty", "TestCompletion_zsh", "TestPRCreate_defaults_error_interactive", "TestForOS", "TestIssueView_Preview/Open_issue_without_metadata", "TestIssueClose", "TestIssueStateTitleWithColor/Closed_state", "TestRepoView_web_ownerRepo", "Test_repoFromURL/filesystem_path", "TestPRReopen", "TestConfigSetHost", "TestPrClose", "TestPrStateTitleWithColor/Format_OPEN_state_for_Draft_PR", "TestRepoCreate", "TestRepoFork_outside_yes", "Test_ttyTablePrinter_truncate", "Test_printError/DNS_error", "TestIssueStatus", "TestFind/Template_in_docs", "TestPRReview_interactive", "TestPRView_Preview/Open_PR_with_metadata_by_branch", "TestExtractContents", "TestPrClose_alreadyClosed", "TestFind/Template_in_.github_takes_precedence", "Test_printError/generic_error", "TestPRCheckout_urlArg_differentBase", "TestPRList_filteringClosed", "TestConfigGetHost", "TestIssueView_Preview/Open_issue_with_metadata", "TestPRCheckout_sameRepo", "TestRepoFork_outside/url_arg", "TestIssueList_disabledIssues", "TestPRCreate_alreadyExistsDifferentBase", "TestPRReview_interactive_blank_approve", "TestPRList_filteringAssigneeLabels", "TestExtractContents/Has_front-matter", "TestIssueList_withFlags", "TestRepoFork_reuseRemote", "TestRepoCreate_orgWithTeam", "TestPRView_Preview/Draft_PR_by_branch", "Test_Remotes_FindByName", "TestIssueView_Preview", "TestIssueView_disabledIssues", "TestRepoView_web_fullURL", "TestPRView_Preview/Open_PR_wth_empty_body_for_the_current_branch", "TestPRReview_blank_request_changes", "Test_listHeader/one_result_in_total", "TestRepoClone/HTTPS_URL", "TestCheckForUpdate/latest_is_current", "TestPRReview", "TestRepoView_web", "TestRemoteURLFormatting_ssh_config", "TestPRCreate_web", "Test_determineTrackingBranch_hasMatch", "TestPrStateTitleWithColor", "TestPRCheckout_branchArg", "TestIssueCreate_metadata", "TestPRCheckout_differentRepo", "TestPRDiff_no_current_pr", "Test_listHeader/multiple_results", "TestPRView_Preview/Open_PR_without_metadata", "TestRepoClone_hasParent", "Test_resolvedRemotes_forkLookup", "TestPRList_filtering", "TestPRView_web_urlArg", "Test_resolvedRemotes_clonedFork", "TestRESTGetDelete", "TestConfigSetHost_update", "TestPRCreate_withForking", "TestPRDiff_validation", "TestPRView_web_numberArg", "TestPRView_Preview/Open_PR_with_metadata_by_number", "TestConfigGet_default", "TestConfigSet_update", "TestPRDiff", "TestRepoFork_outside/full_name_arg", "TestPRStatus_currentBranch_defaultBranch_repoFlag", "TestPRList_filteringRemoveDuplicate", "TestPRCreate_metadata", "TestPRCheckout_differentRepo_existingBranch", "TestPrMerge_noPrNumberGiven", "TestPRCreate_alreadyExists", "TestRepoFork_already_forked", "TestCheckForUpdate/current_is_prerelease", "TestConfigGet_not_found", "TestRepoClone/clone_arguments", "Test_repoFromURL/github.com_URL", "TestIssueStatus_disabledIssues", "TestPrStateTitleWithColor/Format_OPEN_state", "TestIssueCreate", "TestPRView_Preview/Draft_PR", "TestTruncate/Korean_filled", "TestGraphQLError", "TestPRStatus_currentBranch_Closed_defaultBranch", "Test_listHeader/one_result_in_total_after_filters", "TestCompletion_powerShell", "TestFind/Empty_multiple_templates_directory", "TestExtractName", "TestPRReview_blank_comment", "TestForOS/Windows", "TestIssueView_web_urlArg", "TestFuzzyAgo", "TestRepoClone/shorthand", "TestPRView_Preview/Open_PR_for_the_current_branch", "TestPRView_web_noResultsForBranch", "TestPrMerge_alreadyMerged", "TestTruncate/Chinese_filled", "TestTruncate/Korean", "TestPRStatus_currentBranch_defaultBranch", "TestParseExtraArgs/only_args", "TestRepoFork_in_parent_survey_yes", "TestPRReview_no_arg", "TestRepoView", "TestPRReview_url_arg", "TestPRList", "TestPRView_Preview/Merged_PR", "TestConfigGetHost_unset", "Test_RepoResolveMetadataIDs", "Test_listHeader/no_results", "Test_listHeader/no_matches_after_filters", "TestPRReopen_alreadyOpen", "TestRepoView_blanks", "TestPRCheckout_differentRepo_remoteExists", "TestPRCreate_ReportsUncommittedChanges", "TestParseExtraArgs/args_and_target", "TestPRCheckout_urlArg", "TestRemoteURLFormatting_no_config", "Test_translateRemotes", "TestPRCreate_defaults_error_web", "TestExtractName/Complete_front-matter", "TestPRStatus_currentBranch_Closed", "TestParseExtraArgs/no_args", "TestRepoView_nonmarkdown_readme", "TestIssueCreate_web", "TestIssueView_Preview/Open_issue_with_empty_body", "TestIssueClose_alreadyClosed", "TestPRView_web_branchArg", "TestIssueReopen_issuesDisabled", "TestPRReview_bad_body", "TestPRCheckout_existingBranch", "TestIssueCreate_disabledIssues", "TestFind/Template_in_root", "TestCompletion_unsupported", "TestPrMerge_squash", "TestPRCreate", "TestIssueStateTitleWithColor", "TestPRStatus_currentBranch_Merged_defaultBranch", "TestPRDiff_argument_not_found", "TestPRCreate_survey_defaults_monocommit", "TestPRReview_number_arg", "TestPRList_filteringAssignee", "TestPRCheckout_differentRepo_currentBranch", "TestExtractContents/No_front-matter", "TestCheckForUpdate/latest_is_older", "Test_listHeader/multiple_results_after_filters", "TestIssueList", "TestParseExtraArgs/only_target", "TestPRCheckout_maintainerCanModify", "TestPrStateTitleWithColor/Format_CLOSED_state", "TestCheckForUpdate/latest_is_newer", "TestPrMerge_rebase", "TestTruncate/Japanese_filled", "Test_printError", "Test_listHeader/one_result", "TestPrMerge", "TestPRStatus", "Test_printError/unknown_Cobra_command_error", "TestRepoFork_outside", "TestForOS/macOS", "TestRepoFork_in_parent", "TestForOS/Linux", "TestPRReview_interactive_no_body", "TestPRStatus_currentBranch_showTheMostRecentPR", "TestPRReopen_alreadyMerged", "TestRepoFork_in_parent_survey_no", "TestIssueView_web_notFound", "TestPRCreate_cross_repo_same_branch", "TestRepoClone/SSH_URL", "Test_repoFromURL", "TestPRStatus_currentBranch_Merged", "TestIssueStatus_blankSlate", "TestIssueList_nullAssigneeLabels", "Test_repoFromURL/www.github.com_URL", "TestPRStatus_fork", "TestTruncate/Chinese", "TestRepoFork_outside_survey_yes"], "failed_tests": ["github.com/cli/cli/git", "github.com/cli/cli/internal/config"], "skipped_tests": []}