#!/usr/bin/env bash set -euo pipefail # Task manager: Ensure tasks are exported before push if [ -d .tasks ]; then task export --flush 2>/dev/null || true fi remote="$1" z40=0000000000000000000000000000000000000000 IFS=" " while read local_ref local_sha remote_ref remote_sha do if [ "$local_sha" = $z40 ] then # delete, do nothing continue elif [ "$remote_sha" = $z40 ] then # new branch, test all commits since ci was implemented range="11d95581fb178a5d21e88dfd8030a61886cc2519..$local_sha" else range="$remote_sha..$local_sha" fi done gitlint --commits "$range" lint git test run --command ci "$range" git push "$remote" refs/notes/ci --no-verify