Commit graph

171 commits

Author SHA1 Message Date
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
Andy Feller
0006091d76
Fix up intra-org fork test setup
[1] 96ac8d6a2f
2025-01-07 10:22:51 +11:00
Frederick Zhang
4254818dbd
Find push remote using branch.<name>.pushRemote and remote.pushDefault
When using a push.default = current triangular workflow, apart from
using @{push} to determine the remote branch name, we should also follow
the

1. branch.<name>.pushRemote
2. remote.pushDefault
3. branch.<name>.remote

...list to determine which remote Git pushes to.
2025-01-07 10:22:39 +11:00
Frederick Zhang
7fc35fd47d
Only find PRs w/ branch.<name>.merge if push.default = upstream/tracking
When push.default is not 'upstream' / 'tracking' (or 'nothing'), we can
expect local and remote branch names to be the same and solely rely on
@{push} or RemoteURL.

This fixes the wrong error message 'no pull requests found for branch
"<target branch>"' when the local branch is not pushed in the
push.default = simple / current and upstream = <target branch> setup.
2025-01-07 10:18:07 +11:00
Frederick Zhang
0179381efd
Find PRs using @{push}
When using a push.default = current central workflow [1], we should use
@{push} instead to locate the remote branch.

In fact, @{push} covers most cases in push.default = upstream too. The
branch.<name>.merge is probably only needed when using RemoteURL and
different remote / local branch names.

[1] https://github.com/tpope/vim-fugitive/issues/1172#issuecomment-522301607
2025-01-07 10:18:01 +11:00
William Martin
d662226ae4 Name conditionals in PR finder 2024-12-13 14:33:33 +01:00
William Martin
96ac8d6a2f Support pr view for intra-org forks 2024-12-13 14:27:41 +01:00
nilvng
2eaab56912 chore: tidy up 2024-11-07 10:20:23 +11:00
nilvng
a780b488a3 fix: ignore template flag 2024-11-07 10:20:23 +11:00
Tyler McGoffin
14acbe00a9 Remove . from test case for TestTitleSurvey 2024-10-17 14:45:35 -07:00
Tyler McGoffin
13ab02729b Clean up Title Survey empty title message code 2024-10-17 14:40:17 -07:00
Tyler McGoffin
4df2e7be63 Remove comment 2024-10-15 12:16:20 -07:00
Tyler McGoffin
dcbd1b728c Add test coverage for TitleSurvey change 2024-10-08 16:32:50 -07:00
Tyler McGoffin
be3b6cbd8d Make the X in the error message red and print with io writer 2024-10-08 16:03:14 -07:00
Tyler McGoffin
5fc311374a Add handling of empty titles for Issues and PRs
Currently, the prompter doesn't enforce the requirement of a title for PR
and Issue creation. However, that creates the UX where a user can enter a
blank title, spend time filling out a detailed body, then fail to create
the issue or pr when the request is sent to the api because the title is
blank. This attempts to handle that before sending a request to the api,
enforcing that, when prompting, the title of an issue is not blank.
2024-10-04 10:08:48 -07:00
benebsiny
e18c002283 Deduplicate the initialization of editor mode 2024-08-08 18:07:52 +08:00
notomo
0d37174076 Add editor hint message 2024-07-09 21:01:50 +09:00
notomo
8f77b4a23f Add issue create --editor 2024-07-09 21:01:50 +09:00
William Martin
1d38230675
Move config interfaces into gh package (#9060) 2024-05-10 10:39:36 +02:00
William Martin
7aeccdb7a0
Update pkg/cmd/pr/shared/finder_test.go
Co-authored-by: Andy Feller <andyfeller@github.com>
2023-11-27 15:18:13 +01:00
William Martin
b96a8e3c01 Add PR Finder test to cover projectItems 2023-11-27 10:40:09 +01:00
Nate Smith
bff4727331 linter appeasement 2023-08-17 17:17:26 -05:00
Nate Smith
4382efdf69 prompter for milestone 2023-08-17 15:58:38 -05:00
Nate Smith
6a4dbf9db3 prompter for projects 2023-08-17 15:54:46 -05:00
Nate Smith
abf49d1322 use prompter for labels 2023-08-17 15:50:55 -05:00
Nate Smith
542c154d07 prompter for assignees 2023-08-17 15:45:04 -05:00
Nate Smith
f867eff04d prompter for reviewers 2023-08-17 15:41:12 -05:00
Nate Smith
a3539d4f24 use MultiSelect for metadata survey in pr, issue create 2023-08-17 15:29:47 -05:00
Nate Smith
f04e3398ed use prompter in shared editable code 2023-08-17 11:28:01 -05:00
nate smith
6c9de6258c fix pr create crash on interactive milestone selection 2023-07-05 16:08:49 -07:00
Benjamin Levesque
4aa31b3f0f
fix: apply latin matching filter to more fields 2023-05-26 14:50:20 +02:00
William Martin
ebb7d26f3a Implement initial spike for detecting and using counts by state 2023-05-17 19:59:03 +02:00
Heath Stewart
17679cf65f
Edit multiple issues, PRs in parallel (#7259)
Allows multiple issues or PRs to be edited in parallel, and querying for shared fields once to reduce network requests.

Co-authored-by: Sam Coe <samcoe@users.noreply.github.com>
2023-04-25 14:45:41 +02:00
Benjamin Levesque
7cfbf478d5
Diacritics substitution in prompt (#7205) 2023-04-21 14:09:59 +00:00
Alexander Seiler
218f29f296
Correct some typos 2023-04-21 03:51:31 +02:00
Federico Guerinoni
c6a693c459
Add --template flag for issue create and pr create (#7185)
Signed-off-by: Federico Guerinoni <guerinoni.federico@gmail.com>
Co-authored-by: Alessio Cosenza <cosenzaalessio17@gmail.com>
2023-03-27 08:24:12 +00:00
Sam Coe
138da0f969
Fix adding/removing projects using flags for edit commands (#6955) 2023-02-06 08:28:38 +11:00
Benjamin Levesque
fef4195004
Add --reviewer flag completion (#6873)
Co-authored-by: Mislav Marohnić <mislav@github.com>
2023-01-25 18:02:13 +01:00
Ilya Yatsishin
179e9c256d
Add projectsV2 support to issue create, issue edit, pr create, and pr edit (#6735)
Co-authored-by: pshevche <pavel.shevchenko.95@gmail.com>
Co-authored-by: Sam Coe <samcoe@users.noreply.github.com>
2023-01-19 22:13:09 +00:00
vilmibm
f5d19b831e error instead of prompt when no base repo + fixes 2022-12-15 11:44:37 -08:00
Natthakit Susanthitanon
33779630da
Exclude the current user from reviewers when creating pr (#6464) 2022-12-08 08:51:35 +02:00
vilmibm
42c017b887 use Prompter in Commentable 2022-10-19 13:05:00 -07:00
vilmibm
47eebe0c64 use Prompter in template manager 2022-10-19 13:05:00 -07:00
vilmibm
a3b1bb7fb2 use Prompter in pr create
Note that this isn't done; it's leaving the metadata piece alone until
better testing utils are in place
2022-10-19 13:05:00 -07:00
Sam Coe
57fbe4f317
Refactor to use new git client (#6447) 2022-10-19 21:11:36 +03:00
Seito Tanaka
e523d50176
Add support for editing last issue/pr comment (#6384) 2022-10-18 08:10:12 +00:00
lpessoa
fb6f538f88
Adding no checks message when PR has no checks
Including additional tests.
2022-10-05 22:10:38 -03:00
lpessoa
6246f89690
Adding new tests for 'view' and 'shared display'
Added all passed, all failed, some failed and pending scenarios.
Added tests for PrCheckStatusSummaryWithColor.
2022-09-19 16:41:01 -05:00