Commit graph

226 commits

Author SHA1 Message Date
Kynan Ware
7b86830ade
Merge pull request #10729 from nopcoder/trunk
Fix panic on `gh pr view 0`
2025-05-02 09:47:48 -06:00
William Martin
e995a873cb Feature detect v1 projects on non-interactive pr create 2025-05-02 15:08:34 +02:00
William Martin
c5d8e6f8f5
Merge pull request #10821 from cli/wm/projectsv1-deprecation-pr-view
Feature detect v1 projects on pr view
2025-05-02 15:07:40 +02:00
William Martin
64370ce73e Cleanup run command stubbed finders in tests 2025-05-02 14:48:52 +02:00
Barak Amar
232c024987
Merge branch 'trunk' into trunk 2025-05-01 22:16:55 +03:00
William Martin
3bcf9758ad Feature detect v1 projects on pr view 2025-05-01 15:31:36 +02:00
Sinan Sonmez (Chaush)
0a1e7a1fdc
Add --delete-last option to pr comment and issue comment (#10596)
* deletion for issues with confirmation flag

* add handling for interaction case

* finish implementation for issues

* finish the implementation for issues

* finalize the implementation for PR

* fix missing --yes flag for PR

* address PR comments related to feedbacks

* improve CommentablePreRun for pre checks

* improve confirmation prompt and truncate long comment body

* address PR comments on tests

* Truncate comment for confirmation prompt

Signed-off-by: Babak K. Shandiz <babakks@github.com>

* Improve test case descriptions

Signed-off-by: Babak K. Shandiz <babakks@github.com>

* Fix mock comment body

Signed-off-by: Babak K. Shandiz <babakks@github.com>

* Remove irrelevant prompt stub

Signed-off-by: Babak K. Shandiz <babakks@github.com>

* Use `opts.Interactive` as TTY indicator

Signed-off-by: Babak K. Shandiz <babakks@github.com>

* Fix expected `Interactive` value

Signed-off-by: Babak K. Shandiz <babakks@github.com>

* Polish `TestNewCmdComment`

Signed-off-by: Babak K. Shandiz <babakks@github.com>

---------

Signed-off-by: Babak K. Shandiz <babakks@github.com>
Co-authored-by: Babak K. Shandiz <babakks@github.com>
2025-05-01 14:12:55 +01:00
Barak Amar
a491578751
Merge branch 'trunk' into trunk 2025-04-29 14:33:21 +03:00
Barak Amar
692bdaf578 Apply code review changes 2025-04-29 14:32:51 +03:00
Azeem Sajid
9ed733fa5e
Add closingIssuesReferences JSON field to pr view (#10544)
* [gh pr view] Support `closingIssuesReferences` JSON field

* Support pagination

* Support pagination

* Fix typo

* Add more fields
2025-04-29 11:48:20 +01:00
Barak Amar
afba7b9e8b
Merge branch 'trunk' into trunk 2025-04-28 18:17:36 +03:00
William Martin
fb97b3efaa
Fix pr create when push.default tracking and no merge ref (#10863)
* Fix pr create when push.default tracking and no merge ref

* Update pkg/cmd/pr/shared/find_refs_resolution.go

---------

Co-authored-by: Tyler McGoffin <jtmcg@github.com>
2025-04-24 16:41:14 +00:00
William Martin
c208b1f075 Feature detect v1 projects on web mode issue create 2025-04-17 21:04:08 +02:00
William Martin
c8dd61d837 Feature detect v1 projects on non-interactive issue create 2025-04-17 17:51:38 +02:00
Barak Amar
a1f5d42283 Update the test code to align with latest changes 2025-04-17 17:13:28 +03:00
Barak Amar
265139f268
Merge branch 'trunk' into trunk 2025-04-17 09:56:12 -04:00
William Martin
a9dbda6913 Rework ref usage when finding and creating PRs 2025-04-15 13:38:10 -06:00
Kynan Ware
76de5f07ca test(pr finder): run test in parallel 2025-04-15 13:38:10 -06:00
Kynan Ware
041f02c980 docs(pr create): standard <user>:<branch> syntax
Standardize <user>:<branch> syntax wherever it is described in comments.
2025-04-15 13:38:10 -06:00
Kynan Ware
6dae35b442 test(finder): change assert to require
Co-authored-by: Andy Feller <andyfeller@github.com>
2025-04-15 13:38:10 -06:00
Kynan Ware
e999976b3d refactor(pr create): add PullRequestRefs HasHead 2025-04-15 13:38:10 -06:00
Kynan Ware
b61b2298d2 doc: fix PullRequestRefs comment 2025-04-15 13:38:10 -06:00
Barak Amar
747f015f48 test pr number 0 2025-04-07 22:38:28 +03:00
Andy Feller
918cafc222 Deprecate ColorScheme.Gray for ColorScheme.Muted
This commit converts all of the places using ColorScheme.Gray and ColorScheme.Grayf to Muted and Mutedf.

There is a little extra tidying up with local variable names or converting code to use Mutedf format.
2025-04-06 10:18:48 -04:00
Barak Amar
06d22d96c0 handle find pr number 0 2025-04-04 11:14:02 +03:00
Andy Feller
bbb8213e9c Refactor commentable logic 2025-03-19 07:56:53 -04:00
Andy Feller
018b6d6d07 Initial pass fixing gh issue and gh pr comment
There is still a bit of work to get the gh pr comment tests in order, however this goes a way towards fixing the issue along with acceptance tests.

Also, it turns out some of the issue acceptance tests were really running `pr` tests.
2025-03-17 23:18:36 -04:00
William Martin
11b9496e17 Fix checkout when URL arg is from fork and cwd is upstream 2025-02-27 16:56:11 +01:00
latzskim
26414865c4 Address pr comments 2025-02-19 16:56:23 +01:00
latzskim
e516e5ed5d [gh issue/pr comment] Create a comment if no comment already 2025-02-12 21:04:22 +01:00
Kynan Ware
026672e79e
Merge branch 'trunk' into nil/fix-2329 2025-02-01 12:37:44 -07:00
nilvng
42c9d244f7 remove duplicated Prompter type 2025-02-01 11:45:37 +11:00
nilvng
7311b5cdd1 revert isEqualSet to private 2025-02-01 11:45:37 +11:00
Tyler McGoffin
877871f1e0 Address PR comments 2025-01-31 14:55:24 -08:00
Tyler McGoffin
601cf88852 Handle error from ParsePRRefs when the selector is provided 2025-01-31 14:40:54 -08:00
Tyler McGoffin
058cb2c220 Refactor finder to work with URL selectors 2025-01-31 14:40:54 -08:00
Tyler McGoffin
29e57ee8e7 Add tests for using the pr Finder outside of repo
This includes an acceptance test for `gh pr view` and a unit test on
`TestFind`
2025-01-31 14:22:02 -08:00
Tyler McGoffin
e0f624ba24 Rename PRRefs to PullRequestRefs and PR comment cleanup 2025-01-29 11:56:31 -08:00
Tyler McGoffin
e31bfd0092 Cleaned up some naming and comments 2025-01-27 16:40:47 -08:00
Tyler McGoffin
4382bdf072 Fix pr create tests
Due to the refactor of BranchConfig, the tests for `pr create` no longer
require a handful of stubbed git commands.

Additionally, I noticed some overlap between `pr create`'s existing logic
with the new finder code. I suspect that the finder's new ParsePRRefs
helper could be leveraged here as well, which would allow us to respect
non-centralized workflows pr create in the same way we are respecting them
in `gh pr view` and `gh pr status`
2025-01-24 14:01:44 -08:00
Tyler McGoffin
d684834ad9 Refactor pr status to use the ParsePRRefs helper on the Finder
There was a lot of copy-pasta code between the finder and pr status. After
some investigation it was clear that the prSelectorForCurrentBranch code
was really just a duplicate of the finder's code without actually making
the API call for the PR. Since the ParsePRRefs helper had already
extracted much of the logic for determining a PR's head ref branch, I was
able to reuse it in gh pr status with a small refactor.
2025-01-24 11:51:49 -08:00
Tyler McGoffin
cdead50d57 Moved remote.pushDefault out of ReadBranchConfig and into finder 2025-01-24 11:05:15 -08:00
Tyler McGoffin
e4d8ed0e60 Remove @{push} from branch config 2025-01-24 10:20:04 -08:00
Tyler McGoffin
5a8dd35ba7 Add PushDefault method to git client 2025-01-24 09:40:02 -08:00
William Martin
6355ed7c08 WIP: push default defaults to simple 2025-01-24 17:25:38 +01:00
William Martin
a72bef9b42 Error if push revision doesn't match a remote 2025-01-24 17:07:24 +01:00
Tyler McGoffin
41729b004d Refactor finder.Find and replace parseCurrentBranch with parsePRRefs
I've been struggling horribly to reason through all of this code, and
after much mental gymnastics I identified the culprit as the overloaded
"branch" string returned by parseCurrentBranch.

This value was either the name of the branch that the PR we're looking for
is associated with, or that name prepended with the owner's name and a :
if we're on a branch, so:

PR branch: featureBranch
branch == "featureBranch"

If on Fork belonging to "ForkOwner"
branch == "ForkOwner:featureBranch"

Since this extra information was bundled up into this single string, it
complicated the responsibilities of parseCurrentBranch's "branch" return
value. Thus, I've teased out "branch" into the new PRRefs struct:

type PRRefs struct{
	BranchName string
	HeadRepo ghrepo.Interface
	BaseRepo ghrepo.Interface
}

This allows the new parsePRRefs function to move all the previous
"branch" string's information into structured data, and allows for a new
method on PRRefs, GetPRLabel(), to create the string that "branch"
previously held to pass into its downstream consumer, namely
findForBranch.

This also allowed for better test coverage, directly connecting the PRRefs
fields to the values contained in the git config. Overall, I am now
confident that this is doing what its supposed to do with respect to my
understanding of the various central and triangular git workflows we are
addressing.
2025-01-23 15:25:28 -08:00
Tyler McGoffin
48e2681017 Merge branch 'trunk' into find-pr-by-rev-parse-push
A recent refactor caused the API for ReadBranchConfig to change, resulting
in changes for its consumers. Additionally, there was a large refactor of
the tests associated with ReadBranchConfig and its consumers to gain
confidence in this refactor. This commit attempts to resolve the
conflicts between the refactor and this effort as well as massage the
changes introduced here to reflect the refactor.

The refactor PR can be found here: https://github.com/cli/cli/pull/10197

I'll note that there are still a few failing tests in status_test.go. I
haven't had a chance to fully grok while they are failing, yet, and
suspect that some insights from the original PR author may be helpful
here.

Full disclaimer: I haven't verified any of this is working locally yet.
My primary motivation is to get these new changes working together in a
manner that unblocks further iteration on this effort.

* trunk: (79 commits)
  Enhance help docs on ext upgrade notices
  chore: fix some function names in comment
  Expand docs on cleaning extension update dir
  Simplifying cleanExtensionUpdateDir logic
  Separate logic for checking updates
  Capture greater detail on updaterEnabled
  Restore old error functionality of prSelectorForCurrentBranch
  Change error handling on ReadBranchConfig to respect git Exit Codes
  fix: add back colon that I removed
  fix: actually read how MaxFunc work and simplify the code
  fix: padded display
  Collapse dryrun checks in ext bin upgrade
  Bump github.com/mattn/go-colorable from 0.1.13 to 0.1.14
  Rename test user in tests
  Change pr number in test
  Surface and handle error from ReadBranchConfig in parseCurrentBranch
  Directly stub headBranchConfig in Test_tryDetermineTrackingRef
  Refactor error handling in ReadBranchConfig to avoid panic
  Refine error handling of ReadBranchConfig
  Add test for empty BranchConfig in prSelectorForCurrentBranch
  ...
2025-01-13 20:38:00 -08:00
Tyler McGoffin
e4f0b79173 Surface and handle error from ReadBranchConfig in parseCurrentBranch
I've only added the one test for parseCurrentBranch because the function
appears to be largely exercised by TestFind. There's definitely an
opportunity for a bigger refactor of the tests, here, but I want to avoid
scope creep as I propagate the ReadBranchConfig api changes throughout the
codebase
2025-01-09 12:46:55 -08:00
Tyler McGoffin
bf6fdbdfd2 Remove named returns from ReadBranchConfig and surface errors 2025-01-07 13:54:43 -08:00