File tree Expand file tree Collapse file tree 4 files changed +110
-0
lines changed
share/github-backup-utils Expand file tree Collapse file tree 4 files changed +110
-0
lines changed Original file line number Diff line number Diff line change @@ -94,6 +94,10 @@ if [ "$(version $GHE_REMOTE_VERSION)" -ge "$(version 3.8.0)" ]; then
94
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
95
fi
96
96
97
+ if [ " $( version $GHE_REMOTE_VERSION ) " -ge " $( version 3.11.0) " ]; then
98
+ backup-secret " secret scanning encrypted content keys" " secret-scanning-user-content-delimited-encryption-root-keys" " secrets.secret-scanning.secret-scanning-user-content-delimited-encryption-root-keys"
99
+ fi
100
+
97
101
# Backup argon secrets for multiuser from ghes version 3.8 onwards
98
102
if [[ " $( version $GHE_REMOTE_VERSION ) " -ge " $( version 3.8.0) " && " $( version $GHE_REMOTE_VERSION ) " -lt " $( version 3.8.2) " ]]; then
99
103
backup-secret " management console argon2 secret" " manage-argon-secret" " secrets.manage-auth.argon-secret"
Original file line number Diff line number Diff line change @@ -36,4 +36,10 @@ log_info "Restoring secret scanning encrypted secrets transit keys"
36
36
restore-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"
37
37
restore-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"
38
38
39
+ # Restore secret scanning content scanning keys if present
40
+ if [ " $( version $GHE_REMOTE_VERSION ) " -ge " $( version 3.11.0) " ]; then
41
+ log_info " Restoring secret scanning content scanning keys"
42
+ restore-secret " secret scanning user content delimited encryption root keys" " secret-scanning-user-content-delimited-encryption-root-keys" " secrets.secret-scanning.secret-scanning-user-content-delimited-encryption-root-keys"
43
+ fi
44
+
39
45
bm_end " $( basename $0 ) "
Original file line number Diff line number Diff line change @@ -832,6 +832,54 @@ begin_test "ghe-backup takes backup of secret scanning encrypted secrets encrypt
832
832
)
833
833
end_test
834
834
835
+ begin_test " ghe-backup does not take backups of secret scanning encrypted content encryption keys on versions below 3.11.0"
836
+ (
837
+ set -e
838
+
839
+ required_secrets=(
840
+ " secrets.secret-scanning.secret-scanning-user-content-delimited-encryption-root-keys"
841
+ )
842
+
843
+ for secret in " ${required_secrets[@]} " ; do
844
+ ghe-ssh " $GHE_HOSTNAME " -- ghe-config " $secret " " foo"
845
+ done
846
+
847
+ GHE_REMOTE_VERSION=3.10.0 ghe-backup -v | grep -q " secret scanning encrypted content" && exit 1
848
+
849
+ required_files=(
850
+ " secret-scanning-user-content-delimited-encryption-root-keys"
851
+ )
852
+
853
+ for file in " ${required_files[@]} " ; do
854
+ [ " $( cat " $GHE_DATA_DIR /current/$file " ) " = " " ]
855
+ done
856
+ )
857
+ end_test
858
+
859
+ begin_test " ghe-backup takes backup of secret scanning encrypted content encryption keys on versions 3.11.0+"
860
+ (
861
+ set -e
862
+
863
+ required_secrets=(
864
+ " secret-scanning.secret-scanning-user-content-delimited-encryption-root-keys"
865
+ )
866
+
867
+ for secret in " ${required_secrets[@]} " ; do
868
+ ghe-ssh " $GHE_HOSTNAME " -- ghe-config " $secret " " foo"
869
+ done
870
+
871
+ GHE_REMOTE_VERSION=3.11.0 ghe-backup
872
+
873
+ required_files=(
874
+ " secret-scanning-user-content-delimited-encryption-root-keys"
875
+ )
876
+
877
+ for file in " ${required_files[@]} " ; do
878
+ [ " $( cat " $GHE_DATA_DIR /current/$file " ) " = " foo" ]
879
+ done
880
+ )
881
+ end_test
882
+
835
883
begin_test " ghe-backup takes backup of Actions settings"
836
884
(
837
885
set -e
Original file line number Diff line number Diff line change @@ -454,6 +454,58 @@ begin_test "ghe-restore with secret scanning encrypted secrets encryption keys f
454
454
)
455
455
end_test
456
456
457
+ begin_test " ghe-restore with secret scanning encrypted content encryption keys for versions below 3.11.0"
458
+ (
459
+ set -e
460
+ rm -rf " $GHE_REMOTE_ROOT_DIR "
461
+ setup_remote_metadata
462
+
463
+ required_files=(
464
+ " secret-scanning-user-content-delimited-encryption-root-keys"
465
+ )
466
+
467
+ for file in " ${required_files[@]} " ; do
468
+ echo " foo" > " $GHE_DATA_DIR /current/$file "
469
+ done
470
+
471
+ GHE_REMOTE_VERSION=3.10.0 ghe-restore -v -f localhost
472
+
473
+ required_secrets=(
474
+ " secrets.secret-scanning.secret-scanning-user-content-delimited-encryption-root-keys"
475
+ )
476
+
477
+ for secret in " ${required_secrets[@]} " ; do
478
+ [ " $( ghe-ssh " $GHE_HOSTNAME " -- ghe-config " $secret " ) " = " " ] # expecting that this secret was not backed up on versions below 3.11.0, this secret was not present in earlier versions
479
+ done
480
+ )
481
+ end_test
482
+
483
+ begin_test " ghe-restore with secret scanning encrypted content encryption keys for versions 3.11.0+"
484
+ (
485
+ set -e
486
+ rm -rf " $GHE_REMOTE_ROOT_DIR "
487
+ setup_remote_metadata
488
+
489
+ required_files=(
490
+ " secret-scanning-user-content-delimited-encryption-root-keys"
491
+ )
492
+
493
+ for file in " ${required_files[@]} " ; do
494
+ echo " foo" > " $GHE_DATA_DIR /current/$file "
495
+ done
496
+
497
+ GHE_REMOTE_VERSION=3.11.0 ghe-restore -v -f localhost
498
+
499
+ required_secrets=(
500
+ " secrets.secret-scanning.secret-scanning-user-content-delimited-encryption-root-keys"
501
+ )
502
+
503
+ for secret in " ${required_secrets[@]} " ; do
504
+ [ " $( ghe-ssh " $GHE_HOSTNAME " -- ghe-config " $secret " ) " = " foo" ] # expecting this to have been restored successfully for versions 3.11.0+
505
+ done
506
+ )
507
+ end_test
508
+
457
509
# Setup Actions data for the subsequent tests
458
510
setup_actions_test_data " $GHE_DATA_DIR /1"
459
511
You can’t perform that action at this time.
0 commit comments