No description
Find a file
Snider 907c5fa64c fix(devops): address CodeRabbit findings on PR #2
15+ findings dispositioned. AX-6-conformant — no testify reintroduced.

Code fixes:
- cmd/dev/service.go: no-op now returns OK:true, unchecked prompt type assertion guarded
- cmd/workspace/config.go: relative parent traversal blocked + regression test, fmt.Errorf wrapping
- cmd/dev/cmd_issues.go + cmd_reviews.go: import ordering
- tests/cli/devops/main.go: raw WalkDir errors wrapped
- tests/cli/devops/Taskfile.yaml: strict shell flags
- cmd/vanity-import/Dockerfile + docs/development.md: Go 1.26 alignment
- locales/embed.go: missing dappco.re/go/i18n checksum

Test infra:
- New local test helpers in cmd/dev, cmd/setup, devkit, snapshot
- All testify usages already absent — local stdlib helpers preferred
  per AX-6 ban
- Test naming aligned (Test{Filename}_{Function}_{Good,Bad,Ugly} per AX-10)

Disposition replies (RESOLVED-COMMENT, no testify added):
- cmd/dev/cmd_apply_test.go, cmd/setup/cmd_ci_test.go, snapshot_test.go,
  devkit/coverage_test.go: CodeRabbit testify suggestions get reasoning
  reply per AX-6 ban; local helpers are convention.
- SonarCloud/GHAS: no PR checks/annotations found; code-scanning API
  returned no analysis, secret scanning disabled.

Verification: gofmt clean, git diff --check clean, no testify imports.
Targeted go vet + go test pass for cmd/workspace + devkit + snapshot.
Full go vet ./... blocked by pre-existing dappco.re/go/scm
codeberg.org/forgejo/go-sdk auth/replacement issue (out of scope).

Closes findings on https://github.com/dAppCore/go-devops/pull/2

Co-authored-by: Codex <noreply@openai.com>
2026-04-27 15:07:24 +01:00
.claude-plugin fix(plugin): remove invalid commands schema from plugin.json 2026-03-13 10:54:45 +00:00
.core chore: add .core/ build and release configs 2026-03-06 18:52:36 +00:00
cmd fix(devops): address CodeRabbit findings on PR #2 2026-04-27 15:07:24 +01:00
deploy feat(ax-10): bring go-devops to v0.8.0-alpha.1 + CLI test scaffold 2026-04-24 23:44:02 +01:00
devkit fix(devops): address CodeRabbit findings on PR #2 2026-04-27 15:07:24 +01:00
docs fix(devops): address CodeRabbit findings on PR #2 2026-04-27 15:07:24 +01:00
locales feat(ax-10): bring go-devops to v0.8.0-alpha.1 + CLI test scaffold 2026-04-24 23:44:02 +01:00
playbooks feat: add Ansible playbooks and design plans from CLI 2026-02-21 21:16:52 +00:00
snapshot fix(devops): address CodeRabbit findings on PR #2 2026-04-27 15:07:24 +01:00
tests/cli/devops fix(devops): address CodeRabbit findings on PR #2 2026-04-27 15:07:24 +01:00
.gitignore chore: add .core/ and .idea/ to .gitignore 2026-03-15 10:17:49 +00:00
CLAUDE.md chore: migrate to dappco.re vanity import path 2026-03-22 00:04:10 +00:00
go.mod feat(ax-10): bring go-devops to v0.8.0-alpha.1 + CLI test scaffold 2026-04-24 23:44:02 +01:00
go.sum fix(devops): address CodeRabbit findings on PR #2 2026-04-27 15:07:24 +01:00
README.md fix(devops): address CodeRabbit findings on PR #2 2026-04-27 15:07:24 +01:00

go-devops

Infrastructure and build automation library for the Lethean ecosystem. Provides a native Go Ansible playbook executor (~30 modules over SSH without shelling out), a multi-target build pipeline with project type auto-detection (Go, Wails, Docker, C++, LinuxKit, Taskfile), code signing (macOS codesign, GPG, Windows signtool), release orchestration with changelog generation and eight publisher backends (GitHub Releases, Docker, Homebrew, npm, AUR, Scoop, Chocolatey, LinuxKit), Hetzner Cloud and Robot API clients, CloudNS DNS management, container/VM management via QEMU and Hyperkit, an OpenAPI SDK generator (TypeScript, Python, Go, PHP), and a developer toolkit with cyclomatic complexity analysis, vulnerability scanning, and coverage trending.

Module: forge.lthn.ai/core/go-devops Licence: EUPL-1.2 Language: Go 1.26

Quick Start

import (
    "forge.lthn.ai/core/go-devops/ansible"
    "forge.lthn.ai/core/go-devops/build"
    "forge.lthn.ai/core/go-devops/release"
)

// Run an Ansible playbook over SSH
pb, _ := ansible.ParsePlaybook("playbooks/deploy.yml")
inv, _ := ansible.ParseInventory("inventory.yml")
pb.Run(ctx, inv)

// Build and release
artifacts, _ := build.Build(ctx, ".")
release.Publish(ctx, releaseCfg, false)

Documentation

  • Architecture — Ansible integration, build pipeline, infrastructure APIs, release workflow, devkit, SDK generation
  • Development Guide — building, testing, coding standards
  • Project History — completed phases and known limitations

Build & Test

go test ./...
go test -race ./...
go vet ./...
go build ./...

Licence

European Union Public Licence 1.2 — see LICENCE for details.