Commit graph

76 commits

Author SHA1 Message Date
Reto Hablützel
f6e9734f17 add more hints to docs 2021-09-25 08:38:26 +02:00
Mislav Marohnić
11fbb60ae7 Rename the module to "github.com/cli/cli/v2" 2021-08-25 12:41:30 +02:00
Mislav Marohnić
5d1d967c43 💅 Clean up pr merge admin logic 2021-08-03 15:49:55 +02:00
rsteube
baa18c164d pr merge: added --admin flag 2021-08-02 13:02:32 +02:00
Mislav Marohnić
a83c2924c5 Never prompt to delete branch if --auto was given 2021-07-20 19:49:19 +02:00
Mislav Marohnić
6e026412df Add "UNSTABLE" to immediately mergeable statuses
This status describes a state where the head branch is mergeable and
technically not blocked per base branch requirements, but it does have
non-passing checks.
2021-07-20 19:42:53 +02:00
Mislav Marohnić
6f2dfd7eea Adjust conditions for switching between regular and auto merge
Conditions prohibiting a regular merge: BLOCKED, BEHIND, DIRTY.

Conditions triggering a regular merge even if `--auto` was set: CLEAN,
HAS_HOOKS.

Note that UNKNOWN status does not trigger either of the conditions.
2021-07-20 19:34:32 +02:00
Cristian Dominguez
bec0a102c5 Fix tests 2021-07-05 12:47:48 -03:00
Cristian Dominguez
bcab8c0766 Only merge PRs if branch checks have passed 2021-07-05 12:46:36 -03:00
Cristian Dominguez
6115868343 Suggest to enable auto-merge when PR merge state is BLOCKED 2021-06-19 11:46:17 -03:00
Cristian Dominguez
498f15653e Simplify auto-merge detection 2021-06-19 01:40:28 -03:00
Cristian Dominguez
d68a2038b6 add test case 2021-06-14 22:01:35 -03:00
Cristian Dominguez
325886c0e4 Only schedule an auto-merge when PR state is blocked
When passing `--auto` flag, only schedule an auto-merge if
the `mergeStateStatus` field is "BLOCKED".
This ensures that a PR will always be merged when passing `--auto` even
if it doesn't have required checks or if checks have already passed.
2021-05-24 18:45:59 -03:00
Mislav Marohnić
6bec7a956a Fix pr merge on GHE < 3.0
This avoids loading authorship information for git commits, since it
relies on a GraphQL API that wasn't available before GHE v3.0. The
authorship information wasn't necessary for the merge operation anyway;
just loading the last commit OID was.
2021-05-21 17:35:41 +02:00
Mislav Marohnić
e758f30073 Fix preloading of pr reviews, checks, and issue/pr comments 2021-05-18 17:13:27 +02:00
Mislav Marohnić
51f7cbdfde 💅 cleanup and tests for PR finder 2021-05-18 09:59:05 +02:00
Mislav Marohnić
c50d390cf5 Fix tests 2021-05-07 22:09:58 +02:00
Mislav Marohnić
9bdc63c4ca Eliminate API overfetching in pr commands
This completely rewrites the PR lookup mechanism so that the caller
must specify the GraphQL fields to query for each PR. Additionally, this
fixes some export problems with `pr view --json`.

Features:

- Each pr command now gets assigned a concept of a Finder. This makes it
  easier to stub the PR in tests without having to stub the underlying
  HTTP calls or git invocations.

- `pr view --web` is much faster since it only fetches the "url" field.

- `pr diff 123` now skips a whole API call where a whole PR was
  unnecessarily preloaded just to access its diff in a subsequent call.

- PullRequestGraphQL query builder is now used to construct queries.

- A bunch of individual commands are now freed of having to know about
  concepts such as BaseRepo, Branch, Config, or Remotes.
2021-04-30 20:34:36 +02:00
Cristian Dominguez
8a0d5b0e43 Add note about current branch detection 2021-04-13 12:30:07 -03:00
Cristian Dominguez
8bfe64d593 Accept --body-file flag if --body is supported 2021-03-15 15:12:41 +01:00
Mislav Marohnić
dd34cae112 Merge remote-tracking branch 'origin' into cancel-error-status 2021-03-02 13:52:07 +01:00
Mislav Marohnić
2ebdde1ddd Exit with status code "2" on user cancellation errors
This also stops printing "interrupt" after Ctrl-C is pressed.
2021-03-02 13:48:44 +01:00
Mislav Marohnić
0f85304e3e Avoid crash in pr merge when verifying whether a PR had diverged
A PR is not guaranteed to have commits, it seems, so add a guard against
assuming that there is always a head commit.
2021-02-24 14:37:29 +01:00
Mislav Marohnić
a90997ec95 pr merge: avoid prompting to enter editor after editing phase is chosen
When user chooses "Edit commit message", open the editor immediately
instead of showing an additional prompt to open the editor.
2021-02-17 18:47:17 +01:00
Mislav Marohnić
203397baf9 Add tests for pr merge --auto/--disable-auto 2021-02-17 15:24:52 +01:00
Mislav Marohnić
ddddd95d73 Allow pr merge --body '' to prevent having the default body applied 2021-02-17 14:38:33 +01:00
Mislav Marohnić
12cf8ef65b Separately query viewerMergeBodyText for GHE compatibility
GHE versions 2.22 and older will not have this GraphQL field. Avoid the
resulting error and have the command proceeed with empty text as the
default.
2021-02-17 14:06:27 +01:00
Mislav Marohnić
2b36b09abf
Update wording for auto-merge confirmation
Co-authored-by: Amanda Pinsker <ampinsk@github.com>
2021-02-17 12:30:04 +01:00
Mislav Marohnić
3b650a8c56 Fix typo 2021-02-16 16:28:23 +01:00
Mislav Marohnić
57abe45b96 Let the server choose the commit subject for squashed merge
For single-commit PRs, the commit subject will be the subject of the
head commit and the PR number. For multi-commit PRs, the commit subject
will be the PR title and PR number. Instead of trying to replicate this
logic client-side, omit the `commitHeadline` param and let the server
apply defaults appropriately.

Reverts https://github.com/cli/cli/pull/1627
2021-02-16 16:17:37 +01:00
Mislav Marohnić
67bfedd56b Add pr merge --auto 2021-02-16 16:01:22 +01:00
Cristian Dominguez
f75bd7280f Pre-populate default merge commit message if no body was provided 2021-02-16 16:01:22 +01:00
Sam Coe
4ea8d25b85 Fix tests and polish 2021-02-16 15:59:44 +01:00
Cristian Dominguez
d57cb56945 Allow editing commit msg when squash merging a PR 2021-02-16 15:59:06 +01:00
Sam Coe
3f172ad991
Add contional and tests 2021-01-25 13:27:32 -08:00
zamasu
e4b9f7cb8c
Alert unpushed commits when merging a pull request 2021-01-25 12:04:32 -08:00
Mislav Marohnić
f46bab256c Rename to SuccessIconWithColor 2021-01-25 14:56:39 +01:00
Mislav Marohnić
96fa6e7830 Merge remote-tracking branch 'origin' into success-icon-consistency 2021-01-22 23:56:54 +01:00
Mislav Marohnić
23d68705bc Match color of the success icon with the end state of the record 2021-01-22 23:55:33 +01:00
Nate Smith
6e2c1b33b0
Merge pull request #2224 from divbhasin/1190-limit-merge-methods
#1190 - limit merge methods
2021-01-22 14:23:23 -08:00
Mislav Marohnić
06cf2c9f81 Merge remote-tracking branch 'origin' into cmd-stub-new 2021-01-22 16:31:29 +01:00
Nate Smith
4d28c79192
Merge pull request #2810 from ptxmac/ptx/pr-merge-body
Add body argument to `pr merge` command.
2021-01-21 15:25:42 -08:00
vilmibm
6decf4384f simplify slightly, add tests 2021-01-21 15:18:08 -08:00
Sam Coe
f09b8a8e78
Add mergeMethodSurvey test 2021-01-21 14:58:10 -08:00
Sam Coe
11e873c669
Cleanup impossible code path 2021-01-21 14:45:06 -08:00
Sam Coe
7cc2975a98
Fix tests 2021-01-21 14:42:42 -08:00
Sam Coe
a305ff1488
Split apart interactive merge survey function 2021-01-21 14:00:33 -08:00
Sam Coe
2d782fcb46
Retrieve repo outside of survey function 2021-01-21 13:13:58 -08:00
Sam Coe
71a66cc8d6
Fix merge 2021-01-21 12:53:04 -08:00
Sam Coe
a9123966e3
Merge branch 'trunk' into 1190-limit-merge-methods 2021-01-21 12:45:10 -08:00