Skip to content

Bump github.com/go-git/go-git/v5 from 5.12.0 to 5.13.0#7

Closed
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/go_modules/github.com/go-git/go-git/v5-5.13.0
Closed

Bump github.com/go-git/go-git/v5 from 5.12.0 to 5.13.0#7
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/go_modules/github.com/go-git/go-git/v5-5.13.0

Conversation

@dependabot
Copy link
Copy Markdown

@dependabot dependabot Bot commented on behalf of github Mar 28, 2025

Bumps github.com/go-git/go-git/v5 from 5.12.0 to 5.13.0.

Release notes

Sourced from github.com/go-git/go-git/v5's releases.

v5.13.0

What's Changed

... (truncated)

Commits
  • 94bd4af Merge pull request #1261 from BeChris/issue680
  • 8b7f5ba Merge pull request #1262 from go-git/dependabot/go_modules/github.com/elazarl...
  • 41d80a0 build: bump github.com/elazarl/goproxy
  • 4998140 git: worktree_commit, sanitize author and commiter name and email before crea...
  • 9049625 Merge pull request #1260 from go-git/dependabot/github_actions/github/codeql-...
  • dae48b4 build: bump github/codeql-action from 3.27.9 to 3.28.0
  • 7d6fbc2 Merge pull request #1220 from BeChris/accept_uppercase_hexa_in_pktline_length
  • 62a77b7 plumbing: Fix invalid reference name error while cloning branches containing ...
  • 5e11196 plumbing: format/pktline, accept upercase hexadecimal value as pktline length...
  • 65f5e1a Merge pull request #1256 from go-git/dependabot/go_modules/golang-org-232a611e2d
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.12.0 to 5.13.0.
- [Release notes](https://github.com/go-git/go-git/releases)
- [Commits](go-git/go-git@v5.12.0...v5.13.0)

---
updated-dependencies:
- dependency-name: github.com/go-git/go-git/v5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot @github
Copy link
Copy Markdown
Author

dependabot Bot commented on behalf of github Apr 1, 2025

Looks like github.com/go-git/go-git/v5 is up-to-date now, so this is no longer needed.

@dependabot dependabot Bot closed this Apr 1, 2025
@dependabot dependabot Bot deleted the dependabot/go_modules/github.com/go-git/go-git/v5-5.13.0 branch April 1, 2025 08:00
Cre-eD added a commit that referenced this pull request May 8, 2026
## Summary

Adds opt-in encryption-at-rest for AWS RDS instances managed by SC.
Existing customers get **zero** behaviour change unless they explicitly
set the new field.

| File | Change |
|---|---|
| `pkg/clouds/aws/rds_mysql.go` | `MysqlConfig.StorageEncrypted *bool`
(new optional field) |
| `pkg/clouds/aws/rds_postgres.go` | `PostgresConfig.StorageEncrypted
*bool` (same) |
| `pkg/clouds/pulumi/aws/rds_mysql.go` | `StorageEncrypted:
sdk.Bool(lo.FromPtr(dbConfig.StorageEncrypted))` +
`sdk.IgnoreChanges([]string{"storageEncrypted"})` |
| `pkg/clouds/pulumi/aws/rds_postgres.go` | same |
| `pkg/clouds/aws/rds_storage_encrypted_test.go` | new — unit tests for
the opt-in semantics |

## Opt-in behaviour (per Ilya's review feedback)

| Customer config | `dbConfig.StorageEncrypted` | Pulumi
`StorageEncrypted` | Effect |
|---|---|---|---|
| Field omitted (legacy stacks) | `nil` | `false` | UNENCRYPTED —
preserves pre-2026.5 behaviour |
| `storageEncrypted: true` | `&true` | `true` | Encrypted (AWS-managed
`aws/rds` KMS key) |
| `storageEncrypted: false` | `&false` | `false` | Explicit unencrypted
(respect the call) |

This means **no customer gets encryption silently** — they have to opt
in.

## Why `IgnoreChanges` is still required

`storage_encrypted` is **immutable post-creation** in AWS RDS. Without
`IgnoreChanges`, the moment a customer flips the new field to `true` on
a stack with a pre-existing unencrypted instance, Pulumi would propose a
**destructive replacement** (drop + recreate, data loss + downtime).

`sdk.IgnoreChanges([]string{"storageEncrypted"})` silences that drift.
Behaviour:
- ✅ NEW instance + `storageEncrypted: true` → created encrypted from the
start.
- ✅ EXISTING unencrypted instance + customer flips to `true` → no diff,
no replacement; the customer's data is safe but the existing instance
stays unencrypted. They have to migrate out-of-band (see below).
- ✅ EXISTING unencrypted instance + field stays `nil` → no diff.
Pre-2026.5 behaviour preserved exactly.

## Migration path for existing unencrypted instances

`sc deploy` will not migrate automatically — the AWS encryption switch
is destructive. The standard AWS path:

1. Take a snapshot of the unencrypted instance.
2. `CopyDBSnapshot` with encryption enabled (`KmsKeyId` set).
3. Restore from the encrypted snapshot to a new instance.
4. Cut traffic over (DNS / app config), then delete the old instance.
5. Re-import the new instance into the SC Pulumi stack.

Documented inline next to the `IgnoreChanges` line so a future
maintainer doesn't accidentally remove the safety.

## Why surfaced now

`simple-container-com/actions` PR #7 adds a new semgrep rule
`go-aws-rds-no-storage-encryption` (ERROR severity). Walking the api
codebase to write that rule revealed two pre-existing instances with
unset encryption defaults. Originally I went with hard-coded
`StorageEncrypted: true`; per review feedback this is now opt-in.

The semgrep rule on actions repo treats `StorageEncrypted:
pulumi.Bool(true)` literal as "OK", and `StorageEncrypted:
pulumi.Bool(false)` literal as "still ERROR". Our generated value uses
`lo.FromPtr` which the rule sees textually as `pulumi.Bool(...)` — but
it's `sdk.Bool` here. Verified: rule's `pattern-not-regex:
'StorageEncrypted:\s*\w+\.Bool\(true\)'` does NOT match
`sdk.Bool(lo.FromPtr(...))` because the function inside `Bool(...)`
isn't `true`. So this code WILL still trigger the rule when scanned with
PR #7's ruleset — by design. The rule is conservative; it can't
statically prove `lo.FromPtr` resolves to true. Acceptable trade-off:
code is conservatively flagged, reviewer eyeballs the call site,
confirms the opt-in plumbing is correct, dismisses or fixes.

## KMS

`StorageEncrypted: sdk.Bool(true)` without `KmsKeyId` uses AWS-managed
`aws/rds`. Customer-managed key per stack is a follow-up — the
immediate-controls bar is encrypt-at-all when the customer opts in.

## Test plan

### Unit (in this PR — green)
- [x] `go test ./pkg/clouds/aws/...` —
`TestReadRdsMysqlConfig_StorageEncrypted` and
`TestReadRdsPostgresConfig_StorageEncrypted`, 6 subtests total covering
all three states for both engines
- [x] Full `go test ./...` — clean

### Integration (manual, after merge)
- [ ] **Brand-new stack, no opt-in**: `pulumi preview` shows `+
Instance` with `storage_encrypted: false` (legacy behaviour preserved).
- [ ] **Brand-new stack with opt-in**: same preview shows
`storage_encrypted: true`, KmsKeyId resolves to the AWS-managed default.
- [ ] **Existing customer post-upgrade, no config change**: `pulumi
preview` shows **no diff** on the RDS instance (this is the critical
migration-safety test — proves IgnoreChanges + nil default both kick
in).
- [ ] **Existing customer flipping the field to true**: `pulumi preview`
shows **no diff** (silenced by `IgnoreChanges` — explicit demonstration
of the safety net).

### E2E (manual, sandbox AWS account)
- [ ] Variant A (no opt-in): create RDS, `aws rds describe-db-instances
--query '[*].StorageEncrypted'` → `false`.
- [ ] Variant B (opt-in true): same query → `true`.
- [ ] Variant C (legacy → upgrade simulation): create with old code
unencrypted, then `sc deploy` with new code (no config change) →
describe → `StorageEncrypted` still `false`, instance ID unchanged.
- [ ] Tear down.

## Out of scope
- Customer-managed KMS key (`KmsKeyId`) — follow-up.
- Schema-version-style bundling of multiple hardening defaults — only
one knob today; mongodb-atlas precedent (`NamingStrategyVersion`) exists
if the count grows.
- Migrating already-deployed unencrypted instances on customer fleets —
manual, out-of-band, documented above.

---------

Signed-off-by: Dmitrii Creed <creeed22@gmail.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.

0 participants