-
Couldn't load subscription status.
- Fork 7.3k
Update IsEnterprise and IsTenancy for orthogonality using go-gh #9755
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
feea80b to
66d5dd3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Feels good to get rid of this logic and standardized on a single reusable set of functions! Handful of nits but solid overall.
…ancy IsEnterprise currently returns `true` when `IsTenancy` returns true. We prefer that this behavior is orthogonal. This commit adds failing tests to the instances where IsEnterprise should not behave the same as IsTenancy. These test cases are expected to pass with the inclusion of the coming improvements to go-gh to handle the orthogonality of IsEnterprise and IsTenancy.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm! so glad this finally happened!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that these branches can probably be removed now:
cli/internal/ghinstance/host.go
Lines 50 to 56 in e1a39d8
| // Once we change Tenancy to no longer be treated as Enterprise, this | |
| // conditional can be removed as the flow will fall through to the bottom. | |
| // However, we can't do that until we've investigated all places in which | |
| // Tenancy is currently treated as Enterprise. | |
| if ghauth.IsTenancy(hostname) { | |
| return fmt.Sprintf("https://api.%s/graphql", hostname) | |
| } |
cli/internal/ghinstance/host.go
Lines 70 to 76 in e1a39d8
| // Once we change Tenancy to no longer be treated as Enterprise, this | |
| // conditional can be removed as the flow will fall through to the bottom. | |
| // However, we can't do that until we've investigated all places in which | |
| // Tenancy is currently treated as Enterprise. | |
| if ghauth.IsTenancy(hostname) { | |
| return fmt.Sprintf("https://api.%s/", hostname) | |
| } |
Left a couple of comments for you to consider but otherwise LGTM thanks.
Thanks for the callout, @williammartin. I've removed them 🙌 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems straightforward for the parts @cli/package-security owns.
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [cli/cli](https://github.com/cli/cli) | minor | `v2.58.0` -> `v2.59.0` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>cli/cli (cli/cli)</summary> ### [`v2.59.0`](https://github.com/cli/cli/releases/tag/v2.59.0): GitHub CLI 2.59.0 [Compare Source](cli/cli@v2.58.0...v2.59.0) #### What's Changed - Allow community submitted design work by [@​BagToad](https://github.com/BagToad) in cli/cli#9683 - Improve `SECURITY.md` with expectations for privately reported vulnerabilities by [@​BagToad](https://github.com/BagToad) in cli/cli#9687 - Emit a log message when extension installation falls back to a `darwin-amd64` binary on an Apple Silicon macOS device by [@​timrogers](https://github.com/timrogers) in cli/cli#9650 - Print the login URL even when opening a browser by [@​ulfjack](https://github.com/ulfjack) in cli/cli#7091 - configurable maxwidth for markdown WithWrap() by [@​smemsh](https://github.com/smemsh) in cli/cli#9626 - Handle errors when parsing hostname in auth flow by [@​BagToad](https://github.com/BagToad) in cli/cli#9729 - Add `repo license list/view` and `repo gitignore list/view` by [@​BagToad](https://github.com/BagToad) in cli/cli#9721 - Introduce testscript acceptance tests generally, and for the MR command specifically by [@​williammartin](https://github.com/williammartin) in cli/cli#9745 - Support `GH_ACCEPTANCE_SCRIPT` env var to target a single script by [@​williammartin](https://github.com/williammartin) in cli/cli#9756 - Ensure Acceptance defer failures are debuggable by [@​williammartin](https://github.com/williammartin) in cli/cli#9754 - Add acceptance task to makefile by [@​williammartin](https://github.com/williammartin) in cli/cli#9748 - Add Acceptance tests for `issue` command by [@​williammartin](https://github.com/williammartin) in cli/cli#9757 - Update IsEnterprise and IsTenancy for orthogonality using go-gh by [@​jtmcg](https://github.com/jtmcg) in cli/cli#9755 - Supporting filtering on `gist list` by [@​heaths](https://github.com/heaths) in cli/cli#9728 #### New Contributors - [@​ulfjack](https://github.com/ulfjack) made their first contribution in cli/cli#7091 - [@​smemsh](https://github.com/smemsh) made their first contribution in cli/cli#9626 **Full Changelog**: cli/cli@v2.58.0...v2.59.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
Closes github/cli#577
Changes
go-ghto v2.11.0go-gh/authpackage forIsEnterprise,IsTenancy, andNormalizeHostnameghauth.IsTenancy(host)checkThis adds test coverage to ensure orthogonality between
IsEnterpriseandIsTenancyfunctionality, then imports the functions fromgo-ghto fix the tests. There's some additional cleanup beyond this as well. See the commit messages for more details.Testing
gh pr checkout 9755gh auth login -h <tenancy-instance>gh auth login -h <server-instance>