G-1: 메신저 Webhook Relay + _send_to_room 실제 httpx 호출 구현 G-2: POST /api/tasks/bulk SR 대량작업 엔드포인트 (최대 100건) G-3: 라이선스 만료 알림 스케줄러 (매일 09:00 KST) G-4: 체험판 upgrade_banner 필드 + license.py 배너 로직 G-5: core/auto_rca.py + incidents/problem auto-rca 엔드포인트 G-6: core/deploy_impact.py + vibe impact-analysis 엔드포인트 G-7: core/ticket_classifier.py + SR 생성 시 AI 분류 + ai-suggestion API G-8: VulnPatchRecord 모델 + vuln_scan 패치추적 4개 엔드포인트 G-9: core/jira_sync.py + gateway Jira/Confluence 연동 엔드포인트 G-10: core/push_notify.py + routers/push.py + PushSubscription 모델 G-11: approvals 다중승인 (위임/서명/기한초과/마감연장) G-12: alembic.ini + migrations/ + cicd/migrate_to_postgres.sh 하네스: guardia-orchestrator 확장기능 Phase 반영 봇명령어: /sr /status /license /bulk 슬래시 명령어 추가 설치스크립트: setup/ (Ubuntu, CentOS, RHEL, Windows) --test 옵션 포함 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
65 lines
2.0 KiB
Bash
65 lines
2.0 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# This is used by the Node.js installer, which expects the cygwin/mingw
|
|
# shell script to already be present in the npm dependency folder.
|
|
|
|
(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix
|
|
|
|
basedir=`dirname "$0"`
|
|
|
|
case `uname` in
|
|
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
|
esac
|
|
|
|
if [ `uname` = 'Linux' ] && type wslpath &>/dev/null ; then
|
|
IS_WSL="true"
|
|
fi
|
|
|
|
function no_node_dir {
|
|
# if this didn't work, then everything else below will fail
|
|
echo "Could not determine Node.js install directory" >&2
|
|
exit 1
|
|
}
|
|
|
|
NODE_EXE="$basedir/node.exe"
|
|
if ! [ -x "$NODE_EXE" ]; then
|
|
NODE_EXE="$basedir/node"
|
|
fi
|
|
if ! [ -x "$NODE_EXE" ]; then
|
|
NODE_EXE=node
|
|
fi
|
|
|
|
# this path is passed to node.exe, so it needs to match whatever
|
|
# kind of paths Node.js thinks it's using, typically win32 paths.
|
|
CLI_BASEDIR="$("$NODE_EXE" -p 'require("path").dirname(process.execPath)' 2> /dev/null)"
|
|
if [ $? -ne 0 ]; then
|
|
# this fails under WSL 1 so add an additional message. we also suppress stderr above
|
|
# because the actual error raised is not helpful. in WSL 1 node.exe cannot handle
|
|
# output redirection properly. See https://github.com/microsoft/WSL/issues/2370
|
|
if [ "$IS_WSL" == "true" ]; then
|
|
echo "WSL 1 is not supported. Please upgrade to WSL 2 or above." >&2
|
|
fi
|
|
no_node_dir
|
|
fi
|
|
NPM_CLI_JS="$CLI_BASEDIR/node_modules/npm/bin/npm-cli.js"
|
|
NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g`
|
|
if [ $? -ne 0 ]; then
|
|
no_node_dir
|
|
fi
|
|
NPM_PREFIX_NPM_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npm-cli.js"
|
|
|
|
# a path that will fail -f test on any posix bash
|
|
NPM_WSL_PATH="/.."
|
|
|
|
# WSL can run Windows binaries, so we have to give it the win32 path
|
|
# however, WSL bash tests against posix paths, so we need to construct that
|
|
# to know if npm is installed globally.
|
|
if [ "$IS_WSL" == "true" ]; then
|
|
NPM_WSL_PATH=`wslpath "$NPM_PREFIX_NPM_CLI_JS"`
|
|
fi
|
|
if [ -f "$NPM_PREFIX_NPM_CLI_JS" ] || [ -f "$NPM_WSL_PATH" ]; then
|
|
NPM_CLI_JS="$NPM_PREFIX_NPM_CLI_JS"
|
|
fi
|
|
|
|
"$NODE_EXE" "$NPM_CLI_JS" "$@"
|