Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add support for Doppler #3134

Merged
merged 1 commit into from
Aug 2, 2023
Merged

feat: Add support for Doppler #3134

merged 1 commit into from
Aug 2, 2023

Conversation

equals03
Copy link
Contributor

fixes #3132

Should be good for a review.

Copy link
Collaborator

@halostatue halostatue 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 like it would work, but I think that there are two design choices that should be changed.

internal/cmd/dopplertemplatefuncs.go Outdated Show resolved Hide resolved
@twpayne
Copy link
Owner

twpayne commented Jul 31, 2023

Thank you @equals03, this is fantastic! Thank you for such an excellent pull request!

+1 on @halostatue's comments. For info, the passwordManagerJson template functions were either added before the fromJson template function was added, or still make sense when the JSON output contains significantly different data to the plain text output. If my understanding is correct, fromJson does the job of dopplerJson here. Please correct me if this is not the case.

We can also drop the dopplerMinVersion variable for now and re-add it later if needed.

@halostatue
Copy link
Collaborator

If my understanding is correct, fromJson does the job of dopplerJson here. Please correct me if this is not the case.

That's my understanding of the implementation, too. When I was looking at the Doppler documentation, it appears that unlike vlt, there is a way to get all of the secrets for a given project / config at once, so {{ dopplerJson [project [config]] }} could be used for a more efficient project configuration retrieval as well.

It might be better to call that dopplerProjectJson [project [config]], but I think that it is potentially very useful. Using a JSON-shaped value inside that JSON will require the application of | fromJson, but I think that’s fine.

And just to be clear, I really appreciate the work that @equals03 put into this and it’s really good work.

@equals03
Copy link
Contributor Author

equals03 commented Aug 1, 2023

Thanks for all the positive feedback @halostatue @twpayne! 👍

Loving the idea of switching dopplerJson to dopplerProjectJson [project [config]]. I'll make it happen.
As for the minVersion I did notice there was a breaking change in release 3.25.0 that I thought we may have to peg it to, but I don't think that will be required. I'll remove and we can always add it back later if needs be.

Also, side note: I wrote the windows tests blind as I don't have access to a windows machine atm. I'm going to try a subtle change (when I update for the new template funcs) and see if this one passes. If not, I may need someone to help on those. 😄

Copy link
Collaborator

@halostatue halostatue 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 very good overall and is I think very close to complete.

@equals03
Copy link
Contributor Author

equals03 commented Aug 1, 2023

@halostatue I've made some updates 😄

Most notably, while implementing the feedback, I did a bit of performance testing and realised there was no good reason not to "unify" the pipelines for both commands. The now use the same mechanism to get the secrets and can make use of the output cache.

In my testing this cuts down on individual calls, dramatically, has quite a performance boost and ensures that the results from both functions are consistent.

As such, I took another stab at rewriting the docs for the user guide.

Also, I have removed that "magic" as you suggested.

@halostatue
Copy link
Collaborator

Most notably, while implementing the feedback, I did a bit of performance testing and realised there was no good reason not to "unify" the pipelines for both commands. The now use the same mechanism to get the secrets and can make use of the output cache.

In my testing this cuts down on individual calls, dramatically, has quite a performance boost and ensures that the results from both functions are consistent.

I think that this is OK, but it is worth noting that from a "least privilege" security stance, you are now downloading and caching in memory secrets that may not be used in the chezmoi process by using download all the time. I’m not sure that this requires changing anything, but it is worth noting.

As such, I took another stab at rewriting the docs for the user guide.

I didn’t comment on the lines, but there is an extra comma after doppler.project in both command documents; it’s a small thing.

Copy link
Owner

@twpayne twpayne left a comment

Choose a reason for hiding this comment

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

Thank you, this is excellent.

A small change is needed for the tests to pass on Windows.

Once you've fixed that, please could you squash all the commits together. Then it's ready to ship :)

internal/cmd/testdata/scripts/doppler.txtar Outdated Show resolved Hide resolved
@equals03
Copy link
Contributor Author

equals03 commented Aug 2, 2023

@twpayne should be fixed now and commits squashed.

@halostatue

I think that this is OK, but it is worth noting that from a "least privilege" security stance, you are now downloading and caching in memory secrets that may not be used in the chezmoi process by using download all the time. I’m not sure that this requires changing anything, but it is worth noting.

Honestly, I went through the same thought process BUT I landed on: "this is OK" because of the following:

  1. we already allow the download of all the secrets through dopplerProjectJson
  2. as far as "attack vectors" go, the CLI is already available on the machine. It would probably just be easier to exploit it via the CLI
  3. from a more practical point of view, you should probably only keep the secrets you are wanting to use in chezmoi in the same project - no more & no less. 😄 essentially, they should be there because you are going to use them.

@twpayne twpayne merged commit c5f30c8 into twpayne:master Aug 2, 2023
19 checks passed
@equals03 equals03 deleted the fix-3132 branch August 2, 2023 09:13
@halostatue
Copy link
Collaborator

Thank you very much for your contribution, @equals03!

@twpayne
Copy link
Owner

twpayne commented Aug 2, 2023

And thank you for the excellent reviews @halostatue!

renovate bot referenced this pull request in scottames/dots Aug 10, 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.32.2` -> `v4.36.0` |
| [golangci/golangci-lint](https://togithub.com/golangci/golangci-lint)
| minor | `v1.53.3` -> `v1.54.0` |
| [helm/helm](https://togithub.com/helm/helm) | patch | `v3.12.2` ->
`v3.12.3` |
| [jesseduffield/lazygit](https://togithub.com/jesseduffield/lazygit) |
patch | `v0.40.0` -> `v0.40.2` |
| [twpayne/chezmoi](https://togithub.com/twpayne/chezmoi) | minor |
`v2.36.1` -> `v2.37.0` |

---

### Release Notes

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

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

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


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

#### 🎉 New Packages


[#&#8203;14511](https://togithub.com/aquaproj/aqua-registry/issues/14511)
[ipld/go-car](https://togithub.com/ipld/go-car): A content addressible
archive utility [@&#8203;ponkio-o](https://togithub.com/ponkio-o)

#### Fixes


[#&#8203;14537](https://togithub.com/aquaproj/aqua-registry/issues/14537)
loft-sh/vcluster: Follow up changes of vcluster v0.15.4

[#&#8203;14538](https://togithub.com/aquaproj/aqua-registry/issues/14538)
dagu-dev/dagu: Rename the package `yohamta/dagu` to `dagu-dev/dagu`

https://github.com/yohamta/dagu was transferred to
https://github.com/dagu-dev/dagu


[#&#8203;14540](https://togithub.com/aquaproj/aqua-registry/issues/14540)
dagu-dev/dagu): Follow up changes of dagu v1.10.6

Asset names were changed.

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

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


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

#### 🎉 New Packages


[#&#8203;14493](https://togithub.com/aquaproj/aqua-registry/issues/14493)
[awslabs/mountpoint-s3](https://togithub.com/awslabs/mountpoint-s3): A
simple, high-throughput file client for mounting an Amazon S3 bucket as
a local file system [@&#8203;takumin](https://togithub.com/takumin)

:bulb: [aqua-renovate-config >= 1.8.0 supports this
package](https://togithub.com/aquaproj/aqua-renovate-config/releases/tag/1.8.0)

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

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


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

#### 🎉 New Packages


[#&#8203;14471](https://togithub.com/aquaproj/aqua-registry/issues/14471)
[uber-go/mock](https://togithub.com/uber-go/mock): GoMock is a mocking
framework for the Go programming language
[@&#8203;ichizero](https://togithub.com/ichizero)

[uber-go/mock](https://togithub.com/uber-go/mock) is a maintained fork
of [golang/mock](https://togithub.com/golang/mock) that has already been
archived.

https://github.com/golang/mock#gomock

> Update, June 2023: This repo and tool are no longer maintained. Please
see [go.uber.org/mock](https://togithub.com/uber/mock) for a maintained
fork instead.

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

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


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

#### 🎉 New Packages


[#&#8203;14383](https://togithub.com/aquaproj/aqua-registry/issues/14383)
[smallstep/certificates](https://togithub.com/smallstep/certificates): A
private certificate authority (X.509 & SSH) & ACME server for secure
automated certificate management, so you can use TLS everywhere & SSO
for SSH [@&#8203;scottames](https://togithub.com/scottames)

#### Fixes


[#&#8203;14368](https://togithub.com/aquaproj/aqua-registry/issues/14368)
danielgtaylor/restish: Follow up changes of restish v0.18.0

Asset names were changed.


danielgtaylor/restish@9c15903


[#&#8203;14385](https://togithub.com/aquaproj/aqua-registry/issues/14385)
smallstep/certificates Support old versions

#### 🎉 New Contributors

Thank you for your contribution!

[@&#8203;scottames](https://togithub.com/scottames)
[#&#8203;14383](https://togithub.com/aquaproj/aqua-registry/issues/14383)

</details>

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

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

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

1.  updated linters:
    -   `decorder`: from 0.2.3 to 0.4.0
    -   `dupword`: from 0.0.11 to 0.0.12
    -   `errorlint`: from 1.4.2 to 1.4.3
    -   `exhaustruct`: from 2.3.0 to 3.1.0
    -   `forbidigo`: from 1.5.3 to 1.6.0
    -   `funlen`: from 0.0.3 to 0.1.0
    -   `gci`: from 0.10.1 to 0.11.0
    -   `ginkgolinter`: from 0.12.1 to 0.13.3
    -   `go-critic`: from 0.8.1 to 0.8.2
    -   `go-errorlint`: from 1.4.2 to 1.4.3
    -   `go-exhaustruct`: from 2.3.0 to 3.1.0
    -   `gocognit`: from 1.0.6 to 1.0.7
    -   `gocritic`: from 0.8.1 to 0.8.2
    -   `gofmt`: autofix missing newline at EOF
    -   `misspell`: 0.4.0 to 0.4.1
    -   `musttag`: from 0.7.0 to 0.7.1
    -   `paralleltest`: from 1.0.7 to 1.0.8
    -   `tagalign`: from 1.2.2 to 1.3.2
    -   `typecheck`: explain it and remove it from the linter list
    -   `zerologlint`: from 0.1.2 to 0.1.3
2.  misc.
    -   🎉 go1.21 support
    -   plugin: include custom linters in `enable-all`
    -   plugin: allow to use settings for plugins
3.  Documentation
    -   Add linter descriptions.

##### Important

`ruleguard` (a "rule" inside `gocritic`) is disabled, only with go1.21,
due to a bug of `ruleguard`

The Go version should be 1.21 inside `go.mod` or be defined inside the
`run` section:

<details><summary>go.mod</summary>

```go
module your/module/name

go 1.21

// ...

```

</details>

<details><summary>.golangci.yml</summary>

```yml
run:
    go: '1.21'
```

</details>

<details><summary>CLI flags</summary>

```bash
--go=1.21
```

</details>

You can follow this topic by subscribing to the [issue
#&#8203;3933](https://togithub.com/golangci/golangci-lint/issues/3933).

</details>

<details>
<summary>helm/helm (helm/helm)</summary>

### [`v3.12.3`](https://togithub.com/helm/helm/releases/tag/v3.12.3):
Helm v3.12.3

[Compare
Source](https://togithub.com/helm/helm/compare/v3.12.2...v3.12.3)

Helm v3.12.3 is a patch release. Users are encouraged to upgrade for the
best experience. Users are encouraged to upgrade for the best
experience.

The community keeps growing, and we'd love to see you there!

- Join the discussion in [Kubernetes
Slack](https://kubernetes.slack.com):
    -   for questions and just to hang out
    -   for discussing PRs, code, and bugs
- Hang out at the Public Developer Call: Thursday, 9:30 Pacific via
[Zoom](https://zoom.us/j/696660622)
- Test, debug, and contribute charts:
[ArtifactHub/packages](https://artifacthub.io/packages/search?kind=0)

#### Installation and Upgrading

Download Helm v3.12.3. The common platform binaries are here:

- [MacOS amd64](https://get.helm.sh/helm-v3.12.3-darwin-amd64.tar.gz)
([checksum](https://get.helm.sh/helm-v3.12.3-darwin-amd64.tar.gz.sha256sum)
/ 1bdbbeec5a12dd0c1cd4efd8948a156d33e1e2f51140e2a51e1e5e7b11b81d47)
- [MacOS arm64](https://get.helm.sh/helm-v3.12.3-darwin-arm64.tar.gz)
([checksum](https://get.helm.sh/helm-v3.12.3-darwin-arm64.tar.gz.sha256sum)
/ 240b0a7da9cae208000eff3d3fb95e0fa1f4903d95be62c3f276f7630b12dae1)
- [Linux amd64](https://get.helm.sh/helm-v3.12.3-linux-amd64.tar.gz)
([checksum](https://get.helm.sh/helm-v3.12.3-linux-amd64.tar.gz.sha256sum)
/ 1b2313cd198d45eab00cc37c38f6b1ca0a948ba279c29e322bdf426d406129b5)
- [Linux arm](https://get.helm.sh/helm-v3.12.3-linux-arm.tar.gz)
([checksum](https://get.helm.sh/helm-v3.12.3-linux-arm.tar.gz.sha256sum)
/ 6b67cf5fc441c1fcb4a860629b2ec613d0e6c8ac536600445f52a033671e985e)
- [Linux arm64](https://get.helm.sh/helm-v3.12.3-linux-arm64.tar.gz)
([checksum](https://get.helm.sh/helm-v3.12.3-linux-arm64.tar.gz.sha256sum)
/ 79ef06935fb47e432c0c91bdefd140e5b543ec46376007ca14a52e5ed3023088)
- [Linux i386](https://get.helm.sh/helm-v3.12.3-linux-386.tar.gz)
([checksum](https://get.helm.sh/helm-v3.12.3-linux-386.tar.gz.sha256sum)
/ cb789c4753bf66c8426f6be4091349c0780aaf996af0a1de48318f9f8d6b7bc8)
- [Linux ppc64le](https://get.helm.sh/helm-v3.12.3-linux-ppc64le.tar.gz)
([checksum](https://get.helm.sh/helm-v3.12.3-linux-ppc64le.tar.gz.sha256sum)
/ 8f2182ae53dd129a176ee15a09754fa942e9e7e9adab41fd60a39833686fe5e6)
- [Linux s390x](https://get.helm.sh/helm-v3.12.3-linux-s390x.tar.gz)
([checksum](https://get.helm.sh/helm-v3.12.3-linux-s390x.tar.gz.sha256sum)
/ f5d5c7a4e831dedc8dac5913d4c820e0da10e904debb59dec65bde203fad1af0)
- [Windows amd64](https://get.helm.sh/helm-v3.12.3-windows-amd64.zip)
([checksum](https://get.helm.sh/helm-v3.12.3-windows-amd64.zip.sha256sum)
/ f3e2e9d69bb0549876aef6e956976f332e482592494874d254ef49c4862c5712)

This release was signed with ` 672C 657B E06B 4B30 969C 4A57 4614 49C2
5E36 B98E ` and can be found at
[@&#8203;mattfarina](https://togithub.com/mattfarina) [keybase
account](https://keybase.io/mattfarina). Please use the attached
signatures for verifying this release using `gpg`.

The [Quickstart Guide](https://helm.sh/docs/intro/quickstart/) will get
you going from there. For **upgrade instructions** or detailed
installation notes, check the [install
guide](https://helm.sh/docs/intro/install/). You can also use a [script
to
install](https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3)
on any system with `bash`.

#### What's Next

-   3.13.0 is the next feature release and be on September 13, 2023.

#### Changelog

- bump kubernetes modules to v0.27.3
[`3a31588`](https://togithub.com/helm/helm/commit/3a31588ad33fe3b89af5a2a54ee1d25bfe6eaa5e)
(Joe Julian)
- Add priority class to kind sorter
[`fb74155`](https://togithub.com/helm/helm/commit/fb7415543b910e5661337e187e2be9d3f383638d)
(Stepan Dohnal)

</details>

<details>
<summary>jesseduffield/lazygit (jesseduffield/lazygit)</summary>

###
[`v0.40.2`](https://togithub.com/jesseduffield/lazygit/releases/tag/v0.40.2)

[Compare
Source](https://togithub.com/jesseduffield/lazygit/compare/v0.40.1...v0.40.2)

<!-- Release notes generated using configuration in .github/release.yml
at v0.40.2 -->

#### What's Changed

##### Fixes 🔧

- Fix seg-fault when opening submodule in nested folder by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2903](https://togithub.com/jesseduffield/lazygit/pull/2903)

**Full Changelog**:
jesseduffield/lazygit@v0.40.1...v0.40.2

###
[`v0.40.1`](https://togithub.com/jesseduffield/lazygit/releases/tag/v0.40.1)

[Compare
Source](https://togithub.com/jesseduffield/lazygit/compare/v0.40.0...v0.40.1)

<!-- Release notes generated using configuration in .github/release.yml
at v0.40.1 -->

#### What's Changed

##### Fixes 🔧

- update worktree icons for NerdFont V3 by
[@&#8203;Saafo](https://togithub.com/Saafo) in
[https://github.com/jesseduffield/lazygit/pull/2895](https://togithub.com/jesseduffield/lazygit/pull/2895)
- Fix opening lazygit in a bare repo with specified worktree by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2902](https://togithub.com/jesseduffield/lazygit/pull/2902)

##### Maintenance ⚙️

- Import stefanhaller's tcell fork for real rather than just replacing
it by [@&#8203;stefanhaller](https://togithub.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2888](https://togithub.com/jesseduffield/lazygit/pull/2888)
- Don't run the check-required-label check on master by
[@&#8203;stefanhaller](https://togithub.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2896](https://togithub.com/jesseduffield/lazygit/pull/2896)
- Use nerdfont version 3 in demos by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2901](https://togithub.com/jesseduffield/lazygit/pull/2901)

##### Other Changes

- Fix README.md typo backkground -> background by
[@&#8203;mattiasJohnson](https://togithub.com/mattiasJohnson) in
[https://github.com/jesseduffield/lazygit/pull/2884](https://togithub.com/jesseduffield/lazygit/pull/2884)

#### New Contributors

- [@&#8203;mattiasJohnson](https://togithub.com/mattiasJohnson) made
their first contribution in
[https://github.com/jesseduffield/lazygit/pull/2884](https://togithub.com/jesseduffield/lazygit/pull/2884)
- [@&#8203;Saafo](https://togithub.com/Saafo) made their first
contribution in
[https://github.com/jesseduffield/lazygit/pull/2895](https://togithub.com/jesseduffield/lazygit/pull/2895)

**Full Changelog**:
jesseduffield/lazygit@v0.40.0...v0.40.1

</details>

<details>
<summary>twpayne/chezmoi (twpayne/chezmoi)</summary>

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

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

#### What's Changed

- feat: Read personal mackup config files by
[@&#8203;twpayne](https://togithub.com/twpayne) in
[https://github.com/twpayne/chezmoi/pull/3133](https://togithub.com/twpayne/chezmoi/pull/3133)
- chore(deps): bump github/codeql-action from 2.20.1 to 2.21.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/twpayne/chezmoi/pull/3135](https://togithub.com/twpayne/chezmoi/pull/3135)
- chore: Build with Go 1.20.7 by
[@&#8203;twpayne](https://togithub.com/twpayne) in
[https://github.com/twpayne/chezmoi/pull/3140](https://togithub.com/twpayne/chezmoi/pull/3140)
- feat: Add support for Doppler by
[@&#8203;equals03](https://togithub.com/equals03) in
[https://github.com/twpayne/chezmoi/pull/3134](https://togithub.com/twpayne/chezmoi/pull/3134)
- feat: Extend re-add command to accept an optional list of targets by
[@&#8203;twpayne](https://togithub.com/twpayne) in
[https://github.com/twpayne/chezmoi/pull/3146](https://togithub.com/twpayne/chezmoi/pull/3146)
- chore: Update dependencies by
[@&#8203;twpayne](https://togithub.com/twpayne) in
[https://github.com/twpayne/chezmoi/pull/3150](https://togithub.com/twpayne/chezmoi/pull/3150)
- fix: Avoid concurrent map access when evaluating multiple templates by
[@&#8203;twpayne](https://togithub.com/twpayne) in
[https://github.com/twpayne/chezmoi/pull/3155](https://togithub.com/twpayne/chezmoi/pull/3155)
- feat: Add isExecutable template function by
[@&#8203;twpayne](https://togithub.com/twpayne) in
[https://github.com/twpayne/chezmoi/pull/3157](https://togithub.com/twpayne/chezmoi/pull/3157)
- chore: Fix isExecutable tests on Windows by
[@&#8203;twpayne](https://togithub.com/twpayne) in
[https://github.com/twpayne/chezmoi/pull/3158](https://togithub.com/twpayne/chezmoi/pull/3158)
- chore: Update dependencies by
[@&#8203;twpayne](https://togithub.com/twpayne) in
[https://github.com/twpayne/chezmoi/pull/3159](https://togithub.com/twpayne/chezmoi/pull/3159)

#### New Contributors

- [@&#8203;equals03](https://togithub.com/equals03) made their first
contribution in
[https://github.com/twpayne/chezmoi/pull/3134](https://togithub.com/twpayne/chezmoi/pull/3134)

**Full Changelog**:
twpayne/chezmoi@v2.36.1...v2.37.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 4pm on thursday" (UTC),
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:eyJjcmVhdGVkSW5WZXIiOiIzNi40MC4zIiwidXBkYXRlZEluVmVyIjoiMzYuNDAuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Feb 11, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[feature request] Doppler support
3 participants