Skip to content

Fix alias import clobber flag#7569

Merged
samcoe merged 1 commit intotrunkfrom
fix-alias-import-clobber
Jun 20, 2023
Merged

Fix alias import clobber flag#7569
samcoe merged 1 commit intotrunkfrom
fix-alias-import-clobber

Conversation

@samcoe
Copy link
Contributor

@samcoe samcoe commented Jun 12, 2023

Nested aliases broke this functionality as we were basically ignoring the flag and never reached the code the checked it, this PR restores it back to its previous functionality.

Fixes #7565

@samcoe samcoe requested a review from a team as a code owner June 12, 2023 00:01
@samcoe samcoe self-assigned this Jun 12, 2023
@samcoe samcoe requested review from vilmibm and removed request for a team June 12, 2023 00:01
Comment on lines +328 to +330
for _, cmd := range tt.aliasCommands {
rootCmd.AddCommand(cmd)
}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

All the tests were previously passing because these alias commands were not set up properly.

Copy link
Member

@williammartin williammartin left a comment

Choose a reason for hiding this comment

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

The looks functionally correct. For what it's worth, I spent a bit of time going back and forth understanding the relationship between existingAlias and validAliasName and I'm still not sure I totally get it.

My understanding is that validAliasName will now return false because our alias is shadowing an existing one that we now attach to our command tree, but then we use our knowledge of the aliasCfg to decide why it wasn't valid.

However, it doesn't really seem like we need to know if it the alias was valid before indicating failure, and that 141-149 could be hoisted up out of the conditional and the conditional on line 131 can be removed again.

Alternatively, we could move the existingAlias logic into our opts.ValidAliasName, injecting the aliasCfg and have it provide more useful information in the return type.

I guess at the core of it, I think the relationship between validity of an alias name and whether an alias already exists could be made clearer, but I understand that's subjective so I've approved this anyway.

@samcoe
Copy link
Contributor Author

samcoe commented Jun 20, 2023

@williammartin Thanks for the review. I can understand where you are coming from where existingAlias and validAliasName have a confusing relationship. Your understanding of what is happening is accurate though. validAliasName has a number of checks around what makes an alias name valid including checking if there is already an command (including aliases) with the same name. When using the --clobber flag of the alias import command we want to still run all of those validations but ignore the one checking if there is an alias with the same name. validAliasName does not return why an alias name is invalid though hence why there is the secondary existingAlias check. I thought about changing validAliasName to return a reason but that would have resulted in changing a couple other places where we validate aliases. This approach seemed like the smallest change to fix the issue. I am happy to add some comments into the code in a separate PR if you feel they would make this more clear.

@samcoe samcoe merged commit 78839db into trunk Jun 20, 2023
@samcoe samcoe deleted the fix-alias-import-clobber branch June 20, 2023 00:21
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The alias import command no longer overwrites existing aliases when using --clobber

2 participants