GetFieldsAndValues, SqlDateToString, ParseDateTime, and IsZero had zero
test coverage even though they're pure, hermetic logic with several
non-obvious behaviors (e.g. strings always count as "non-zero", arrays
are compared by length only, and the dateTimeFormat's "-0800" suffix is
a Go reference-time artifact that behaves as a literal string rather
than a real timezone offset). Locking these in with tests now, ahead of
any future refactor of this file, so behavior changes are caught
instead of silently shipped.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
lib is publicly mirrored on code.tnxs.net and had no CI at all. Add
.github/workflows/push.yml gating every push/PR on the private
self-hosted runner (ADR-KV-004): a test job (go build/vet/test) and a
gitleaks secret-scan job using the official docker image directly
(gitleaks/gitleaks-action needs an org license we don't have).
The gitleaks history scan surfaced 6 findings, all illustrative
`example:` JWTs hardcoded by swagger-codegen into the generated Kazoo
API client models and the vendored Kazoo swagger spec — placeholders
from the vendor's public docs, not real credentials. Added a minimal
.gitleaks.toml allowlist scoped to just those four generated files so
CI runs clean without masking real findings elsewhere.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Added `get_me` and `refresh_session` parameters and responses for user session management.
- Implemented `sessions_client` for handling session-related API calls.
- Created models for `Credentials`, `Category`, `Product`, and `Service` with validation.
- Defined Swagger specifications for `Credentials`.
- Ensured all generated files are marked as non-editable to prevent manual changes.
The code changes include adding the `Channels` field to the `Account` and `Contact` models in the `crm` and `sfgate` packages. This field is used to store the marketing channels for the respective entities.
The code changes include adding the `AppExchange` field to the `CompanyProduct` model in the `sfgate` package. This field is used to store the Salesforce AppExchange URL.
The code changes include adding the `AppExchange` field to the `Account` and `Company` models in the `sfgate` and `plex` packages. This field is used to store the Salesforce AppExchange URL.