@@ -281,7 +281,18 @@ begin_test "ghe-restore with no pages backup"
281281)
282282end_test
283283
284- begin_test " ghe-restore with encrypted column encryption keying material"
284+ begin_test " ghe-restore does not restore encrypted column encryption keying material for versions below 3.7.0"
285+ (
286+ GHE_REMOTE_VERSION=2.1.10 ghe-restore -v -f localhost | grep -q " encrypted column encryption keying material not set" && exit 1
287+ [ ! -f " $GHE_DATA_DIR /current/encrypted-column-keying-material" ]
288+
289+ GHE_REMOTE_VERSION=3.6.1 ghe-restore -v -f localhost | grep -q " encrypted column encryption keying material not set" && exit 1
290+ [ ! -f " $GHE_DATA_DIR /current/encrypted-column-keying-material" ]
291+
292+ )
293+ end_test
294+
295+ begin_test " ghe-restore with encrypted column encryption keying material for versions 3.7.0+"
285296(
286297 set -e
287298 rm -rf " $GHE_REMOTE_ROOT_DIR "
@@ -295,6 +306,23 @@ begin_test "ghe-restore with encrypted column encryption keying material"
295306 echo " foo" > " $GHE_DATA_DIR /current/$file "
296307 done
297308
309+ # GHES version 3.7.0
310+ GHE_REMOTE_VERSION=3.7.0
311+ export GHE_REMOTE_VERSION
312+
313+ ghe-restore -v -f localhost
314+ required_secrets=(
315+ " secrets.github.encrypted-column-keying-material"
316+ )
317+
318+ for secret in " ${required_secrets[@]} " ; do
319+ [ " $( ghe-ssh " $GHE_HOSTNAME " -- ghe-config " $secret " ) " = " foo" ]
320+ done
321+
322+ # GHES version 3.8.0
323+ GHE_REMOTE_VERSION=3.8.0
324+ export GHE_REMOTE_VERSION
325+
298326 ghe-restore -v -f localhost
299327 required_secrets=(
300328 " secrets.github.encrypted-column-keying-material"
@@ -306,7 +334,19 @@ begin_test "ghe-restore with encrypted column encryption keying material"
306334)
307335end_test
308336
309- begin_test " ghe-restore with encrypted column current encryption key"
337+
338+ begin_test " ghe-restore does not encrypted column current encryption key for versions below 3.8.0"
339+ (
340+ GHE_REMOTE_VERSION=2.1.10 ghe-restore -v -f | grep -q " encrypted column current encryption key not set" && exit 1
341+ [ ! -f " $GHE_DATA_DIR /current/encrypted-column-current-encryption-key" ]
342+
343+ GHE_REMOTE_VERSION=3.7.0 ghe-restore -v -f | grep -q " encrypted column current encryption key not set" && exit 1
344+ [ ! -f " $GHE_DATA_DIR /current/encrypted-column-current-encryption-key" ]
345+
346+ )
347+ end_test
348+
349+ begin_test " ghe-restore with encrypted column current encryption key for versions 3.8.0+"
310350(
311351 set -e
312352 rm -rf " $GHE_REMOTE_ROOT_DIR "
@@ -320,6 +360,24 @@ begin_test "ghe-restore with encrypted column current encryption key"
320360 echo " foo" > " $GHE_DATA_DIR /current/$file "
321361 done
322362
363+ # GHES version 3.8.0
364+ GHE_REMOTE_VERSION=3.8.0
365+ export GHE_REMOTE_VERSION
366+
367+ ghe-restore -v -f localhost
368+ required_secrets=(
369+ " secrets.github.encrypted-column-current-encryption-key"
370+ )
371+
372+ for secret in " ${required_secrets[@]} " ; do
373+ [ " $( ghe-ssh " $GHE_HOSTNAME " -- ghe-config " $secret " ) " = " foo" ]
374+ done
375+
376+
377+ # GHES version 3.9.0
378+ GHE_REMOTE_VERSION=3.9.0
379+ export GHE_REMOTE_VERSION
380+
323381 ghe-restore -v -f localhost
324382 required_secrets=(
325383 " secrets.github.encrypted-column-current-encryption-key"
0 commit comments