Skip to content

Commit 915e285

Browse files
authored
Merge pull request #536 from github/enterprise-3.8-backport-528-suppress-secret-scanning-encrypted-secrets-warning
Backport 528 for 3.8: Only backup secret scanning secrets on GHES versions 3.8.0+
2 parents 2d416d9 + a37ae4b commit 915e285

File tree

2 files changed

+39
-6
lines changed

2 files changed

+39
-6
lines changed

share/github-backup-utils/ghe-backup-settings

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,13 @@ if [ "$(version $GHE_REMOTE_VERSION)" -ge "$(version 3.7.0)" ]; then
8686
cat "$GHE_SNAPSHOT_DIR/encrypted-column-encryption-keying-material" | sed 's:.*;::' > "$GHE_SNAPSHOT_DIR/encrypted-column-current-encryption-key"
8787
fi
8888

89-
backup-secret "secret scanning encrypted secrets current storage key" "secret-scanning-encrypted-secrets-current-storage-key" "secrets.secret-scanning.encrypted-secrets-current-storage-key"
90-
backup-secret "secret scanning encrypted secrets delimited storage keys" "secret-scanning-encrypted-secrets-delimited-storage-keys" "secrets.secret-scanning.encrypted-secrets-delimited-storage-keys"
91-
backup-secret "secret scanning encrypted secrets current shared transit key" "secret-scanning-encrypted-secrets-current-shared-transit-key" "secrets.secret-scanning.encrypted-secrets-current-shared-transit-key"
92-
backup-secret "secret scanning encrypted secrets delimited shared transit keys" "secret-scanning-encrypted-secrets-delimited-shared-transit-keys" "secrets.secret-scanning.encrypted-secrets-delimited-shared-transit-keys"
89+
# secret scanning encrypted secrets keys were added in GHES 3.8.0
90+
if [ "$(version $GHE_REMOTE_VERSION)" -ge "$(version 3.8.0)" ]; then
91+
backup-secret "secret scanning encrypted secrets current storage key" "secret-scanning-encrypted-secrets-current-storage-key" "secrets.secret-scanning.encrypted-secrets-current-storage-key"
92+
backup-secret "secret scanning encrypted secrets delimited storage keys" "secret-scanning-encrypted-secrets-delimited-storage-keys" "secrets.secret-scanning.encrypted-secrets-delimited-storage-keys"
93+
backup-secret "secret scanning encrypted secrets current shared transit key" "secret-scanning-encrypted-secrets-current-shared-transit-key" "secrets.secret-scanning.encrypted-secrets-current-shared-transit-key"
94+
backup-secret "secret scanning encrypted secrets delimited shared transit keys" "secret-scanning-encrypted-secrets-delimited-shared-transit-keys" "secrets.secret-scanning.encrypted-secrets-delimited-shared-transit-keys"
95+
fi
9396

9497
# Backup argon secrets for multiuser from ghes version 3.8 onwards
9598
if [ "$(version $GHE_REMOTE_VERSION)" -ge "$(version 3.8.0)" ]; then

test/test-ghe-backup.sh

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -698,7 +698,7 @@ begin_test "ghe-backup takes backup of encrypted column encryption keying materi
698698
)
699699
end_test
700700

701-
begin_test "ghe-backup takes backup of secret scanning encrypted secrets encryption keys"
701+
begin_test "ghe-backup does not take backups of secret scanning encrypted secrets encryption keys on versions below 3.8.0"
702702
(
703703
set -e
704704

@@ -713,7 +713,37 @@ begin_test "ghe-backup takes backup of secret scanning encrypted secrets encrypt
713713
ghe-ssh "$GHE_HOSTNAME" -- ghe-config "$secret" "foo"
714714
done
715715

716-
ghe-backup
716+
GHE_REMOTE_VERSION=3.7.0 ghe-backup -v | grep -q "secret scanning encrypted secrets" && exit 1
717+
718+
required_files=(
719+
"secret-scanning-encrypted-secrets-current-storage-key"
720+
"secret-scanning-encrypted-secrets-delimited-storage-keys"
721+
"secret-scanning-encrypted-secrets-current-shared-transit-key"
722+
"secret-scanning-encrypted-secrets-delimited-shared-transit-keys"
723+
)
724+
725+
for file in "${required_files[@]}"; do
726+
[ "$(cat "$GHE_DATA_DIR/current/$file")" = "" ]
727+
done
728+
)
729+
end_test
730+
731+
begin_test "ghe-backup takes backup of secret scanning encrypted secrets encryption keys on versions 3.8.0+"
732+
(
733+
set -e
734+
735+
required_secrets=(
736+
"secrets.secret-scanning.encrypted-secrets-current-storage-key"
737+
"secrets.secret-scanning.encrypted-secrets-delimited-storage-keys"
738+
"secrets.secret-scanning.encrypted-secrets-current-shared-transit-key"
739+
"secrets.secret-scanning.encrypted-secrets-delimited-shared-transit-keys"
740+
)
741+
742+
for secret in "${required_secrets[@]}"; do
743+
ghe-ssh "$GHE_HOSTNAME" -- ghe-config "$secret" "foo"
744+
done
745+
746+
GHE_REMOTE_VERSION=3.8.0 ghe-backup
717747

718748
required_files=(
719749
"secret-scanning-encrypted-secrets-current-storage-key"

0 commit comments

Comments
 (0)