aidevops 2.52.1

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.
Files changed (329) hide show
  1. package/.agent/AGENTS.md +614 -0
  2. package/.agent/accounts.md +65 -0
  3. package/.agent/aidevops/add-new-mcp-to-aidevops.md +456 -0
  4. package/.agent/aidevops/api-integrations.md +335 -0
  5. package/.agent/aidevops/architecture.md +510 -0
  6. package/.agent/aidevops/configs.md +274 -0
  7. package/.agent/aidevops/docs.md +244 -0
  8. package/.agent/aidevops/extension.md +311 -0
  9. package/.agent/aidevops/mcp-integrations.md +340 -0
  10. package/.agent/aidevops/mcp-troubleshooting.md +162 -0
  11. package/.agent/aidevops/memory-patterns.md +172 -0
  12. package/.agent/aidevops/providers.md +217 -0
  13. package/.agent/aidevops/recommendations.md +321 -0
  14. package/.agent/aidevops/requirements.md +301 -0
  15. package/.agent/aidevops/resources.md +214 -0
  16. package/.agent/aidevops/security-requirements.md +174 -0
  17. package/.agent/aidevops/security.md +350 -0
  18. package/.agent/aidevops/service-links.md +400 -0
  19. package/.agent/aidevops/services.md +357 -0
  20. package/.agent/aidevops/setup.md +153 -0
  21. package/.agent/aidevops/troubleshooting.md +389 -0
  22. package/.agent/aidevops.md +124 -0
  23. package/.agent/build-plus.md +244 -0
  24. package/.agent/content/guidelines.md +109 -0
  25. package/.agent/content.md +87 -0
  26. package/.agent/health.md +59 -0
  27. package/.agent/legal.md +59 -0
  28. package/.agent/loop-state/full-loop.local.md +16 -0
  29. package/.agent/loop-state/ralph-loop.local.md +10 -0
  30. package/.agent/marketing.md +440 -0
  31. package/.agent/memory/README.md +260 -0
  32. package/.agent/onboarding.md +796 -0
  33. package/.agent/plan-plus.md +245 -0
  34. package/.agent/research.md +100 -0
  35. package/.agent/sales.md +333 -0
  36. package/.agent/scripts/101domains-helper.sh +701 -0
  37. package/.agent/scripts/add-missing-returns.sh +140 -0
  38. package/.agent/scripts/agent-browser-helper.sh +311 -0
  39. package/.agent/scripts/agno-setup.sh +712 -0
  40. package/.agent/scripts/ahrefs-mcp-wrapper.js +168 -0
  41. package/.agent/scripts/aidevops-update-check.sh +71 -0
  42. package/.agent/scripts/ampcode-cli.sh +522 -0
  43. package/.agent/scripts/auto-version-bump.sh +156 -0
  44. package/.agent/scripts/autogen-helper.sh +512 -0
  45. package/.agent/scripts/beads-sync-helper.sh +596 -0
  46. package/.agent/scripts/closte-helper.sh +5 -0
  47. package/.agent/scripts/cloudron-helper.sh +321 -0
  48. package/.agent/scripts/codacy-cli-chunked.sh +581 -0
  49. package/.agent/scripts/codacy-cli.sh +442 -0
  50. package/.agent/scripts/code-audit-helper.sh +5 -0
  51. package/.agent/scripts/coderabbit-cli.sh +417 -0
  52. package/.agent/scripts/coderabbit-pro-analysis.sh +238 -0
  53. package/.agent/scripts/commands/code-simplifier.md +86 -0
  54. package/.agent/scripts/commands/full-loop.md +246 -0
  55. package/.agent/scripts/commands/postflight-loop.md +103 -0
  56. package/.agent/scripts/commands/recall.md +182 -0
  57. package/.agent/scripts/commands/remember.md +132 -0
  58. package/.agent/scripts/commands/save-todo.md +175 -0
  59. package/.agent/scripts/commands/session-review.md +154 -0
  60. package/.agent/scripts/comprehensive-quality-fix.sh +106 -0
  61. package/.agent/scripts/context-builder-helper.sh +522 -0
  62. package/.agent/scripts/coolify-cli-helper.sh +674 -0
  63. package/.agent/scripts/coolify-helper.sh +380 -0
  64. package/.agent/scripts/crawl4ai-examples.sh +401 -0
  65. package/.agent/scripts/crawl4ai-helper.sh +1078 -0
  66. package/.agent/scripts/crewai-helper.sh +681 -0
  67. package/.agent/scripts/dev-browser-helper.sh +513 -0
  68. package/.agent/scripts/dns-helper.sh +396 -0
  69. package/.agent/scripts/domain-research-helper.sh +917 -0
  70. package/.agent/scripts/dspy-helper.sh +285 -0
  71. package/.agent/scripts/dspyground-helper.sh +291 -0
  72. package/.agent/scripts/eeat-score-helper.sh +1242 -0
  73. package/.agent/scripts/efficient-return-fix.sh +92 -0
  74. package/.agent/scripts/extract-opencode-prompts.sh +128 -0
  75. package/.agent/scripts/find-missing-returns.sh +113 -0
  76. package/.agent/scripts/fix-auth-headers.sh +104 -0
  77. package/.agent/scripts/fix-common-strings.sh +254 -0
  78. package/.agent/scripts/fix-content-type.sh +100 -0
  79. package/.agent/scripts/fix-error-messages.sh +130 -0
  80. package/.agent/scripts/fix-misplaced-returns.sh +74 -0
  81. package/.agent/scripts/fix-remaining-literals.sh +152 -0
  82. package/.agent/scripts/fix-return-statements.sh +41 -0
  83. package/.agent/scripts/fix-s131-default-cases.sh +249 -0
  84. package/.agent/scripts/fix-sc2155-simple.sh +102 -0
  85. package/.agent/scripts/fix-shellcheck-critical.sh +187 -0
  86. package/.agent/scripts/fix-string-literals.sh +273 -0
  87. package/.agent/scripts/full-loop-helper.sh +773 -0
  88. package/.agent/scripts/generate-opencode-agents.sh +497 -0
  89. package/.agent/scripts/generate-opencode-commands.sh +1629 -0
  90. package/.agent/scripts/generate-skills.sh +366 -0
  91. package/.agent/scripts/git-platforms-helper.sh +640 -0
  92. package/.agent/scripts/gitea-cli-helper.sh +743 -0
  93. package/.agent/scripts/github-cli-helper.sh +702 -0
  94. package/.agent/scripts/gitlab-cli-helper.sh +682 -0
  95. package/.agent/scripts/gsc-add-user-helper.sh +325 -0
  96. package/.agent/scripts/gsc-sitemap-helper.sh +678 -0
  97. package/.agent/scripts/hetzner-helper.sh +485 -0
  98. package/.agent/scripts/hostinger-helper.sh +229 -0
  99. package/.agent/scripts/keyword-research-helper.sh +1815 -0
  100. package/.agent/scripts/langflow-helper.sh +544 -0
  101. package/.agent/scripts/linkedin-automation.py +241 -0
  102. package/.agent/scripts/linter-manager.sh +599 -0
  103. package/.agent/scripts/linters-local.sh +434 -0
  104. package/.agent/scripts/list-keys-helper.sh +488 -0
  105. package/.agent/scripts/local-browser-automation.py +339 -0
  106. package/.agent/scripts/localhost-helper.sh +744 -0
  107. package/.agent/scripts/loop-common.sh +806 -0
  108. package/.agent/scripts/mainwp-helper.sh +728 -0
  109. package/.agent/scripts/markdown-formatter.sh +338 -0
  110. package/.agent/scripts/markdown-lint-fix.sh +311 -0
  111. package/.agent/scripts/mass-fix-returns.sh +58 -0
  112. package/.agent/scripts/mcp-diagnose.sh +167 -0
  113. package/.agent/scripts/mcp-inspector-helper.sh +449 -0
  114. package/.agent/scripts/memory-helper.sh +650 -0
  115. package/.agent/scripts/monitor-code-review.sh +255 -0
  116. package/.agent/scripts/onboarding-helper.sh +706 -0
  117. package/.agent/scripts/opencode-github-setup-helper.sh +797 -0
  118. package/.agent/scripts/opencode-test-helper.sh +213 -0
  119. package/.agent/scripts/pagespeed-helper.sh +464 -0
  120. package/.agent/scripts/pandoc-helper.sh +362 -0
  121. package/.agent/scripts/postflight-check.sh +555 -0
  122. package/.agent/scripts/pre-commit-hook.sh +259 -0
  123. package/.agent/scripts/pre-edit-check.sh +169 -0
  124. package/.agent/scripts/qlty-cli.sh +356 -0
  125. package/.agent/scripts/quality-cli-manager.sh +525 -0
  126. package/.agent/scripts/quality-feedback-helper.sh +462 -0
  127. package/.agent/scripts/quality-fix.sh +263 -0
  128. package/.agent/scripts/quality-loop-helper.sh +1108 -0
  129. package/.agent/scripts/ralph-loop-helper.sh +836 -0
  130. package/.agent/scripts/ralph-upstream-check.sh +341 -0
  131. package/.agent/scripts/secretlint-helper.sh +847 -0
  132. package/.agent/scripts/servers-helper.sh +241 -0
  133. package/.agent/scripts/ses-helper.sh +619 -0
  134. package/.agent/scripts/session-review-helper.sh +404 -0
  135. package/.agent/scripts/setup-linters-wizard.sh +379 -0
  136. package/.agent/scripts/setup-local-api-keys.sh +330 -0
  137. package/.agent/scripts/setup-mcp-integrations.sh +472 -0
  138. package/.agent/scripts/shared-constants.sh +246 -0
  139. package/.agent/scripts/site-crawler-helper.sh +1487 -0
  140. package/.agent/scripts/snyk-helper.sh +940 -0
  141. package/.agent/scripts/sonarcloud-autofix.sh +193 -0
  142. package/.agent/scripts/sonarcloud-cli.sh +191 -0
  143. package/.agent/scripts/sonarscanner-cli.sh +455 -0
  144. package/.agent/scripts/spaceship-helper.sh +747 -0
  145. package/.agent/scripts/stagehand-helper.sh +321 -0
  146. package/.agent/scripts/stagehand-python-helper.sh +321 -0
  147. package/.agent/scripts/stagehand-python-setup.sh +441 -0
  148. package/.agent/scripts/stagehand-setup.sh +439 -0
  149. package/.agent/scripts/system-cleanup.sh +340 -0
  150. package/.agent/scripts/terminal-title-helper.sh +388 -0
  151. package/.agent/scripts/terminal-title-setup.sh +549 -0
  152. package/.agent/scripts/test-stagehand-both-integration.sh +317 -0
  153. package/.agent/scripts/test-stagehand-integration.sh +309 -0
  154. package/.agent/scripts/test-stagehand-python-integration.sh +341 -0
  155. package/.agent/scripts/todo-ready.sh +263 -0
  156. package/.agent/scripts/tool-version-check.sh +362 -0
  157. package/.agent/scripts/toon-helper.sh +469 -0
  158. package/.agent/scripts/twilio-helper.sh +917 -0
  159. package/.agent/scripts/updown-helper.sh +279 -0
  160. package/.agent/scripts/validate-mcp-integrations.sh +250 -0
  161. package/.agent/scripts/validate-version-consistency.sh +131 -0
  162. package/.agent/scripts/vaultwarden-helper.sh +597 -0
  163. package/.agent/scripts/vercel-cli-helper.sh +816 -0
  164. package/.agent/scripts/verify-mirrors.sh +169 -0
  165. package/.agent/scripts/version-manager.sh +831 -0
  166. package/.agent/scripts/webhosting-helper.sh +471 -0
  167. package/.agent/scripts/webhosting-verify.sh +238 -0
  168. package/.agent/scripts/wordpress-mcp-helper.sh +508 -0
  169. package/.agent/scripts/worktree-helper.sh +595 -0
  170. package/.agent/scripts/worktree-sessions.sh +577 -0
  171. package/.agent/seo/dataforseo.md +215 -0
  172. package/.agent/seo/domain-research.md +532 -0
  173. package/.agent/seo/eeat-score.md +659 -0
  174. package/.agent/seo/google-search-console.md +366 -0
  175. package/.agent/seo/gsc-sitemaps.md +282 -0
  176. package/.agent/seo/keyword-research.md +521 -0
  177. package/.agent/seo/serper.md +278 -0
  178. package/.agent/seo/site-crawler.md +387 -0
  179. package/.agent/seo.md +236 -0
  180. package/.agent/services/accounting/quickfile.md +159 -0
  181. package/.agent/services/communications/telfon.md +470 -0
  182. package/.agent/services/communications/twilio.md +569 -0
  183. package/.agent/services/crm/fluentcrm.md +449 -0
  184. package/.agent/services/email/ses.md +399 -0
  185. package/.agent/services/hosting/101domains.md +378 -0
  186. package/.agent/services/hosting/closte.md +177 -0
  187. package/.agent/services/hosting/cloudflare.md +251 -0
  188. package/.agent/services/hosting/cloudron.md +478 -0
  189. package/.agent/services/hosting/dns-providers.md +335 -0
  190. package/.agent/services/hosting/domain-purchasing.md +344 -0
  191. package/.agent/services/hosting/hetzner.md +327 -0
  192. package/.agent/services/hosting/hostinger.md +287 -0
  193. package/.agent/services/hosting/localhost.md +419 -0
  194. package/.agent/services/hosting/spaceship.md +353 -0
  195. package/.agent/services/hosting/webhosting.md +330 -0
  196. package/.agent/social-media.md +69 -0
  197. package/.agent/templates/plans-template.md +114 -0
  198. package/.agent/templates/prd-template.md +129 -0
  199. package/.agent/templates/tasks-template.md +108 -0
  200. package/.agent/templates/todo-template.md +89 -0
  201. package/.agent/tools/ai-assistants/agno.md +471 -0
  202. package/.agent/tools/ai-assistants/capsolver.md +326 -0
  203. package/.agent/tools/ai-assistants/configuration.md +221 -0
  204. package/.agent/tools/ai-assistants/overview.md +209 -0
  205. package/.agent/tools/ai-assistants/status.md +171 -0
  206. package/.agent/tools/ai-assistants/windsurf.md +193 -0
  207. package/.agent/tools/ai-orchestration/autogen.md +406 -0
  208. package/.agent/tools/ai-orchestration/crewai.md +445 -0
  209. package/.agent/tools/ai-orchestration/langflow.md +405 -0
  210. package/.agent/tools/ai-orchestration/openprose.md +487 -0
  211. package/.agent/tools/ai-orchestration/overview.md +362 -0
  212. package/.agent/tools/ai-orchestration/packaging.md +647 -0
  213. package/.agent/tools/browser/agent-browser.md +464 -0
  214. package/.agent/tools/browser/browser-automation.md +400 -0
  215. package/.agent/tools/browser/chrome-devtools.md +282 -0
  216. package/.agent/tools/browser/crawl4ai-integration.md +422 -0
  217. package/.agent/tools/browser/crawl4ai-resources.md +277 -0
  218. package/.agent/tools/browser/crawl4ai-usage.md +416 -0
  219. package/.agent/tools/browser/crawl4ai.md +585 -0
  220. package/.agent/tools/browser/dev-browser.md +341 -0
  221. package/.agent/tools/browser/pagespeed.md +260 -0
  222. package/.agent/tools/browser/playwright.md +266 -0
  223. package/.agent/tools/browser/playwriter.md +310 -0
  224. package/.agent/tools/browser/stagehand-examples.md +456 -0
  225. package/.agent/tools/browser/stagehand-python.md +483 -0
  226. package/.agent/tools/browser/stagehand.md +421 -0
  227. package/.agent/tools/build-agent/agent-review.md +224 -0
  228. package/.agent/tools/build-agent/build-agent.md +784 -0
  229. package/.agent/tools/build-mcp/aidevops-plugin.md +476 -0
  230. package/.agent/tools/build-mcp/api-wrapper.md +445 -0
  231. package/.agent/tools/build-mcp/build-mcp.md +240 -0
  232. package/.agent/tools/build-mcp/deployment.md +401 -0
  233. package/.agent/tools/build-mcp/server-patterns.md +632 -0
  234. package/.agent/tools/build-mcp/transports.md +366 -0
  235. package/.agent/tools/code-review/auditing.md +383 -0
  236. package/.agent/tools/code-review/automation.md +219 -0
  237. package/.agent/tools/code-review/best-practices.md +203 -0
  238. package/.agent/tools/code-review/codacy.md +151 -0
  239. package/.agent/tools/code-review/code-simplifier.md +174 -0
  240. package/.agent/tools/code-review/code-standards.md +309 -0
  241. package/.agent/tools/code-review/coderabbit.md +101 -0
  242. package/.agent/tools/code-review/management.md +155 -0
  243. package/.agent/tools/code-review/qlty.md +248 -0
  244. package/.agent/tools/code-review/secretlint.md +565 -0
  245. package/.agent/tools/code-review/setup.md +250 -0
  246. package/.agent/tools/code-review/snyk.md +563 -0
  247. package/.agent/tools/code-review/tools.md +230 -0
  248. package/.agent/tools/content/summarize.md +353 -0
  249. package/.agent/tools/context/augment-context-engine.md +468 -0
  250. package/.agent/tools/context/context-builder-agent.md +76 -0
  251. package/.agent/tools/context/context-builder.md +375 -0
  252. package/.agent/tools/context/context7.md +371 -0
  253. package/.agent/tools/context/dspy.md +302 -0
  254. package/.agent/tools/context/dspyground.md +374 -0
  255. package/.agent/tools/context/llm-tldr.md +219 -0
  256. package/.agent/tools/context/osgrep.md +488 -0
  257. package/.agent/tools/context/prompt-optimization.md +338 -0
  258. package/.agent/tools/context/toon.md +292 -0
  259. package/.agent/tools/conversion/pandoc.md +304 -0
  260. package/.agent/tools/credentials/api-key-management.md +154 -0
  261. package/.agent/tools/credentials/api-key-setup.md +224 -0
  262. package/.agent/tools/credentials/environment-variables.md +180 -0
  263. package/.agent/tools/credentials/vaultwarden.md +382 -0
  264. package/.agent/tools/data-extraction/outscraper.md +974 -0
  265. package/.agent/tools/deployment/coolify-cli.md +388 -0
  266. package/.agent/tools/deployment/coolify-setup.md +353 -0
  267. package/.agent/tools/deployment/coolify.md +345 -0
  268. package/.agent/tools/deployment/vercel.md +390 -0
  269. package/.agent/tools/git/authentication.md +132 -0
  270. package/.agent/tools/git/gitea-cli.md +193 -0
  271. package/.agent/tools/git/github-actions.md +207 -0
  272. package/.agent/tools/git/github-cli.md +223 -0
  273. package/.agent/tools/git/gitlab-cli.md +190 -0
  274. package/.agent/tools/git/opencode-github-security.md +350 -0
  275. package/.agent/tools/git/opencode-github.md +328 -0
  276. package/.agent/tools/git/opencode-gitlab.md +252 -0
  277. package/.agent/tools/git/security.md +196 -0
  278. package/.agent/tools/git.md +207 -0
  279. package/.agent/tools/opencode/oh-my-opencode.md +375 -0
  280. package/.agent/tools/opencode/opencode-anthropic-auth.md +446 -0
  281. package/.agent/tools/opencode/opencode.md +651 -0
  282. package/.agent/tools/social-media/bird.md +437 -0
  283. package/.agent/tools/task-management/beads.md +336 -0
  284. package/.agent/tools/terminal/terminal-title.md +251 -0
  285. package/.agent/tools/ui/shadcn.md +196 -0
  286. package/.agent/tools/ui/ui-skills.md +115 -0
  287. package/.agent/tools/wordpress/localwp.md +311 -0
  288. package/.agent/tools/wordpress/mainwp.md +391 -0
  289. package/.agent/tools/wordpress/scf.md +527 -0
  290. package/.agent/tools/wordpress/wp-admin.md +729 -0
  291. package/.agent/tools/wordpress/wp-dev.md +940 -0
  292. package/.agent/tools/wordpress/wp-preferred.md +398 -0
  293. package/.agent/tools/wordpress.md +95 -0
  294. package/.agent/workflows/branch/bugfix.md +63 -0
  295. package/.agent/workflows/branch/chore.md +95 -0
  296. package/.agent/workflows/branch/experiment.md +115 -0
  297. package/.agent/workflows/branch/feature.md +59 -0
  298. package/.agent/workflows/branch/hotfix.md +98 -0
  299. package/.agent/workflows/branch/refactor.md +92 -0
  300. package/.agent/workflows/branch/release.md +96 -0
  301. package/.agent/workflows/branch.md +347 -0
  302. package/.agent/workflows/bug-fixing.md +267 -0
  303. package/.agent/workflows/changelog.md +129 -0
  304. package/.agent/workflows/code-audit-remote.md +279 -0
  305. package/.agent/workflows/conversation-starter.md +69 -0
  306. package/.agent/workflows/error-feedback.md +578 -0
  307. package/.agent/workflows/feature-development.md +355 -0
  308. package/.agent/workflows/git-workflow.md +702 -0
  309. package/.agent/workflows/multi-repo-workspace.md +268 -0
  310. package/.agent/workflows/plans.md +709 -0
  311. package/.agent/workflows/postflight.md +604 -0
  312. package/.agent/workflows/pr.md +571 -0
  313. package/.agent/workflows/preflight.md +278 -0
  314. package/.agent/workflows/ralph-loop.md +773 -0
  315. package/.agent/workflows/release.md +498 -0
  316. package/.agent/workflows/session-manager.md +254 -0
  317. package/.agent/workflows/session-review.md +311 -0
  318. package/.agent/workflows/sql-migrations.md +631 -0
  319. package/.agent/workflows/version-bump.md +283 -0
  320. package/.agent/workflows/wiki-update.md +333 -0
  321. package/.agent/workflows/worktree.md +477 -0
  322. package/LICENSE +21 -0
  323. package/README.md +1446 -0
  324. package/VERSION +1 -0
  325. package/aidevops.sh +1746 -0
  326. package/bin/aidevops +21 -0
  327. package/package.json +75 -0
  328. package/scripts/npm-postinstall.js +60 -0
  329. package/setup.sh +2366 -0
@@ -0,0 +1,442 @@
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
+ # Codacy CLI v2 Integration Script
5
+ # Comprehensive local code analysis with Codacy CLI v2
6
+ #
7
+ # Usage: ./codacy-cli.sh [command] [options]
8
+ # Commands:
9
+ # install - Install Codacy CLI v2
10
+ # init - Initialize project configuration
11
+ # analyze - Run code analysis
12
+ # upload - Upload SARIF results to Codacy
13
+ # status - Check CLI status and configuration
14
+ # help - Show this help message
15
+ #
16
+ # Author: AI DevOps Framework
17
+ # Version: 1.1.1
18
+ # License: MIT
19
+
20
+ # Colors for output
21
+ readonly GREEN='\033[0;32m'
22
+ readonly BLUE='\033[0;34m'
23
+ readonly YELLOW='\033[1;33m'
24
+ readonly RED='\033[0;31m'
25
+ readonly PURPLE='\033[0;35m'
26
+ readonly NC='\033[0m' # No Color
27
+
28
+ # Common constants
29
+ readonly ERROR_UNKNOWN_COMMAND="Unknown command:"
30
+ # Configuration
31
+ readonly CODACY_CLI_VERSION="1.0.0-main.361.sha.f961a76"
32
+ readonly CODACY_CONFIG_DIR=".codacy"
33
+ readonly CODACY_CONFIG_FILE="$CODACY_CONFIG_DIR/codacy.yaml"
34
+ readonly CODACY_API_CONFIG="configs/codacy-config.json"
35
+ # API token loaded from environment variable CODACY_API_TOKEN
36
+
37
+ # Print functions
38
+ print_success() {
39
+ local message="$1"
40
+ echo -e "${GREEN}✅ $message${NC}"
41
+ return 0
42
+ }
43
+
44
+ print_info() {
45
+ local message="$1"
46
+ echo -e "${BLUE}ℹ️ $message${NC}"
47
+ return 0
48
+ }
49
+
50
+ print_warning() {
51
+ local message="$1"
52
+ echo -e "${YELLOW}⚠️ $message${NC}"
53
+ return 0
54
+ }
55
+
56
+ # Load API configuration
57
+ load_api_config() {
58
+ # Check environment variable first (set via mcp-env.sh, sourced by .zshrc)
59
+ # CODACY_PROJECT_TOKEN is the standard env var name
60
+ if [[ -z "${CODACY_API_TOKEN:-}" && -n "${CODACY_PROJECT_TOKEN:-}" ]]; then
61
+ export CODACY_API_TOKEN="$CODACY_PROJECT_TOKEN"
62
+ fi
63
+
64
+ if [[ -f "$CODACY_API_CONFIG" ]]; then
65
+ print_info "Loading Codacy API configuration from $CODACY_API_CONFIG"
66
+
67
+ # API token should be set in environment variable
68
+ if [[ -z "${CODACY_API_TOKEN:-}" ]]; then
69
+ print_error "CODACY_API_TOKEN/CODACY_PROJECT_TOKEN not found in environment"
70
+ print_info "Add to ~/.config/aidevops/mcp-env.sh:"
71
+ print_info " export CODACY_PROJECT_TOKEN=\"your-token\""
72
+ return 1
73
+ fi
74
+
75
+ # Set organization and repository from config if available
76
+ if command -v jq >/dev/null 2>&1; then
77
+ local org
78
+ org=$(jq -r '.organization // empty' "$CODACY_API_CONFIG" 2>/dev/null)
79
+ local repo
80
+ repo=$(jq -r '.repository // empty' "$CODACY_API_CONFIG" 2>/dev/null)
81
+
82
+ if [[ -n "$org" && -n "$repo" ]]; then
83
+ export CODACY_ORGANIZATION="$org"
84
+ export CODACY_REPOSITORY="$repo"
85
+ print_success "Configured for organization: $org, repository: $repo"
86
+ fi
87
+ fi
88
+
89
+ return 0
90
+ else
91
+ print_warning "API configuration file not found: $CODACY_API_CONFIG"
92
+ print_info "Using default configuration with environment API token"
93
+ if [[ -z "$CODACY_API_TOKEN" ]]; then
94
+ print_error "CODACY_API_TOKEN environment variable not set"
95
+ return 1
96
+ fi
97
+ return 1
98
+ fi
99
+ return 0
100
+ }
101
+
102
+ print_error() {
103
+ local message="$1"
104
+ echo -e "${RED}❌ $message${NC}" >&2
105
+ return 0
106
+ }
107
+
108
+ print_header() {
109
+ local message="$1"
110
+ echo -e "${PURPLE}🔍 $message${NC}"
111
+ return 0
112
+ }
113
+
114
+ # Check if Codacy CLI is installed
115
+ check_codacy_cli() {
116
+ if command -v codacy-cli &> /dev/null; then
117
+ local version
118
+ version=$(codacy-cli version 2>/dev/null | head -1 || echo "unknown")
119
+ print_success "Codacy CLI installed: $version"
120
+ return 0
121
+ else
122
+ print_warning "Codacy CLI not found"
123
+ return 1
124
+ fi
125
+ return 0
126
+ }
127
+
128
+ # Install Codacy CLI v2
129
+ install_codacy_cli() {
130
+ print_header "Installing Codacy CLI v2"
131
+
132
+ # Detect platform
133
+ local platform
134
+ case "$(uname -s)" in
135
+ Darwin*)
136
+ platform="macOS"
137
+ if command -v brew &> /dev/null; then
138
+ print_info "Installing via Homebrew..."
139
+ brew install codacy/codacy-cli-v2/codacy-cli-v2
140
+ else
141
+ print_error "Homebrew not found. Please install Homebrew first."
142
+ return 1
143
+ fi
144
+ ;;
145
+ Linux*)
146
+ platform="Linux"
147
+ print_info "Installing via curl script..."
148
+ # Use --proto =https to enforce HTTPS and prevent protocol downgrade
149
+ bash <(curl --proto '=https' -Ls https://raw.githubusercontent.com/codacy/codacy-cli-v2/main/codacy-cli.sh)
150
+ ;;
151
+ *)
152
+ print_error "Unsupported platform: $(uname -s)"
153
+ print_info "For Windows, use WSL and follow Linux instructions"
154
+ return 1
155
+ ;;
156
+ esac
157
+
158
+ # Verify installation
159
+ if check_codacy_cli; then
160
+ print_success "Codacy CLI v2 installed successfully on $platform"
161
+ return 0
162
+ else
163
+ print_error "Installation failed"
164
+ return 1
165
+ fi
166
+ return 0
167
+ }
168
+
169
+ # Initialize Codacy configuration
170
+ init_codacy_config() {
171
+ print_header "Initializing Codacy Configuration"
172
+
173
+ # Check if API token is provided
174
+ local api_token="${CODACY_API_TOKEN:-}"
175
+ local provider="${CODACY_PROVIDER:-}"
176
+ local organization="${CODACY_ORGANIZATION:-}"
177
+ local repository="${CODACY_REPOSITORY:-}"
178
+
179
+ if [[ -n "$api_token" && -n "$provider" && -n "$organization" && -n "$repository" ]]; then
180
+ print_info "Initializing with remote configuration from Codacy..."
181
+ codacy-cli init --api-token "$api_token" --provider "$provider" --organization "$organization" --repository "$repository"
182
+ else
183
+ print_info "Initializing with local configuration..."
184
+ print_warning "For remote config, set: CODACY_API_TOKEN, CODACY_PROVIDER, CODACY_ORGANIZATION, CODACY_REPOSITORY"
185
+ codacy-cli init
186
+ fi
187
+
188
+ if [[ -f "$CODACY_CONFIG_FILE" ]]; then
189
+ print_success "Codacy configuration initialized: $CODACY_CONFIG_FILE"
190
+ return 0
191
+ else
192
+ print_error "Configuration initialization failed"
193
+ return 1
194
+ fi
195
+ return 0
196
+ }
197
+
198
+ # Install tools and runtimes
199
+ install_codacy_tools() {
200
+ print_header "Installing Codacy Tools and Runtimes"
201
+
202
+ if [[ ! -f "$CODACY_CONFIG_FILE" ]]; then
203
+ print_error "Configuration file not found. Run 'init' first."
204
+ return 1
205
+ fi
206
+
207
+ print_info "Installing tools specified in $CODACY_CONFIG_FILE..."
208
+ codacy-cli install
209
+
210
+ if [[ $? -eq 0 ]]; then
211
+ print_success "Tools and runtimes installed successfully"
212
+ return 0
213
+ else
214
+ print_error "Tool installation failed"
215
+ return 1
216
+ fi
217
+ return 0
218
+ }
219
+
220
+ # Run code analysis
221
+ run_codacy_analysis() {
222
+ local tool="$1"
223
+ local output_format="${2:-sarif}"
224
+ local output_file="${3:-codacy-results.sarif}"
225
+ # auto_fix parameter reserved for future use
226
+ # local auto_fix="$4"
227
+
228
+ print_header "Running Codacy Code Analysis"
229
+
230
+ # Load API configuration
231
+ load_api_config
232
+
233
+ if [[ ! -f "$CODACY_CONFIG_FILE" ]]; then
234
+ print_error "Configuration file not found. Run 'init' first."
235
+ return 1
236
+ fi
237
+
238
+ # Build analysis command
239
+ local cmd="codacy-cli analyze"
240
+
241
+ # Handle auto-fix flag
242
+ if [[ "$tool" == "--fix" ]]; then
243
+ cmd="$cmd --fix"
244
+ print_info "Auto-fix enabled: Will apply fixes when available"
245
+ print_info "Running analysis with all configured tools"
246
+ elif [[ -n "$tool" ]]; then
247
+ cmd="$cmd --tool $tool"
248
+ print_info "Running analysis with tool: $tool"
249
+ else
250
+ print_info "Running analysis with all configured tools"
251
+ fi
252
+
253
+ if [[ "$output_format" == "sarif" ]]; then
254
+ cmd="$cmd --format sarif --output $output_file"
255
+ print_info "Output format: SARIF → $output_file"
256
+ fi
257
+
258
+ # Execute analysis
259
+ print_info "Executing: $cmd"
260
+ eval "$cmd"
261
+
262
+ if [[ $? -eq 0 ]]; then
263
+ print_success "Code analysis completed successfully"
264
+ if [[ -f "$output_file" ]]; then
265
+ print_info "Results saved to: $output_file"
266
+ fi
267
+ return 0
268
+ else
269
+ print_error "Code analysis failed"
270
+ return 1
271
+ fi
272
+ return 0
273
+ }
274
+
275
+ # Upload SARIF results to Codacy
276
+ upload_codacy_results() {
277
+ local sarif_file="${1:-codacy-results.sarif}"
278
+ local commit_uuid="${2:-$(git rev-parse HEAD 2>/dev/null)}"
279
+
280
+ print_header "Uploading Results to Codacy"
281
+
282
+ if [[ ! -f "$sarif_file" ]]; then
283
+ print_error "SARIF file not found: $sarif_file"
284
+ return 1
285
+ fi
286
+
287
+ if [[ -z "$commit_uuid" ]]; then
288
+ print_error "Commit UUID required. Provide as argument or ensure git repository."
289
+ return 1
290
+ fi
291
+
292
+ # Check for project token or API token
293
+ local project_token="${CODACY_PROJECT_TOKEN:-}"
294
+ local api_token="${CODACY_API_TOKEN:-}"
295
+ local provider="${CODACY_PROVIDER:-}"
296
+ local organization="${CODACY_ORGANIZATION:-}"
297
+ local repository="${CODACY_REPOSITORY:-}"
298
+
299
+ local cmd="codacy-cli upload -s $sarif_file -c $commit_uuid"
300
+
301
+ if [[ -n "$project_token" ]]; then
302
+ cmd="$cmd -t $project_token"
303
+ print_info "Using project token for upload"
304
+ elif [[ -n "$api_token" && -n "$provider" && -n "$organization" && -n "$repository" ]]; then
305
+ cmd="$cmd -a $api_token -p $provider -o $organization -r $repository"
306
+ print_info "Using API token for upload"
307
+ else
308
+ print_error "Upload credentials required:"
309
+ print_info " Option 1: Set CODACY_PROJECT_TOKEN"
310
+ print_info " Option 2: Set CODACY_API_TOKEN, CODACY_PROVIDER, CODACY_ORGANIZATION, CODACY_REPOSITORY"
311
+ return 1
312
+ fi
313
+
314
+ print_info "Uploading: $sarif_file (commit: ${commit_uuid:0:8})"
315
+ eval "$cmd"
316
+
317
+ if [[ $? -eq 0 ]]; then
318
+ print_success "Results uploaded to Codacy successfully"
319
+ return 0
320
+ else
321
+ print_error "Upload failed"
322
+ return 1
323
+ fi
324
+ return 0
325
+ }
326
+
327
+ # Show CLI status
328
+ show_codacy_status() {
329
+ print_header "Codacy CLI Status"
330
+
331
+ # Check CLI installation
332
+ if check_codacy_cli; then
333
+ print_info "Expected version: $CODACY_CLI_VERSION"
334
+ echo ""
335
+ else
336
+ print_info "Expected version: $CODACY_CLI_VERSION"
337
+ print_info "Run: $0 install"
338
+ echo ""
339
+ fi
340
+
341
+ # Check configuration
342
+ if [[ -f "$CODACY_CONFIG_FILE" ]]; then
343
+ print_success "Configuration found: $CODACY_CONFIG_FILE"
344
+
345
+ # Show basic config info
346
+ if command -v yq &> /dev/null; then
347
+ local tools_count
348
+ tools_count=$(yq eval '.tools | length' "$CODACY_CONFIG_FILE" 2>/dev/null || echo "unknown")
349
+ print_info "Configured tools: $tools_count"
350
+ fi
351
+ else
352
+ print_warning "Configuration not found"
353
+ print_info "Run: $0 init"
354
+ fi
355
+
356
+ # Check environment variables
357
+ echo ""
358
+ print_info "Environment Configuration:"
359
+ [[ -n "${CODACY_API_TOKEN:-}" ]] && print_success "CODACY_API_TOKEN: Set" || print_warning "CODACY_API_TOKEN: Not set"
360
+ [[ -n "${CODACY_PROJECT_TOKEN:-}" ]] && print_success "CODACY_PROJECT_TOKEN: Set" || print_warning "CODACY_PROJECT_TOKEN: Not set"
361
+ [[ -n "${CODACY_PROVIDER:-}" ]] && print_info "CODACY_PROVIDER: ${CODACY_PROVIDER}" || print_warning "CODACY_PROVIDER: Not set"
362
+ [[ -n "${CODACY_ORGANIZATION:-}" ]] && print_info "CODACY_ORGANIZATION: ${CODACY_ORGANIZATION}" || print_warning "CODACY_ORGANIZATION: Not set"
363
+ [[ -n "${CODACY_REPOSITORY:-}" ]] && print_info "CODACY_REPOSITORY: ${CODACY_REPOSITORY}" || print_warning "CODACY_REPOSITORY: Not set"
364
+
365
+ return 0
366
+ }
367
+
368
+ # Show help message
369
+ show_help() {
370
+ print_header "Codacy CLI v2 Integration Help"
371
+ echo ""
372
+ echo "Usage: $0 [command] [options]"
373
+ echo ""
374
+ echo "Commands:"
375
+ echo " install - Install Codacy CLI v2"
376
+ echo " init - Initialize project configuration"
377
+ echo " install-tools - Install tools and runtimes"
378
+ echo " analyze [tool|--fix] - Run code analysis (optionally with specific tool or auto-fix)"
379
+ echo " upload [sarif] [commit] - Upload SARIF results to Codacy"
380
+ echo " status - Check CLI status and configuration"
381
+ echo " help - Show this help message"
382
+ echo ""
383
+ echo "Examples:"
384
+ echo " $0 install"
385
+ echo " $0 init"
386
+ echo " $0 analyze"
387
+ echo " $0 analyze eslint"
388
+ echo " $0 analyze --fix # Auto-fix issues when possible"
389
+ echo " $0 upload results.sarif abc123"
390
+ echo ""
391
+ echo "Environment Variables:"
392
+ echo " CODACY_API_TOKEN - API token for Codacy"
393
+ echo " CODACY_PROJECT_TOKEN - Project token for uploads"
394
+ echo " CODACY_PROVIDER - Provider (gh, gl, bb)"
395
+ echo " CODACY_ORGANIZATION - Organization name"
396
+ echo " CODACY_REPOSITORY - Repository name"
397
+ echo ""
398
+ echo "This script integrates Codacy CLI v2 into the AI DevOps Framework"
399
+ echo "for comprehensive local code analysis and quality assurance."
400
+ return 0
401
+ }
402
+
403
+ # Main function
404
+ main() {
405
+ local _arg2="$2"
406
+ local _arg3="$3"
407
+ local _arg4="$4"
408
+ local command="${1:-help}"
409
+
410
+ case "$command" in
411
+ "install")
412
+ install_codacy_cli
413
+ ;;
414
+ "init")
415
+ init_codacy_config
416
+ ;;
417
+ "install-tools")
418
+ install_codacy_tools
419
+ ;;
420
+ "analyze")
421
+ run_codacy_analysis "$_arg2" "$_arg3" "$_arg4"
422
+ ;;
423
+ "upload")
424
+ upload_codacy_results "$_arg2" "$_arg3"
425
+ ;;
426
+ "status")
427
+ show_codacy_status
428
+ ;;
429
+ "help"|"--help"|"-h")
430
+ show_help
431
+ ;;
432
+ *)
433
+ print_error "$ERROR_UNKNOWN_COMMAND $command"
434
+ show_help
435
+ return 1
436
+ ;;
437
+ esac
438
+ return 0
439
+ }
440
+
441
+ # Execute main function with all arguments
442
+ main "$@"
@@ -0,0 +1,5 @@
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
+ # Code Audit Helper - Placeholder for future implementation
4
+
5
+ return 0