Commit graph

475 commits

Author SHA1 Message Date
Mislav Marohnić
bc3bb97c43 Merge remote-tracking branch 'origin' into pr-lookup-refactor 2021-05-17 17:41:38 +02:00
Mislav Marohnić
4b0b422eb5
Add --json export functionality to repo commands (#3627) 2021-05-17 16:53:20 +02:00
Mislav Marohnić
301a35eedc
Merge pull request #3621 from cli/export-data
Push data serialization concern into Exporter
2021-05-17 13:43:00 +02:00
Mislav Marohnić
02a2ed2f73 Add repo view --json export functionality 2021-05-12 17:05:15 +02:00
Mislav Marohnić
5f0301c990 Have Exporter.Write automatically call ExportData on given data structure 2021-05-12 17:05:15 +02:00
Mislav Marohnić
3cbd5b4934
Add repo fork --org functionality (#3611)
Co-authored-by: Gowtham Munukutla <gowtham.m81197@gmail.com>
2021-05-10 17:09:03 +02:00
Mislav Marohnić
c50d390cf5 Fix tests 2021-05-07 22:09:58 +02:00
Mislav Marohnić
25d79c4e16
Merge pull request #3525 from cristiand391/improve-issue-status-detection
Improve issue status detection
2021-05-03 21:04:35 +02:00
Cristian Dominguez
796d2e24ef Bring back Closed field 2021-04-30 17:32:16 -03: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
Mislav Marohnić
a8e025291f Fix exporting milestone for issues and PRs
There was a weird pointer bug which would cause a null milestone to
erase "milestone" fields for previous entries in the list.
2021-04-28 18:28:18 +02:00
Cristian Dominguez
6b49e21295 Improve issue status detection 2021-04-28 00:30:21 -03:00
Mislav Marohnić
47b7987772
Merge pull request #3402 from cristiand391/remove-unused-embedded-struct
Remove unused embedded struct
2021-04-20 18:48:19 +02:00
Nate Smith
d09896468d
Merge pull request #3351 from cristiand391/fix-pr-reopen
Fix detecting PR status when passing branch as arg
2021-04-20 11:41:16 -05:00
Mislav Marohnić
ac348b0dec Fix requesting REST sub-resources on GHE
GitHub REST resources typically return full URLs to fetch related
resources at. We used to parse those URLs to find just the path portion
and pass that in to the `REST()` function, which only accepted paths. By
doing so, we are essential de-constructing a URL just to re-assemble it
again. While re-assembling it for Enterprise, though, we would
accidentally inject an extra `api/v3/` prefix where one was not needed.

The solution is just to use raw URLs as reported by the REST API with
no modifications. This extends the `REST()` function to accept full URLs
in addition to just paths to resources.
2021-04-19 12:41:09 +02:00
Mislav Marohnić
78e48e2dfd Tests for GraphQL query builder and JSON exporter 2021-04-14 18:52:02 +02:00
Mislav Marohnić
e63904bacd Expose more fields for PR JSON export 2021-04-14 17:28:27 +02:00
Mislav Marohnić
a516ee6833 Add issue status --json support 2021-04-13 21:26:26 +02:00
Mislav Marohnić
3f22e3b353 Add pr status --json support 2021-04-13 21:12:30 +02:00
Mislav Marohnić
e158fac1a9 Restructure PullRequestStatus function 2021-04-13 20:54:09 +02:00
Mislav Marohnić
abe452bb19 Add --json export flag for issues and pull requests
The `--json` flag accepts a list of GraphQL fields to query for and
output in JSON format. To get the list of available flags, run the
command with a blank value for `--json`. Additional `--jq` and
`--template` flags are available just like in `gh api`.
2021-04-13 20:29:31 +02:00
Mislav Marohnić
19ea49b5a9 Move issue list queries to under the issue/list package 2021-04-13 19:25:19 +02:00
Cristian Dominguez
b656b56061 Remove unused embedded struct 2021-04-12 12:40:00 -03:00
Cristian Dominguez
9c471fe7a5 Improve PR status detection 2021-04-08 00:23:22 -03:00
Cristian Dominguez
60d22b7d6d Fix detecting PR status when passing branch as arg 2021-04-02 21:26:21 -03:00
Mislav Marohnić
05c7c2bd1a Treat unrecognized PR Checks statuses as "pending"
Previously, unrecognized Checks statuses would crash the program. For
the sake of supporting the "WAITING" status and for
forward-compatibility, this treats any unrecognized status as "pending".
2021-03-31 18:21:45 +02:00
Mislav Marohnić
949df38d49 BREAKING: lookup all issue/PR labels with "AND" instead of "OR" combinator
This switches to the Search API whenever labels are specified in `issue
list` or `pr list`. This ensures that the results match those that would
be returned in the web UI.
2021-03-24 18:04:25 +01:00
Mislav Marohnić
75cfed4bef Import PR list API implementation to pr/list package
Also splits List vs. Search queries into separate methods for better
maintanability.
2021-03-24 16:46:42 +01:00
Mislav Marohnić
179d3f0249 Add a unified GitHub Search query builder 2021-03-23 18:52:58 +01:00
Mislav Marohnić
80035aa686 💅 cleanup switching to search mode in issue list 2021-03-23 18:08:14 +01:00
Gowtham Munukutla
f791bbdbcb add search feature in listing issues 2021-03-23 18:08:14 +01:00
Gowtham Munukutla
bdd663e658 Add additions and deletions in pr view raw as well 2021-03-05 13:41:25 +05:30
Gowtham Munukutla
9944698665 Add additions and deletions in pr view 2021-03-05 11:20:49 +05:30
Mislav Marohnić
162a1b290a Allow caching HTTP 204 responses 2021-03-01 16:04:34 +01:00
Mislav Marohnić
dcff6c4f2d Fix pr status for GHE 2.22 and older
This queries for the availability of the `branchProtectionRule` field on
"Ref" before trying to request it from GraphQL.
2021-02-18 17:46:13 +01:00
Mislav Marohnić
70d4786e37
Merge pull request #2988 from cli/strict-status-checks-base
pr status: fix checking branch protection rules on the base branch
2021-02-17 18:13:15 +01:00
Mislav Marohnić
05421db404 pr status: fix checking branch protection rules on the base branch
Instead of checking branch protection rules on the main branch of the
repository, branch protection rules for a specific PR should be checked
on its base branch, since not all PRs are based on the main branch.

Additionally, do not display "Up to date" if the actual merge status
reported from the server was "UNKNOWN" or "DIRTY", since in those cases
"Up to date" could be false information.
2021-02-17 18:04:49 +01:00
Mislav Marohnić
3b117e6c3c
Merge pull request #2539 from divyaramanathan/issue-create-template
Implementing issue template GraphQL API call
2021-02-17 17:59:42 +01:00
Mislav Marohnić
3a224b7c2a
Merge pull request #2892 from cli/auth-with-ssh
Add SSH key generation & uploading to `gh auth login` flow
2021-02-17 17:07:05 +01:00
Mislav Marohnić
4cd43cc8ef Merge remote-tracking branch 'origin' into auth-with-ssh 2021-02-17 15:29:36 +01:00
Mislav Marohnić
ebc5d01942 Merge remote-tracking branch 'origin' into auto-merge 2021-02-17 15:25:25 +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
Nate Smith
c2c211dbed
Merge pull request #2952 from redreceipt/up-to-date
Adds Branch Up to Date Status
2021-02-16 12:50:28 -06:00
vilmibm
57140ad35e add header in correct place 2021-02-16 12:25:09 -06: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
4fdf28d8a4
Change behavior of slice flags for issue edit and pr edit commands 2021-02-12 14:42:21 -08:00
Sam Coe
a47ee660a7
Pr edit command 2021-02-12 10:08:44 -08:00