Skip to content

Commit ddbb472

Browse files
authored
Merge branch 'enterprise-3.8-release' into enterprise-3.8-backport-492-add-host-online-check
2 parents 7c380a8 + b1c890d commit ddbb472

File tree

8 files changed

+72
-11
lines changed

8 files changed

+72
-11
lines changed

debian/changelog

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1+
github-backup-utils (3.8.2) UNRELEASED; urgency=medium
2+
3+
* Use calculated routes when backing up storage data from a cluster #318
4+
* Move check for git for ssh muxing into ghe-ssh #378
5+
* Improve multi-platform detection of simultaneous ghe-backup runs #435
6+
7+
-- Devin Dooley <[email protected]> Wed, 16 Aug 2023 23:13:39 +0000
8+
9+
github-backup-utils (3.8.1) UNRELEASED; urgency=medium
10+
11+
* Backup and restore custom CA certificates #281
12+
* Switch to TMPDIR before initiating SSH multiplexing workaround to prevent locking the destination filesystem #348
13+
* Remove check for git from ghe-ssh #393
14+
* Optimise hookshot and audit log backups and restores and MySQL restores #413
15+
* Add missing dependencies to debian packaging #418
16+
* Restoring to an un-configured appliance fails due to a missing license file #449
17+
18+
-- Devin Dooley <[email protected]> Wed, 26 Jul 2023 01:30:01 +0000
19+
120
github-backup-utils (3.8.0) focal; urgency=medium
221

322
-- Daniel Johnson <[email protected]> Tue, 07 Feb 2023 21:43:26 +0000

docs/requirements.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ storage and must have network connectivity with the GitHub Enterprise Server app
55

66
## Backup host requirements
77

8-
Backup host software requirements are modest: Linux or other modern Unix operating
9-
system (Ubuntu is highly recommended) with [bash][1], [git][2], [OpenSSH][3] 5.6 or newer, [rsync][4] v2.6.4 or newer, and [jq][11] v1.5 or newer.
8+
Backup host software requirements are modest: Linux or other modern Unix operating system (Ubuntu is highly recommended) with [bash][1], [git][2], [OpenSSH][3] 5.6 or newer, [rsync][4] v2.6.4 or newer* (see [below](#april-2023-update-of-rsync-requirements) for exceptions), [jq][11] v1.5 or newer, and [bc][12] v1.07 or newer.
109

1110
The parallel backup and restore feature will require [GNU awk][10] and [moreutils][9] to be installed.
1211

@@ -79,3 +78,4 @@ Due to how some components of Backup Utilities (e.g. MSSQL) take incremental bac
7978
[9]: https://joeyh.name/code/moreutils
8079
[10]: https://www.gnu.org/software/gawk
8180
[11]: https://stedolan.github.io/jq/
81+
[12]: https://www.gnu.org/software/bc/

share/github-backup-utils/ghe-backup-config

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,10 @@ ghe_parallel_check() {
207207
GHE_PARALLEL_COMMAND="parallel"
208208
local x
209209
for x in \
210+
/usr/bin/parallel-moreutils \
210211
/usr/bin/parallel.moreutils \
211212
/usr/bin/parallel_moreutils \
213+
/usr/bin/moreutils-parallel \
212214
/usr/bin/moreutils.parallel \
213215
/usr/bin/moreutils_parallel \
214216
; do

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

share/github-backup-utils/version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.8.0
1+
3.8.2

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"

test/test-ghe-host-check.sh

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,14 @@ begin_test "ghe-host-check detects unsupported GitHub Enterprise Server versions
5656
read -r bu_version_major bu_version_minor _ <<<$(ghe_parse_version $BACKUP_UTILS_VERSION)
5757
bu_major_minor="$bu_version_major.$bu_version_minor"
5858
releases=$(/usr/bin/curl -s https://github-enterprise.s3.amazonaws.com/release/latest.json)
59-
supported=$(echo $releases | jq -r 'select(."'${bu_major_minor}'")')
59+
latest_value=$(echo "$releases" | jq -r '.latest')
60+
latest_major_version=$(echo $latest_value | cut -d "." -f 1-2)
61+
# Replace "latest" with the derived major version in the releases string
62+
releases_with_replacement=$(echo "$releases" | sed 's/"latest"/"'"$latest_major_version"'"/g')
63+
# Use the modified releases string as needed
64+
supported=$(echo "$releases_with_replacement" | jq -r 'select(."'${bu_major_minor}'")')
6065
# shellcheck disable=SC2207 # Command required as alternatives fail
61-
keys=($(echo $releases | jq -r 'keys[]'))
66+
keys=($(echo "$releases_with_replacement" | jq -r 'keys[]'))
6267

6368
if [ -z "$supported" ]
6469
then

test/testlib.sh

100644100755
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -588,8 +588,10 @@ setup_moreutils_parallel() {
588588
# We need moreutils parallel
589589
local x
590590
for x in \
591+
/usr/bin/parallel-moreutils \
591592
/usr/bin/parallel.moreutils \
592593
/usr/bin/parallel_moreutils \
594+
/usr/bin/moreutils-parallel \
593595
/usr/bin/moreutils.parallel \
594596
/usr/bin/moreutils_parallel \
595597
; do

0 commit comments

Comments
 (0)