Skip to content

feat(greptimedb): Phase A — feature gate, config schema, and placeholder module#50

Merged
juice094 merged 2 commits into
mainfrom
feat/greptimedb-phase-a
May 15, 2026
Merged

feat(greptimedb): Phase A — feature gate, config schema, and placeholder module#50
juice094 merged 2 commits into
mainfrom
feat/greptimedb-phase-a

Conversation

@juice094
Copy link
Copy Markdown
Owner

Summary

Introduce optional GreptimeDB integration for devbase time-series data (health, code metrics, stars).

Changes

  • Cargo.toml: Add feature with optional dependency
  • Config: Add (enabled, endpoint, dbname, username, password)
  • Module: Create with and no-op methods
  • Registration: Add to
  • Docs: Add with full Schema design and implementation roadmap

Verification

  • — ✅ clean (no feature)
  • — ✅ clean
  • — ✅ clean

Zero cost abstraction: when feature is disabled, the module compiles to no-ops and does not pull in Arrow/tonic dependencies.

@juice094 juice094 force-pushed the feat/greptimedb-phase-a branch from 1e56a6e to fbc3b4c Compare May 15, 2026 04:53
…rite PoC

Phase A:
- Add greptimedb Cargo feature with greptimedb-ingester optional dep
- Add GreptimeConfig (endpoint, dbname, username, password, enabled)
- Create src/greptime.rs with GreptimeClient placeholder module
- Register greptime module in src/lib.rs
- Schema design doc: docs/plans/greptimedb-integration.md

Phase B:
- Implement GreptimeClient::write_health with real RowInsertRequests
- Hook into health::run_json to dual-write health entries after SQLite save
- Connection failure degrades gracefully (warning only, non-blocking)

Verified:
- cargo check (no feature) — clean
- cargo check --features greptimedb — clean
- cargo clippy --all-targets -- -D warnings — clean
@juice094 juice094 force-pushed the feat/greptimedb-phase-a branch from fbc3b4c to 79d3216 Compare May 15, 2026 05:05
- Extend collect_tasks to return Vec<SkippedRepoInfo> (id, path, reason)
- Add 'skipped' JSON array to sync --dry-run output
- Print first 10 skipped repos with reasons in human-readable sync output
- Fix test assertion for new return type

Users can now see exactly why each repo was skipped:
  - 'unmanaged' (no mirror/reference/third-party/collaborative/team tag)
  - 'excluded'  (matched --exclude list)
  - 'path_excluded' (matched exclude_paths pattern)
@juice094 juice094 force-pushed the feat/greptimedb-phase-a branch from 19ea5db to 23ebf80 Compare May 15, 2026 05:18
@juice094 juice094 merged commit d5d9e89 into main May 15, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant