Complete architecture document set with multi-model review remediation: - Frozen interface contracts, runtime semantics, DB schemas - Event/tool/error/provider registries - Scheduler and main agent state machines - C4 module/code views, solution architecture, baseline V1 - Multi-model review reports and joint assessment - Phase-gate remediation complete (P0/P1/P2/UX resolved) - Implementation plan with T-000A through T-045 - Reference folders kept as placeholders only
47 lines
1.3 KiB
Bash
47 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
notarize_submission() {
|
|
local label="$1"
|
|
local path="$2"
|
|
local notary_key_path="$3"
|
|
|
|
if [[ -z "${APPLE_NOTARIZATION_KEY_ID:-}" || -z "${APPLE_NOTARIZATION_ISSUER_ID:-}" ]]; then
|
|
echo "APPLE_NOTARIZATION_KEY_ID and APPLE_NOTARIZATION_ISSUER_ID are required for notarization"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -z "$notary_key_path" || ! -f "$notary_key_path" ]]; then
|
|
echo "Notary key file $notary_key_path not found"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -f "$path" ]]; then
|
|
echo "Notarization payload $path not found"
|
|
exit 1
|
|
fi
|
|
|
|
local submission_json
|
|
submission_json=$(xcrun notarytool submit "$path" \
|
|
--key "$notary_key_path" \
|
|
--key-id "$APPLE_NOTARIZATION_KEY_ID" \
|
|
--issuer "$APPLE_NOTARIZATION_ISSUER_ID" \
|
|
--output-format json \
|
|
--wait)
|
|
|
|
local status submission_id
|
|
status=$(printf '%s\n' "$submission_json" | jq -r '.status // "Unknown"')
|
|
submission_id=$(printf '%s\n' "$submission_json" | jq -r '.id // ""')
|
|
|
|
if [[ -z "$submission_id" ]]; then
|
|
echo "Failed to retrieve submission ID for $label"
|
|
exit 1
|
|
fi
|
|
|
|
echo "::notice title=Notarization::$label submission ${submission_id} completed with status ${status}"
|
|
|
|
if [[ "$status" != "Accepted" ]]; then
|
|
echo "Notarization failed for ${label} (submission ${submission_id}, status ${status})"
|
|
exit 1
|
|
fi
|
|
}
|