Skip to content

Commit f15612e

Browse files
committed
Merge branch 'master' into upd-transfer-size-cluster
2 parents 80e0af3 + 3bee490 commit f15612e

File tree

9 files changed

+81
-11
lines changed

9 files changed

+81
-11
lines changed

.github/CODEOWNERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Backup-Utils owned by lifecycle AOR
2+
* @github/ghes-lifecycle
3+
# Actions related backups and restores
4+
# /share/github-backup-utils/*-actions @github/ghes-lifecycle @github/<TBD>
5+
# Git related backups and restores
6+
# /share/github-backup-utils/*-repositories @github/ghes-lifecycle @github/<TBD>
7+
# /share/github-backup-utils/*-git-hooks @github/ghes-lifecycle @github/<TBD>

.github/workflows/lint.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ jobs:
1515
# Full git history is needed to get a proper list of changed files within `super-linter`
1616
fetch-depth: 0
1717
- name: Lint Code Base
18-
uses: github/super-linter@v5
18+
uses: super-linter/super-linter@v5
1919
env:
2020
VALIDATE_ALL_CODEBASE: false
21+
BASH_SEVERITY: error
2122
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: Test and build
22

3-
on: [pull_request]
3+
on: [pull_request, workflow_dispatch]
44

55
jobs:
66
build:

docs/requirements.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +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 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.
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.
99

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

ownership.yaml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
version: 1
3+
ownership:
4+
- name: ghes-backup-utilities
5+
long_name: GHES Backup Utilities
6+
description: GitHub Enterprise Disaster Recover Solution
7+
kind: logical
8+
repo: https://github.com/github/backup-utils-private
9+
qos: best_effort
10+
team_slack: ghes-lifecycle-aor
11+
team: github/ghes-lifecycle
12+
maintainer: whitneyimura
13+
exec_sponsor: jakuboleksy
14+
tier: 3
15+
product_manager: davidjarzebowski
16+
sev1:
17+
slack: ghes-on-call
18+
alert_slack: ghes-backup-utils
19+
pagerduty: https://github.pagerduty.com/escalation_policies#PBQWK20
20+
tta: 30 minutes
21+
sev2:
22+
issue: https://github.com/github/ghes/issues/new
23+
tta: 1 business day
24+
sev3:
25+
issue: https://github.com/github/ghes/issues
26+
tta: 1 week
27+
support_squad:
28+
slack: support-squad-infrastructure
29+
issue: https://github.com/github/support-squad-infrastructure/issues

share/github-backup-utils/ghe-backup-mssql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ fi
6262

6363
if ! export_tool_available ; then
6464
log_error "ghe-export-mssql is not available" 1>&2
65-
exit
65+
exit 1
6666
fi
6767

6868
add_minute() {

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)" && "$(version $GHE_REMOTE_VERSION)" -lt "$(version 3.8.2)" ]]; then

share/github-backup-utils/ghe-restore-mssql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ fi
5757

5858
if ! import_tool_available; then
5959
ghe_verbose "ghe-import-mssql is not available"
60-
exit
60+
exit 1
6161
fi
6262

6363
# Perform a host-check and establish the remote version in GHE_REMOTE_VERSION.

test/test-ghe-backup.sh

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -772,7 +772,7 @@ begin_test "ghe-backup takes backup of encrypted column encryption keying materi
772772
)
773773
end_test
774774

775-
begin_test "ghe-backup takes backup of secret scanning encrypted secrets encryption keys"
775+
begin_test "ghe-backup does not take backups of secret scanning encrypted secrets encryption keys on versions below 3.8.0"
776776
(
777777
set -e
778778

@@ -787,7 +787,37 @@ begin_test "ghe-backup takes backup of secret scanning encrypted secrets encrypt
787787
ghe-ssh "$GHE_HOSTNAME" -- ghe-config "$secret" "foo"
788788
done
789789

790-
ghe-backup
790+
GHE_REMOTE_VERSION=3.7.0 ghe-backup -v | grep -q "secret scanning encrypted secrets" && exit 1
791+
792+
required_files=(
793+
"secret-scanning-encrypted-secrets-current-storage-key"
794+
"secret-scanning-encrypted-secrets-delimited-storage-keys"
795+
"secret-scanning-encrypted-secrets-current-shared-transit-key"
796+
"secret-scanning-encrypted-secrets-delimited-shared-transit-keys"
797+
)
798+
799+
for file in "${required_files[@]}"; do
800+
[ "$(cat "$GHE_DATA_DIR/current/$file")" = "" ]
801+
done
802+
)
803+
end_test
804+
805+
begin_test "ghe-backup takes backup of secret scanning encrypted secrets encryption keys on versions 3.8.0+"
806+
(
807+
set -e
808+
809+
required_secrets=(
810+
"secrets.secret-scanning.encrypted-secrets-current-storage-key"
811+
"secrets.secret-scanning.encrypted-secrets-delimited-storage-keys"
812+
"secrets.secret-scanning.encrypted-secrets-current-shared-transit-key"
813+
"secrets.secret-scanning.encrypted-secrets-delimited-shared-transit-keys"
814+
)
815+
816+
for secret in "${required_secrets[@]}"; do
817+
ghe-ssh "$GHE_HOSTNAME" -- ghe-config "$secret" "foo"
818+
done
819+
820+
GHE_REMOTE_VERSION=3.8.0 ghe-backup
791821

792822
required_files=(
793823
"secret-scanning-encrypted-secrets-current-storage-key"

0 commit comments

Comments
 (0)