Skip to content

Conversation

@reindlt
Copy link
Contributor

@reindlt reindlt commented Mar 7, 2024

Fixes #1340

Assuming that nobody relies on the behavior described in #1340 I just added support for duplicate sections. In case this is not desired we have to think of a way to make this configurable.

@reindlt reindlt force-pushed the ini-store-duplicate-sections branch from 5d855a3 to b7c5f11 Compare March 7, 2024 17:33
Copy link
Contributor

@felixfontein felixfontein left a comment

Choose a reason for hiding this comment

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

Thanks for your contribution! Would you mind to sign-off your commit (git commit --amend --sign-off) and force-push? Thanks.

func (store Store) encodeTree(branches sops.TreeBranches) ([]byte, error) {
iniFile := ini.Empty()
iniFile := ini.Empty(ini.LoadOptions{AllowNonUniqueSections: true})
iniFile.DeleteSection(ini.DefaultSection)
Copy link
Contributor

Choose a reason for hiding this comment

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

What's the reason to delete the default section?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ini.Empty() will already create a default section. Due to the AllowNonUniqueSection option set to true iniFile.NewSection() will create another one resulting in 2 empty default sections. Usually, an empty default section will be ignored by iniFile.WriteTo() but only when it is at the first position. Thus, the second empty default section will be included in the output although there is no default section specified in the input file.

As the branches parameter already includes a default section it will be recreated with iniFile.NewSection().

@reindlt reindlt force-pushed the ini-store-duplicate-sections branch 2 times, most recently from ee26039 to 61329cc Compare March 11, 2024 07:49
@reindlt
Copy link
Contributor Author

reindlt commented May 3, 2024

@felixfontein anything else needed to get this merged?

@reindlt reindlt force-pushed the ini-store-duplicate-sections branch from 61329cc to d3efcf6 Compare July 8, 2024 14:49
Signed-off-by: Tobias Reindl <tobias.reindl@s7-rail.com>
@reindlt reindlt force-pushed the ini-store-duplicate-sections branch from d3efcf6 to 4249ec2 Compare August 27, 2024 06:32
@reindlt reindlt requested a review from felixfontein August 27, 2024 06:36
@felixfontein felixfontein added this to the 3.10.0 milestone Sep 11, 2024
Copy link
Contributor

@felixfontein felixfontein left a comment

Choose a reason for hiding this comment

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

I think this looks good. It should go into the next feature release (but don't ask me when that will happen...).

@felixfontein felixfontein merged commit 799c7a2 into getsops:main Feb 15, 2025
15 checks passed
@felixfontein
Copy link
Contributor

@reindlt thanks for your contribution!

tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Apr 20, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [getsops/sops](https://github.com/getsops/sops) | minor | `v3.9.4` -> `v3.10.2` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>getsops/sops (getsops/sops)</summary>

### [`v3.10.2`](https://github.com/getsops/sops/releases/tag/v3.10.2)

[Compare Source](getsops/sops@v3.10.1...v3.10.2)

#### Installation

To install `sops`, download one of the pre-built binaries provided for your platform from the artifacts attached to this release.

For instance, if you are using Linux on an AMD64 architecture:

```shell

### Download the binary
curl -LO https://github.com/getsops/sops/releases/download/v3.10.2/sops-v3.10.2.linux.amd64

### Move the binary in to your PATH
mv sops-v3.10.2.linux.amd64 /usr/local/bin/sops

### Make the binary executable
chmod +x /usr/local/bin/sops
```

##### Verify checksums file signature

The checksums file provided within the artifacts attached to this release is signed using [Cosign](https://docs.sigstore.dev/cosign/overview/) with GitHub OIDC. To validate the signature of this file, run the following commands:

```shell

### Download the checksums file, certificate and signature
curl -LO https://github.com/getsops/sops/releases/download/v3.10.2/sops-v3.10.2.checksums.txt
curl -LO https://github.com/getsops/sops/releases/download/v3.10.2/sops-v3.10.2.checksums.pem
curl -LO https://github.com/getsops/sops/releases/download/v3.10.2/sops-v3.10.2.checksums.sig

### Verify the checksums file
cosign verify-blob sops-v3.10.2.checksums.txt \
  --certificate sops-v3.10.2.checksums.pem \
  --signature sops-v3.10.2.checksums.sig \
  --certificate-identity-regexp=https://github.com/getsops \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com
```

##### Verify binary integrity

To verify the integrity of the downloaded binary, you can utilize the checksums file after having validated its signature:

```shell

### Verify the binary using the checksums file
sha256sum -c sops-v3.10.2.checksums.txt --ignore-missing
```

##### Verify artifact provenance

The [SLSA provenance](https://slsa.dev/provenance/v0.2) of the binaries, packages, and SBOMs can be found within the artifacts associated with this release. It is presented through an [in-toto](https://in-toto.io/) link metadata file named `sops-v3.10.2.intoto.jsonl`. To verify the provenance of an artifact, you can utilize the [`slsa-verifier`](https://github.com/slsa-framework/slsa-verifier#artifacts) tool:

```shell

### Download the metadata file
curl -LO  https://github.com/getsops/sops/releases/download/v3.10.2/sops-v3.10.2.intoto.jsonl

### Verify the provenance of the artifact
slsa-verifier verify-artifact <artifact> \
  --provenance-path sops-v3.10.2.intoto.jsonl \
  --source-uri github.com/getsops/sops \
  --source-tag v3.10.2
```

#### Container Images

The `sops` binaries are also available as container images, based on Debian (slim) and Alpine Linux. The Debian-based container images include any dependencies which may be required to make use of certain key services, such as GnuPG, AWS KMS, Azure Key Vault, and Google Cloud KMS. The Alpine-based container images are smaller in size, but do not include these dependencies.

These container images are available for the following architectures: `linux/amd64` and `linux/arm64`.

##### GitHub Container Registry

-   `ghcr.io/getsops/sops:v3.10.2`
-   `ghcr.io/getsops/sops:v3.10.2-alpine`

##### Quay.io

-   `quay.io/getsops/sops:v3.10.2`
-   `quay.io/getsops/sops:v3.10.2-alpine`

##### Verify container image signature

The container images are signed using [Cosign](https://docs.sigstore.dev/cosign/overview/) with GitHub OIDC. To validate the signature of an image, run the following command:

```shell
cosign verify ghcr.io/getsops/sops:v3.10.2 \
  --certificate-identity-regexp=https://github.com/getsops \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com \
  -o text
```

##### Verify container image provenance

The container images include [SLSA provenance](https://slsa.dev/provenance/v0.2) attestations. For more information around the verification of this, please refer to the [`slsa-verifier` documentation](https://github.com/slsa-framework/slsa-verifier#containers).

#### Software Bill of Materials

The Software Bill of Materials (SBOM) for each binary is accessible within the artifacts enclosed with this release. It is presented as an [SPDX](https://spdx.dev/) JSON file, formatted as `<binary>.spdx.sbom.json`.

#### What's Changed

-   build(deps): Bump the go group with 13 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1834
-   Use latest 1.24 Go version for release build by [@&#8203;hiddeco](https://github.com/hiddeco) in getsops/sops#1836
-   Remove reserved keyword check from YAML store's `LoadPlainFile()` by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1829
-   build(deps): Bump the go group with 9 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1839
-   build(deps): Bump github/codeql-action from 3.28.13 to 3.28.15 in the ci group by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1840
-   Release 3.10.2 release by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1841

**Full Changelog**: getsops/sops@v3.10.1...v3.10.2

### [`v3.10.1`](https://github.com/getsops/sops/releases/tag/v3.10.1)

[Compare Source](getsops/sops@v3.10.0...v3.10.1)

#### Installation

To install `sops`, download one of the pre-built binaries provided for your platform from the artifacts attached to this release.

For instance, if you are using Linux on an AMD64 architecture:

```shell

### Download the binary
curl -LO https://github.com/getsops/sops/releases/download/v3.10.1/sops-v3.10.1.linux.amd64

### Move the binary in to your PATH
mv sops-v3.10.1.linux.amd64 /usr/local/bin/sops

### Make the binary executable
chmod +x /usr/local/bin/sops
```

##### Verify checksums file signature

The checksums file provided within the artifacts attached to this release is signed using [Cosign](https://docs.sigstore.dev/cosign/overview/) with GitHub OIDC. To validate the signature of this file, run the following commands:

```shell

### Download the checksums file, certificate and signature
curl -LO https://github.com/getsops/sops/releases/download/v3.10.1/sops-v3.10.1.checksums.txt
curl -LO https://github.com/getsops/sops/releases/download/v3.10.1/sops-v3.10.1.checksums.pem
curl -LO https://github.com/getsops/sops/releases/download/v3.10.1/sops-v3.10.1.checksums.sig

### Verify the checksums file
cosign verify-blob sops-v3.10.1.checksums.txt \
  --certificate sops-v3.10.1.checksums.pem \
  --signature sops-v3.10.1.checksums.sig \
  --certificate-identity-regexp=https://github.com/getsops \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com
```

##### Verify binary integrity

To verify the integrity of the downloaded binary, you can utilize the checksums file after having validated its signature:

```shell

### Verify the binary using the checksums file
sha256sum -c sops-v3.10.1.checksums.txt --ignore-missing
```

##### Verify artifact provenance

The [SLSA provenance](https://slsa.dev/provenance/v0.2) of the binaries, packages, and SBOMs can be found within the artifacts associated with this release. It is presented through an [in-toto](https://in-toto.io/) link metadata file named `sops-v3.10.1.intoto.jsonl`. To verify the provenance of an artifact, you can utilize the [`slsa-verifier`](https://github.com/slsa-framework/slsa-verifier#artifacts) tool:

```shell

### Download the metadata file
curl -LO  https://github.com/getsops/sops/releases/download/v3.10.1/sops-v3.10.1.intoto.jsonl

### Verify the provenance of the artifact
slsa-verifier verify-artifact <artifact> \
  --provenance-path sops-v3.10.1.intoto.jsonl \
  --source-uri github.com/getsops/sops \
  --source-tag v3.10.1
```

#### Container Images

The `sops` binaries are also available as container images, based on Debian (slim) and Alpine Linux. The Debian-based container images include any dependencies which may be required to make use of certain key services, such as GnuPG, AWS KMS, Azure Key Vault, and Google Cloud KMS. The Alpine-based container images are smaller in size, but do not include these dependencies.

These container images are available for the following architectures: `linux/amd64` and `linux/arm64`.

##### GitHub Container Registry

-   `ghcr.io/getsops/sops:v3.10.1`
-   `ghcr.io/getsops/sops:v3.10.1-alpine`

##### Quay.io

-   `quay.io/getsops/sops:v3.10.1`
-   `quay.io/getsops/sops:v3.10.1-alpine`

##### Verify container image signature

The container images are signed using [Cosign](https://docs.sigstore.dev/cosign/overview/) with GitHub OIDC. To validate the signature of an image, run the following command:

```shell
cosign verify ghcr.io/getsops/sops:v3.10.1 \
  --certificate-identity-regexp=https://github.com/getsops \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com \
  -o text
```

##### Verify container image provenance

The container images include [SLSA provenance](https://slsa.dev/provenance/v0.2) attestations. For more information around the verification of this, please refer to the [`slsa-verifier` documentation](https://github.com/slsa-framework/slsa-verifier#containers).

#### Software Bill of Materials

The Software Bill of Materials (SBOM) for each binary is accessible within the artifacts enclosed with this release. It is presented as an [SPDX](https://spdx.dev/) JSON file, formatted as `<binary>.spdx.sbom.json`.

#### What's Changed

-   build(deps): Bump the ci group with 2 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1826
-   Release 3.10.1 by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1827

**Full Changelog**: getsops/sops@v3.10.0...v3.10.1

### [`v3.10.0`](https://github.com/getsops/sops/releases/tag/v3.10.0)

[Compare Source](getsops/sops@v3.9.4...v3.10.0)

#### Installation

To install `sops`, download one of the pre-built binaries provided for your platform from the artifacts attached to this release.

For instance, if you are using Linux on an AMD64 architecture:

```shell

### Download the binary
curl -LO https://github.com/getsops/sops/releases/download/v3.10.0/sops-v3.10.0.linux.amd64

### Move the binary in to your PATH
mv sops-v3.10.0.linux.amd64 /usr/local/bin/sops

### Make the binary executable
chmod +x /usr/local/bin/sops
```

##### Verify checksums file signature

The checksums file provided within the artifacts attached to this release is signed using [Cosign](https://docs.sigstore.dev/cosign/overview/) with GitHub OIDC. To validate the signature of this file, run the following commands:

```shell

### Download the checksums file, certificate and signature
curl -LO https://github.com/getsops/sops/releases/download/v3.10.0/sops-v3.10.0.checksums.txt
curl -LO https://github.com/getsops/sops/releases/download/v3.10.0/sops-v3.10.0.checksums.pem
curl -LO https://github.com/getsops/sops/releases/download/v3.10.0/sops-v3.10.0.checksums.sig

### Verify the checksums file
cosign verify-blob sops-v3.10.0.checksums.txt \
  --certificate sops-v3.10.0.checksums.pem \
  --signature sops-v3.10.0.checksums.sig \
  --certificate-identity-regexp=https://github.com/getsops \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com
```

##### Verify binary integrity

To verify the integrity of the downloaded binary, you can utilize the checksums file after having validated its signature:

```shell

### Verify the binary using the checksums file
sha256sum -c sops-v3.10.0.checksums.txt --ignore-missing
```

##### Verify artifact provenance

The [SLSA provenance](https://slsa.dev/provenance/v0.2) of the binaries, packages, and SBOMs can be found within the artifacts associated with this release. It is presented through an [in-toto](https://in-toto.io/) link metadata file named `sops-v3.10.0.intoto.jsonl`. To verify the provenance of an artifact, you can utilize the [`slsa-verifier`](https://github.com/slsa-framework/slsa-verifier#artifacts) tool:

```shell

### Download the metadata file
curl -LO  https://github.com/getsops/sops/releases/download/v3.10.0/sops-v3.10.0.intoto.jsonl

### Verify the provenance of the artifact
slsa-verifier verify-artifact <artifact> \
  --provenance-path sops-v3.10.0.intoto.jsonl \
  --source-uri github.com/getsops/sops \
  --source-tag v3.10.0
```

#### Container Images

The `sops` binaries are also available as container images, based on Debian (slim) and Alpine Linux. The Debian-based container images include any dependencies which may be required to make use of certain key services, such as GnuPG, AWS KMS, Azure Key Vault, and Google Cloud KMS. The Alpine-based container images are smaller in size, but do not include these dependencies.

These container images are available for the following architectures: `linux/amd64` and `linux/arm64`.

##### GitHub Container Registry

-   `ghcr.io/getsops/sops:v3.10.0`
-   `ghcr.io/getsops/sops:v3.10.0-alpine`

##### Quay.io

-   `quay.io/getsops/sops:v3.10.0`
-   `quay.io/getsops/sops:v3.10.0-alpine`

##### Verify container image signature

The container images are signed using [Cosign](https://docs.sigstore.dev/cosign/overview/) with GitHub OIDC. To validate the signature of an image, run the following command:

```shell
cosign verify ghcr.io/getsops/sops:v3.10.0 \
  --certificate-identity-regexp=https://github.com/getsops \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com \
  -o text
```

##### Verify container image provenance

The container images include [SLSA provenance](https://slsa.dev/provenance/v0.2) attestations. For more information around the verification of this, please refer to the [`slsa-verifier` documentation](https://github.com/slsa-framework/slsa-verifier#containers).

#### Software Bill of Materials

The Software Bill of Materials (SBOM) for each binary is accessible within the artifacts enclosed with this release. It is presented as an [SPDX](https://spdx.dev/) JSON file, formatted as `<binary>.spdx.sbom.json`.

#### What's Changed

-   build(deps): Bump alpine from 3.18 to 3.21 in /.release in the docker group across 1 directory by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1700
-   Convert changelog to MarkDown by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1741
-   build(deps): Bump the go group with 7 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1743
-   build(deps): Bump the go group with 9 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1745
-   build(deps): Bump the rust group in /functional-tests with 2 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1744
-   build(deps): Bump github/codeql-action from 3.28.5 to 3.28.8 in the ci group by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1746
-   build(deps): Bump the go group with 12 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1751
-   build(deps): Bump the ci group with 4 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1750
-   Add --input-type option for filestatus subcommand by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1601
-   Use SOPS_EDITOR before EDITOR by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1611
-   Allow users to disable version check via environment variable by [@&#8203;nicklasfrahm](https://github.com/nicklasfrahm) in getsops/sops#1684
-   add duplicate section support to ini store by [@&#8203;reindlt](https://github.com/reindlt) in getsops/sops#1452
-   stores: test for duplicate keys, reserve keyword (yaml only now) by [@&#8203;holiman](https://github.com/holiman) in getsops/sops#1203
-   Add same process option for exec-env by [@&#8203;ricmatsui](https://github.com/ricmatsui) in getsops/sops#880
-   outputs: add trailing newline at the end of JSON files by [@&#8203;duthils](https://github.com/duthils) in getsops/sops#1476
-   set subcommand: add --idempotent flag that will not write the file if no change happened by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1754
-   Encrypt and decrypt time.Time objects by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1759
-   build(deps): Bump the go group with 8 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1763
-   build(deps): Bump tempfile from 3.16.0 to 3.17.0 in /functional-tests in the rust group by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1762
-   build(deps): Bump goreleaser/goreleaser-action from 6.1.0 to 6.2.1 in the ci group by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1761
-   fix(docs): typo in README.rst by [@&#8203;Paredev](https://github.com/Paredev) in getsops/sops#1765
-   Add SSH support for age by [@&#8203;haoqixu](https://github.com/haoqixu) in getsops/sops#1692
-   make sure that tests do not pick keys.txt from user's HOME dir by [@&#8203;tomaszduda23](https://github.com/tomaszduda23) in getsops/sops#1766
-   support for age identity with passphrase by [@&#8203;tomaszduda23](https://github.com/tomaszduda23) in getsops/sops#1400
-   build(deps): Bump the rust group in /functional-tests with 4 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1768
-   build(deps): Bump the go group with 12 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1769
-   build(deps): Bump the ci group with 4 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1770
-   build(deps): Bump github.com/go-jose/go-jose/v4 from 4.0.4 to 4.0.5 by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1773
-   feat: add age plugin support by [@&#8203;brianmcgee](https://github.com/brianmcgee) in getsops/sops#1641
-   Check GnuPG decryption result for non-empty size by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1776
-   vendored age code: consolidate passphrase reading functionality by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1775
-   Allow to encrypt and decrypt from stdin by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1690
-   build(deps): Bump the go group with 11 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1784
-   build(deps): Bump the ci group with 5 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1782
-   build(deps): Bump serde_json from 1.0.139 to 1.0.140 in /functional-tests in the rust group; bump Rust to 1.85.0 by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1783
-   build(deps): Bump the go group with 13 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1797
-   build(deps): Bump the rust group in /functional-tests with 3 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1796
-   build(deps): Bump github/codeql-action from 3.28.10 to 3.28.11 in the ci group by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1795
-   build(deps): Bump the go group with 6 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1802
-   build(deps): Bump tempfile from 3.18.0 to 3.19.0 in /functional-tests in the rust group by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1800
-   build(deps): Bump docker/login-action from 3.3.0 to 3.4.0 in the ci group by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1801
-   build(deps): Bump github.com/golang-jwt/jwt/v5 from 5.2.1 to 5.2.2 by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1806
-   goreleaser: add windows arm64 by [@&#8203;duthils](https://github.com/duthils) in getsops/sops#1791
-   Add a way to set sops config location via envvar by [@&#8203;sledzikowy](https://github.com/sledzikowy) in getsops/sops#1701
-   build(deps): Bump the go group with 3 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1809
-   build(deps): Bump the ci group with 5 updates by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1808
-   build(deps): Bump tempfile from 3.19.0 to 3.19.1 in /functional-tests in the rust group by [@&#8203;dependabot](https://github.com/dependabot) in getsops/sops#1807
-   Support --config option in publish subcommand by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1779
-   Fix caching of Metadata.DataKey by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1781
-   Lint by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1780
-   updatekeys subcommand: rename GroupQuorum to ShamirThreshold by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1631
-   If --filename-override is specified, convert it to an absolute path same as regular filenames by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1793
-   Add support for `oauth2.TokenSource` in GCP KMS by [@&#8203;matheuscscp](https://github.com/matheuscscp) in getsops/sops#1794
-   Added SOPS_AGE_KEY_CMD option to age, fixes [#&#8203;1323](getsops/sops#1323) by [@&#8203;danilobuerger](https://github.com/danilobuerger) in getsops/sops#1811
-   chore: omitempty metadata to reduce the size of stored config by [@&#8203;cgetzen](https://github.com/cgetzen) in getsops/sops#1571
-   Improve Shamir Secret Sharing code by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1813
-   Update all dependencies by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1814
-   Run 'gofmt -w' on all .go files by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1817
-   Add option to explicitly check for the latest version; deprecate current default of always doing that unless disabled by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1816
-   Build using Go 1.24 and drop support for 1.22 by [@&#8203;hiddeco](https://github.com/hiddeco) in getsops/sops#1819
-   Support `GOOGLE_OAUTH_ACCESS_TOKEN` for Google Cloud Platform  by [@&#8203;marensofier](https://github.com/marensofier) in getsops/sops#1578
-   Warn about `.sops.yml` files found while searching for `.sops.yaml` by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1820
-   Release 3.10.0 by [@&#8203;felixfontein](https://github.com/felixfontein) in getsops/sops#1815
-   Added support for multiarch windows release binaries by [@&#8203;sabre1041](https://github.com/sabre1041) in getsops/sops#1823

#### New Contributors

-   [@&#8203;reindlt](https://github.com/reindlt) made their first contribution in getsops/sops#1452
-   [@&#8203;ricmatsui](https://github.com/ricmatsui) made their first contribution in getsops/sops#880
-   [@&#8203;Paredev](https://github.com/Paredev) made their first contribution in getsops/sops#1765
-   [@&#8203;haoqixu](https://github.com/haoqixu) made their first contribution in getsops/sops#1692
-   [@&#8203;brianmcgee](https://github.com/brianmcgee) made their first contribution in getsops/sops#1641
-   [@&#8203;sledzikowy](https://github.com/sledzikowy) made their first contribution in getsops/sops#1701
-   [@&#8203;matheuscscp](https://github.com/matheuscscp) made their first contribution in getsops/sops#1794
-   [@&#8203;danilobuerger](https://github.com/danilobuerger) made their first contribution in getsops/sops#1811
-   [@&#8203;cgetzen](https://github.com/cgetzen) made their first contribution in getsops/sops#1571
-   [@&#8203;marensofier](https://github.com/marensofier) made their first contribution in getsops/sops#1578
-   [@&#8203;sabre1041](https://github.com/sabre1041) made their first contribution in getsops/sops#1823

**Full Changelog**: getsops/sops@v3.9.4...v3.10.0

</details>

---

### Configuration

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

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

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

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMjIuMyIsInVwZGF0ZWRJblZlciI6IjM5LjI0MC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ini: Encode duplicate sections

2 participants