Skip to content

Use new GQL fields that support CheckRun and StatusContext counts by state#7462

Merged
williammartin merged 16 commits intotrunkfrom
wm/counts-by-state
May 25, 2023
Merged

Use new GQL fields that support CheckRun and StatusContext counts by state#7462
williammartin merged 16 commits intotrunkfrom
wm/counts-by-state

Conversation

@williammartin
Copy link
Member

@williammartin williammartin commented May 17, 2023

Description

This relates to #7421

In this PR we make use of some new GQL fields that provide counts per state of CheckRun or StatusContext. This should provide some small performance improvements for repositories with large numbers of PRs.

Tests on a repository with 200K+ PRs show speedups of a few seconds but sometimes we still see timeouts, so it's not a total resolution for that.

Using GH_DEBUG=api gh pr status shows the new GQL request schema.

Copy link
Member Author

@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.

Just left an initial self-review with some thoughts. Would love to hear from @samcoe @mislav or @vilmibm on the general approach.

For the final commit that does the detection and wires up the new schema, I'll need to write some tests but I wanted to get 👀 on it first.

contexts := pr.StatusCheckRollup.Nodes[0].Commit.StatusCheckRollup.Contexts

// If this commit has counts by state then we can summarise check status from those
if len(contexts.CheckRunCountsByState) != 0 && len(contexts.StatusContextCountsByState) != 0 {
Copy link
Member Author

Choose a reason for hiding this comment

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

Looks like we could reduce some duplication here.

Copy link
Contributor

Choose a reason for hiding this comment

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

To me it is fine that the code paths for Checks and for Statuses have some incidental duplication. They are separate concepts, after all, that just happen to share a similar API surface.

Copy link
Member Author

Choose a reason for hiding this comment

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

+1 for a little duplication being better than the wrong abstraction. I'll see whether there's any third path here though.

Copy link
Member Author

Choose a reason for hiding this comment

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

pending
)

func parseCheckStatus(state string) checkStatus {
Copy link
Member Author

Choose a reason for hiding this comment

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

Probably makes sense to reuse this logic for the old state/conclusion work as well.


// IssueGraphQL constructs a GraphQL query fragment for a set of issue fields.
func IssueGraphQL(fields []string) string {
func IssueGraphQL(fields []string, opts ...IssueGraphQLOptFn) string {
Copy link
Member Author

Choose a reason for hiding this comment

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

Not really bothered about using functional option pattern here but it was an easy way to get the option passed down without updating all the call sites with a new arg.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think we could avoid adding this pattern here if we just introduced a new field, maybe statusCheckSummary, that would retrieve the new summary instead of the old one. We would probably want to leave a nice comment describing how the two fields are different. I think this approach would be simpler and easier to understand. It would also allow us to easily deprecate the old field once the new summary fields have been rolled out to all supported GHES versions.

Copy link
Member Author

@williammartin williammartin May 18, 2023

Choose a reason for hiding this comment

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

That sounds like a good idea. I also like the fact that it removes the nested conditional under statusCheckRollup. One thing that seems to change is that the name of the field is no longer actually the name the of the GQL field. I think that's ok as long as we document it properly, such as with the pseudo-field branches (though I don't know exactly what that means). What do you think?

This is somewhere that having real enum/discriminated union support would be really nice to associate the boolean with only one variant, but alas in Go!

Copy link
Contributor

Choose a reason for hiding this comment

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

statusCheckSummary would qualify as a pseudo-field. We just use that term to mean a field where the name does not directly translate to the GraphQL object/field it retrieves. It is totally fine to add them, when possible we do try to keep the names the same as the API though so the fields can be looked up in the API docs easily. We actually do not do a good job at documenting the fields that are available because we haven't found a good place to display them. We have an issue somewhere about better documentation for them. Right now the user has to run the given command with the --json flag to see the list of available flags, and they do not have any description next to them.

Copy link
Contributor

Choose a reason for hiding this comment

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

I feel like the functional option pattern here is an overkill, especially because we alone control all the callers of IssueGraphQL() and could trivially update each of them. I like the idea of a pseudo-field for this. We do not have to externally expose this field as a --json option.

})

g.Go(func() error {
if !ghinstance.IsEnterprise(d.host) {
Copy link
Member Author

@williammartin williammartin May 17, 2023

Choose a reason for hiding this comment

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

This is why I chose to do all the declaration and parsing in separate go routines. If we're just modifying the final feature struct (concurrent safe as long as we don't reference the same field) then we can early exit here.

If we split this function as described in another comment then we can get rid of all this goroutine business which would be nice.

Copy link
Contributor

Choose a reason for hiding this comment

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

GraphhQL actually allows us to do multiple queries in a single request which I think is a better option here than creating two parallel requests. We used to do something similar until it became unnecessary, but we can bring it back. Here is an example:

https://github.com/cli/cli/pull/5494/files#diff-21986411c01246bfb45a509ecd73874c24989888023920096d6bf7481e533b04L286

Copy link
Member Author

@williammartin williammartin May 18, 2023

Choose a reason for hiding this comment

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

Ah, I didn't know that thanks. I blindly pulled this pattern from 4eec5c2#diff-531901056679f44f90e67a1294e67f916dd55000a95452c6716461e9f3286bb9L100-L107

I'll address this based on the result of #7462 (comment)

ReviewRequested edges
}

// SPIKE: Let's see if we can detect here and wire through
Copy link
Member Author

Choose a reason for hiding this comment

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

We could also detect higher up and pass down the result of that. It would go hand in hand with injecting a mock detector into the StatusOptions struct as mentioned in another comment in the tests.

Copy link
Contributor

Choose a reason for hiding this comment

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

If we push the detection up higher and add a new field as I suggested in another comment we can copy what is happening in the issue list command. Basically do the feature detection and pass through the appropriate fields to retrieve based on the features.

fields = append(defaultFields, "stateReason")

// SPIKE: Let's see if we can detect here and wire through
cachedClient := api.NewCachedHTTPClient(httpClient, time.Hour*24)
detector := fd.NewDetector(cachedClient, repo.RepoHost())
prFeatures, err := detector.PullRequestFeatures()
Copy link
Member Author

Choose a reason for hiding this comment

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

One kind of not great thing about this implementation is that we never use the MergeQueue feature as part of this command, and although we can elide the request for this new feature when using GitHub.com (because it's guaranteed to have the new fields), we can't do it for MergeQueue. Therefore, we're making unnecessary requests when running this command and pointing at GitHub.com.

Perhaps we should split PullRequestFeatures into two different calls?

Copy link
Contributor

Choose a reason for hiding this comment

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

If we combine the feature detection into one request as I mentioned in an above comment we don't need to worry about firing off multiple requests.

Copy link
Contributor

Choose a reason for hiding this comment

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

We should also investigate if we can add back in the MergeQueue short circuit on dotcom.

Copy link
Member Author

Choose a reason for hiding this comment

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

If we combine the feature detection into one request as I mentioned in an above comment we don't need to worry about firing off multiple requests.

I'm not sure this addressed my point. The fact is that to support gh pr status on GitHub.com we shouldn't need to make any introspection calls. We don't care about the merge queue status and we know the new summary counts are supported. However, because PullRequestFeatures doesn't know that it's gh pr status asking rather than something that does need MergeQueue, we make the call. My suggestion is that perhaps PullRequestFeatures is too broad a collection and should be split.

We should also investigate if we can add back in the MergeQueue short circuit on dotcom.

If this were possible we could keep the same. I tracked the mentioned issue in code and I think the underlying GQL issue still exists but honestly I don't fully have context. Perhaps @mislav can speak to it?

Under the assumption that it is not fixed, what do you think we should do here?

Copy link
Contributor

Choose a reason for hiding this comment

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

Ahh yeah I missed the point a bit. I understand now. I don't have a strong opinion either way, keeping it one function or splitting it up. I would probably lean towards keeping it one function as that is slightly simpler for the caller and would not need any refactoring of places it is currently used. Additionally, the requests are cached for 24 hours so I don't see a huge performance benefit.

Copy link
Member Author

Choose a reason for hiding this comment

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

I think we could leave the existing function alone and only have an additive CheckAndStatusByCountSupported that returns a bool, then it would only be called for this one use case. On the surface that seems nice because it's easy to unwind later and doesn't touch any other code but like you I don't feel strongly.

Re: the caching, I don't have a good sense of the use case of gh pr status and whether it might be used for example, in clean actions runs where the cache is wiped away each time. Do you have any idea?

I suspect for the moment I'll leave it as one function since introducing CheckAndStatusByCountSupported is a new pattern that sets a precedent I'm not sure we want to support. I'll just leave some comments in the code indicating this discussion.

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm honestly not sure if the isInMergeQueue field is now accessible by PATs rather than only via our OAuth app. Maybe this has been fixed but the platform issue accidentally remained open. We could continue introspecting that field, just in case. But I do not feel strongly that PullRequestFeatures should be split into multiple smaller calls.

func initFakeHTTP() *httpmock.Registry {
return &httpmock.Registry{}
registry := &httpmock.Registry{}
// SPIKE: perhaps we should inject a mock detector into the command instead?
Copy link
Member Author

@williammartin williammartin May 17, 2023

Choose a reason for hiding this comment

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

We inject mock detectors for tests around template and issue closing. We could follow the same pattern here. However, if we split detector.PullRequestFeatures as described in another comment, then we can probably get away with making no changes at all, since the test already elides the introspection request for the new types.

That elision may not be desirable for the test though, I need to look closer into the flows.

Copy link
Contributor

@samcoe samcoe May 18, 2023

Choose a reason for hiding this comment

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

I don't have strong feelings here but I don't generally like hiding assertions inside helper functions away from other assertions. We almost always call registry.Verify() in our tests which turns this into an assertion. My vote would be to inject the detector instead.

Copy link
Member Author

@williammartin williammartin May 18, 2023

Choose a reason for hiding this comment

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

I don't generally like hiding assertions inside helper functions

Understood and agree. An unsaid part of the comment was "I put this here because I wanted to quickly validate this worked instead of copying it into all the tests".

My vote would be to inject the detector instead.

I'll look into it in the context of the rest of the discussions.

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.

This looks great so far. With the addition of switching to a pseudo-field instead of passing optional function arguments when constructing the statusCheckRollup GraphQL fragment, I'd say that this will be ready to ship. 🚀

contexts := pr.StatusCheckRollup.Nodes[0].Commit.StatusCheckRollup.Contexts

// If this commit has counts by state then we can summarise check status from those
if len(contexts.CheckRunCountsByState) != 0 && len(contexts.StatusContextCountsByState) != 0 {
Copy link
Contributor

Choose a reason for hiding this comment

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

To me it is fine that the code paths for Checks and for Statuses have some incidental duplication. They are separate concepts, after all, that just happen to share a similar API surface.


// IssueGraphQL constructs a GraphQL query fragment for a set of issue fields.
func IssueGraphQL(fields []string) string {
func IssueGraphQL(fields []string, opts ...IssueGraphQLOptFn) string {
Copy link
Contributor

Choose a reason for hiding this comment

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

I feel like the functional option pattern here is an overkill, especially because we alone control all the callers of IssueGraphQL() and could trivially update each of them. I like the idea of a pseudo-field for this. We do not have to externally expose this field as a --json option.

// SPIKE: Let's see if we can detect here and wire through
cachedClient := api.NewCachedHTTPClient(httpClient, time.Hour*24)
detector := fd.NewDetector(cachedClient, repo.RepoHost())
prFeatures, err := detector.PullRequestFeatures()
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm honestly not sure if the isInMergeQueue field is now accessible by PATs rather than only via our OAuth app. Maybe this has been fixed but the platform issue accidentally remained open. We could continue introspecting that field, just in case. But I do not feel strongly that PullRequestFeatures should be split into multiple smaller calls.

}

cmd := NewCmdStatus(factory, nil)
withAllFeaturesDisabled := func(opts *StatusOptions) error {
Copy link
Member Author

@williammartin williammartin May 22, 2023

Choose a reason for hiding this comment

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

@vilmibm To set some context for our discussion tomorrow, this is the kind of test I want to talk about.

Since the pr status command now issues a detection query, and we didn't want to mock graphql introspection in every test, I found a rarely used pattern for injecting opts but I noticed this was under a comment of LEGACY TESTS.

I have seen that there are some suites that:

  • Assert on the stdio of invoking cmd.ExecuteC
  • Assert on the result of applying NewCmdFoo to the opts, and assert on the stdio of invoking the private fooRun functions.

I suspect that the latter is the more recent way since it allows for testing with easy injection of opts and seems a little clearer than making use of the early return runF that calls fooRun. Let me know, cheers.

Copy link
Contributor

Choose a reason for hiding this comment

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

The latter is more recent, yup. The thing that is legacy in the tests you linked is specifically the approach of making a runCommand helper then calling it in a series of top level test cases instead of using the list of test structs approach.

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.

Updates are looking good!

Comment on lines +59 to +62
if options.CheckRunAndStatusContextCountsSupported {
fields.Add("statusCheckRollupWithCountByState")
} else {
fields.Add("statusCheckRollup")
Copy link
Contributor

Choose a reason for hiding this comment

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

This is going to add either the statusCheckRollupWithCountByState or statusCheckRollup field even if neither was requested via --json <fields>. When fields are user-supplied, they shouldn't be edited.

Copy link
Member Author

Choose a reason for hiding this comment

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

Thanks, good call out.

// If the status is completed then we can check the conclusion field
if c.Status == "COMPLETED" {
state = c.Conclusion
switch parseCheckStatusFromCheckConclusionState(c.Conclusion) {
Copy link
Member Author

Choose a reason for hiding this comment

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

I was finding it not the easiest to keep the previous flow in my head, and found myself frequently referring back to the graphql docs to determine whether I was dealing with a CheckStatusState, a StatusState, a CheckRunState, a CheckConclusionState or something that might exist in more than one category.

Therefore, I decided to eschew any attempt to treat these things as the same and to parse them each separately. One nice result of this is that when we are able to remove the logic for StatusContext it'll be very easy to carve out the unneeded code.

Copy link
Member Author

Choose a reason for hiding this comment

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

One last thing I'm interesting in exploring here is using the enum support in shurcool to make these parse functions a bit more type-friendly (as opposed to stringly typed)

Copy link
Member Author

Choose a reason for hiding this comment

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

Done ^ in c2e3dae

"contexts": {
"nodes": [
{
"__typename": "CheckRun",
Copy link
Member Author

@williammartin williammartin May 23, 2023

Choose a reason for hiding this comment

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

These are needed because of https://github.com/cli/cli/pull/7462/files#diff-21986411c01246bfb45a509ecd73874c24989888023920096d6bf7481e533b04R324

I was unfortunate that I had to track down why the test was failing when the implementation was correct because the fixture was perhaps overspecified. It represents what the test needs rather than what a response actually looks like. It's a fine balance between reality and distracting, extraneous details. Something for me to mull over!

}

state := c.State
state := string(c.State)
Copy link
Member Author

Choose a reason for hiding this comment

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

This should be a nonfunctional change as a result of the enum changes in c2e3dae

If we like the enum change, I'm inclined to revisit this in a quick follow up PR.

@williammartin williammartin marked this pull request as ready for review May 23, 2023 15:40
@williammartin williammartin requested a review from a team as a code owner May 23, 2023 15:40
@williammartin williammartin requested review from mislav, samcoe and vilmibm and removed request for a team May 23, 2023 15: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.

Looks great!

Copy link
Contributor

@samcoe samcoe left a comment

Choose a reason for hiding this comment

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

LGTM, thanks for making the requested changes.

@williammartin
Copy link
Member Author

@mislav @samcoe are you happy for me to merge this and then follow up with tests or is your approval predicated on those tests being added?

@samcoe
Copy link
Contributor

samcoe commented May 24, 2023

@williammartin I can't speak for Mislav but my approval was predicated on the tests being added. Unless there is good reason, I think the tests should be included in the same pull request.

@williammartin
Copy link
Member Author

No good reason, I'll re-request when they are in to make sure you are happy.

}
}

func TestPRStatus_reviewsAndChecksWithStatesByCount(t *testing.T) {
Copy link
Member Author

@williammartin williammartin May 24, 2023

Choose a reason for hiding this comment

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

I chose to move forward with this PR because it's been open a while and then to revisit with moving these tests to the newer style as doing both at once is likely a rabbit hole. This test is a copy of the one above but returning a response with the new fields.

}
prFeatures, err := opts.Detector.PullRequestFeatures()
if err != nil {
return err
Copy link
Member Author

Choose a reason for hiding this comment

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

This error isn't tested. We could inject a detector that errors here. I'd be happy to add that test and ensure this error is wrapped but I'm not exactly sure what our approach to testing is yet and I see some other uncovered behaviour. It's pretty low risk. Let me know.

@williammartin williammartin requested a review from mislav May 24, 2023 14:09
return runCommandWithDetector(rt, branch, isTTY, cli, &fd.DisabledDetectorMock{})
}

func runCommandWithDetector(rt http.RoundTripper, branch string, isTTY bool, cli string, detector fd.Detector) (*test.CmdOut, error) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Tip: Instead of introducing a new test helper that you will immediately clean up in a followup PR, the new test could have just invoked statusRun() directly. This PR is not making changes to any Cobra command behavior, so we don't need to test the Cobra parts of gh pr status.

Copy link
Member Author

@williammartin williammartin May 24, 2023

Choose a reason for hiding this comment

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

Yeh, I'm aware that's the general goal but I prefer the current approach. To call statusRun directly I'd need to do the plumbing in the test to set up opts and I'd prefer to have that plumbing informed by the needs of the rest of the tests e.g. the last one that uses old style (as I understand it) rs.Register.

Seemed simpler for review and in order to ensure we're only moving one shared pattern to the new world to make it reasonably boring and obvious with a helper.

Edit: That is, assuming I understand you correctly 😬

@williammartin williammartin requested a review from samcoe May 24, 2023 16:21
@williammartin
Copy link
Member Author

williammartin commented May 24, 2023

Requested one hopefully final review from @samcoe and then I'll get this merged in the morning.

@mislav we talked about squash vs merge before. I've been pretty careful with the slicing of these commits so that they make sense in isolation (grrr for that one commit that failed linting). I'd prefer to retain the history in this case if that's alright with you. I feel like 3/10 strongly about this though, so don't feel bad if you think squash is better.

@mislav
Copy link
Contributor

mislav commented May 25, 2023

I'd prefer to retain the history in this case if that's alright with you.

For sure 👍 You're welcome to do anything with the history right before a merge.

@williammartin williammartin merged commit b292dc4 into trunk May 25, 2023
@williammartin williammartin deleted the wm/counts-by-state branch May 25, 2023 10:38
renovate bot referenced this pull request in scottames/dots Jun 13, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [alajmo/mani](https://togithub.com/alajmo/mani) | minor | `v0.23.0` ->
`v0.25.0` |
| [aquaproj/aqua-registry](https://togithub.com/aquaproj/aqua-registry)
| minor | `v4.6.0` -> `v4.17.0` |
| [cli/cli](https://togithub.com/cli/cli) | minor | `v2.29.0` ->
`v2.30.0` |
| [dandavison/delta](https://togithub.com/dandavison/delta) | minor |
`0.15.1` -> `0.16.5` |
| [direnv/direnv](https://togithub.com/direnv/direnv) | patch |
`v2.32.2` -> `v2.32.3` |
| [fluxcd/flux2](https://togithub.com/fluxcd/flux2) | patch |
`v2.0.0-rc.3` -> `v2.0.0-rc.5` |
| [golangci/golangci-lint](https://togithub.com/golangci/golangci-lint)
| minor | `v1.52.2` -> `v1.53.2` |
| [junegunn/fzf](https://togithub.com/junegunn/fzf) | minor | `0.40.0`
-> `0.41.1` |
| [starship/starship](https://togithub.com/starship/starship) | minor |
`v1.14.2` -> `v1.15.0` |
| [twpayne/chezmoi](https://togithub.com/twpayne/chezmoi) | minor |
`v2.33.6` -> `v2.34.1` |
| [weaveworks/eksctl](https://togithub.com/weaveworks/eksctl) | minor |
`v0.141.0` -> `v0.144.0` |

---

### Release Notes

<details>
<summary>alajmo/mani</summary>

### [`v0.25.0`](https://togithub.com/alajmo/mani/releases/tag/v0.25.0)

[Compare
Source](https://togithub.com/alajmo/mani/compare/v0.24.0...v0.25.0)

##### Features

-   Add more box styles to table and tree output

##### Misc

-   Update golang to 1.20.0

### [`v0.24.0`](https://togithub.com/alajmo/mani/releases/tag/v0.24.0)

[Compare
Source](https://togithub.com/alajmo/mani/compare/v0.23.0...v0.24.0)

##### Features

-   Add ability to create/sync remotes

</details>

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

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

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


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

#### 🎉 New Packages


[#&#8203;12976](https://togithub.com/aquaproj/aqua-registry/issues/12976)
[knadh/listmonk](https://togithub.com/knadh/listmonk): High performance,
self-hosted, newsletter and mailing list manager with a modern
dashboard. Single binary app

[#&#8203;13007](https://togithub.com/aquaproj/aqua-registry/issues/13007)
[koki-develop/gat](https://togithub.com/koki-develop/gat): cat
alternative written in Go

[#&#8203;13010](https://togithub.com/aquaproj/aqua-registry/issues/13010)
[ktock/container2wasm](https://togithub.com/ktock/container2wasm):
Container to WASM converter

[#&#8203;12964](https://togithub.com/aquaproj/aqua-registry/issues/12964)
[terramate-io/terramate](https://togithub.com/terramate-io/terramate):
Terramate adds powerful capabilities such as code generation, stacks,
orchestration, change detection, data sharing and more to Terraform

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

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


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

#### 🎉 New Packages


[#&#8203;12958](https://togithub.com/aquaproj/aqua-registry/issues/12958)
[caarlos0/svu](https://togithub.com/caarlos0/svu): Semantic Version Util

#### Fixes


[#&#8203;12900](https://togithub.com/aquaproj/aqua-registry/issues/12900)
loeffel-io/ls-lint: Fix `files`

Follow up
[#&#8203;12669](https://togithub.com/aquaproj/aqua-registry/issues/12669)


[#&#8203;12874](https://togithub.com/aquaproj/aqua-registry/issues/12874)
goreleaser/nfpm: Support old versions

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

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


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

#### 🎉 New Packages


[#&#8203;12853](https://togithub.com/aquaproj/aqua-registry/issues/12853)
[datarootsio/tf-profile](https://togithub.com/datarootsio/tf-profile):
CLI tool to profile Terraform runs, written in Go
[@&#8203;ponkio-o](https://togithub.com/ponkio-o)

#### Fixes


[#&#8203;12814](https://togithub.com/aquaproj/aqua-registry/issues/12814)
soywod/himalaya: Follow up changes of himalaya v0.8.0

https://github.com/soywod/himalaya/releases/tag/v0.8.0

> Changed release archive extensions from .tar.gz to .tgz.

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

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


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

#### Fixes


[#&#8203;12805](https://togithub.com/aquaproj/aqua-registry/issues/12805)
google/go-jsonnet: Add commands `jsonnet-lint` and `jsonnet-deps`
[@&#8203;zephyros-dev](https://togithub.com/zephyros-dev)

https://github.com/google/jsonnet/releases/tag/v0.20.0

> jsonnet-go specific updates:
> jsonnet-deps and jsonnet-lint are now included in releases


[#&#8203;12806](https://togithub.com/aquaproj/aqua-registry/issues/12806)
google/go-jsonnet: Fix configuration by `aqua-registry scaffold --deep
google/go-jsonnet`

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

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


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

#### 🎉 New Packages


[#&#8203;12801](https://togithub.com/aquaproj/aqua-registry/issues/12801)
[sourcegraph/src-cli](https://togithub.com/sourcegraph/src-cli):
Sourcegraph CLI

#### Fixes


[#&#8203;12804](https://togithub.com/aquaproj/aqua-registry/issues/12804)
cloudquery/cloudquery

[#&#8203;12802](https://togithub.com/aquaproj/aqua-registry/issues/12802)
dandavison/delta: Follow up changes of delta 0.16.4

https://github.com/dandavison/delta/releases/tag/0.16.4

> This release does not contain binaries for x86\_64-unknown-linux-musl,
i686-unknown-linux-gnu, arm-unknown-linux-gnueabihf, or
aarch64-unknown-linux-gnu because the cross-compilation GitHub Actions
jobs were broken at the time of release. I'll issue a follow-up release
including them when that's fixed.

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

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


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

#### 🎉 New Packages


[#&#8203;12673](https://togithub.com/aquaproj/aqua-registry/issues/12673)
[crates.io/fw](https://togithub.com/brocode/fw): faster workspace
management

#### Fixes


[#&#8203;12771](https://togithub.com/aquaproj/aqua-registry/issues/12771)
exoscale/cli: Follow up changes of exo v1.70.0

https://github.com/exoscale/cli/blob/v1.70.0/CHANGELOG.md#improvements

> Update MacOS compiled unified binary name to be inline with others

-
[https://github.com/exoscale/cli/pull/517](https://togithub.com/exoscale/cli/pull/517)

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

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


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

#### 🎉 New Packages


[#&#8203;12668](https://togithub.com/aquaproj/aqua-registry/issues/12668)
[k1LoW/gh-do](https://togithub.com/k1LoW/gh-do): gh-do is a tool to do
anything using GitHub credentials

[#&#8203;12669](https://togithub.com/aquaproj/aqua-registry/issues/12669)
[loeffel-io/ls-lint](https://togithub.com/loeffel-io/ls-lint): An
extremely fast directory and filename linter - Bring some structure to
your project filesystem
[@&#8203;ponkio-o](https://togithub.com/ponkio-o)

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

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


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

#### 🎉 New Packages


[#&#8203;12613](https://togithub.com/aquaproj/aqua-registry/issues/12613)
[tree-sitter/tree-sitter](https://togithub.com/tree-sitter/tree-sitter):
An incremental parsing system for programming tools
[@&#8203;CrystalMethod](https://togithub.com/CrystalMethod)

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

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


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

#### Fixes


[#&#8203;12590](https://togithub.com/aquaproj/aqua-registry/issues/12590)
docker/cli

[#&#8203;12594](https://togithub.com/aquaproj/aqua-registry/issues/12594)
gotestyourself/gotestsum

[#&#8203;12593](https://togithub.com/aquaproj/aqua-registry/issues/12593)
hidetatz/kubecolor: Exclude Windows


https://github.com/hidetatz/kubecolor/commit/30802265cfd3819d8fc771edaf5dae353cf15f17


[#&#8203;12591](https://togithub.com/aquaproj/aqua-registry/issues/12591)
kubeshark/kubeshark

[#&#8203;12592](https://togithub.com/aquaproj/aqua-registry/issues/12592)
yamafaktory/jql

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

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


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

#### 🎉 New Packages


[#&#8203;12379](https://togithub.com/aquaproj/aqua-registry/issues/12379)
[aquaproj/aqua-registry-updater](https://togithub.com/aquaproj/aqua-registry-updater):
Renovate alternative specific to aqua-registry. Overcome Renovate's
scalability issue

[#&#8203;12558](https://togithub.com/aquaproj/aqua-registry/issues/12558)
[charmbracelet/mods](https://togithub.com/charmbracelet/mods): AI on the
command line [@&#8203;sheldonhull](https://togithub.com/sheldonhull)

[#&#8203;12378](https://togithub.com/aquaproj/aqua-registry/issues/12378)
[matryer/moq](https://togithub.com/matryer/moq): Interface mocking tool
for go generate

#### Others


[#&#8203;12221](https://togithub.com/aquaproj/aqua-registry/issues/12221)
Introduced
[aqua-registry-updater](https://togithub.com/aquaproj/aqua-registry-updater)
instead of Renovate to update packages continuously

aqua-registry has too many aqua packages for Whitesource Renovate to
work well.
We tuned Renovate configuration, but we couldn't solve the issue
completely.
Renovate called many GitHub API unnecessarily.
We thought it was difficult to solve the issue by Renovate because

-   Renovate was complicated
-   Renovate's specification was unclear
-   Renovate outputted many logs so it was bothersome to read logs
-   Renovate log wasn't so helpful to solve the issue at this time
- The issue was an edge case for Renovate, so the same issue wouldn't
occur in others. So we couldn't expect Renovate was updated to solve the
issue

And we thought it wasn't so difficult to develop a tool to update aqua
packages, so we decided to develop aqua-registry-updater instead of
Renovate.

aqua-registry-updater works well and solves the issue.

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

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


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

#### 🎉 New Packages


[#&#8203;12361](https://togithub.com/aquaproj/aqua-registry/issues/12361)
[kubernetes-sigs/zeitgeist](https://togithub.com/kubernetes-sigs/zeitgeist):
Zeitgeist: the language-agnostic dependency checker

[#&#8203;12371](https://togithub.com/aquaproj/aqua-registry/issues/12371)
[shihanng/tfvar](https://togithub.com/shihanng/tfvar): Terraform's
variable definitions template generator

[#&#8203;12352](https://togithub.com/aquaproj/aqua-registry/issues/12352)
[utkuozdemir/pv-migrate](https://togithub.com/utkuozdemir/pv-migrate):
CLI tool to easily migrate Kubernetes persistent volumes
[@&#8203;ponkio-o](https://togithub.com/ponkio-o)

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

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


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

#### Fixes


[#&#8203;12344](https://togithub.com/aquaproj/aqua-registry/issues/12344)
orf/gping: Follow up changes of gping-v1.11.0

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

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


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

#### 🎉 New Packages


[#&#8203;12314](https://togithub.com/aquaproj/aqua-registry/issues/12314)
[crates.io/skim](https://togithub.com/crates.io/skim): Fuzzy Finder in
rust! `aqua >= v2.8.0`

[#&#8203;12314](https://togithub.com/aquaproj/aqua-registry/issues/12314)
[crates.io/broot](https://dystroy.org/broot): A new file manager `aqua
>= v2.8.0`

#### Fixes


[#&#8203;12325](https://togithub.com/aquaproj/aqua-registry/issues/12325)
Byron/dua-cli: Update settings by `aqua-registry scaffold --deep`

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

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


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

#### Fixes


[#&#8203;12220](https://togithub.com/aquaproj/aqua-registry/issues/12220)
bep/s3deploy: Support PKG format. aqua >= v2.7.1

[#&#8203;12291](https://togithub.com/aquaproj/aqua-registry/issues/12291)
charmbracelet/vhs: Follow up changes of vhs v0.5.0

</details>

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

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

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

#### What's New

- Support for nested aliases by
[@&#8203;samcoe](https://togithub.com/samcoe) in
[https://github.com/cli/cli/pull/7457](https://togithub.com/cli/cli/pull/7457)
- `repo set-default --view` can now be called without a repo argument by
[@&#8203;Jackenmen](https://togithub.com/Jackenmen) in
[https://github.com/cli/cli/pull/7441](https://togithub.com/cli/cli/pull/7441)

#### What's Changed

- Color control and sensible defaults in modern terminals by
[@&#8203;rick-kilgore](https://togithub.com/rick-kilgore) in
[https://github.com/cli/cli/pull/7354](https://togithub.com/cli/cli/pull/7354)
- Fix windows crash by bumping wincred by
[@&#8203;mislav](https://togithub.com/mislav) in
[https://github.com/cli/cli/pull/7459](https://togithub.com/cli/cli/pull/7459)
- Update browser package to avoid Windows crash by
[@&#8203;mislav](https://togithub.com/mislav) in
[https://github.com/cli/cli/pull/7474](https://togithub.com/cli/cli/pull/7474)
- `release upload` sanitizes asset filenames prior to uploading by
[@&#8203;jtpetty](https://togithub.com/jtpetty) in
[https://github.com/cli/cli/pull/7477](https://togithub.com/cli/cli/pull/7477)
- `pr status` uses lighter API in supported environments by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/7462](https://togithub.com/cli/cli/pull/7462)
- All commands start up time improvements by
[@&#8203;mislav](https://togithub.com/mislav) in
[https://github.com/cli/cli/pull/7487](https://togithub.com/cli/cli/pull/7487)
- More commands use latin matching filter by
[@&#8203;benjlevesque](https://togithub.com/benjlevesque) in
[https://github.com/cli/cli/pull/7492](https://togithub.com/cli/cli/pull/7492)
- `pr create` respects GH_REPO env variable by
[@&#8203;ffalor](https://togithub.com/ffalor) in
[https://github.com/cli/cli/pull/7445](https://togithub.com/cli/cli/pull/7445)
- Do not fall back to legacy template if template selector returns nil
by [@&#8203;samcoe](https://togithub.com/samcoe) in
[https://github.com/cli/cli/pull/7444](https://togithub.com/cli/cli/pull/7444)

#### All the Details

- Fix release guard for deployment workflow by
[@&#8203;mislav](https://togithub.com/mislav) in
[https://github.com/cli/cli/pull/7424](https://togithub.com/cli/cli/pull/7424)
- Introduce helpTopics type and reduce duplication across commands by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/7414](https://togithub.com/cli/cli/pull/7414)
- Allow `gh repo set-default --view` without repo argument by
[@&#8203;Jackenmen](https://togithub.com/Jackenmen) in
[https://github.com/cli/cli/pull/7441](https://togithub.com/cli/cli/pull/7441)
- make prompt default values visible and also the color controllable in…
by [@&#8203;rick-kilgore](https://togithub.com/rick-kilgore) in
[https://github.com/cli/cli/pull/7354](https://togithub.com/cli/cli/pull/7354)
- Mention setting GH_ENTERPRISE_TOKEN when GH_HOST is set by
[@&#8203;goldstar611](https://togithub.com/goldstar611) in
[https://github.com/cli/cli/pull/7449](https://togithub.com/cli/cli/pull/7449)
- respect GH_REPO env variable in `pr create` by
[@&#8203;ffalor](https://togithub.com/ffalor) in
[https://github.com/cli/cli/pull/7445](https://togithub.com/cli/cli/pull/7445)
- Do not fall back to legacy template if template selector returns nil
by [@&#8203;samcoe](https://togithub.com/samcoe) in
[https://github.com/cli/cli/pull/7444](https://togithub.com/cli/cli/pull/7444)
- Remove old, unused detector fields by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/7458](https://togithub.com/cli/cli/pull/7458)
- Fix windows crash by bumping wincred by
[@&#8203;mislav](https://togithub.com/mislav) in
[https://github.com/cli/cli/pull/7459](https://togithub.com/cli/cli/pull/7459)
- Get some additional confidence around PullRequest ChecksStatus by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/7454](https://togithub.com/cli/cli/pull/7454)
- build(deps): bump github.com/stretchr/testify from 1.8.1 to 1.8.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/7460](https://togithub.com/cli/cli/pull/7460)
- build(deps): bump github.com/stretchr/testify from 1.8.2 to 1.8.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/7469](https://togithub.com/cli/cli/pull/7469)
- Update triage.md with severity descriptions by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/7473](https://togithub.com/cli/cli/pull/7473)
- Clarify docs regarding what is listed when running gh workflow list by
[@&#8203;torgeir](https://togithub.com/torgeir) in
[https://github.com/cli/cli/pull/7475](https://togithub.com/cli/cli/pull/7475)
- build(deps): bump github.com/mattn/go-isatty from 0.0.18 to 0.0.19 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/7476](https://togithub.com/cli/cli/pull/7476)
- Update browser package to avoid Windows crash by
[@&#8203;mislav](https://togithub.com/mislav) in
[https://github.com/cli/cli/pull/7474](https://togithub.com/cli/cli/pull/7474)
- Updated to sanitize asset filename prior to uploading. Fixes
[#&#8203;7024](https://togithub.com/cli/cli/issues/7024) by
[@&#8203;jtpetty](https://togithub.com/jtpetty) in
[https://github.com/cli/cli/pull/7477](https://togithub.com/cli/cli/pull/7477)
- replace prompts in `gh run` commands by
[@&#8203;vilmibm](https://togithub.com/vilmibm) in
[https://github.com/cli/cli/pull/7302](https://togithub.com/cli/cli/pull/7302)
- Allow nested aliases by [@&#8203;samcoe](https://togithub.com/samcoe)
in
[https://github.com/cli/cli/pull/7457](https://togithub.com/cli/cli/pull/7457)
- Use new GQL fields that support CheckRun and StatusContext counts by
state by [@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/7462](https://togithub.com/cli/cli/pull/7462)
- Speed up gh start up time by
[@&#8203;mislav](https://togithub.com/mislav) in
[https://github.com/cli/cli/pull/7487](https://togithub.com/cli/cli/pull/7487)
- Do not generate docs for aliases by
[@&#8203;samcoe](https://togithub.com/samcoe) in
[https://github.com/cli/cli/pull/7497](https://togithub.com/cli/cli/pull/7497)
- fix: apply latin matching filter to more fields by
[@&#8203;benjlevesque](https://togithub.com/benjlevesque) in
[https://github.com/cli/cli/pull/7492](https://togithub.com/cli/cli/pull/7492)
- build(deps): bump github.com/stretchr/testify from 1.8.3 to 1.8.4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/7510](https://togithub.com/cli/cli/pull/7510)

#### New Contributors

- [@&#8203;williammartin](https://togithub.com/williammartin) made their
first contribution in
[https://github.com/cli/cli/pull/7414](https://togithub.com/cli/cli/pull/7414)
- [@&#8203;rick-kilgore](https://togithub.com/rick-kilgore) made their
first contribution in
[https://github.com/cli/cli/pull/7354](https://togithub.com/cli/cli/pull/7354)
- [@&#8203;goldstar611](https://togithub.com/goldstar611) made their
first contribution in
[https://github.com/cli/cli/pull/7449](https://togithub.com/cli/cli/pull/7449)
- [@&#8203;torgeir](https://togithub.com/torgeir) made their first
contribution in
[https://github.com/cli/cli/pull/7475](https://togithub.com/cli/cli/pull/7475)

**Full Changelog**: https://github.com/cli/cli/compare/v2.29.0...v2.30.0

</details>

<details>
<summary>dandavison/delta</summary>

###
[`v0.16.5`](https://togithub.com/dandavison/delta/releases/tag/0.16.5)

[Compare
Source](https://togithub.com/dandavison/delta/compare/0.16.4...0.16.5)

This is a follow-up release providing the various binaries that were not
released with 0.16.4. It also makes some adjustments to delta's
(rip)grep support.

#### What's Changed

- Increase number of characters shown in submodule hashes by
[@&#8203;dandavison](https://togithub.com/dandavison) in
[https://github.com/dandavison/delta/pull/1421](https://togithub.com/dandavison/delta/pull/1421)
- Fix typo in publishing build job & restore cross-compilation by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1430](https://togithub.com/dandavison/delta/pull/1430)
- [`3819e94`](https://togithub.com/dandavison/delta/commit/3819e94) Drop
grep-header-style option by
[@&#8203;dandavison](https://togithub.com/dandavison)
- [`a28231a`](https://togithub.com/dandavison/delta/commit/a28231a)
Honor grep-header-decoration-style for ripgrep output by
[@&#8203;dandavison](https://togithub.com/dandavison)

**Full Changelog**:
https://github.com/dandavison/delta/compare/0.16.4...0.16.5

###
[`v0.16.4`](https://togithub.com/dandavison/delta/releases/tag/0.16.4)

[Compare
Source](https://togithub.com/dandavison/delta/compare/0.15.1...0.16.4)

It's 6 months since the last release so this one brings quite a few
changes. Thanks very much to all contributors, especially
[@&#8203;nickelc](https://togithub.com/nickelc) for a huge number of
contributions, and [@&#8203;wescande](https://togithub.com/wescande) for
his work on improving whitespace highlighting. With this release delta
can now display grep output in (hopefully) exactly the same layout that
ripgrep does, but adding syntax highlighting, hyperlinks, and
navigation. Use `ripgrep --json ... | delta` for that, or set
`grep-output-type = ripgrep` to get that output style from `git grep`
etc.

This release does not contain binaries for `x86_64-unknown-linux-musl`,
`i686-unknown-linux-gnu`, `arm-unknown-linux-gnueabihf`, or
`aarch64-unknown-linux-gnu` because the cross-compilation GitHub Actions
jobs were broken at the time of release. I'll issue a follow-up release
including them when that's fixed.

#### What's Changed

- Address deprecated clap features by
[@&#8203;tjquillan](https://togithub.com/tjquillan) in
[https://github.com/dandavison/delta/pull/1251](https://togithub.com/dandavison/delta/pull/1251)
- Fix clippy warnings by [@&#8203;nickelc](https://togithub.com/nickelc)
in
[https://github.com/dandavison/delta/pull/1298](https://togithub.com/dandavison/delta/pull/1298)
- Replace unmaintained/outdated GitHub Actions by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1317](https://togithub.com/dandavison/delta/pull/1317)
- Reduce allocations during `--show-colors` by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1315](https://togithub.com/dandavison/delta/pull/1315)
- Fix the`--show-themes` command by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1320](https://togithub.com/dandavison/delta/pull/1320)
- Fixed broken link to README by
[@&#8203;zonuexe](https://togithub.com/zonuexe) in
[https://github.com/dandavison/delta/pull/1185](https://togithub.com/dandavison/delta/pull/1185)
- Update `git2` to 0.16.1 by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1323](https://togithub.com/dandavison/delta/pull/1323)
- Fix warning from bat for an unknown syntax theme by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1319](https://togithub.com/dandavison/delta/pull/1319)
- Add `gruvmax-fang` theme by
[@&#8203;MaxFangX](https://togithub.com/MaxFangX) in
[https://github.com/dandavison/delta/pull/1291](https://togithub.com/dandavison/delta/pull/1291)
- Spelling by [@&#8203;jsoref](https://togithub.com/jsoref) in
[https://github.com/dandavison/delta/pull/1257](https://togithub.com/dandavison/delta/pull/1257)
- Update `clap` to 4.1 by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1322](https://togithub.com/dandavison/delta/pull/1322)
- Encapsulate `git2` types by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1326](https://togithub.com/dandavison/delta/pull/1326)
- Update dependencies & switch back to the `dirs` crate by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1325](https://togithub.com/dandavison/delta/pull/1325)
- Return the `GitRemoteRepo` type directly by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1328](https://togithub.com/dandavison/delta/pull/1328)
- Added config option. by
[@&#8203;ShogunPanda](https://togithub.com/ShogunPanda) in
[https://github.com/dandavison/delta/pull/1324](https://togithub.com/dandavison/delta/pull/1324)
- Add Winget Releaser workflow by
[@&#8203;sitiom](https://togithub.com/sitiom) in
[https://github.com/dandavison/delta/pull/1331](https://togithub.com/dandavison/delta/pull/1331)
- Get git's minus/plus style from config instead of copying it around by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1329](https://togithub.com/dandavison/delta/pull/1329)
- Add methods for getting `GitConfig` as reference by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1336](https://togithub.com/dandavison/delta/pull/1336)
- Rename `git_config_entry` module to `remote` by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1337](https://togithub.com/dandavison/delta/pull/1337)
- Tips and tricks manual section by
[@&#8203;dandavison](https://togithub.com/dandavison) in
[https://github.com/dandavison/delta/pull/1339](https://togithub.com/dandavison/delta/pull/1339)
- Set language specifiers for code blocks and fix links in manual by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1340](https://togithub.com/dandavison/delta/pull/1340)
- Derive the default for enums with `#[derive(Default)]`/`#[default]` by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1341](https://togithub.com/dandavison/delta/pull/1341)
- Add discord-dark theme by
[@&#8203;ILikePlayingGames](https://togithub.com/ILikePlayingGames) in
[https://github.com/dandavison/delta/pull/1334](https://togithub.com/dandavison/delta/pull/1334)
- Merge the different `GitConfig` constructors for a config file by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1342](https://togithub.com/dandavison/delta/pull/1342)
- Remove manual line-wrapping by
[@&#8203;dandavison](https://togithub.com/dandavison) in
[https://github.com/dandavison/delta/pull/1350](https://togithub.com/dandavison/delta/pull/1350)
- Add link to similar project walles/riff by
[@&#8203;walles](https://togithub.com/walles) in
[https://github.com/dandavison/delta/pull/1362](https://togithub.com/dandavison/delta/pull/1362)
- add: installation instructions for conda/mamba by
[@&#8203;YYYasin19](https://togithub.com/YYYasin19) in
[https://github.com/dandavison/delta/pull/1371](https://togithub.com/dandavison/delta/pull/1371)
- Clarify how to use delta with `tmux` by
[@&#8203;isak102](https://togithub.com/isak102) in
[https://github.com/dandavison/delta/pull/1402](https://togithub.com/dandavison/delta/pull/1402)
- Update `bitflags` to 2.2 by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1361](https://togithub.com/dandavison/delta/pull/1361)
- Fix some typos by [@&#8203;goggle](https://togithub.com/goggle) in
[https://github.com/dandavison/delta/pull/1379](https://togithub.com/dandavison/delta/pull/1379)
- Remove unneeded `extern crate` statements by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1345](https://togithub.com/dandavison/delta/pull/1345)
- Downgrade and pin the `bytelines` crate by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1378](https://togithub.com/dandavison/delta/pull/1378)
- Improve manual build job by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1404](https://togithub.com/dandavison/delta/pull/1404)
- Replace deprecated `error_chain` crate with `anyhow` by
[@&#8203;nickelc](https://togithub.com/nickelc) in
[https://github.com/dandavison/delta/pull/1405](https://togithub.com/dandavison/delta/pull/1405)
- Fix submodule diff parsing by
[@&#8203;th1000s](https://togithub.com/th1000s) in
[https://github.com/dandavison/delta/pull/1413](https://togithub.com/dandavison/delta/pull/1413)
- Fix warning highlight for trailing whitespace by
[@&#8203;wescande](https://togithub.com/wescande) in
[https://github.com/dandavison/delta/pull/1037](https://togithub.com/dandavison/delta/pull/1037)
- Misc tab refactoring by
[@&#8203;th1000s](https://togithub.com/th1000s) in
[https://github.com/dandavison/delta/pull/1424](https://togithub.com/dandavison/delta/pull/1424)
- manual: fix link to using `delta` on Windows by
[@&#8203;mataha](https://togithub.com/mataha) in
[https://github.com/dandavison/delta/pull/1428](https://togithub.com/dandavison/delta/pull/1428)
- Introduce `grep-output-type` option: ripgrep or classic by
[@&#8203;dandavison](https://togithub.com/dandavison) in
[https://github.com/dandavison/delta/pull/1410](https://togithub.com/dandavison/delta/pull/1410)

#### New Contributors

- [@&#8203;tjquillan](https://togithub.com/tjquillan) made their first
contribution in
[https://github.com/dandavison/delta/pull/1251](https://togithub.com/dandavison/delta/pull/1251)
- [@&#8203;nickelc](https://togithub.com/nickelc) made their first
contribution in
[https://github.com/dandavison/delta/pull/1298](https://togithub.com/dandavison/delta/pull/1298)
- [@&#8203;zonuexe](https://togithub.com/zonuexe) made their first
contribution in
[https://github.com/dandavison/delta/pull/1185](https://togithub.com/dandavison/delta/pull/1185)
- [@&#8203;MaxFangX](https://togithub.com/MaxFangX) made their first
contribution in
[https://github.com/dandavison/delta/pull/1291](https://togithub.com/dandavison/delta/pull/1291)
- [@&#8203;jsoref](https://togithub.com/jsoref) made their first
contribution in
[https://github.com/dandavison/delta/pull/1257](https://togithub.com/dandavison/delta/pull/1257)
- [@&#8203;ShogunPanda](https://togithub.com/ShogunPanda) made their
first contribution in
[https://github.com/dandavison/delta/pull/1324](https://togithub.com/dandavison/delta/pull/1324)
- [@&#8203;sitiom](https://togithub.com/sitiom) made their first
contribution in
[https://github.com/dandavison/delta/pull/1331](https://togithub.com/dandavison/delta/pull/1331)
- [@&#8203;ILikePlayingGames](https://togithub.com/ILikePlayingGames)
made their first contribution in
[https://github.com/dandavison/delta/pull/1334](https://togithub.com/dandavison/delta/pull/1334)
- [@&#8203;walles](https://togithub.com/walles) made their first
contribution in
[https://github.com/dandavison/delta/pull/1362](https://togithub.com/dandavison/delta/pull/1362)
- [@&#8203;YYYasin19](https://togithub.com/YYYasin19) made their first
contribution in
[https://github.com/dandavison/delta/pull/1371](https://togithub.com/dandavison/delta/pull/1371)
- [@&#8203;isak102](https://togithub.com/isak102) made their first
contribution in
[https://github.com/dandavison/delta/pull/1402](https://togithub.com/dandavison/delta/pull/1402)
- [@&#8203;goggle](https://togithub.com/goggle) made their first
contribution in
[https://github.com/dandavison/delta/pull/1379](https://togithub.com/dandavison/delta/pull/1379)
- [@&#8203;mataha](https://togithub.com/mataha) made their first
contribution in
[https://github.com/dandavison/delta/pull/1428](https://togithub.com/dandavison/delta/pull/1428)

**Full Changelog**:
https://github.com/dandavison/delta/compare/0.15.1...0.16.4

</details>

<details>
<summary>direnv/direnv</summary>

### [`v2.32.3`](https://togithub.com/direnv/direnv/releases/tag/v2.32.3)

[Compare
Source](https://togithub.com/direnv/direnv/compare/v2.32.2...v2.32.3)

# 2.32.3 / 2023-05-20

- fix: incorrect escape sequences during Loads under git-bash (Windows)
([#&#8203;1085](https://togithub.com/direnv/direnv/issues/1085))
- fix: skip some tests for IBM Z mainframe's z/OS operating system
([#&#8203;1094](https://togithub.com/direnv/direnv/issues/1094))
- fix: stdlib: use_guix: Switch to guix shell.
([#&#8203;1045](https://togithub.com/direnv/direnv/issues/1045))
- fix: stat the already open rc file rather than another path based one
on it ([#&#8203;1044](https://togithub.com/direnv/direnv/issues/1044))
- fix: remove deprecated io/ioutil uses
([#&#8203;1042](https://togithub.com/direnv/direnv/issues/1042))
- fix: spelling fixes
([#&#8203;1041](https://togithub.com/direnv/direnv/issues/1041))
- fix: appease Go 1.19 gofmt
([#&#8203;1040](https://togithub.com/direnv/direnv/issues/1040))
- fix: pass BASH_PATH to make, matches the nixpkgs derivation
([#&#8203;1006](https://togithub.com/direnv/direnv/issues/1006))
- fix: stdlib/layout_python: exclude patchlevel from $python_version
([#&#8203;1033](https://togithub.com/direnv/direnv/issues/1033))
- doc: add Windows installation with winget
([#&#8203;1096](https://togithub.com/direnv/direnv/issues/1096))
- doc: link 12factor webpage for more clarity
([#&#8203;1095](https://togithub.com/direnv/direnv/issues/1095))
-   website: add Plausible analytics

</details>

<details>
<summary>fluxcd/flux2</summary>

###
[`v2.0.0-rc.5`](https://togithub.com/fluxcd/flux2/releases/tag/v2.0.0-rc.5)

[Compare
Source](https://togithub.com/fluxcd/flux2/compare/v2.0.0-rc.4...v2.0.0-rc.5)

#### Highlights

This is the 5th release candidate of Flux v2.0 GA. Users are advised to
upgrade from older versions to `v2.0.0-rc.5` as soon as possible.

Flux `v2.0.0-rc.5` addresses a regression that was introduced in
`v2.0.0-rc.4`. This regression caused a disruption in the compatibility
with Git servers utilizing v2 of the wire protocol, such as Azure Devops
and AWS CodeCommit.

:bulb: For upgrading from v0.x, please see [the procedure documented in
RC.1](https://togithub.com/fluxcd/flux2/releases/tag/v2.0.0-rc.1).

⚠️ Note that
[`v2.0.0-rc.4`](https://togithub.com/fluxcd/flux2/releases/tag/v2.0.0-rc.1)
updated all components to use [Kustomize
v5](https://togithub.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.0.0)
and [controller-runtime
v0.15](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.15.0),
both of which contain breaking changes.

##### Fixes and improvements

-   Fix support for Git v2 servers.
- Suppress misleading error message `[controller-runtime]
log.SetLogger(...) was never called...` (CLI).
- Include both revision and token in event metadata, if present
(helm-controller).
- Update source-controller to patch a vulnerability in Sigstore
(CVE-2023-33199)

#### Components Changelog

- source-controller
[v1.0.0-rc.5](https://togithub.com/fluxcd/source-controller/blob/v1.0.0-rc.5/CHANGELOG.md)
- image-automation-controller
[v0.34.1](https://togithub.com/fluxcd/image-automation-controller/blob/v0.34.1/CHANGELOG.md)
- helm-controller
[v0.34.1](https://togithub.com/fluxcd/helm-controller/blob/v0.34.1/CHANGELOG.md)

#### CLI Changelog

- PR [#&#8203;3943](https://togithub.com/fluxcd/flux2/issues/3943) -
[@&#8203;fluxcdbot](https://togithub.com/fluxcdbot) - Update toolkit
components, and git/go-git to v0.12.0
- PR [#&#8203;3940](https://togithub.com/fluxcd/flux2/issues/3940) -
[@&#8203;somtochiama](https://togithub.com/somtochiama) - Set controller
runtime logger in Azure e2e tests
- PR [#&#8203;3938](https://togithub.com/fluxcd/flux2/issues/3938) -
[@&#8203;aryan9600](https://togithub.com/aryan9600) - e2e: Run e2e Azure
tests for PRs to main if tests or wofklow changes
- PR [#&#8203;3932](https://togithub.com/fluxcd/flux2/issues/3932) -
[@&#8203;aryan9600](https://togithub.com/aryan9600) - Set
`controller-runtime` logger to a null logger

###
[`v2.0.0-rc.4`](https://togithub.com/fluxcd/flux2/releases/tag/v2.0.0-rc.4)

[Compare
Source](https://togithub.com/fluxcd/flux2/compare/v2.0.0-rc.3...v2.0.0-rc.4)

#### Highlights

This is the 4nd release candidate of Flux v2.0 GA. Users are advised to
upgrade from older versions to `v2.0.0-rc.4` as soon as possible.

Flux v2.0.0-rc.4 comes with support for **Kustomize 5.0**, **Helm 3.12**
and **Cosign 2.0**.

:bulb: For upgrading from v0.x, please see [the procedure documented in
RC.1](https://togithub.com/fluxcd/flux2/releases/tag/v2.0.0-rc.1).

⚠️ Note that Kustomize v5 contains breaking changes, please consult
their
[changelog](https://togithub.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.0.0)
for more details.

⚠️ The GitOps Toolkit and the Flux controllers have been updated to
[controller-runtime
v0.15](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.15.0)
which contains breaking changes that could affect 3rd-party controllers
that integrate with Flux.

##### Fixes and improvements

- Full support for Azure Workload Identity when connecting Flux to Azure
Container Registry, Azure Blog Storage and Azure Key Vault.
- New command `flux reconcile source chart` for pulling Helm OCI charts
on-demand from container registries (CLI).
- Retry OCI operations on network errors for `flux push artifact` (CLI).
- Support annotated Git tags with `.spec.ref.name` in `GitRepository`
(source-controller).
- Fix pulling Helm OCI charts from ACR when using Azure OIDC
(source-controller).
- Fix incorrect rate limiting for `HelmRelease` events
(notification-controller).
- All components have been updated to patch vulnerabilities in Docker
(CVE-2023-28840, CVE-2023-28841, CVE-2023-28842) and Sigstore
(CVE-2023-30551).

#### Components changelog

- source-controller
[v1.0.0-rc.4](https://togithub.com/fluxcd/source-controller/blob/v1.0.0-rc.4/CHANGELOG.md)
- kustomize-controller
[v1.0.0-rc.4](https://togithub.com/fluxcd/kustomize-controller/blob/v1.0.0-rc.4/CHANGELOG.md)
- notification-controller
[v1.0.0-rc.4](https://togithub.com/fluxcd/notification-controller/blob/v1.0.0-rc.4/CHANGELOG.md)
- helm-controller
[v0.34.0](https://togithub.com/fluxcd/helm-controller/blob/v0.34.0/CHANGELOG.md)
- image-reflector-controller
[v0.28.0](https://togithub.com/fluxcd/image-reflector-controller/blob/v0.28.0/CHANGELOG.md)
- image-automation-controller
[v0.34.0](https://togithub.com/fluxcd/image-automation-controller/blob/v0.34.0/CHANGELOG.md)

#### CLI Changelog

- PR [#&#8203;3929](https://togithub.com/fluxcd/flux2/issues/3929) -
[@&#8203;stefanprodan](https://togithub.com/stefanprodan) - Update Git
packages
- PR [#&#8203;3928](https://togithub.com/fluxcd/flux2/issues/3928) -
[@&#8203;stefanprodan](https://togithub.com/stefanprodan) - Update
kubectl to v1.27.2 in flux-cli image
- PR [#&#8203;3927](https://togithub.com/fluxcd/flux2/issues/3927) -
[@&#8203;dependabot](https://togithub.com/dependabot)\[bot] -
build(deps): bump github/codeql-action from 2.3.3 to 2.3.5
- PR [#&#8203;3926](https://togithub.com/fluxcd/flux2/issues/3926) -
[@&#8203;dependabot](https://togithub.com/dependabot)\[bot] -
build(deps): bump snyk/actions from
[`8061827`](https://togithub.com/fluxcd/flux2/commit/806182742461562b67788a64410098c9d9b96adb)
to
[`b98d498`](https://togithub.com/fluxcd/flux2/commit/b98d498629f1c368650224d6d212bf7dfa89e4bf)
- PR [#&#8203;3924](https://togithub.com/fluxcd/flux2/issues/3924) -
[@&#8203;hgranillo](https://togithub.com/hgranillo) - Fix break lines in
create helmrelease and source
- PR [#&#8203;3922](https://togithub.com/fluxcd/flux2/issues/3922) -
[@&#8203;fluxcdbot](https://togithub.com/fluxcdbot) - Update toolkit
components
- PR [#&#8203;3918](https://togithub.com/fluxcd/flux2/issues/3918) -
[@&#8203;somtochiama](https://togithub.com/somtochiama) - Retry oci push
operations
- PR [#&#8203;3910](https://togithub.com/fluxcd/flux2/issues/3910) -
[@&#8203;stefanprodan](https://togithub.com/stefanprodan) - Update
Kubernetes to v1.27 and Kustomize to v5.0
- PR [#&#8203;3903](https://togithub.com/fluxcd/flux2/issues/3903) -
[@&#8203;dependabot](https://togithub.com/dependabot)\[bot] -
build(deps): bump sigstore/cosign-installer from 3.0.3 to 3.0.5
- PR [#&#8203;3902](https://togithub.com/fluxcd/flux2/issues/3902) -
[@&#8203;dependabot](https://togithub.com/dependabot)\[bot] -
build(deps): bump actions/setup-go from 4.0.0 to 4.0.1
- PR [#&#8203;3901](https://togithub.com/fluxcd/flux2/issues/3901) -
[@&#8203;dependabot](https://togithub.com/dependabot)\[bot] -
build(deps): bump helm/kind-action from 1.5.0 to 1.7.0

</details>

<details>
<summary>golangci/golangci-lint</summary>

###
[`v1.53.2`](https://togithub.com/golangci/golangci-lint/blob/HEAD/CHANGELOG.md#v1532)

[Compare
Source](https://togithub.com/golangci/golangci-lint/compare/v1.53.1...v1.53.2)

1.  updated linters
    -   `depguard`: from v2.0.1 to 2.1.0
2.  misc.
    -   `depguard`: throw error only when the linter is called

###
[`v1.53.1`](https://togithub.com/golangci/golangci-lint/blob/HEAD/CHANGELOG.md#v1531)

[Compare
Source](https://togithub.com/golangci/golangci-lint/compare/v1.53.0...v1.53.1)

1.  misc.
    -   `depguard`: fix GOROOT detection
- `importas`: fix duplication detection when aliases use regular
expression replacement pattern

###
[`v1.53.0`](https://togithub.com/golangci/golangci-lint/blob/HEAD/CHANGELOG.md#v1530)

[Compare
Source](https://togithub.com/golangci/golangci-lint/compare/v1.52.2...v1.53.0)

1.  new linters
    -   `gosmopolitan`: https://github.com/xen0n/gosmopolitan
    -   `mirror`: https://github.com/butuzov/mirror
    -   `tagalign`: https://github.com/4meepo/tagalign
    -   `zerologlint`: https://github.com/ykadowak/zerologlint
2.  updated linters
    -   `bodyclose`: bump to HEAD
    -   `containedctx`: from 1.0.2 to 1.0.3
    -   `depguard`: migrate to v2
    -   `errname`: from 0.1.9 to 0.1.10
    -   `exhaustive`: from 0.9.5 to 0.10.0
    -   `forbidigo`: better support for configuring complex rules
    -   `gci`: improve error message
    -   `ginkgolinter`: add suppress-async-assertion option
    -   `ginkgolinter`: from 0.9.0 to 0.12.0
    -   `go-critic`: from 0.7.0 to 0.8.1
    -   `go-errorlint`: from 1.4.0 to 1.4.2
    -   `gofumpt`: from 0.4.0 to 0.5.0
    -   `gosec`: convert global settings as map with proper key type
    -   `gosec`: from 2.15.0 to 2.16.0
- `importas`: detect duplicate alias or package in the configuration
    -   `importas`: fix typo in logs
    -   `ireturn`: from 0.1.1 to 0.2.0
    -   `musttag`: from 0.5.0 to 0.7.0
    -   `nakedret`: to 2.0.1
    -   `nilnil`: from 0.1.3 to 0.1.5
    -   `paralleltest`: from 1.0.6 to 1.0.7
    -   `revive`: from 1.3.1 to 1.3.2
    -   `tagliatelle`: from 0.4.0 to 0.5.0
    -   `usestdlibvars`: fix configuration
3.  misc.
    -   `golang.org/x/tools`: from 0.7.0 to 0.9.2
    -   add loongarch64 to the install script
    -   output: add colored-tab
    -   remove warning when the config file is explicitly stdin
    -   rules: support inverted path match
4.  Documentation
    -   `mnd`: clarify ignore usage examples to be regexps
    -   `tagliatelle`: update documentation
    -   improve features section
    -   update supported Go versions FAQ

</details>

<details>
<summary>junegunn/fzf</summary>

###
[`v0.41.1`](https://togithub.com/junegunn/fzf/blob/HEAD/CHANGELOG.md#&#8203;0411)

[Compare
Source](https://togithub.com/junegunn/fzf/compare/0.41.0...0.41.1)

- Fixed a bug where preview window is not updated when `--disabled` is
set and
    a reload is triggered by `change:reload` binding

###
[`v0.41.0`](https://togithub.com/junegunn/fzf/blob/HEAD/CHANGELOG.md#&#8203;0410)

[Compare
Source](https://togithub.com/junegunn/fzf/compare/0.40.0...0.41.0)

-   Added color name `preview-border` and `preview-scrollbar`
- Added new border style `block` which uses [block
elements](https://en.wikipedia.org/wiki/Block_Elements)
- `--scrollbar` can take two characters, one for the main window, the
other
    for the preview window
-   Putting it altogether:
    ```sh
fzf-tmux -p 80% --padding 1,2 --preview 'bat --style=plain
--color=always {}' \
        --color 'bg:237,bg+:235,gutter:237,border:238,scrollbar:236' \
--color 'preview-bg:235,preview-border:236,preview-scrollbar:234' \
        --preview-window 'border-block' --border block --scrollbar '▌▐'
    ```
-   Bug fixes and improvements

</details>

<details>
<summary>starship/starship</summary>

###
[`v1.15.0`](https://togithub.com/starship/starship/releases/tag/v1.15.0)

[Compare
Source](https://togithub.com/starship/starship/compare/v1.14.2...v1.15.0)

##### Features

- Add Solidity Module
([#&#8203;5047](https://togithub.com/starship/starship/issues/5047))
([b2ebd5b](https://togithub.com/starship/starship/commit/b2ebd5b50c62fe5eb1cf8f5b0f79deaff2edd059))
- add typechange to git_status module
([#&#8203;4829](https://togithub.com/starship/starship/issues/4829))
([edb96ca](https://togithub.com/starship/starship/commit/edb96cad580e5c414c34a4f64476a64a20595459))
- **aws:** support aws sso with automatic authentication refresh
([#&#8203;5170](https://togithub.com/starship/starship/issues/5170))
([297176b](https://togithub.com/starship/starship/commit/297176b0b8b9da34176d7b278837f77f960799b1))
- **azure:** subscription name aliases
([#&#8203;4949](https://togithub.com/starship/starship/issues/4949))
([27ffa37](https://togithub.com/starship/starship/commit/27ffa37cfdf2eff9874e543f88fa389bf5c2dae3))
- **gcloud:** add `detect_env_vars` option
([#&#8203;5166](https://togithub.com/starship/starship/issues/5166))
([d07a8e3](https://togithub.com/starship/starship/commit/d07a8e3668838223aeeb94e810a0b29806e35f78))
- **git_metrics:** add option to ignore submodules
([#&#8203;5052](https://togithub.com/starship/starship/issues/5052))
([ce01423](https://togithub.com/starship/starship/commit/ce014231521c981260ff7c1018acf694c65c97fe))
- **golang:** adding `mod_version` variable
([#&#8203;5177](https://togithub.com/starship/starship/issues/5177))
([351bf9d](https://togithub.com/starship/starship/commit/351bf9d0b382adcc3e073c1a293fd815bb623f37))
- **nodejs:** Add `expected_version` variable
([#&#8203;5081](https://togithub.com/starship/starship/issues/5081))
([70d2014](https://togithub.com/starship/starship/commit/70d2014f3447e616fb45b63b2793b256e19aa631))

##### Bug Fixes

- bump libz-ng-sys
([#&#8203;5218](https://togithub.com/starship/starship/issues/5218))
([6ab8f40](https://togithub.com/starship/starship/commit/6ab8f4061fe816a78a310c01a993a5a4690369ff))
- **config:** Make print-config not panic without a config
([#&#8203;5001](https://togithub.com/starship/starship/issues/5001))
([ce7f984](https://togithub.com/starship/starship/commit/ce7f984932a97b4ad3cd6e6ece8e1c3b6022ba99))
- ensure nested style variables are processed during formatting
([e5cec9e](https://togithub.com/starship/starship/commit/e5cec9ea50963a45bb1c209abc747ee1983dcabd))
- **presets:** Added ($style) to format in module 'sudo' in Bracketed
Segments Preset
([#&#8203;5146](https://togithub.com/starship/starship/issues/5146))
([1bd6db5](https://togithub.com/starship/starship/commit/1bd6db58307c1945c3b0cabec8d6663730394377))
- **snap:** Update snapcraft.yaml to add personal-files interface
([#&#8203;5131](https://togithub.com/starship/starship/issues/5131))
([b3ccc0f](https://togithub.com/starship/starship/commit/b3ccc0f05e451ada800d233613ef32756682249f))
- **style:** ensure nested style variables are processed during
formatting
([#&#8203;5120](https://togithub.com/starship/starship/issues/5120))
([e5cec9e](https://togithub.com/starship/starship/commit/e5cec9ea50963a45bb1c209abc747ee1983dcabd))
- update of presets and default configuration to reflect changes in Nerd
Fonts 3.0
([#&#8203;5162](https://togithub.com/starship/starship/issues/5162))
([2558c45](https://togithub.com/starship/starship/commit/2558c4588b5bcc404df474c948de0b72b109be01))

</details>

<details>
<summary>twpayne/chezmoi</summary>

###
[`v2.34.1`](https://togithub.com/twpayne/chezmoi/releases/tag/v2.34.1)

[Compare
Source](https://togithub.com/twpayne/chezmoi/compare/v2.34.0...v2.34.1)

#### What's Changed

- chore: Build with Go 1.20.5 by
[@&#8203;twpayne](https://togithub.com/twpayne) in
[https://github.com/twpayne/chezmoi/pull/3030](https://togithub.com/twpayne/chezmoi/pull/3030)
- feat: Add git.commitMessageTemplate configuration variable by
[@&#8203;twpayne](https://togithub.com/twpayne) in
[https://github.com/twpayne/chezmoi/pull/3032](https://togithub.com/twpayne/chezmoi/pull/3032)

**Full Changelog**:
https://github.com/twpayne/chezmoi/compare/v2.34.0...v2.34.1

###
[`v2.34.0`](https://togithub.com/twpayne/chezmoi/releases/tag/v2.34.0)

[Compare
Source](https://togithub.com/twpayne/chezmoi/compare/v2.33.6...v2.34.0)

#### What's Changed

- feat: Add support for .chezmoidata directory by
[@&#8203;twpayne](https://togithub.com/twpayne) in
[https://github.com/twpayne/chezmoi/pull/3009](https://togithub.com/twpayne/chezmoi/pull/3009)
- chore(deps): bump github/codeql-action from 2.3.3 to 2.3.5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/twpayne/chezmoi/pull/3010](https://togithub.com/twpayne/chezmoi/pull/3010)
- chore(deps): bump actions/setup-go from 4.0.0 to 4.0.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/twpayne/chezmoi/pull/3012](https://togithub.com/twpayne/chezmoi/pull/3012)
- chore: Misc fixes by [@&#8203;twpayne](https://togithub.com/twpayne)
in
[https://github.com/twpayne/chezmoi/pull/3019](https://togithub.com/twpayne/chezmoi/pull/3019)
- chore: Update dependencies by
[@&#8203;twpayne](https://togithub.com/twpayne) in
[https://github.com/twpayne/chezmoi/pull/3018](https://togithub.com/twpayne/chezmoi/pull/3018)
- chore(deps): bump sigstore/cosign-installer from 3.0.3 to 3.0.5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/twpayne/chezmoi/pull/3011](https://togithub.com/twpayne/chezmoi/pull/3011)
- chore: Bump golangci-lint to version 1.53.1 by
[@&#8203;twpayne](https://togithub.com/twpayne) in
[https://github.com/twpayne/chezmoi/pull/3020](https://togithub.com/twpayne/chezmoi/pull/3020)
- fix: Fix init --debug flag by
[@&#8203;twpayne](https://togithub.com/twpayne) in
[https://github.com/twpayne/chezmoi/pull/3021](https://togithub.com/twpayne/chezmoi/pull/3021)
- feat: Add get.chezmoi.io/lb and chezmoi.io/getlb install scripts by
[@&#8203;twpayne](https://togithub.com/twpayne) in
[https://github.com/twpayne/chezmoi/pull/3024](https://togithub.com/twpayne/chezmoi/pull/3024)
- chore: Update dependencies by
[@&#8203;twpayne](https://togithub.com/twpayne) in
[https://github.com/twpayne/chezmoi/pull/3026](https://togithub.com/twpayne/chezmoi/pull/3026)
- fix: Fix parsing of flags to secret keyring delete command by
[@&#8203;twpayne](https://togithub.com/twpayne) in
[https://github.com/twpayne/chezmoi/pull/3027](https://togithub.com/twpayne/chezmoi/pull/3027)

**Full Changelog**:
https://github.com/twpayne/chezmoi/compare/v2.33.6...v2.34.0

</details>

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

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

[Compare
Source](https://togithub.com/weaveworks/eksctl/compare/0.143.0...0.144.0)

### Release v0.144.0

#### 🚀 Features

- Allow creating subnets with resource-based hostnames
([#&#8203;6651](https://togithub.com/weaveworks/eksctl/issues/6651))

#### 🎯 Improvements

- Updated IAM policy statement for loadbalancer controller
([#&#8203;6655](https://togithub.com/weaveworks/eksctl/issues/6655))
- Port Add ready plugin to CoreDNS and use health.lameduck for a safer
shutdown to 1.25, 1.26 and 1.27
([#&#8203;6630](https://togithub.com/weaveworks/eksctl/issues/6630))

#### 🐛 Bug Fixes

- Only retry on appropriate API Errors when calling `eks:DescribeUpdate`
([#&#8203;6645](https://togithub.com/weaveworks/eksctl/issues/6645))
- Clean up ALBs using `spec.ingressClassName` and ALB security groups
([#&#8203;6389](https://togithub.com/weaveworks/eksctl/issues/6389))
- Set default Windows volume name to /dev/sda1
([#&#8203;6638](https://togithub.com/weaveworks/eksctl/issues/6638))

#### 🧰 Maintenance

- Fix logging stack events logic for Trainium and Inferentia integration
tests
([#&#8203;6649](https://togithub.com/weaveworks/eksctl/issues/6649))
- Bump schemer from v0.0.0-2021 to v0.0.0-2023
([#&#8203;6646](https://togithub.com/weaveworks/eksctl/issues/6646))

#### 📝 Documentation

- Generated ATTRIBUTIONS.md file
([#&#8203;6647](https://togithub.com/weaveworks/eksctl/issues/6647))

#### Acknowledgments

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

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

[Compare
Source](https://togithub.com/weaveworks/eksctl/compare/0.142.0...0.143.0)

### Release v0.143.0

#### 🚀 Features

- Add support for EKS 1.27
([#&#8203;6639](https://togithub.com/weaveworks/eksctl/issues/6639))

#### 🎯 Improvements

- Enforce IMDSv2 by default
([#&#8203;6631](https://togithub.com/weaveworks/eksctl/issues/6631))

#### 🐛 Bug Fixes

- Fix readiness probe in HTTP test
([#&#8203;6628](https://togithub.com/weaveworks/eksctl/issues/6628))

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

[Compare
Source](https://togithub.com/weaveworks/eksctl/compare/0.141.0...0.142.0)

### Release v0.142.0

#### 🎯 Improvements

- Add TagResource perm to EFS wellknown policy
([#&#8203;6611](https://togithub.com/weaveworks/eksctl/issues/6611))

#### 🧰 Maintenance

- Update config file examples to reflect that amiFamily is required with
custom AMI
([#&#8203;6617](https://togithub.com/weaveworks/eksctl/issues/6617))
- Bump dependencies and update build image
([#&#8203;6613](https://togithub.com/weaveworks/eksctl/issues/6613))

#### Acknowledgments

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

</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://app.renovatebot.com/dashboard#github/scottames/dots).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDIuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExNS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

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.

5 participants