Files
msd-core/scripts/sync-rulesets.sh
Jakub Zych a9a7a328e6 refactor: hard-fork GSD -> MSD (Make Software Done)
Mechanical rename produced by scripts/msd-rename.cjs: gsd/Gsd/GSD -> msd/Msd/MSD
across contents and paths, upstream package/repo coordinates -> @golem15/msd-core
and golem15com/msd-core. Deep links into upstream history, sibling upstream
packages, the GSD-2 import feature, CHANGELOG.md and .changeset/ are kept as-is.

Hand edits on top: MSD block-letter banner and logos, LICENSE copyright line,
package/plugin identity, regenerated lockfile, install-tree fixtures, derived
registries and benchmark baseline; migration checksum baseline re-locked
(MSD keeps its own install state, so no install had applied the old sums);
sort-order and regex-escaped expectations in tests adjusted.
2026-10-06 01:47:40 +02:00

35 lines
1014 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
REPO="${REPO:-golem15com/msd-core}"
ENFORCEMENT="${ENFORCEMENT:-evaluate}"
case "$ENFORCEMENT" in
disabled|evaluate|active) ;;
*)
echo "ERROR: ENFORCEMENT must be one of: disabled|evaluate|active" >&2
exit 1
;;
esac
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
RULESETS_DIR="$SCRIPT_DIR/../.github/rulesets"
for ruleset_file in "$RULESETS_DIR"/*.json; do
name="$(jq -r '.name' "$ruleset_file")"
body="$(jq --arg enforcement "$ENFORCEMENT" '.enforcement = $enforcement' "$ruleset_file")"
existing_id="$(gh api "repos/$REPO/rulesets" --jq ".[] | select(.name==\"$name\") | .id" 2>/dev/null || true)"
if [ -n "$existing_id" ]; then
gh api --method PUT "repos/$REPO/rulesets/$existing_id" \
--input - <<< "$body" > /dev/null
echo "[update] $name -> enforcement=$ENFORCEMENT"
else
gh api --method POST "repos/$REPO/rulesets" \
--input - <<< "$body" > /dev/null
echo "[create] $name -> enforcement=$ENFORCEMENT"
fi
done