aidevops 2.52.1 → 2.53.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/VERSION +1 -1
- package/aidevops.sh +15 -9
- package/package.json +4 -4
- package/scripts/npm-postinstall.js +6 -7
- package/setup.sh +1 -1
- package/templates/deploy-templates.sh +144 -0
- package/templates/home/.agent/README.md +33 -0
- package/templates/home/AGENTS.md +96 -0
- package/templates/home/git/.agent/README.md +48 -0
- package/templates/home/git/AGENTS.md +97 -0
- package/templates/standard-functions.sh +179 -0
- package/templates/wordpress-performance-workflow.md +217 -0
- package/.agent/AGENTS.md +0 -614
- package/.agent/accounts.md +0 -65
- package/.agent/aidevops/add-new-mcp-to-aidevops.md +0 -456
- package/.agent/aidevops/api-integrations.md +0 -335
- package/.agent/aidevops/architecture.md +0 -510
- package/.agent/aidevops/configs.md +0 -274
- package/.agent/aidevops/docs.md +0 -244
- package/.agent/aidevops/extension.md +0 -311
- package/.agent/aidevops/mcp-integrations.md +0 -340
- package/.agent/aidevops/mcp-troubleshooting.md +0 -162
- package/.agent/aidevops/memory-patterns.md +0 -172
- package/.agent/aidevops/providers.md +0 -217
- package/.agent/aidevops/recommendations.md +0 -321
- package/.agent/aidevops/requirements.md +0 -301
- package/.agent/aidevops/resources.md +0 -214
- package/.agent/aidevops/security-requirements.md +0 -174
- package/.agent/aidevops/security.md +0 -350
- package/.agent/aidevops/service-links.md +0 -400
- package/.agent/aidevops/services.md +0 -357
- package/.agent/aidevops/setup.md +0 -153
- package/.agent/aidevops/troubleshooting.md +0 -389
- package/.agent/aidevops.md +0 -124
- package/.agent/build-plus.md +0 -244
- package/.agent/content/guidelines.md +0 -109
- package/.agent/content.md +0 -87
- package/.agent/health.md +0 -59
- package/.agent/legal.md +0 -59
- package/.agent/loop-state/full-loop.local.md +0 -16
- package/.agent/loop-state/ralph-loop.local.md +0 -10
- package/.agent/marketing.md +0 -440
- package/.agent/memory/README.md +0 -260
- package/.agent/onboarding.md +0 -796
- package/.agent/plan-plus.md +0 -245
- package/.agent/research.md +0 -100
- package/.agent/sales.md +0 -333
- package/.agent/scripts/101domains-helper.sh +0 -701
- package/.agent/scripts/add-missing-returns.sh +0 -140
- package/.agent/scripts/agent-browser-helper.sh +0 -311
- package/.agent/scripts/agno-setup.sh +0 -712
- package/.agent/scripts/ahrefs-mcp-wrapper.js +0 -168
- package/.agent/scripts/aidevops-update-check.sh +0 -71
- package/.agent/scripts/ampcode-cli.sh +0 -522
- package/.agent/scripts/auto-version-bump.sh +0 -156
- package/.agent/scripts/autogen-helper.sh +0 -512
- package/.agent/scripts/beads-sync-helper.sh +0 -596
- package/.agent/scripts/closte-helper.sh +0 -5
- package/.agent/scripts/cloudron-helper.sh +0 -321
- package/.agent/scripts/codacy-cli-chunked.sh +0 -581
- package/.agent/scripts/codacy-cli.sh +0 -442
- package/.agent/scripts/code-audit-helper.sh +0 -5
- package/.agent/scripts/coderabbit-cli.sh +0 -417
- package/.agent/scripts/coderabbit-pro-analysis.sh +0 -238
- package/.agent/scripts/commands/code-simplifier.md +0 -86
- package/.agent/scripts/commands/full-loop.md +0 -246
- package/.agent/scripts/commands/postflight-loop.md +0 -103
- package/.agent/scripts/commands/recall.md +0 -182
- package/.agent/scripts/commands/remember.md +0 -132
- package/.agent/scripts/commands/save-todo.md +0 -175
- package/.agent/scripts/commands/session-review.md +0 -154
- package/.agent/scripts/comprehensive-quality-fix.sh +0 -106
- package/.agent/scripts/context-builder-helper.sh +0 -522
- package/.agent/scripts/coolify-cli-helper.sh +0 -674
- package/.agent/scripts/coolify-helper.sh +0 -380
- package/.agent/scripts/crawl4ai-examples.sh +0 -401
- package/.agent/scripts/crawl4ai-helper.sh +0 -1078
- package/.agent/scripts/crewai-helper.sh +0 -681
- package/.agent/scripts/dev-browser-helper.sh +0 -513
- package/.agent/scripts/dns-helper.sh +0 -396
- package/.agent/scripts/domain-research-helper.sh +0 -917
- package/.agent/scripts/dspy-helper.sh +0 -285
- package/.agent/scripts/dspyground-helper.sh +0 -291
- package/.agent/scripts/eeat-score-helper.sh +0 -1242
- package/.agent/scripts/efficient-return-fix.sh +0 -92
- package/.agent/scripts/extract-opencode-prompts.sh +0 -128
- package/.agent/scripts/find-missing-returns.sh +0 -113
- package/.agent/scripts/fix-auth-headers.sh +0 -104
- package/.agent/scripts/fix-common-strings.sh +0 -254
- package/.agent/scripts/fix-content-type.sh +0 -100
- package/.agent/scripts/fix-error-messages.sh +0 -130
- package/.agent/scripts/fix-misplaced-returns.sh +0 -74
- package/.agent/scripts/fix-remaining-literals.sh +0 -152
- package/.agent/scripts/fix-return-statements.sh +0 -41
- package/.agent/scripts/fix-s131-default-cases.sh +0 -249
- package/.agent/scripts/fix-sc2155-simple.sh +0 -102
- package/.agent/scripts/fix-shellcheck-critical.sh +0 -187
- package/.agent/scripts/fix-string-literals.sh +0 -273
- package/.agent/scripts/full-loop-helper.sh +0 -773
- package/.agent/scripts/generate-opencode-agents.sh +0 -497
- package/.agent/scripts/generate-opencode-commands.sh +0 -1629
- package/.agent/scripts/generate-skills.sh +0 -366
- package/.agent/scripts/git-platforms-helper.sh +0 -640
- package/.agent/scripts/gitea-cli-helper.sh +0 -743
- package/.agent/scripts/github-cli-helper.sh +0 -702
- package/.agent/scripts/gitlab-cli-helper.sh +0 -682
- package/.agent/scripts/gsc-add-user-helper.sh +0 -325
- package/.agent/scripts/gsc-sitemap-helper.sh +0 -678
- package/.agent/scripts/hetzner-helper.sh +0 -485
- package/.agent/scripts/hostinger-helper.sh +0 -229
- package/.agent/scripts/keyword-research-helper.sh +0 -1815
- package/.agent/scripts/langflow-helper.sh +0 -544
- package/.agent/scripts/linkedin-automation.py +0 -241
- package/.agent/scripts/linter-manager.sh +0 -599
- package/.agent/scripts/linters-local.sh +0 -434
- package/.agent/scripts/list-keys-helper.sh +0 -488
- package/.agent/scripts/local-browser-automation.py +0 -339
- package/.agent/scripts/localhost-helper.sh +0 -744
- package/.agent/scripts/loop-common.sh +0 -806
- package/.agent/scripts/mainwp-helper.sh +0 -728
- package/.agent/scripts/markdown-formatter.sh +0 -338
- package/.agent/scripts/markdown-lint-fix.sh +0 -311
- package/.agent/scripts/mass-fix-returns.sh +0 -58
- package/.agent/scripts/mcp-diagnose.sh +0 -167
- package/.agent/scripts/mcp-inspector-helper.sh +0 -449
- package/.agent/scripts/memory-helper.sh +0 -650
- package/.agent/scripts/monitor-code-review.sh +0 -255
- package/.agent/scripts/onboarding-helper.sh +0 -706
- package/.agent/scripts/opencode-github-setup-helper.sh +0 -797
- package/.agent/scripts/opencode-test-helper.sh +0 -213
- package/.agent/scripts/pagespeed-helper.sh +0 -464
- package/.agent/scripts/pandoc-helper.sh +0 -362
- package/.agent/scripts/postflight-check.sh +0 -555
- package/.agent/scripts/pre-commit-hook.sh +0 -259
- package/.agent/scripts/pre-edit-check.sh +0 -169
- package/.agent/scripts/qlty-cli.sh +0 -356
- package/.agent/scripts/quality-cli-manager.sh +0 -525
- package/.agent/scripts/quality-feedback-helper.sh +0 -462
- package/.agent/scripts/quality-fix.sh +0 -263
- package/.agent/scripts/quality-loop-helper.sh +0 -1108
- package/.agent/scripts/ralph-loop-helper.sh +0 -836
- package/.agent/scripts/ralph-upstream-check.sh +0 -341
- package/.agent/scripts/secretlint-helper.sh +0 -847
- package/.agent/scripts/servers-helper.sh +0 -241
- package/.agent/scripts/ses-helper.sh +0 -619
- package/.agent/scripts/session-review-helper.sh +0 -404
- package/.agent/scripts/setup-linters-wizard.sh +0 -379
- package/.agent/scripts/setup-local-api-keys.sh +0 -330
- package/.agent/scripts/setup-mcp-integrations.sh +0 -472
- package/.agent/scripts/shared-constants.sh +0 -246
- package/.agent/scripts/site-crawler-helper.sh +0 -1487
- package/.agent/scripts/snyk-helper.sh +0 -940
- package/.agent/scripts/sonarcloud-autofix.sh +0 -193
- package/.agent/scripts/sonarcloud-cli.sh +0 -191
- package/.agent/scripts/sonarscanner-cli.sh +0 -455
- package/.agent/scripts/spaceship-helper.sh +0 -747
- package/.agent/scripts/stagehand-helper.sh +0 -321
- package/.agent/scripts/stagehand-python-helper.sh +0 -321
- package/.agent/scripts/stagehand-python-setup.sh +0 -441
- package/.agent/scripts/stagehand-setup.sh +0 -439
- package/.agent/scripts/system-cleanup.sh +0 -340
- package/.agent/scripts/terminal-title-helper.sh +0 -388
- package/.agent/scripts/terminal-title-setup.sh +0 -549
- package/.agent/scripts/test-stagehand-both-integration.sh +0 -317
- package/.agent/scripts/test-stagehand-integration.sh +0 -309
- package/.agent/scripts/test-stagehand-python-integration.sh +0 -341
- package/.agent/scripts/todo-ready.sh +0 -263
- package/.agent/scripts/tool-version-check.sh +0 -362
- package/.agent/scripts/toon-helper.sh +0 -469
- package/.agent/scripts/twilio-helper.sh +0 -917
- package/.agent/scripts/updown-helper.sh +0 -279
- package/.agent/scripts/validate-mcp-integrations.sh +0 -250
- package/.agent/scripts/validate-version-consistency.sh +0 -131
- package/.agent/scripts/vaultwarden-helper.sh +0 -597
- package/.agent/scripts/vercel-cli-helper.sh +0 -816
- package/.agent/scripts/verify-mirrors.sh +0 -169
- package/.agent/scripts/version-manager.sh +0 -831
- package/.agent/scripts/webhosting-helper.sh +0 -471
- package/.agent/scripts/webhosting-verify.sh +0 -238
- package/.agent/scripts/wordpress-mcp-helper.sh +0 -508
- package/.agent/scripts/worktree-helper.sh +0 -595
- package/.agent/scripts/worktree-sessions.sh +0 -577
- package/.agent/seo/dataforseo.md +0 -215
- package/.agent/seo/domain-research.md +0 -532
- package/.agent/seo/eeat-score.md +0 -659
- package/.agent/seo/google-search-console.md +0 -366
- package/.agent/seo/gsc-sitemaps.md +0 -282
- package/.agent/seo/keyword-research.md +0 -521
- package/.agent/seo/serper.md +0 -278
- package/.agent/seo/site-crawler.md +0 -387
- package/.agent/seo.md +0 -236
- package/.agent/services/accounting/quickfile.md +0 -159
- package/.agent/services/communications/telfon.md +0 -470
- package/.agent/services/communications/twilio.md +0 -569
- package/.agent/services/crm/fluentcrm.md +0 -449
- package/.agent/services/email/ses.md +0 -399
- package/.agent/services/hosting/101domains.md +0 -378
- package/.agent/services/hosting/closte.md +0 -177
- package/.agent/services/hosting/cloudflare.md +0 -251
- package/.agent/services/hosting/cloudron.md +0 -478
- package/.agent/services/hosting/dns-providers.md +0 -335
- package/.agent/services/hosting/domain-purchasing.md +0 -344
- package/.agent/services/hosting/hetzner.md +0 -327
- package/.agent/services/hosting/hostinger.md +0 -287
- package/.agent/services/hosting/localhost.md +0 -419
- package/.agent/services/hosting/spaceship.md +0 -353
- package/.agent/services/hosting/webhosting.md +0 -330
- package/.agent/social-media.md +0 -69
- package/.agent/templates/plans-template.md +0 -114
- package/.agent/templates/prd-template.md +0 -129
- package/.agent/templates/tasks-template.md +0 -108
- package/.agent/templates/todo-template.md +0 -89
- package/.agent/tools/ai-assistants/agno.md +0 -471
- package/.agent/tools/ai-assistants/capsolver.md +0 -326
- package/.agent/tools/ai-assistants/configuration.md +0 -221
- package/.agent/tools/ai-assistants/overview.md +0 -209
- package/.agent/tools/ai-assistants/status.md +0 -171
- package/.agent/tools/ai-assistants/windsurf.md +0 -193
- package/.agent/tools/ai-orchestration/autogen.md +0 -406
- package/.agent/tools/ai-orchestration/crewai.md +0 -445
- package/.agent/tools/ai-orchestration/langflow.md +0 -405
- package/.agent/tools/ai-orchestration/openprose.md +0 -487
- package/.agent/tools/ai-orchestration/overview.md +0 -362
- package/.agent/tools/ai-orchestration/packaging.md +0 -647
- package/.agent/tools/browser/agent-browser.md +0 -464
- package/.agent/tools/browser/browser-automation.md +0 -400
- package/.agent/tools/browser/chrome-devtools.md +0 -282
- package/.agent/tools/browser/crawl4ai-integration.md +0 -422
- package/.agent/tools/browser/crawl4ai-resources.md +0 -277
- package/.agent/tools/browser/crawl4ai-usage.md +0 -416
- package/.agent/tools/browser/crawl4ai.md +0 -585
- package/.agent/tools/browser/dev-browser.md +0 -341
- package/.agent/tools/browser/pagespeed.md +0 -260
- package/.agent/tools/browser/playwright.md +0 -266
- package/.agent/tools/browser/playwriter.md +0 -310
- package/.agent/tools/browser/stagehand-examples.md +0 -456
- package/.agent/tools/browser/stagehand-python.md +0 -483
- package/.agent/tools/browser/stagehand.md +0 -421
- package/.agent/tools/build-agent/agent-review.md +0 -224
- package/.agent/tools/build-agent/build-agent.md +0 -784
- package/.agent/tools/build-mcp/aidevops-plugin.md +0 -476
- package/.agent/tools/build-mcp/api-wrapper.md +0 -445
- package/.agent/tools/build-mcp/build-mcp.md +0 -240
- package/.agent/tools/build-mcp/deployment.md +0 -401
- package/.agent/tools/build-mcp/server-patterns.md +0 -632
- package/.agent/tools/build-mcp/transports.md +0 -366
- package/.agent/tools/code-review/auditing.md +0 -383
- package/.agent/tools/code-review/automation.md +0 -219
- package/.agent/tools/code-review/best-practices.md +0 -203
- package/.agent/tools/code-review/codacy.md +0 -151
- package/.agent/tools/code-review/code-simplifier.md +0 -174
- package/.agent/tools/code-review/code-standards.md +0 -309
- package/.agent/tools/code-review/coderabbit.md +0 -101
- package/.agent/tools/code-review/management.md +0 -155
- package/.agent/tools/code-review/qlty.md +0 -248
- package/.agent/tools/code-review/secretlint.md +0 -565
- package/.agent/tools/code-review/setup.md +0 -250
- package/.agent/tools/code-review/snyk.md +0 -563
- package/.agent/tools/code-review/tools.md +0 -230
- package/.agent/tools/content/summarize.md +0 -353
- package/.agent/tools/context/augment-context-engine.md +0 -468
- package/.agent/tools/context/context-builder-agent.md +0 -76
- package/.agent/tools/context/context-builder.md +0 -375
- package/.agent/tools/context/context7.md +0 -371
- package/.agent/tools/context/dspy.md +0 -302
- package/.agent/tools/context/dspyground.md +0 -374
- package/.agent/tools/context/llm-tldr.md +0 -219
- package/.agent/tools/context/osgrep.md +0 -488
- package/.agent/tools/context/prompt-optimization.md +0 -338
- package/.agent/tools/context/toon.md +0 -292
- package/.agent/tools/conversion/pandoc.md +0 -304
- package/.agent/tools/credentials/api-key-management.md +0 -154
- package/.agent/tools/credentials/api-key-setup.md +0 -224
- package/.agent/tools/credentials/environment-variables.md +0 -180
- package/.agent/tools/credentials/vaultwarden.md +0 -382
- package/.agent/tools/data-extraction/outscraper.md +0 -974
- package/.agent/tools/deployment/coolify-cli.md +0 -388
- package/.agent/tools/deployment/coolify-setup.md +0 -353
- package/.agent/tools/deployment/coolify.md +0 -345
- package/.agent/tools/deployment/vercel.md +0 -390
- package/.agent/tools/git/authentication.md +0 -132
- package/.agent/tools/git/gitea-cli.md +0 -193
- package/.agent/tools/git/github-actions.md +0 -207
- package/.agent/tools/git/github-cli.md +0 -223
- package/.agent/tools/git/gitlab-cli.md +0 -190
- package/.agent/tools/git/opencode-github-security.md +0 -350
- package/.agent/tools/git/opencode-github.md +0 -328
- package/.agent/tools/git/opencode-gitlab.md +0 -252
- package/.agent/tools/git/security.md +0 -196
- package/.agent/tools/git.md +0 -207
- package/.agent/tools/opencode/oh-my-opencode.md +0 -375
- package/.agent/tools/opencode/opencode-anthropic-auth.md +0 -446
- package/.agent/tools/opencode/opencode.md +0 -651
- package/.agent/tools/social-media/bird.md +0 -437
- package/.agent/tools/task-management/beads.md +0 -336
- package/.agent/tools/terminal/terminal-title.md +0 -251
- package/.agent/tools/ui/shadcn.md +0 -196
- package/.agent/tools/ui/ui-skills.md +0 -115
- package/.agent/tools/wordpress/localwp.md +0 -311
- package/.agent/tools/wordpress/mainwp.md +0 -391
- package/.agent/tools/wordpress/scf.md +0 -527
- package/.agent/tools/wordpress/wp-admin.md +0 -729
- package/.agent/tools/wordpress/wp-dev.md +0 -940
- package/.agent/tools/wordpress/wp-preferred.md +0 -398
- package/.agent/tools/wordpress.md +0 -95
- package/.agent/workflows/branch/bugfix.md +0 -63
- package/.agent/workflows/branch/chore.md +0 -95
- package/.agent/workflows/branch/experiment.md +0 -115
- package/.agent/workflows/branch/feature.md +0 -59
- package/.agent/workflows/branch/hotfix.md +0 -98
- package/.agent/workflows/branch/refactor.md +0 -92
- package/.agent/workflows/branch/release.md +0 -96
- package/.agent/workflows/branch.md +0 -347
- package/.agent/workflows/bug-fixing.md +0 -267
- package/.agent/workflows/changelog.md +0 -129
- package/.agent/workflows/code-audit-remote.md +0 -279
- package/.agent/workflows/conversation-starter.md +0 -69
- package/.agent/workflows/error-feedback.md +0 -578
- package/.agent/workflows/feature-development.md +0 -355
- package/.agent/workflows/git-workflow.md +0 -702
- package/.agent/workflows/multi-repo-workspace.md +0 -268
- package/.agent/workflows/plans.md +0 -709
- package/.agent/workflows/postflight.md +0 -604
- package/.agent/workflows/pr.md +0 -571
- package/.agent/workflows/preflight.md +0 -278
- package/.agent/workflows/ralph-loop.md +0 -773
- package/.agent/workflows/release.md +0 -498
- package/.agent/workflows/session-manager.md +0 -254
- package/.agent/workflows/session-review.md +0 -311
- package/.agent/workflows/sql-migrations.md +0 -631
- package/.agent/workflows/version-bump.md +0 -283
- package/.agent/workflows/wiki-update.md +0 -333
- package/.agent/workflows/worktree.md +0 -477
|
@@ -1,279 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# shellcheck disable=SC2034,SC2155,SC2317,SC2329,SC2016,SC2181,SC1091,SC2154,SC2015,SC2086,SC2129,SC2030,SC2031,SC2119,SC2120,SC2001,SC2162,SC2088,SC2089,SC2090,SC2029,SC2006,SC2153
|
|
3
|
-
|
|
4
|
-
# Updown.io Helper Script
|
|
5
|
-
# Managed by AI DevOps Framework
|
|
6
|
-
#
|
|
7
|
-
# Version: 1.0.0
|
|
8
|
-
|
|
9
|
-
# Set strict mode
|
|
10
|
-
set -euo pipefail
|
|
11
|
-
|
|
12
|
-
# ------------------------------------------------------------------------------
|
|
13
|
-
# CONFIGURATION & CONSTANTS
|
|
14
|
-
# ------------------------------------------------------------------------------
|
|
15
|
-
|
|
16
|
-
readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" || exit
|
|
17
|
-
readonly REPO_ROOT="$(dirname "$SCRIPT_DIR")"
|
|
18
|
-
readonly CONFIG_FILE="$REPO_ROOT/configs/updown-config.json"
|
|
19
|
-
readonly API_BASE_URL="https://updown.io/api"
|
|
20
|
-
|
|
21
|
-
# Colors
|
|
22
|
-
readonly BLUE='\033[0;34m'
|
|
23
|
-
readonly GREEN='\033[0;32m'
|
|
24
|
-
readonly YELLOW='\033[1;33m'
|
|
25
|
-
readonly RED='\033[0;31m'
|
|
26
|
-
readonly NC='\033[0m'
|
|
27
|
-
|
|
28
|
-
# HTTP Constants
|
|
29
|
-
readonly CONTENT_TYPE_JSON="$CONTENT_TYPE_JSON"
|
|
30
|
-
# Error Messages
|
|
31
|
-
readonly ERROR_CONFIG_MISSING="Configuration file not found at $CONFIG_FILE"
|
|
32
|
-
readonly ERROR_API_KEY_MISSING="API key not found in configuration"
|
|
33
|
-
readonly ERROR_CURL_FAILED="Failed to execute API request"
|
|
34
|
-
readonly ERROR_JQ_MISSING="jq is required but not installed"
|
|
35
|
-
|
|
36
|
-
# ------------------------------------------------------------------------------
|
|
37
|
-
# UTILITY FUNCTIONS
|
|
38
|
-
# ------------------------------------------------------------------------------
|
|
39
|
-
|
|
40
|
-
print_info() {
|
|
41
|
-
local msg="$1"
|
|
42
|
-
echo -e "${BLUE}[INFO]${NC} $msg"
|
|
43
|
-
return 0
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
print_success() {
|
|
47
|
-
local msg="$1"
|
|
48
|
-
echo -e "${GREEN}[SUCCESS]${NC} $msg"
|
|
49
|
-
return 0
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
print_warning() {
|
|
53
|
-
local msg="$1"
|
|
54
|
-
echo -e "${YELLOW}[WARNING]${NC} $msg"
|
|
55
|
-
return 0
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
print_error() {
|
|
59
|
-
local msg="$1"
|
|
60
|
-
echo -e "${RED}[ERROR]${NC} $msg" >&2
|
|
61
|
-
return 0
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
check_dependencies() {
|
|
65
|
-
if ! command -v jq >/dev/null 2>&1; then
|
|
66
|
-
print_error "$ERROR_JQ_MISSING"
|
|
67
|
-
return 1
|
|
68
|
-
fi
|
|
69
|
-
return 0
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
load_config() {
|
|
73
|
-
local api_key
|
|
74
|
-
|
|
75
|
-
# First try environment variable (preferred - set via mcp-env.sh)
|
|
76
|
-
api_key="${UPDOWN_API_KEY:-}"
|
|
77
|
-
|
|
78
|
-
# Fallback to config file if env var not set
|
|
79
|
-
if [[ -z "$api_key" && -f "$CONFIG_FILE" ]]; then
|
|
80
|
-
api_key=$(jq -r '.api_key // empty' "$CONFIG_FILE" 2>/dev/null)
|
|
81
|
-
fi
|
|
82
|
-
|
|
83
|
-
if [[ -z "$api_key" ]]; then
|
|
84
|
-
print_error "$ERROR_API_KEY_MISSING"
|
|
85
|
-
print_error "Set UPDOWN_API_KEY in ~/.config/aidevops/mcp-env.sh"
|
|
86
|
-
return 1
|
|
87
|
-
fi
|
|
88
|
-
|
|
89
|
-
echo "$api_key"
|
|
90
|
-
return 0
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
# ------------------------------------------------------------------------------
|
|
94
|
-
# API INTERACTION FUNCTIONS
|
|
95
|
-
# ------------------------------------------------------------------------------
|
|
96
|
-
|
|
97
|
-
execute_request() {
|
|
98
|
-
local method="$command"
|
|
99
|
-
local endpoint="$account_name"
|
|
100
|
-
local data="${3:-}"
|
|
101
|
-
|
|
102
|
-
local api_key
|
|
103
|
-
if ! api_key=$(load_config); then
|
|
104
|
-
return 1
|
|
105
|
-
fi
|
|
106
|
-
|
|
107
|
-
local response
|
|
108
|
-
local http_code
|
|
109
|
-
|
|
110
|
-
local curl_cmd=(curl -s -w "\n%{http_code}" -X "$method")
|
|
111
|
-
curl_cmd+=(-H "X-API-KEY: $api_key")
|
|
112
|
-
|
|
113
|
-
if [[ -n "$data" ]]; then
|
|
114
|
-
curl_cmd+=(-H "$CONTENT_TYPE_JSON")
|
|
115
|
-
curl_cmd+=(-d "$data")
|
|
116
|
-
fi
|
|
117
|
-
|
|
118
|
-
curl_cmd+=("$API_BASE_URL$endpoint")
|
|
119
|
-
|
|
120
|
-
if ! response=$("${curl_cmd[@]}"); then
|
|
121
|
-
print_error "$ERROR_CURL_FAILED"
|
|
122
|
-
return 1
|
|
123
|
-
fi
|
|
124
|
-
|
|
125
|
-
http_code=$(echo "$response" | tail -n1)
|
|
126
|
-
local body
|
|
127
|
-
body=$(echo "$response" | sed '$d')
|
|
128
|
-
|
|
129
|
-
if [[ "$http_code" -ge 200 && "$http_code" -lt 300 ]]; then
|
|
130
|
-
echo "$body"
|
|
131
|
-
return 0
|
|
132
|
-
else
|
|
133
|
-
print_error "API request failed with status $http_code: $body"
|
|
134
|
-
return 1
|
|
135
|
-
fi
|
|
136
|
-
return 0
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
# ------------------------------------------------------------------------------
|
|
140
|
-
# CORE FUNCTIONS
|
|
141
|
-
# ------------------------------------------------------------------------------
|
|
142
|
-
|
|
143
|
-
list_checks() {
|
|
144
|
-
local response
|
|
145
|
-
if response=$(execute_request "GET" "/checks"); then
|
|
146
|
-
echo "$response" | jq -r '.[] | "\(.token)\t\(.url)\t\(.alias // "")\t\(.status)\t(Last: \(.last_status))"' | column -t -s $'\t'
|
|
147
|
-
return 0
|
|
148
|
-
fi
|
|
149
|
-
return 1
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
get_checks_json() {
|
|
153
|
-
local response
|
|
154
|
-
if response=$(execute_request "GET" "/checks"); then
|
|
155
|
-
echo "$response"
|
|
156
|
-
return 0
|
|
157
|
-
fi
|
|
158
|
-
return 1
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
add_check() {
|
|
162
|
-
local url="$command"
|
|
163
|
-
local alias="${2:-}"
|
|
164
|
-
local period="${3:-3600}" # Default to 1 hour (3600 seconds)
|
|
165
|
-
|
|
166
|
-
if [[ -z "$url" ]]; then
|
|
167
|
-
print_error "URL is required"
|
|
168
|
-
return 1
|
|
169
|
-
fi
|
|
170
|
-
|
|
171
|
-
print_info "Adding check for $url..."
|
|
172
|
-
|
|
173
|
-
# Construct JSON payload safely
|
|
174
|
-
local payload
|
|
175
|
-
payload=$(jq -n \
|
|
176
|
-
--arg url "$url" \
|
|
177
|
-
--arg alias "$alias" \
|
|
178
|
-
--argjson period "$period" \
|
|
179
|
-
'{url: $url, alias: $alias, period: $period, published: true}')
|
|
180
|
-
|
|
181
|
-
if execute_request "POST" "/checks" "$payload" >/dev/null; then
|
|
182
|
-
print_success "Check added successfully for $url"
|
|
183
|
-
return 0
|
|
184
|
-
fi
|
|
185
|
-
return 1
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
delete_check() {
|
|
189
|
-
local token="$command"
|
|
190
|
-
|
|
191
|
-
if [[ -z "$token" ]]; then
|
|
192
|
-
print_error "Check token is required"
|
|
193
|
-
return 1
|
|
194
|
-
fi
|
|
195
|
-
|
|
196
|
-
print_info "Deleting check $token..."
|
|
197
|
-
|
|
198
|
-
if execute_request "DELETE" "/checks/$token" >/dev/null; then
|
|
199
|
-
print_success "Check deleted successfully"
|
|
200
|
-
return 0
|
|
201
|
-
fi
|
|
202
|
-
return 1
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
get_metrics() {
|
|
206
|
-
local token="$command"
|
|
207
|
-
|
|
208
|
-
if [[ -z "$token" ]]; then
|
|
209
|
-
print_error "Check token is required"
|
|
210
|
-
return 1
|
|
211
|
-
fi
|
|
212
|
-
|
|
213
|
-
if execute_request "GET" "/checks/$token/metrics" >/dev/null; then
|
|
214
|
-
# The metrics endpoint returns complex JSON, just printing it for now or could use jq to format
|
|
215
|
-
execute_request "GET" "/checks/$token/metrics" | jq '.'
|
|
216
|
-
return 0
|
|
217
|
-
fi
|
|
218
|
-
return 1
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
show_help() {
|
|
222
|
-
echo "Usage: $(basename "$0") [command] [arguments...]"
|
|
223
|
-
echo
|
|
224
|
-
echo "Commands:"
|
|
225
|
-
echo " list List all monitoring checks"
|
|
226
|
-
echo " add <url> [alias] Add a new check (default 1h interval)"
|
|
227
|
-
echo " delete <token> Delete a check"
|
|
228
|
-
echo " json Output raw JSON of all checks"
|
|
229
|
-
echo " help Show this help message"
|
|
230
|
-
echo
|
|
231
|
-
return 0
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
# ------------------------------------------------------------------------------
|
|
235
|
-
# MAIN EXECUTION
|
|
236
|
-
# ------------------------------------------------------------------------------
|
|
237
|
-
|
|
238
|
-
main() {
|
|
239
|
-
# Assign positional parameters to local variables
|
|
240
|
-
local command="${1:-help}"
|
|
241
|
-
local account_name="$account_name"
|
|
242
|
-
local target="$target"
|
|
243
|
-
local options="$options"
|
|
244
|
-
# Assign positional parameters to local variables
|
|
245
|
-
local command="${1:-help}"
|
|
246
|
-
local account_name="$account_name"
|
|
247
|
-
local target="$target"
|
|
248
|
-
local options="$options"
|
|
249
|
-
check_dependencies || return 1
|
|
250
|
-
|
|
251
|
-
local command="${1:-help}"
|
|
252
|
-
local arg1="${2:-}"
|
|
253
|
-
local arg2="${3:-}"
|
|
254
|
-
local arg3="${4:-}"
|
|
255
|
-
|
|
256
|
-
case "$command" in
|
|
257
|
-
"list")
|
|
258
|
-
list_checks
|
|
259
|
-
;;
|
|
260
|
-
"json")
|
|
261
|
-
get_checks_json
|
|
262
|
-
;;
|
|
263
|
-
"add")
|
|
264
|
-
add_check "$arg1" "$arg2" "$arg3"
|
|
265
|
-
;;
|
|
266
|
-
"delete")
|
|
267
|
-
delete_check "$arg1"
|
|
268
|
-
;;
|
|
269
|
-
"metrics")
|
|
270
|
-
get_metrics "$arg1"
|
|
271
|
-
;;
|
|
272
|
-
"help"|*)
|
|
273
|
-
show_help
|
|
274
|
-
;;
|
|
275
|
-
esac
|
|
276
|
-
return 0
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
main "$@"
|
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# shellcheck disable=SC2034,SC2155,SC2317,SC2329,SC2016,SC2181,SC1091,SC2154,SC2015,SC2086,SC2129,SC2030,SC2031,SC2119,SC2120,SC2001,SC2162,SC2088,SC2089,SC2090,SC2029,SC2006,SC2153
|
|
3
|
-
|
|
4
|
-
# 🔍 MCP Integrations Validation Script
|
|
5
|
-
# Validates and tests all MCP integrations for proper functionality
|
|
6
|
-
|
|
7
|
-
set -euo pipefail
|
|
8
|
-
|
|
9
|
-
# Colors for output
|
|
10
|
-
readonly RED='\033[0;31m'
|
|
11
|
-
readonly GREEN='\033[0;32m'
|
|
12
|
-
readonly BLUE='\033[0;34m'
|
|
13
|
-
readonly YELLOW='\033[1;33m'
|
|
14
|
-
readonly PURPLE='\033[0;35m'
|
|
15
|
-
readonly NC='\033[0m'
|
|
16
|
-
|
|
17
|
-
print_header() { local msg="$1"; echo -e "${PURPLE}$msg${NC}"; return 0; }
|
|
18
|
-
print_info() { local msg="$1"; echo -e "${BLUE}$msg${NC}"; return 0; }
|
|
19
|
-
print_success() { local msg="$1"; echo -e "${GREEN}✅ $msg${NC}"; return 0; }
|
|
20
|
-
print_warning() { local msg="$1"; echo -e "${YELLOW}⚠️ $msg${NC}"; return 0; }
|
|
21
|
-
print_error() { local msg="$1"; echo -e "${RED}❌ $msg${NC}"; return 0; }
|
|
22
|
-
|
|
23
|
-
# Test results tracking
|
|
24
|
-
declare -i total_tests=0
|
|
25
|
-
declare -i passed_tests=0
|
|
26
|
-
declare -i failed_tests=0
|
|
27
|
-
|
|
28
|
-
# Test function wrapper
|
|
29
|
-
run_test() {
|
|
30
|
-
local test_name="$1"
|
|
31
|
-
local test_command="$2"
|
|
32
|
-
|
|
33
|
-
((total_tests++))
|
|
34
|
-
print_info "Testing: $test_name"
|
|
35
|
-
|
|
36
|
-
if eval "$test_command" &>/dev/null; then
|
|
37
|
-
print_success "$test_name: PASSED"
|
|
38
|
-
((passed_tests++))
|
|
39
|
-
return 0
|
|
40
|
-
else
|
|
41
|
-
print_error "$test_name: FAILED"
|
|
42
|
-
((failed_tests++))
|
|
43
|
-
return 1
|
|
44
|
-
fi
|
|
45
|
-
return 0
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
# Test Node.js and npm
|
|
49
|
-
test_prerequisites() {
|
|
50
|
-
print_header "Testing Prerequisites"
|
|
51
|
-
|
|
52
|
-
run_test "Node.js availability" "command -v node"
|
|
53
|
-
run_test "npm availability" "command -v npm"
|
|
54
|
-
|
|
55
|
-
if command -v node &>/dev/null; then
|
|
56
|
-
local node_version
|
|
57
|
-
node_version=$(node --version)
|
|
58
|
-
print_info "Node.js version: $node_version"
|
|
59
|
-
fi
|
|
60
|
-
|
|
61
|
-
if command -v npm &>/dev/null; then
|
|
62
|
-
local npm_version
|
|
63
|
-
npm_version=$(npm --version)
|
|
64
|
-
print_info "npm version: $npm_version"
|
|
65
|
-
fi
|
|
66
|
-
return 0
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
# Test Chrome DevTools MCP
|
|
70
|
-
test_chrome_devtools() {
|
|
71
|
-
print_header "Testing Chrome DevTools MCP"
|
|
72
|
-
|
|
73
|
-
run_test "Chrome DevTools MCP package" "npm list -g chrome-devtools-mcp || npm info chrome-devtools-mcp"
|
|
74
|
-
|
|
75
|
-
# Test Chrome availability
|
|
76
|
-
local chrome_paths=(
|
|
77
|
-
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
|
|
78
|
-
"/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary"
|
|
79
|
-
"/usr/bin/google-chrome"
|
|
80
|
-
"/usr/bin/google-chrome-stable"
|
|
81
|
-
"/usr/bin/chromium-browser"
|
|
82
|
-
)
|
|
83
|
-
|
|
84
|
-
local chrome_found=false
|
|
85
|
-
for chrome_path in "${chrome_paths[@]}"; do
|
|
86
|
-
if [[ -x "$chrome_path" ]]; then
|
|
87
|
-
print_success "Chrome found: $chrome_path"
|
|
88
|
-
chrome_found=true
|
|
89
|
-
break
|
|
90
|
-
fi
|
|
91
|
-
done
|
|
92
|
-
|
|
93
|
-
if [[ "$chrome_found" == false ]]; then
|
|
94
|
-
print_warning "Chrome not found in standard locations"
|
|
95
|
-
fi
|
|
96
|
-
return 0
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
# Test Playwright MCP
|
|
100
|
-
test_playwright() {
|
|
101
|
-
print_header "Testing Playwright MCP"
|
|
102
|
-
|
|
103
|
-
run_test "Playwright MCP package" "npm list -g playwright-mcp || npm info playwright-mcp"
|
|
104
|
-
run_test "Playwright package" "npm list -g playwright || npm info playwright"
|
|
105
|
-
|
|
106
|
-
# Test browser installations
|
|
107
|
-
if command -v npx &>/dev/null; then
|
|
108
|
-
print_info "Checking Playwright browser installations..."
|
|
109
|
-
if npx playwright --version &>/dev/null; then
|
|
110
|
-
print_success "Playwright CLI available"
|
|
111
|
-
else
|
|
112
|
-
print_warning "Playwright CLI not available"
|
|
113
|
-
fi
|
|
114
|
-
fi
|
|
115
|
-
return 0
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
# Test API connectivity
|
|
119
|
-
test_api_connectivity() {
|
|
120
|
-
print_header "Testing API Connectivity"
|
|
121
|
-
|
|
122
|
-
# Test Ahrefs API
|
|
123
|
-
if [[ -n "${AHREFS_API_KEY:-}" ]]; then
|
|
124
|
-
run_test "Ahrefs API connectivity" "curl -s -H 'Authorization: Bearer $AHREFS_API_KEY' https://apiv2.ahrefs.com/v2/subscription_info"
|
|
125
|
-
print_success "Ahrefs API key configured"
|
|
126
|
-
else
|
|
127
|
-
print_warning "Ahrefs API key not configured (AHREFS_API_KEY)"
|
|
128
|
-
fi
|
|
129
|
-
|
|
130
|
-
# Test Perplexity API
|
|
131
|
-
if [[ -n "${PERPLEXITY_API_KEY:-}" ]]; then
|
|
132
|
-
run_test "Perplexity API connectivity" "curl -s -H 'Authorization: Bearer $PERPLEXITY_API_KEY' https://api.perplexity.ai/chat/completions"
|
|
133
|
-
print_success "Perplexity API key configured"
|
|
134
|
-
else
|
|
135
|
-
print_warning "Perplexity API key not configured (PERPLEXITY_API_KEY)"
|
|
136
|
-
fi
|
|
137
|
-
|
|
138
|
-
# Test Cloudflare API
|
|
139
|
-
if [[ -n "${CLOUDFLARE_API_TOKEN:-}" && -n "${CLOUDFLARE_ACCOUNT_ID:-}" ]]; then
|
|
140
|
-
run_test "Cloudflare API connectivity" "curl -s -H 'Authorization: Bearer $CLOUDFLARE_API_TOKEN' https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID"
|
|
141
|
-
print_success "Cloudflare API credentials configured"
|
|
142
|
-
else
|
|
143
|
-
print_warning "Cloudflare API credentials not configured (CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID)"
|
|
144
|
-
fi
|
|
145
|
-
return 0
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
# Test MCP configurations
|
|
149
|
-
test_mcp_configurations() {
|
|
150
|
-
print_header "Testing MCP Configurations"
|
|
151
|
-
|
|
152
|
-
local config_dir="configs/mcp-templates"
|
|
153
|
-
|
|
154
|
-
if [[ -d "$config_dir" ]]; then
|
|
155
|
-
print_success "MCP templates directory exists"
|
|
156
|
-
|
|
157
|
-
# Test each configuration file
|
|
158
|
-
for config_file in "$config_dir"/*.json; do
|
|
159
|
-
if [[ -f "$config_file" ]]; then
|
|
160
|
-
local filename
|
|
161
|
-
filename=$(basename "$config_file")
|
|
162
|
-
run_test "JSON validation: $filename" "python3 -m json.tool '$config_file'"
|
|
163
|
-
fi
|
|
164
|
-
done
|
|
165
|
-
else
|
|
166
|
-
print_error "MCP templates directory not found: $config_dir"
|
|
167
|
-
fi
|
|
168
|
-
return 0
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
# Test network connectivity
|
|
172
|
-
test_network() {
|
|
173
|
-
print_header "Testing Network Connectivity"
|
|
174
|
-
|
|
175
|
-
run_test "Internet connectivity" "curl -s --connect-timeout 5 https://www.google.com"
|
|
176
|
-
run_test "npm registry" "curl -s --connect-timeout 5 https://registry.npmjs.org/"
|
|
177
|
-
run_test "GitHub connectivity" "curl -s --connect-timeout 5 https://api.github.com"
|
|
178
|
-
return 0
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
# Generate validation report
|
|
182
|
-
generate_report() {
|
|
183
|
-
print_header "Validation Report"
|
|
184
|
-
|
|
185
|
-
echo
|
|
186
|
-
print_info "Total tests run: $total_tests"
|
|
187
|
-
print_success "Tests passed: $passed_tests"
|
|
188
|
-
|
|
189
|
-
if [[ $failed_tests -gt 0 ]]; then
|
|
190
|
-
print_error "Tests failed: $failed_tests"
|
|
191
|
-
else
|
|
192
|
-
print_success "Tests failed: $failed_tests"
|
|
193
|
-
fi
|
|
194
|
-
|
|
195
|
-
echo
|
|
196
|
-
local success_rate
|
|
197
|
-
success_rate=$((passed_tests * 100 / total_tests))
|
|
198
|
-
|
|
199
|
-
if [[ $success_rate -ge 90 ]]; then
|
|
200
|
-
print_success "Overall status: EXCELLENT ($success_rate% success rate)"
|
|
201
|
-
elif [[ $success_rate -ge 75 ]]; then
|
|
202
|
-
print_success "Overall status: GOOD ($success_rate% success rate)"
|
|
203
|
-
elif [[ $success_rate -ge 50 ]]; then
|
|
204
|
-
print_warning "Overall status: NEEDS ATTENTION ($success_rate% success rate)"
|
|
205
|
-
else
|
|
206
|
-
print_error "Overall status: CRITICAL ISSUES ($success_rate% success rate)"
|
|
207
|
-
fi
|
|
208
|
-
|
|
209
|
-
echo
|
|
210
|
-
if [[ $failed_tests -gt 0 ]]; then
|
|
211
|
-
print_info "Next steps:"
|
|
212
|
-
print_info "1. Review failed tests above"
|
|
213
|
-
print_info "2. Check .agent/MCP-TROUBLESHOOTING.md for solutions"
|
|
214
|
-
print_info "3. Run setup script: bash .agent/scripts/setup-mcp-integrations.sh"
|
|
215
|
-
print_info "4. Configure missing API keys"
|
|
216
|
-
else
|
|
217
|
-
print_success "All MCP integrations are ready to use!"
|
|
218
|
-
print_info "Check .agent/MCP-INTEGRATIONS.md for usage examples"
|
|
219
|
-
fi
|
|
220
|
-
return 0
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
# Main validation function
|
|
224
|
-
main() {
|
|
225
|
-
print_header "MCP Integrations Validation"
|
|
226
|
-
echo
|
|
227
|
-
|
|
228
|
-
test_prerequisites
|
|
229
|
-
echo
|
|
230
|
-
|
|
231
|
-
test_network
|
|
232
|
-
echo
|
|
233
|
-
|
|
234
|
-
test_chrome_devtools
|
|
235
|
-
echo
|
|
236
|
-
|
|
237
|
-
test_playwright
|
|
238
|
-
echo
|
|
239
|
-
|
|
240
|
-
test_api_connectivity
|
|
241
|
-
echo
|
|
242
|
-
|
|
243
|
-
test_mcp_configurations
|
|
244
|
-
echo
|
|
245
|
-
|
|
246
|
-
generate_report
|
|
247
|
-
return 0
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
main "$@"
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# shellcheck disable=SC2034,SC2155,SC2317,SC2329,SC2016,SC2181,SC1091,SC2154,SC2015,SC2086,SC2129,SC2030,SC2031,SC2119,SC2120,SC2001,SC2162,SC2088,SC2089,SC2090,SC2029,SC2006,SC2153
|
|
3
|
-
|
|
4
|
-
# AI DevOps Framework - Version Consistency Validator
|
|
5
|
-
# Validates that all version references are synchronized across the framework
|
|
6
|
-
|
|
7
|
-
set -euo pipefail
|
|
8
|
-
|
|
9
|
-
# Configuration
|
|
10
|
-
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" || exit
|
|
11
|
-
VERSION_FILE="$REPO_ROOT/VERSION"
|
|
12
|
-
|
|
13
|
-
# Color output functions
|
|
14
|
-
print_success() { local msg="$1"; echo -e "\033[32m✅ $msg\033[0m"; return 0; }
|
|
15
|
-
print_error() { local msg="$1"; echo -e "\033[31m❌ $msg\033[0m"; return 0; }
|
|
16
|
-
print_warning() { local msg="$1"; echo -e "\033[33m⚠️ $msg\033[0m"; return 0; }
|
|
17
|
-
print_info() { local msg="$1"; echo -e "\033[34mℹ️ $msg\033[0m"; return 0; }
|
|
18
|
-
|
|
19
|
-
# Function to get current version
|
|
20
|
-
get_current_version() {
|
|
21
|
-
if [[ -f "$VERSION_FILE" ]]; then
|
|
22
|
-
cat "$VERSION_FILE"
|
|
23
|
-
else
|
|
24
|
-
echo "1.0.0"
|
|
25
|
-
fi
|
|
26
|
-
return 0
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
# Function to validate version consistency across files
|
|
30
|
-
validate_version_consistency() {
|
|
31
|
-
local expected_version="$1"
|
|
32
|
-
local errors=0
|
|
33
|
-
local warnings=0
|
|
34
|
-
|
|
35
|
-
print_info "🔍 Validating version consistency across files..."
|
|
36
|
-
print_info "Expected version: $expected_version"
|
|
37
|
-
echo ""
|
|
38
|
-
|
|
39
|
-
# Check VERSION file
|
|
40
|
-
if [[ -f "$VERSION_FILE" ]]; then
|
|
41
|
-
local version_file_content
|
|
42
|
-
version_file_content=$(cat "$VERSION_FILE")
|
|
43
|
-
if [[ "$version_file_content" != "$expected_version" ]]; then
|
|
44
|
-
print_error "VERSION file contains '$version_file_content', expected '$expected_version'"
|
|
45
|
-
errors=$((errors + 1))
|
|
46
|
-
else
|
|
47
|
-
print_success "VERSION file: $expected_version"
|
|
48
|
-
fi
|
|
49
|
-
else
|
|
50
|
-
print_error "VERSION file not found at $VERSION_FILE"
|
|
51
|
-
errors=$((errors + 1))
|
|
52
|
-
fi
|
|
53
|
-
|
|
54
|
-
# Check README badge
|
|
55
|
-
if [[ -f "$REPO_ROOT/README.md" ]]; then
|
|
56
|
-
if grep -q "Version-$expected_version-blue" "$REPO_ROOT/README.md"; then
|
|
57
|
-
print_success "README.md badge: $expected_version"
|
|
58
|
-
else
|
|
59
|
-
local current_badge
|
|
60
|
-
current_badge=$(grep -o "Version-[0-9]\+\.[0-9]\+\.[0-9]\+-blue" "$REPO_ROOT/README.md" || echo "not found")
|
|
61
|
-
print_error "README.md badge shows '$current_badge', expected 'Version-$expected_version-blue'"
|
|
62
|
-
errors=$((errors + 1))
|
|
63
|
-
fi
|
|
64
|
-
else
|
|
65
|
-
print_warning "README.md not found"
|
|
66
|
-
warnings=$((warnings + 1))
|
|
67
|
-
fi
|
|
68
|
-
|
|
69
|
-
# Check sonar-project.properties
|
|
70
|
-
if [[ -f "$REPO_ROOT/sonar-project.properties" ]]; then
|
|
71
|
-
if grep -q "sonar.projectVersion=$expected_version" "$REPO_ROOT/sonar-project.properties"; then
|
|
72
|
-
print_success "sonar-project.properties: $expected_version"
|
|
73
|
-
else
|
|
74
|
-
local current_sonar
|
|
75
|
-
current_sonar=$(grep "sonar.projectVersion=" "$REPO_ROOT/sonar-project.properties" | cut -d'=' -f2 || echo "not found")
|
|
76
|
-
print_error "sonar-project.properties shows '$current_sonar', expected '$expected_version'"
|
|
77
|
-
errors=$((errors + 1))
|
|
78
|
-
fi
|
|
79
|
-
else
|
|
80
|
-
print_warning "sonar-project.properties not found"
|
|
81
|
-
warnings=$((warnings + 1))
|
|
82
|
-
fi
|
|
83
|
-
|
|
84
|
-
# Check setup.sh
|
|
85
|
-
if [[ -f "$REPO_ROOT/setup.sh" ]]; then
|
|
86
|
-
if grep -q "# Version: $expected_version" "$REPO_ROOT/setup.sh"; then
|
|
87
|
-
print_success "setup.sh: $expected_version"
|
|
88
|
-
else
|
|
89
|
-
local current_setup
|
|
90
|
-
current_setup=$(grep "# Version:" "$REPO_ROOT/setup.sh" | cut -d':' -f2 | xargs || echo "not found")
|
|
91
|
-
print_error "setup.sh shows '$current_setup', expected '$expected_version'"
|
|
92
|
-
errors=$((errors + 1))
|
|
93
|
-
fi
|
|
94
|
-
else
|
|
95
|
-
print_warning "setup.sh not found"
|
|
96
|
-
warnings=$((warnings + 1))
|
|
97
|
-
fi
|
|
98
|
-
|
|
99
|
-
echo ""
|
|
100
|
-
print_info "📊 Validation Summary:"
|
|
101
|
-
|
|
102
|
-
if [[ $errors -eq 0 ]]; then
|
|
103
|
-
print_success "All version references are consistent: $expected_version"
|
|
104
|
-
if [[ $warnings -gt 0 ]]; then
|
|
105
|
-
print_warning "Found $warnings optional files missing (not critical)"
|
|
106
|
-
fi
|
|
107
|
-
return 0
|
|
108
|
-
else
|
|
109
|
-
print_error "Found $errors version inconsistencies"
|
|
110
|
-
if [[ $warnings -gt 0 ]]; then
|
|
111
|
-
print_warning "Found $warnings optional files missing"
|
|
112
|
-
fi
|
|
113
|
-
return 1
|
|
114
|
-
fi
|
|
115
|
-
return 0
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
# Main function
|
|
119
|
-
main() {
|
|
120
|
-
local version_to_check="$1"
|
|
121
|
-
|
|
122
|
-
if [[ -z "$version_to_check" ]]; then
|
|
123
|
-
version_to_check=$(get_current_version)
|
|
124
|
-
print_info "No version specified, using current version from VERSION file: $version_to_check"
|
|
125
|
-
fi
|
|
126
|
-
|
|
127
|
-
validate_version_consistency "$version_to_check"
|
|
128
|
-
return 0
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
main "${1:-}"
|