add CI: build, test, lint on PRs and main pushes - #4
Merged
Merged
Conversation
somanshreddy
force-pushed
the
03-30-ci_workflow
branch
7 times, most recently
from
March 30, 2026 19:00
2b6c5e3 to
9a7f8e8
Compare
…check GitHub Actions CI with six jobs: - test: build + mocked tests on ubuntu, macOS, and windows - lint: golangci-lint - pr-template: enforce 50+ char PR description (Python, matches experiment-framework) - secrets: gitleaks CLI scan (free, no license needed) - goreleaser-check: validate .goreleaser.yaml config on PRs Also fixes deprecated archives.format → archives.formats in .goreleaser.yaml. Concurrency group cancels stale runs on branch updates. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
somanshreddy
force-pushed
the
03-30-ci_workflow
branch
from
March 30, 2026 19:07
9a7f8e8 to
d504f92
Compare
jrusso1020
approved these changes
Mar 30, 2026
Collaborator
Author
Merge activity
|
somanshreddy
added a commit
that referenced
this pull request
Apr 14, 2026
…25) (#102) ## Description Better error messages and help text for first-time CLI users, based on PostHog data from the v0.0.4 launch day (Apr 13). None of these were blocking (15/17 auth-error users recovered on their own). All changes are additive hint/wording improvements. No exit codes, output shapes, or control flow changes. **TTY** = interactive terminal. **Non-TTY** = piped input, script, CI, or coding agent. ### Changes | # | What | File | Trigger (launch day) | |---|------|------|----------------------| | 1 | `auth login` with empty stdin now distinguishes TTY ("type your key") vs non-TTY ("pipe your key or set env var") | `auth_login.go` | 3 installs hit vague error, didn't retry | | 2 | Unknown subcommands list what's available (`Available subcommands: me`) | `root.go` | 6 installs typed e.g. `heygen user info` | | 3 | `--wait` timeout reworded from "polling timed out" to "still processing, not failed" | `builder.go` | 11 installs, wording implied failure | | 4 | `auth status` errors include hint with all 3 auth methods + key URL | `auth_status.go` | 17 installs got unhelpful auth error | | 5 | `heygen auth --help` explains all auth options (was just "Manage authentication") | `auth.go` | Consistent with #4 | | 6 | `avatar_not_found` / `video_not_found` errors hint at the corresponding `list` command | `errors.go` | 8 installs retried wrong avatar IDs | Auth guidance text is defined once in `auth.go` (`authGuidance` constant) and referenced everywhere. Cold-start "no API key found" errors (from `chain_resolver.go`) are enriched with the same guidance in `context.go`, scoped to the cold-start case only (doesn't clobber the broken-credentials-file hint). ### What we chose NOT to do - **Don't auto-persist env var to disk** on `auth login` empty stdin. `cat /dev/null | heygen auth login` would silently succeed, masking broken automation. - **Don't bump the 20-min `--wait` default.** Only 4/11 timeouts hit it; the other 7 set shorter `--timeout` themselves. ## Testing - 12 new + 2 updated tests - `make test` and `make build` pass - Manually verified: `heygen user info`, `heygen auth --help`, `heygen auth status --help`, empty-stdin `auth login`
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Description
Adds GitHub Actions CI and PR template for heygen-cli. Six jobs run on every PR and main push, taking inspiration from stripe/stripe-cli and our own experiment-framework CI:
.goreleaser.yamlconfig on PRs (from stripe-cli, catches broken release configs before tag push)Also adds
.github/PULL_REQUEST_TEMPLATEwith Description and Testing sections, and fixes deprecatedarchives.format→archives.formatsin.goreleaser.yaml.Concurrency group cancels in-progress CI when a branch updates.
Testing
CI self-validates on this PR — all 8 checks pass (3 platform tests + lint + pr-template + secrets + goreleaser-check + WIP).