26 lines
766 B
Bash
26 lines
766 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
TARGET_BRANCH="${1:-main}"
|
|
SOURCE_BRANCH="${2:-}"
|
|
|
|
if [[ -z "$SOURCE_BRANCH" ]]; then
|
|
SOURCE_BRANCH="$(git rev-parse --abbrev-ref HEAD)"
|
|
fi
|
|
|
|
if [[ "$SOURCE_BRANCH" == "$TARGET_BRANCH" ]]; then
|
|
echo "Déjà sur $TARGET_BRANCH"; exit 0
|
|
fi
|
|
|
|
# Valider localement avant merge
|
|
AUTO_FIX="${AUTO_FIX:-1}" SCOPE="${SCOPE:-all}" scripts/agents/run.sh || true
|
|
if [ -f scripts/security/audit.sh ]; then bash scripts/security/audit.sh || true; fi
|
|
|
|
git fetch origin --prune
|
|
git checkout "$TARGET_BRANCH"
|
|
git pull --ff-only origin "$TARGET_BRANCH" || true
|
|
git merge --no-ff "$SOURCE_BRANCH" -m "[skip ci] merge: $SOURCE_BRANCH -> $TARGET_BRANCH"
|
|
git push origin "$TARGET_BRANCH"
|
|
|
|
echo "Merge effectué: $SOURCE_BRANCH → $TARGET_BRANCH"
|