Skip to content

create gh project command#7375

Merged
mislav merged 46 commits intotrunkfrom
mntlty/gh_project
Jun 9, 2023
Merged

create gh project command#7375
mislav merged 46 commits intotrunkfrom
mntlty/gh_project

Conversation

@mntlty
Copy link
Collaborator

@mntlty mntlty commented Apr 26, 2023

Closes #7362

Verified with tests, in the terminal and with a testing script, everything is still working 🤞

Changes from https://github.com/github/gh-projects:

  • import project as a root cmd
  • rename from projects to project in examples
  • use cmd util, especially the native CLI IO packages, rather than the go-gh ones
  • use CLI browser
  • add more cmd tests, for flags and required / exclusive arguments

TODO:

  • Inherit HTTPClient from command Factory
  • Avoid Survey prompts when stdin or stdout are not a tty
  • Avoid printing table headers when table output is not a tty
  • Avoid printing blank values as "-" and use an empty string instead
  • Avoid using table printer for printing one-line confirmation messages
  • Avoid using table printer for printing JSON output
  • Avoid varying the number of table columns depending on input flags to a command
  • Add support for choosing non-github.com instances with GH_HOST

@mntlty mntlty marked this pull request as ready for review May 8, 2023 17:13
@mntlty mntlty requested a review from a team as a code owner May 8, 2023 17:13
@mntlty mntlty requested review from williammartin and removed request for a team May 8, 2023 17:13
@cliAutomation cliAutomation added the external pull request originating outside of the CLI core team label May 8, 2023
@williammartin williammartin requested a review from mislav May 8, 2023 18:40
Copy link
Contributor

@mislav mislav left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the gargantuan effort! This looks great already. My suggestions come down to largely polishing the UI of the final product.

Regarding your questions:

  • I don't know yet what we can do about the current --format json support re: bringing that in line with how --json flag works in the rest of gh. Reworking the current code to support --json field1,field2 and only conditionally querying those specific fields from the API might be infeasible for now. Let me think about this for a day or two.

  • The error I get when I hadn't requested the projects OAuth scope is indeed pretty gnarly. I will look on my end at how that can be handled a bit better.

@MarcPow
Copy link

MarcPow commented Jun 1, 2023

@williammartin / @mislav - What's the status on this PR?

@mislav
Copy link
Contributor

mislav commented Jun 5, 2023

@MarcPow Still applying some UI polish and the plan is to be merged to trunk within a week.

Copy link
Contributor

@mislav mislav left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the hard work, @mntlty!!

@mislav mislav enabled auto-merge (squash) June 9, 2023 16:47
@mislav mislav merged commit ad4a489 into trunk Jun 9, 2023
@mislav mislav deleted the mntlty/gh_project branch June 9, 2023 16:57
renovate bot referenced this pull request in scottames/dots Jun 23, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [aquaproj/aqua-registry](https://togithub.com/aquaproj/aqua-registry)
| minor | `v4.20.0` -> `v4.21.1` |
| [cli/cli](https://togithub.com/cli/cli) | minor | `v2.30.0` ->
`v2.31.0` |
| [weaveworks/eksctl](https://togithub.com/weaveworks/eksctl) | minor |
`v0.145.0` -> `v0.146.0` |
| [zellij-org/zellij](https://togithub.com/zellij-org/zellij) | patch |
`v0.37.1` -> `v0.37.2` |

---

### Release Notes

<details>
<summary>aquaproj/aqua-registry</summary>

###
[`v4.21.1`](https://togithub.com/aquaproj/aqua-registry/releases/tag/v4.21.1)

[Compare
Source](https://togithub.com/aquaproj/aqua-registry/compare/v4.21.0...v4.21.1)


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.21.1)
| [Pull
Requests](https://togithub.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.21.1)
| aquaproj/aqua-registry@v4.21.0...v4.21.1

#### Fixes


[#&#8203;13199](https://togithub.com/aquaproj/aqua-registry/issues/13199)
kubernetes-sigs/kustomize: Follow up changes of kustomize v5.1.0

-
[https://github.com/kubernetes-sigs/kustomize/issues/5220](https://togithub.com/kubernetes-sigs/kustomize/issues/5220)

###
[`v4.21.0`](https://togithub.com/aquaproj/aqua-registry/releases/tag/v4.21.0)

[Compare
Source](https://togithub.com/aquaproj/aqua-registry/compare/v4.20.0...v4.21.0)


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.21.0)
| [Pull
Requests](https://togithub.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.21.0)
| aquaproj/aqua-registry@v4.20.0...v4.21.0

#### 🎉 New Packages


[#&#8203;13173](https://togithub.com/aquaproj/aqua-registry/issues/13173)
[assetnote/surf](https://togithub.com/assetnote/surf): Escalate your
SSRF vulnerabilities on Modern Cloud Environments. `surf` allows you to
filter a list of hosts, returning a list of viable SSRF candidates

[#&#8203;13174](https://togithub.com/aquaproj/aqua-registry/issues/13174)
[iyear/tdl](https://togithub.com/iyear/tdl): A Telegram downloader
written in Golang

[#&#8203;13172](https://togithub.com/aquaproj/aqua-registry/issues/13172)
[nikolaydubina/go-cover-treemap](https://togithub.com/nikolaydubina/go-cover-treemap):
Go code coverage to SVG treemap
[@&#8203;iwata](https://togithub.com/iwata)

</details>

<details>
<summary>cli/cli</summary>

### [`v2.31.0`](https://togithub.com/cli/cli/releases/tag/v2.31.0):
GitHub CLI 2.31.0

[Compare Source](https://togithub.com/cli/cli/compare/v2.30.0...v2.31.0)

#### What's New

- New suite of `project` commands for interacting with and manipulating
projects. Huge shoutout 🥳 for the time and effort put into this work by
[@&#8203;mntlty](https://togithub.com/mntlty) in
[https://github.com/cli/cli/pull/7375](https://togithub.com/cli/cli/pull/7375)
[https://github.com/cli/cli/pull/7578](https://togithub.com/cli/cli/pull/7578)
- New `search code` command by
[@&#8203;joshkraft](https://togithub.com/joshkraft) in
[https://github.com/cli/cli/pull/7376](https://togithub.com/cli/cli/pull/7376)
- New `cs view` command by
[@&#8203;dmgardiner25](https://togithub.com/dmgardiner25) in
[https://github.com/cli/cli/pull/7496](https://togithub.com/cli/cli/pull/7496)
[https://github.com/cli/cli/pull/7539](https://togithub.com/cli/cli/pull/7539)

#### What's Changed

- `api`: output a single JSON array in REST pagination mode by
[@&#8203;mislav](https://togithub.com/mislav) in
[https://github.com/cli/cli/pull/7190](https://togithub.com/cli/cli/pull/7190)
- `api`: support array params in GET queries by
[@&#8203;mislav](https://togithub.com/mislav) in
[https://github.com/cli/cli/pull/7513](https://togithub.com/cli/cli/pull/7513)
- `api`: force method to uppercase by
[@&#8203;ffalor](https://togithub.com/ffalor) in
[https://github.com/cli/cli/pull/7514](https://togithub.com/cli/cli/pull/7514)
- `alias`: Allow aliases to recognize extended commands by
[@&#8203;srz-zumix](https://togithub.com/srz-zumix) in
[https://github.com/cli/cli/pull/7523](https://togithub.com/cli/cli/pull/7523)
- `alias import`: Fix `--clobber` flag by
[@&#8203;samcoe](https://togithub.com/samcoe) in
[https://github.com/cli/cli/pull/7569](https://togithub.com/cli/cli/pull/7569)
- `run rerun`: Improve docs around `--job` flag by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/7527](https://togithub.com/cli/cli/pull/7527)
- `run view`: Support viewing logs for jobs with composite actions by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/7526](https://togithub.com/cli/cli/pull/7526)
- `gist edit`: Add selector option to `gist edit` command by
[@&#8203;kousikmitra](https://togithub.com/kousikmitra) in
[https://github.com/cli/cli/pull/7537](https://togithub.com/cli/cli/pull/7537)
- `repo clone`: Set upstream remote to track all branches after initial
fetch by [@&#8203;samcoe](https://togithub.com/samcoe) in
[https://github.com/cli/cli/pull/7542](https://togithub.com/cli/cli/pull/7542)
- `extension`: Speed up listing extensions by lazy-loading extension
information when needed by [@&#8203;mislav](https://togithub.com/mislav)
in
[https://github.com/cli/cli/pull/7493](https://togithub.com/cli/cli/pull/7493)
- `auth`: Add timeouts to keyring operations by
[@&#8203;samcoe](https://togithub.com/samcoe) in
[https://github.com/cli/cli/pull/7580](https://togithub.com/cli/cli/pull/7580)
- `auth status`: write to stdout on success by
[@&#8203;rajhawaldar](https://togithub.com/rajhawaldar) in
[https://github.com/cli/cli/pull/7540](https://togithub.com/cli/cli/pull/7540)
- `completion`: Fix bash completions for extensions and aliases by
[@&#8203;mislav](https://togithub.com/mislav) in
[https://github.com/cli/cli/pull/7525](https://togithub.com/cli/cli/pull/7525)
- `issue/pr view`: alphabetically sort labels for `gh pr/issue view` by
[@&#8203;ffalor](https://togithub.com/ffalor) in
[https://github.com/cli/cli/pull/7587](https://togithub.com/cli/cli/pull/7587)
- Fix error handling for extension and shell alias commands by
[@&#8203;samcoe](https://togithub.com/samcoe) in
[https://github.com/cli/cli/pull/7567](https://togithub.com/cli/cli/pull/7567)
- Fix pkg imported more than once by
[@&#8203;testwill](https://togithub.com/testwill) in
[https://github.com/cli/cli/pull/7591](https://togithub.com/cli/cli/pull/7591)
- Refactor a nested if statement by
[@&#8203;yanskun](https://togithub.com/yanskun) in
[https://github.com/cli/cli/pull/7596](https://togithub.com/cli/cli/pull/7596)
- Fix a typo by
[@&#8203;lerocknrolla](https://togithub.com/lerocknrolla) in
[https://github.com/cli/cli/pull/7557](https://togithub.com/cli/cli/pull/7557)
- Fix flaky test by [@&#8203;samcoe](https://togithub.com/samcoe) in
[https://github.com/cli/cli/pull/7515](https://togithub.com/cli/cli/pull/7515)
- Credential rotations, renames and decouplings from Mislav by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/7544](https://togithub.com/cli/cli/pull/7544)
- build(deps): bump github.com/cli/go-gh/v2 from 2.0.0 to 2.0.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/7546](https://togithub.com/cli/cli/pull/7546)
- build(deps): bump github.com/AlecAivazis/survey/v2 from 2.3.6 to 2.3.7
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/7576](https://togithub.com/cli/cli/pull/7576)

#### New Contributors

- [@&#8203;srz-zumix](https://togithub.com/srz-zumix) made their first
contribution in
[https://github.com/cli/cli/pull/7523](https://togithub.com/cli/cli/pull/7523)
- [@&#8203;lerocknrolla](https://togithub.com/lerocknrolla) made their
first contribution in
[https://github.com/cli/cli/pull/7557](https://togithub.com/cli/cli/pull/7557)
- [@&#8203;testwill](https://togithub.com/testwill) made their first
contribution in
[https://github.com/cli/cli/pull/7591](https://togithub.com/cli/cli/pull/7591)
- [@&#8203;rajhawaldar](https://togithub.com/rajhawaldar) made their
first contribution in
[https://github.com/cli/cli/pull/7540](https://togithub.com/cli/cli/pull/7540)

**Full Changelog**: cli/cli@v2.30.0...v2.31.0

</details>

<details>
<summary>weaveworks/eksctl</summary>

###
[`v0.146.0`](https://togithub.com/weaveworks/eksctl/releases/tag/v0.146.0):
eksctl 0.146.0 (permalink)

[Compare
Source](https://togithub.com/weaveworks/eksctl/compare/0.145.0...0.146.0)

### Release v0.146.0

#### 🎯 Improvements

- Update vpc-cni to 1.12.6
([#&#8203;6692](https://togithub.com/weaveworks/eksctl/issues/6692))

#### 🧰 Maintenance

- Bump dependencies
([#&#8203;6690](https://togithub.com/weaveworks/eksctl/issues/6690))

#### 📝 Documentation

- New eksctl channel
([#&#8203;6697](https://togithub.com/weaveworks/eksctl/issues/6697))

#### Acknowledgments

Weaveworks would like to sincerely thank:
[@&#8203;wind0r](https://togithub.com/wind0r)

</details>

<details>
<summary>zellij-org/zellij</summary>

###
[`v0.37.2`](https://togithub.com/zellij-org/zellij/releases/tag/v0.37.2)

[Compare
Source](https://togithub.com/zellij-org/zellij/compare/v0.37.1...v0.37.2)

This is a patch release to fix some minor issues in the previous
release.

#### What's Changed

- hotfix: include theme files into binary by
[@&#8203;jaeheonji](https://togithub.com/jaeheonji) in
[https://github.com/zellij-org/zellij/pull/2566](https://togithub.com/zellij-org/zellij/pull/2566)
- fix(plugins): make hide_self api idempotent by
[@&#8203;imsnif](https://togithub.com/imsnif) in
[https://github.com/zellij-org/zellij/pull/2568](https://togithub.com/zellij-org/zellij/pull/2568)

**Full Changelog**:
zellij-org/zellij@v0.37.1...v0.37.2

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/scottames/dots).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMzEuMCIsInVwZGF0ZWRJblZlciI6IjM1LjEzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@charlyBro

This comment was marked as spam.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

external pull request originating outside of the CLI core team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Import gh-projects into gh

5 participants