Commit graph

47 commits

Author SHA1 Message Date
71cce73239 Merge pull request '[agent/codex] Road-test the go-forge library. Read CODEX.md and CLAUDE.md ...' (#6) from agent/road-test-the-go-forge-library--read-cod into main
All checks were successful
Security Scan / security (push) Successful in 12s
Test / test (push) Successful in 45s
2026-03-22 14:14:17 +00:00
Snider
107c78dc07 test(services): road-test resource CRUD paths
All checks were successful
Security Scan / security (pull_request) Successful in 8s
Test / test (pull_request) Successful in 49s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-22 14:13:40 +00:00
1f4c5c607e Merge pull request 'fix: Resource collection path for List/ListAll/Iter' (#5) from dev into main
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 36s
2026-03-22 14:01:40 +00:00
Snider
c7c279fc17 fix: Resource.List/ListAll/Iter use collection path, not item path
All checks were successful
Security Scan / security (push) Successful in 8s
Test / test (push) Successful in 44s
Security Scan / security (pull_request) Successful in 8s
Test / test (pull_request) Successful in 46s
The Resource path like /repos/{owner}/{repo}/issues/{index} is the
item path. List operations need the collection path (without the
trailing /{placeholder}). Fixed by deriving the collection path at
construction time — only strips the last segment if it's a pure
placeholder like /{index}, not mixed segments like /repos.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-22 14:01:14 +00:00
de9db03047 Merge pull request '[agent/claude] Migrate module path to dappco.re/go/core/forge. Update go.mo...' (#4) from agent/migrate-module-path-to-dappco-re-go-core into main
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 35s
2026-03-22 01:51:40 +00:00
Snider
0a9564274d refactor(module): migrate module path to dappco.re/go/core/forge
All checks were successful
Security Scan / security (pull_request) Successful in 9s
Test / test (pull_request) Successful in 1m20s
Update Go module path from forge.lthn.ai/core/go-forge to
dappco.re/go/core/forge. Migrate all import paths and dependency
references (go-io → dappco.re/go/core/io, go-log → dappco.re/go/core/log).
Update documentation (CLAUDE.md, README.md, docs/) to reflect new paths.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-22 01:51:29 +00:00
Snider
83b4f9da90 Merge remote-tracking branch 'github/dev'
All checks were successful
Security Scan / security (push) Successful in 10s
Test / test (push) Successful in 40s
2026-03-22 00:57:31 +00:00
Snider
74a7661ec3 chore: sync dependencies for v0.1.9
Some checks failed
Test / test (push) Successful in 41s
Security Scan / security (push) Failing after 11m16s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 17:54:20 +00:00
Snider
aadc2fa399 ci: add Core ecosystem CI workflow with CodeRabbit auto-fix
Uses dAppCore/build actions for test, auto-fix on CodeRabbit changes,
and auto-merge on CodeRabbit approval.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 14:05:38 +00:00
bb506863d1 Merge pull request '[agent/claude:opus] DX audit and fix. 1) Review CLAUDE.md — update any outdate...' (#2) from agent/dx-audit-and-fix--1--review-claude-md into main
Some checks failed
Test / test (push) Successful in 41s
Security Scan / security (push) Failing after 10m40s
2026-03-17 08:11:54 +00:00
Snider
c354c11652 fix(dx): update CLAUDE.md and add tests for untested critical paths
Some checks failed
Security Scan / security (pull_request) Successful in 9s
Test / test (pull_request) Failing after 11m24s
- Fix CLAUDE.md: "zero dependencies" → documents go-io/go-log deps
- Add coding standards for coreerr.E() and go-io usage
- Add tests for APIError.Error(), IsConflict, IsForbidden, WithHTTPClient,
  RateLimit, Forge.Client(), Resource.Iter() (happy, error, early-break)
- Coverage: 64.5% → 66.8% (+2.3%)
- No fmt.Errorf, errors.New, or os.ReadFile/WriteFile violations found

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 08:11:30 +00:00
Snider
4e92c467eb chore: sync dependencies for v0.1.7
All checks were successful
Security Scan / security (push) Successful in 8s
Test / test (push) Successful in 1m23s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 22:19:21 +00:00
Snider
7d23663efb chore: sync dependencies for v0.1.6
All checks were successful
Security Scan / security (push) Successful in 7s
Test / test (push) Successful in 1m15s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 22:12:59 +00:00
Snider
f84643140e refactor: replace os.ReadFile/WriteFile/MkdirAll and fmt.Errorf/errors.New with go-io/go-log
All checks were successful
Security Scan / security (push) Successful in 7s
Test / test (push) Successful in 1m18s
- Replace os.ReadFile with coreio.Local.Read in parser.go and generator_test.go
- Replace os.WriteFile with coreio.Local.Write in generator.go
- Replace os.MkdirAll with coreio.Local.EnsureDir in generator.go
- Replace all fmt.Errorf and errors.New with coreerr.E() from go-log
- Add forge.lthn.ai/core/go-io and forge.lthn.ai/core/go-log dependencies

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 19:06:48 +00:00
Snider
30c57a5a51 chore: add .core/ and .idea/ to .gitignore
All checks were successful
Security Scan / security (push) Successful in 10s
Test / test (push) Successful in 1m18s
2026-03-15 10:17:49 +00:00
Snider
b50e8bab3b docs: add CLAUDE.md project instructions
All checks were successful
Security Scan / security (push) Successful in 8s
Test / test (push) Successful in 1m9s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-13 13:38:01 +00:00
Snider
761493c7f5 docs: add human-friendly documentation
All checks were successful
Security Scan / security (push) Successful in 6s
Test / test (push) Successful in 1m8s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 13:02:40 +00:00
Snider
72fb4e3b8e fix: improve API client error handling and pagination
All checks were successful
Security Scan / security (push) Successful in 10s
Test / test (push) Successful in 1m12s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 08:31:16 +00:00
Snider
f59ec29e1f chore: add .core/ build and release configs
All checks were successful
Security Scan / security (push) Successful in 8s
Test / test (push) Successful in 1m11s
Add go-devops build system configuration for standardised
build, test, and release workflows across the Go ecosystem.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 18:52:36 +00:00
Snider
d50175a8b0 chore: remove boilerplate Taskfile
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 1m12s
All tasks (test, build, lint, fmt, vet, cov) are handled natively
by `core go` commands. Taskfile was redundant wrapper.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 14:45:49 +00:00
12c2ad8c61 Merge pull request 'chore: Go 1.26 modernization' (#1) from chore/go-1.26-modernization into main
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 1m16s
2026-02-24 18:01:49 +00:00
Claude
56dc67a8df
chore: fmt.Errorf(static) → errors.New
All checks were successful
Security Scan / security (pull_request) Successful in 10s
Test / test (pull_request) Successful in 1m10s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:28:47 +00:00
Snider
e75ceb2e00 chore: add Go repo norms (badges, contributing, lint, taskfile, editorconfig)
All checks were successful
Security Scan / security (push) Successful in 10s
Test / test (push) Successful in 1m44s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 06:45:34 +00:00
Snider
57d8af13ad feat: modernise to Go 1.26 iterators and stdlib helpers
All checks were successful
Security Scan / security (push) Successful in 14s
Test / test (push) Successful in 2m1s
Add ListIter in pagination + generic Resource.Iter for streaming
paginated results as iter.Seq2[T, error]. Add Iter* methods across
all service files (actions, admin, branches, issues, labels, notifs,
orgs, packages, pulls, releases, repos, teams, users, webhooks).
Modernise cmd/forgegen with slices.Sort, maps.Keys, strings.FieldsFuncSeq.

Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 05:39:13 +00:00
Claude
5ac4fc75ef
ci: add Forgejo Actions test and security scan workflows
All checks were successful
Security Scan / security (push) Successful in 12s
Test / test (push) Successful in 1m49s
Uses reusable workflows from core/go-devops for Go testing
(with race detector and coverage) and security scanning
(govulncheck, gitleaks, trivy).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 03:28:02 +00:00
Snider
c95c4614aa chore: bump go directive to 1.26.0
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-22 20:33:49 +00:00
Snider
c59309d15a chore: remove design and plan docs — implementation complete
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 17:16:53 +00:00
Snider
12525932ae chore: remove docs/wiki — content now on Forge wiki
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 17:16:03 +00:00
Snider
f5f796cd16 docs: wiki documentation for go-forge
Seven pages covering Home, Architecture, Services, Code Generation,
Configuration, Error Handling, and Development.

Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:14:01 +00:00
Snider
33319590d4 feat: WikiService, MiscService, CommitService
Add three new services completing the final service layer:

- WikiService: CRUD operations for repository wiki pages
- MiscService: markdown rendering, licence/gitignore templates, nodeinfo, version
- CommitService: commit statuses (list, create, combined) and git notes
- PostRaw method on Client for endpoints returning raw text (e.g. /markdown)
- Remove services_stub.go (all stubs now replaced with real implementations)
- Wire Commits field into Forge struct

Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:14:01 +00:00
Snider
9e3d15da68 feat: ActionsService, NotificationService, PackageService
Add three new services for the Forgejo API client:

- ActionsService: repo/org secrets, variables, workflow dispatch
- NotificationService: list, mark read, thread operations
- PackageService: list, get, delete packages and files

Wire up real constructors in forge.go and remove stubs from
services_stub.go. All 21 new tests pass.

Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:14:01 +00:00
Snider
de76399608 feat: LabelService, WebhookService, ContentService
Add three new services covering labels, webhooks, and file content
operations. LabelService handles repo and org labels without Resource
embedding due to heterogeneous paths. WebhookService embeds Resource
for standard CRUD on repo hooks plus action methods for test delivery
and org hooks. ContentService provides file CRUD and raw file retrieval.
Adds GetRaw method to Client for non-JSON responses.

Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:14:01 +00:00
Snider
fd0343e47e feat: BranchService and ReleaseService with protections and assets
Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:14:01 +00:00
Snider
c6e9d83b08 feat: AdminService with user, org, cron, runner operations
Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:14:01 +00:00
Snider
df75d3281d feat: OrgService, TeamService, UserService
Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:14:01 +00:00
Snider
f8c6090227 feat: IssueService and PullService with actions
Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:14:01 +00:00
Snider
abc8840fa4 feat: Forge client + RepoService with CRUD and actions
Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:14:01 +00:00
Snider
b1862445a0 feat: config resolution from env vars and flags
Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:14:01 +00:00
Snider
9e3b2c0181 feat: generate all 229 Forgejo API types from swagger spec
Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:14:01 +00:00
Snider
eb3d63e5c1 feat: Go source code generator from Swagger types
Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:14:01 +00:00
Snider
c2754cae4e feat: swagger spec parser for type extraction
Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:14:01 +00:00
Snider
286d91383f feat: generic Resource[T,C,U] for CRUD operations
Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 15:27:01 +00:00
Snider
768c547a47 feat: path parameter resolution with URL encoding
Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 15:23:07 +00:00
Snider
549962ba00 feat: generic pagination with ListAll and ListPage
Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 15:22:59 +00:00
Snider
ba0fa441f4 feat: HTTP client with auth, context, error handling
Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 15:22:50 +00:00
Snider
40378d1e90 docs: add design and implementation plan
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 15:19:32 +00:00
Snider
f37dd7b988 feat: scaffold go-forge repo with swagger spec and plan
- go.mod at forge.lthn.ai/core/go-forge
- Pinned swagger.v1.json (229 types, 284 paths, 450 endpoints)
- CLAUDE.md with architecture overview and implementation plan reference
- Directory structure for types/, cmd/forgegen/

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 15:14:29 +00:00