Function bodies 134 total
cmd.issueApprovalToken function · go · L24-L65 (42 LOC)internal/cmd/approval.go
func issueApprovalToken(account, action string, ttl time.Duration) (string, string, error) {
if ttl <= 0 {
return "", "", fmt.Errorf("ttl must be positive")
}
account = normalizeEmail(account)
action = strings.ToLower(strings.TrimSpace(action))
if account == "" || action == "" {
return "", "", fmt.Errorf("account and action are required")
}
token, err := randomToken()
if err != nil {
return "", "", err
}
expiresAt := time.Now().UTC().Add(ttl)
st := approvalTokenState{
Token: token,
Account: account,
Action: action,
ExpiresAt: expiresAt.Format(time.RFC3339),
}
path, err := approvalTokenPath(token)
if err != nil {
return "", "", err
}
if err := rejectApprovalTokenSymlink(path); err != nil {
return "", "", err
}
if err := os.MkdirAll(filepath.Dir(path), 0o700); err != nil {
return "", "", fmt.Errorf("ensure approvals dir: %w", err)
}
if err := writeApprovalTokenState(path, st); err != nil {
return "", "", fmt.Errorf("write approval cmd.consumeApprovalToken function · go · L67-L119 (53 LOC)internal/cmd/approval.go
func consumeApprovalToken(account, action, token string) error {
account = normalizeEmail(account)
action = strings.ToLower(strings.TrimSpace(action))
token = strings.TrimSpace(token)
if account == "" || action == "" || token == "" {
return fmt.Errorf("approval token, account, and action are required")
}
path, err := approvalTokenPath(token)
if err != nil {
return err
}
if err := rejectApprovalTokenSymlink(path); err != nil {
return err
}
b, err := os.ReadFile(path) //nolint:gosec
if err != nil {
if os.IsNotExist(err) {
return fmt.Errorf("approval token not found")
}
return fmt.Errorf("read approval token: %w", err)
}
var st approvalTokenState
if err := json.Unmarshal(b, &st); err != nil {
return fmt.Errorf("decode approval token: %w", err)
}
if st.Used {
return fmt.Errorf("approval token already used")
}
if st.Account != account || st.Action != action {
return fmt.Errorf("approval token does not match account/action")
}
exp, err := time.cmd.approvalTokenPath function · go · L121-L150 (30 LOC)internal/cmd/approval.go
func approvalTokenPath(token string) (string, error) {
token = strings.TrimSpace(token)
if err := validateApprovalToken(token); err != nil {
return "", err
}
dir, err := config.EnsureDir()
if err != nil {
return "", fmt.Errorf("resolve config dir: %w", err)
}
approvalsDir := filepath.Join(dir, "approvals")
baseAbs, err := filepath.Abs(approvalsDir)
if err != nil {
return "", fmt.Errorf("resolve approvals dir: %w", err)
}
candidate := filepath.Join(baseAbs, token+".json")
candidateAbs, err := filepath.Abs(candidate)
if err != nil {
return "", fmt.Errorf("resolve approval token path: %w", err)
}
prefix := baseAbs + string(os.PathSeparator)
if !strings.HasPrefix(candidateAbs, prefix) {
return "", fmt.Errorf("invalid approval token path")
}
return candidateAbs, nil
}cmd.randomToken function · go · L152-L159 (8 LOC)internal/cmd/approval.go
func randomToken() (string, error) {
b := make([]byte, 24)
if _, err := rand.Read(b); err != nil {
return "", fmt.Errorf("generate approval token: %w", err)
}
return base64.RawURLEncoding.EncodeToString(b), nil
}cmd.validateApprovalToken function · go · L161-L178 (18 LOC)internal/cmd/approval.go
func validateApprovalToken(token string) error {
if token == "" {
return fmt.Errorf("approval token is required")
}
for _, r := range token {
switch {
case r >= 'a' && r <= 'z':
case r >= 'A' && r <= 'Z':
case r >= '0' && r <= '9':
case r == '-' || r == '_':
default:
return fmt.Errorf("approval token has invalid format")
}
}
return nil
}cmd.rejectApprovalTokenSymlink function · go · L180-L195 (16 LOC)internal/cmd/approval.go
func rejectApprovalTokenSymlink(path string) error {
info, err := os.Lstat(path)
if err != nil {
if os.IsNotExist(err) {
return nil
}
return fmt.Errorf("stat approval token: %w", err)
}
if info.Mode()&os.ModeSymlink != 0 {
return fmt.Errorf("approval token file must not be a symlink")
}
return nil
}cmd.writeApprovalTokenState function · go · L197-L204 (8 LOC)internal/cmd/approval.go
func writeApprovalTokenState(path string, st approvalTokenState) error {
out, err := json.Marshal(st)
if err != nil {
return fmt.Errorf("encode approval token: %w", err)
}
return writeApprovalTokenBytes(path, out)
}Want this analysis on your repo? https://repobility.com/scan/
cmd.writeApprovalTokenBytes function · go · L206-L240 (35 LOC)internal/cmd/approval.go
func writeApprovalTokenBytes(path string, data []byte) error {
tmp, err := os.CreateTemp(filepath.Dir(path), ".approval-token-*")
if err != nil {
return fmt.Errorf("create temp approval token: %w", err)
}
tmpPath := tmp.Name()
cleanup := true
defer func() {
_ = tmp.Close()
if cleanup {
_ = os.Remove(tmpPath)
}
}()
if _, err := tmp.Write(data); err != nil {
return fmt.Errorf("write temp approval token: %w", err)
}
if err := tmp.Chmod(0o600); err != nil {
return fmt.Errorf("chmod temp approval token: %w", err)
}
if err := tmp.Sync(); err != nil {
return fmt.Errorf("sync temp approval token: %w", err)
}
if err := tmp.Close(); err != nil {
return fmt.Errorf("close temp approval token: %w", err)
}
if err := os.Rename(tmpPath, path); err != nil {
return fmt.Errorf("commit approval token: %w", err)
}
cleanup = false
return nil
}cmd.appendAuditLog function · go · L26-L63 (38 LOC)internal/cmd/audit.go
func appendAuditLog(path string, entry auditEntry) error {
path, err := resolveAuditLogPath(path)
if err != nil {
return err
}
if entry.Timestamp == "" {
entry.Timestamp = time.Now().UTC().Format(time.RFC3339)
}
prevHash, err := lastAuditHash(path)
if err != nil {
return err
}
entry.PrevHash = prevHash
entry.Hash = computeAuditHash(entry)
if err := os.MkdirAll(filepath.Dir(path), 0o700); err != nil {
return fmt.Errorf("ensure audit log directory: %w", err)
}
f, err := os.OpenFile(path, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0o600)
if err != nil {
return fmt.Errorf("open audit log: %w", err)
}
defer f.Close()
_ = os.Chmod(path, 0o600)
b, err := json.Marshal(entry)
if err != nil {
return fmt.Errorf("encode audit log: %w", err)
}
if _, err := f.Write(append(b, '\n')); err != nil {
return fmt.Errorf("write audit log: %w", err)
}
return nil
}cmd.resolveAuditLogPath function · go · L65-L93 (29 LOC)internal/cmd/audit.go
func resolveAuditLogPath(path string) (string, error) {
base, err := config.EnsureDir()
if err != nil {
return "", fmt.Errorf("resolve config dir: %w", err)
}
baseAbs, err := filepath.Abs(base)
if err != nil {
return "", fmt.Errorf("resolve config dir absolute path: %w", err)
}
if strings.TrimSpace(path) == "" {
return filepath.Join(baseAbs, "audit.log"), nil
}
candidate, err := filepath.Abs(path)
if err != nil {
return "", fmt.Errorf("resolve audit log path: %w", err)
}
if candidate == baseAbs {
return "", fmt.Errorf("audit log path cannot be config directory itself")
}
prefix := baseAbs + string(os.PathSeparator)
if !strings.HasPrefix(candidate, prefix) {
return "", fmt.Errorf("audit log path must be under %s", baseAbs)
}
return candidate, nil
}cmd.lastAuditHash function · go · L95-L121 (27 LOC)internal/cmd/audit.go
func lastAuditHash(path string) (string, error) {
b, err := os.ReadFile(path) //nolint:gosec
if err != nil {
if os.IsNotExist(err) {
return "", nil
}
return "", fmt.Errorf("read audit log: %w", err)
}
lines := strings.Split(string(b), "\n")
for i := len(lines) - 1; i >= 0; i-- {
line := strings.TrimSpace(lines[i])
if line == "" {
continue
}
var e auditEntry
if err := json.Unmarshal([]byte(line), &e); err != nil {
return "", fmt.Errorf("decode audit log tail: %w", err)
}
return strings.TrimSpace(e.Hash), nil
}
return "", nil
}cmd.computeAuditHash function · go · L123-L135 (13 LOC)internal/cmd/audit.go
func computeAuditHash(entry auditEntry) string {
data := strings.Join([]string{
entry.Timestamp,
entry.Action,
entry.Account,
entry.Target,
fmt.Sprintf("%t", entry.DryRun),
entry.PrevHash,
}, "|")
sum := sha256.Sum256([]byte(data))
return hex.EncodeToString(sum[:])
}cmd.AuthLoginCmd.Run method · go · L38-L126 (89 LOC)internal/cmd/auth.go
func (c *AuthLoginCmd) Run(ctx context.Context, root *RootFlags) error {
account := normalizeEmail(c.Account)
services, err := parseServices(c.Services)
if err != nil {
return output.WriteError(output.ExitCodeError, "invalid_services", err.Error())
}
scopes, err := googleauth.ScopesForServices(services)
if err != nil {
return output.WriteError(output.ExitCodeError, "scope_error", err.Error())
}
creds, err := config.ReadCredentials()
if err != nil {
var credsMissing *config.CredentialsMissingError
if errors.As(err, &credsMissing) {
return output.WriteError(output.ExitCodeError, "credentials_missing", err.Error())
}
return output.WriteError(output.ExitCodeError, "credentials_error", err.Error())
}
opts := googleauth.AuthorizeOptions{
Scopes: scopes,
ForceConsent: c.ForceConsent,
}
// Step 2: exchange code for token.
if strings.TrimSpace(c.AuthURL) != "" {
result, err := googleauth.Step2(ctx, creds, opts, c.AuthURL)
if err != nil {
returncmd.AuthListCmd.Run method · go · L135-L167 (33 LOC)internal/cmd/auth.go
func (c *AuthListCmd) Run(_ context.Context, _ *RootFlags) error {
store, err := secrets.OpenDefault()
if err != nil {
return output.WriteError(output.ExitCodeError, "keyring_error", err.Error())
}
tokens, err := store.ListTokens()
if err != nil {
return output.WriteError(output.ExitCodeError, "list_error", err.Error())
}
type accountInfo struct {
Email string `json:"email"`
Services []string `json:"services,omitempty"`
CreatedAt string `json:"created_at,omitempty"`
}
accounts := make([]accountInfo, 0, len(tokens))
for _, tok := range tokens {
ai := accountInfo{
Email: tok.Email,
Services: tok.Services,
}
if !tok.CreatedAt.IsZero() {
ai.CreatedAt = tok.CreatedAt.Format("2006-01-02T15:04:05Z")
}
accounts = append(accounts, ai)
}
return output.WriteJSON(os.Stdout, map[string]any{
"accounts": accounts,
})
}cmd.AuthRemoveCmd.Run method · go · L174-L195 (22 LOC)internal/cmd/auth.go
func (c *AuthRemoveCmd) Run(_ context.Context, root *RootFlags) error {
store, err := secrets.OpenDefault()
if err != nil {
return output.WriteError(output.ExitCodeError, "keyring_error", err.Error())
}
if err := store.DeleteToken(c.Account); err != nil {
return output.WriteError(output.ExitCodeError, "remove_error", err.Error())
}
if err := appendAuditLog(root.AuditLog, auditEntry{
Action: "auth.remove",
Account: normalizeEmail(c.Account),
DryRun: false,
}); err != nil {
return output.WriteError(output.ExitCodeError, "audit_error", err.Error())
}
return output.WriteJSON(os.Stdout, map[string]any{
"removed": true,
"email": c.Account,
})
}Repobility — the code-quality scanner for AI-generated software · https://repobility.com
cmd.AuthPreflightCmd.Run method · go · L202-L250 (49 LOC)internal/cmd/auth.go
func (c *AuthPreflightCmd) Run(_ context.Context, _ *RootFlags) error {
account := normalizeEmail(c.Account)
required := splitCSV(c.RequireActions)
type checkResult struct {
Name string `json:"name"`
OK bool `json:"ok"`
Message string `json:"message,omitempty"`
}
checks := make([]checkResult, 0, 4+len(required))
ready := true
if _, err := config.ReadCredentials(); err != nil {
ready = false
checks = append(checks, checkResult{Name: "credentials", OK: false, Message: err.Error()})
} else {
checks = append(checks, checkResult{Name: "credentials", OK: true})
}
store, err := secrets.OpenDefault()
if err != nil {
ready = false
checks = append(checks, checkResult{Name: "keyring", OK: false, Message: err.Error()})
} else {
checks = append(checks, checkResult{Name: "keyring", OK: true})
if _, err := store.GetToken(account); err != nil {
ready = false
checks = append(checks, checkResult{Name: "token", OK: false, Message: err.Error()})
} elsecmd.AuthApprovalTokenCmd.Run method · go · L258-L327 (70 LOC)internal/cmd/auth.go
func (c *AuthApprovalTokenCmd) Run(_ context.Context, root *RootFlags) error {
account := normalizeEmail(c.Account)
action := strings.ToLower(strings.TrimSpace(c.Action))
if action == "" {
return output.WriteError(output.ExitCodeError, "invalid_action", "action is required")
}
if err := enforceActionPolicy(account, "auth.approval_token"); err != nil {
return output.WriteError(output.ExitCodePermission, "policy_denied", err.Error())
}
if err := enforceActionPolicy(account, action); err != nil {
return output.WriteError(output.ExitCodePermission, "policy_denied", err.Error())
}
required, err := actionRequiresApproval(action)
if err != nil {
return output.WriteError(output.ExitCodeError, "policy_error", err.Error())
}
if !required {
return output.WriteError(output.ExitCodeError, "approval_not_required",
fmt.Sprintf("action %q does not require approval token", action))
}
ttl, err := time.ParseDuration(c.TTL)
if err != nil {
return output.WriteError(output.Ecmd.AuthEmergencyRevokeCmd.Run method · go · L333-L365 (33 LOC)internal/cmd/auth.go
func (c *AuthEmergencyRevokeCmd) Run(_ context.Context, root *RootFlags) error {
account := normalizeEmail(c.Account)
store, err := secrets.OpenDefault()
if err != nil {
return output.WriteError(output.ExitCodeError, "keyring_error", err.Error())
}
if err := store.DeleteToken(account); err != nil {
return output.WriteError(output.ExitCodeError, "remove_error", err.Error())
}
p, err := config.ReadPolicy()
if err != nil {
return output.WriteError(output.ExitCodeError, "policy_error", err.Error())
}
p.BlockedAccounts = append(p.BlockedAccounts, account)
if err := config.WritePolicy(p); err != nil {
return output.WriteError(output.ExitCodeError, "policy_error", err.Error())
}
if err := appendAuditLog(root.AuditLog, auditEntry{
Action: "auth.emergency_revoke",
Account: account,
DryRun: false,
}); err != nil {
return output.WriteError(output.ExitCodeError, "audit_error", err.Error())
}
return output.WriteJSON(os.Stdout, map[string]any{
"revoked": true,
cmd.parseServices function · go · L368-L391 (24 LOC)internal/cmd/auth.go
func parseServices(csv string) ([]googleauth.Service, error) {
parts := strings.Split(csv, ",")
out := make([]googleauth.Service, 0, len(parts))
for _, p := range parts {
p = strings.TrimSpace(p)
if p == "" {
continue
}
svc, err := googleauth.ParseService(p)
if err != nil {
return nil, fmt.Errorf("unknown service %q", p)
}
out = append(out, svc)
}
if len(out) == 0 {
return nil, fmt.Errorf("no services specified")
}
return out, nil
}cmd.splitCSV function · go · L393-L408 (16 LOC)internal/cmd/auth.go
func splitCSV(v string) []string {
if strings.TrimSpace(v) == "" {
return nil
}
parts := strings.Split(v, ",")
out := make([]string, 0, len(parts))
for _, p := range parts {
p = strings.ToLower(strings.TrimSpace(p))
if p != "" {
out = append(out, p)
}
}
return out
}cmd.CalendarCalendarsCmd.Run method · go · L30-L67 (38 LOC)internal/cmd/calendar.go
func (c *CalendarCalendarsCmd) Run(ctx context.Context, _ *RootFlags) error {
if err := enforceActionPolicy(c.Account, "calendar.calendars"); err != nil {
return output.WriteError(output.ExitCodePermission, "policy_denied", err.Error())
}
svc, err := googleapi.NewCalendarReadOnly(ctx, c.Account)
if err != nil {
return calendarAuthError(err)
}
resp, err := svc.CalendarList.List().Do()
if err != nil {
return writeGoogleAPIError("calendars_error", err)
}
type calendarInfo struct {
ID string `json:"id"`
Summary string `json:"summary"`
Description string `json:"description,omitempty"`
Primary bool `json:"primary,omitempty"`
AccessRole string `json:"access_role,omitempty"`
}
cals := make([]calendarInfo, 0, len(resp.Items))
for _, cal := range resp.Items {
cals = append(cals, calendarInfo{
ID: cal.Id,
Summary: cal.Summary,
Description: cal.Description,
Primary: cal.Primary,
AccessRole: cal.AccessRole,
})
cmd.CalendarListCmd.Run method · go · L81-L174 (94 LOC)internal/cmd/calendar.go
func (c *CalendarListCmd) Run(ctx context.Context, _ *RootFlags) error {
if err := enforceActionPolicy(c.Account, "calendar.list"); err != nil {
return output.WriteError(output.ExitCodePermission, "policy_denied", err.Error())
}
if err := enforceRateLimit("calendar.list", 120, time.Minute); err != nil {
return output.WriteError(output.ExitCodeError, "rate_limited", err.Error())
}
if err := validateRFC3339Optional("--from", c.From); err != nil {
return output.WriteError(output.ExitCodeError, "invalid_time", err.Error())
}
if err := validateRFC3339Optional("--to", c.To); err != nil {
return output.WriteError(output.ExitCodeError, "invalid_time", err.Error())
}
svc, err := googleapi.NewCalendarReadOnly(ctx, c.Account)
if err != nil {
return calendarAuthError(err)
}
type eventRef struct {
ID string `json:"id"`
Summary string `json:"summary,omitempty"`
Start string `json:"start,omitempty"`
End string `json:"end,omitempty"`
Desccmd.CalendarGetCmd.Run method · go · L183-L199 (17 LOC)internal/cmd/calendar.go
func (c *CalendarGetCmd) Run(ctx context.Context, _ *RootFlags) error {
if err := enforceActionPolicy(c.Account, "calendar.get"); err != nil {
return output.WriteError(output.ExitCodePermission, "policy_denied", err.Error())
}
svc, err := googleapi.NewCalendarReadOnly(ctx, c.Account)
if err != nil {
return calendarAuthError(err)
}
event, err := svc.Events.Get(c.CalendarID, c.EventID).Do()
if err != nil {
return writeGoogleAPIError("get_error", err)
}
return output.WriteJSON(os.Stdout, event)
}If a scraper extracted this row, it came from Repobility (https://repobility.com)
cmd.CalendarCreateCmd.Run method · go · L212-L285 (74 LOC)internal/cmd/calendar.go
func (c *CalendarCreateCmd) Run(ctx context.Context, root *RootFlags) error {
if err := enforceActionPolicy(c.Account, "calendar.create"); err != nil {
return output.WriteError(output.ExitCodePermission, "policy_denied", err.Error())
}
if err := validateRFC3339("--start", c.Start); err != nil {
return output.WriteError(output.ExitCodeError, "invalid_time", err.Error())
}
if err := validateRFC3339("--end", c.End); err != nil {
return output.WriteError(output.ExitCodeError, "invalid_time", err.Error())
}
dryRun := root.DryRun
if dryRun {
if err := appendAuditLog(root.AuditLog, auditEntry{
Action: "calendar.create",
Account: normalizeEmail(c.Account),
Target: c.CalendarID,
DryRun: true,
}); err != nil {
return output.WriteError(output.ExitCodeError, "audit_error", err.Error())
}
return output.WriteJSON(os.Stdout, map[string]any{
"dry_run": true,
"action": "calendar.create",
"params": map[string]any{
"account": c.Account,
"ccmd.CalendarUpdateCmd.Run method · go · L299-L394 (96 LOC)internal/cmd/calendar.go
func (c *CalendarUpdateCmd) Run(ctx context.Context, root *RootFlags) error {
if err := enforceActionPolicy(c.Account, "calendar.update"); err != nil {
return output.WriteError(output.ExitCodePermission, "policy_denied", err.Error())
}
if c.Start != "" {
if err := validateRFC3339("--start", c.Start); err != nil {
return output.WriteError(output.ExitCodeError, "invalid_time", err.Error())
}
}
if c.End != "" {
if err := validateRFC3339("--end", c.End); err != nil {
return output.WriteError(output.ExitCodeError, "invalid_time", err.Error())
}
}
dryRun := root.DryRun
if dryRun {
if err := appendAuditLog(root.AuditLog, auditEntry{
Action: "calendar.update",
Account: normalizeEmail(c.Account),
Target: c.EventID,
DryRun: true,
}); err != nil {
return output.WriteError(output.ExitCodeError, "audit_error", err.Error())
}
return output.WriteJSON(os.Stdout, map[string]any{
"dry_run": true,
"action": "calendar.update",
"params": map[scmd.CalendarDeleteCmd.Run method · go · L405-L468 (64 LOC)internal/cmd/calendar.go
func (c *CalendarDeleteCmd) Run(ctx context.Context, root *RootFlags) error {
if err := enforceActionPolicy(c.Account, "calendar.delete"); err != nil {
return output.WriteError(output.ExitCodePermission, "policy_denied", err.Error())
}
dryRun := root.DryRun
if !dryRun && !c.ConfirmDelete {
return output.WriteError(output.ExitCodeError, "delete_requires_confirmation",
"calendar delete requires --confirm-delete")
}
if !dryRun {
required, err := actionRequiresApproval("calendar.delete")
if err != nil {
return output.WriteError(output.ExitCodeError, "policy_error", err.Error())
}
if required {
if err := consumeApprovalToken(c.Account, "calendar.delete", c.ApprovalToken); err != nil {
return output.WriteError(output.ExitCodePermission, "approval_required", err.Error())
}
}
}
if dryRun {
if err := appendAuditLog(root.AuditLog, auditEntry{
Action: "calendar.delete",
Account: normalizeEmail(c.Account),
Target: c.EventID,
DryRun: true,
cmd.eventTimeString function · go · L471-L481 (11 LOC)internal/cmd/calendar.go
func eventTimeString(edt *calendar.EventDateTime) string {
if edt == nil {
return ""
}
if edt.DateTime != "" {
return edt.DateTime
}
return edt.Date
}cmd.validateRFC3339 function · go · L484-L494 (11 LOC)internal/cmd/calendar.go
func validateRFC3339(flag, value string) error {
if value == "" {
return fmt.Errorf("%s is required", flag)
}
if _, err := time.Parse(time.RFC3339, value); err != nil {
return fmt.Errorf("%s %q is not a valid RFC3339 datetime (e.g. 2026-03-01T10:00:00Z): %v", flag, value, err)
}
return nil
}cmd.validateRFC3339Optional function · go · L497-L503 (7 LOC)internal/cmd/calendar.go
func validateRFC3339Optional(flag, value string) error {
if value == "" {
return nil
}
return validateRFC3339(flag, value)
}cmd.calendarAuthError function · go · L505-L512 (8 LOC)internal/cmd/calendar.go
func calendarAuthError(err error) error {
var authErr *googleapi.AuthRequiredError
if isAuthErr(err, &authErr) {
return output.WriteError(output.ExitCodeAuth, "auth_required", err.Error())
}
return output.WriteError(output.ExitCodeError, "calendar_error", err.Error())
}cmd.DocsInfoCmd.Run method · go · L34-L55 (22 LOC)internal/cmd/docs.go
func (c *DocsInfoCmd) Run(ctx context.Context, _ *RootFlags) error {
if err := enforceActionPolicy(c.Account, "docs.info"); err != nil {
return output.WriteError(output.ExitCodePermission, "policy_denied", err.Error())
}
svc, err := googleapi.NewDocsReadOnly(ctx, c.Account)
if err != nil {
return docsAuthError(err)
}
doc, err := svc.Documents.Get(c.DocID).Do()
if err != nil {
return writeGoogleAPIError("docs_info_error", err)
}
return output.WriteJSON(os.Stdout, map[string]any{
"id": doc.DocumentId,
"title": doc.Title,
"revision_id": doc.RevisionId,
"document_style": doc.DocumentStyle,
})
}Citation: Repobility (2026). State of AI-Generated Code. https://repobility.com/research/
cmd.DocsCatCmd.Run method · go · L64-L91 (28 LOC)internal/cmd/docs.go
func (c *DocsCatCmd) Run(ctx context.Context, _ *RootFlags) error {
if err := enforceActionPolicy(c.Account, "docs.cat"); err != nil {
return output.WriteError(output.ExitCodePermission, "policy_denied", err.Error())
}
if err := enforceRateLimit("docs.cat", 120, time.Minute); err != nil {
return output.WriteError(output.ExitCodeError, "rate_limited", err.Error())
}
svc, err := googleapi.NewDocsReadOnly(ctx, c.Account)
if err != nil {
return docsAuthError(err)
}
doc, err := svc.Documents.Get(c.DocID).Do()
if err != nil {
return writeGoogleAPIError("docs_cat_error", err)
}
text, truncated := truncateText(docsPlainText(doc), c.MaxBytes)
return output.WriteJSON(os.Stdout, map[string]any{
"id": doc.DocumentId,
"title": doc.Title,
"content": text,
"truncated": truncated,
})
}cmd.truncateText function · go · L93-L99 (7 LOC)internal/cmd/docs.go
func truncateText(text string, maxBytes int) (string, bool) {
if maxBytes <= 0 || len(text) <= maxBytes {
return text, false
}
return text[:maxBytes], true
}cmd.DocsExportCmd.Run method · go · L208-L280 (73 LOC)internal/cmd/docs.go
func (c *DocsExportCmd) Run(ctx context.Context, root *RootFlags) error {
if err := enforceActionPolicy(c.Account, "docs.export"); err != nil {
return output.WriteError(output.ExitCodePermission, "policy_denied", err.Error())
}
if err := ensureWithinAllowedOutputDir(c.Output, root.AllowedOutputDir); err != nil {
return output.WriteError(output.ExitCodePermission, "output_not_allowed", err.Error())
}
mimeType, ok := exportMIMETypes[strings.ToLower(c.Format)]
if !ok {
return output.WriteError(output.ExitCodeError, "invalid_format",
fmt.Sprintf("unsupported format %q; use pdf, docx, txt, odt, or html", c.Format))
}
dryRun := root.DryRun
if err := ensureWithinAllowedOutputDir(c.Output, root.AllowedOutputDir); err != nil {
return output.WriteError(output.ExitCodeError, "output_not_allowed", err.Error())
}
if dryRun {
if err := appendAuditLog(root.AuditLog, auditEntry{
Action: "docs.export",
Account: normalizeEmail(c.Account),
Target: c.Output,
DryRun:cmd.DocsWriteCmd.Run method · go · L293-L412 (120 LOC)internal/cmd/docs.go
func (c *DocsWriteCmd) Run(ctx context.Context, root *RootFlags) error {
if err := enforceActionPolicy(c.Account, "docs.write"); err != nil {
return output.WriteError(output.ExitCodePermission, "policy_denied", err.Error())
}
content := c.Content
if c.ContentStdin {
s, err := readStdinWithLimit(maxStdinBytes)
if err != nil {
return output.WriteError(output.ExitCodeError, "stdin_error", fmt.Sprintf("read stdin: %v", err))
}
content = s
}
dryRun := root.DryRun
if c.Replace && !c.ConfirmReplace {
return output.WriteError(output.ExitCodeError, "replace_requires_confirmation",
"--replace requires --confirm-replace to reduce destructive mistakes")
}
if !dryRun && c.Replace {
required, err := actionRequiresApproval("docs.write.replace")
if err != nil {
return output.WriteError(output.ExitCodeError, "policy_error", err.Error())
}
if required {
if err := consumeApprovalToken(c.Account, "docs.write.replace", c.ApprovalToken); err != nil {
return ocmd.DocsFindReplaceCmd.Run method · go · L425-L512 (88 LOC)internal/cmd/docs.go
func (c *DocsFindReplaceCmd) Run(ctx context.Context, root *RootFlags) error {
dryRun := root.DryRun
if err := enforceActionPolicy(c.Account, "docs.find_replace"); err != nil {
return output.WriteError(output.ExitCodePermission, "policy_denied", err.Error())
}
if !dryRun && !c.ConfirmFindReplace {
return output.WriteError(output.ExitCodeError, "find_replace_requires_confirmation",
"docs find-replace requires --confirm-find-replace")
}
if !dryRun {
required, err := actionRequiresApproval("docs.find_replace")
if err != nil {
return output.WriteError(output.ExitCodeError, "policy_error", err.Error())
}
if required {
if err := consumeApprovalToken(c.Account, "docs.find_replace", c.ApprovalToken); err != nil {
return output.WriteError(output.ExitCodePermission, "approval_required", err.Error())
}
}
}
if dryRun {
if err := appendAuditLog(root.AuditLog, auditEntry{
Action: "docs.find_replace",
Account: normalizeEmail(c.Account),
Target: c.Docmd.docsPlainText function · go · L515-L535 (21 LOC)internal/cmd/docs.go
func docsPlainText(doc *docs.Document) string {
if doc.Body == nil {
return ""
}
var sb strings.Builder
for _, elem := range doc.Body.Content {
if elem.Paragraph == nil {
continue
}
for _, pe := range elem.Paragraph.Elements {
if pe.TextRun != nil {
sb.WriteString(pe.TextRun.Content)
}
}
}
return sb.String()
}cmd.docBodyLength function · go · L538-L546 (9 LOC)internal/cmd/docs.go
func docBodyLength(doc *docs.Document) int64 {
if doc.Body == nil || len(doc.Body.Content) == 0 {
return 1
}
last := doc.Body.Content[len(doc.Body.Content)-1]
return last.EndIndex
}cmd.writeFileAtomically function · go · L548-L611 (64 LOC)internal/cmd/docs.go
func writeFileAtomically(outputPath string, src io.Reader, overwrite bool) (int64, error) {
if strings.TrimSpace(outputPath) == "" {
return 0, fmt.Errorf("output path is empty")
}
if !overwrite {
if _, err := os.Stat(outputPath); err == nil {
return 0, fmt.Errorf("output file already exists; pass --overwrite to replace it")
} else if !os.IsNotExist(err) {
return 0, fmt.Errorf("check output file: %w", err)
}
}
dir := filepath.Dir(outputPath)
if err := os.MkdirAll(dir, 0o700); err != nil {
return 0, fmt.Errorf("ensure output dir: %w", err)
}
tmp, err := os.CreateTemp(dir, ".gog-lite-export-*")
if err != nil {
return 0, fmt.Errorf("create temp file: %w", err)
}
tmpPath := tmp.Name()
cleanupTmp := true
defer func() {
_ = tmp.Close()
if cleanupTmp {
_ = os.Remove(tmpPath)
}
}()
written, err := io.Copy(tmp, src)
if err != nil {
return 0, err
}
if err := tmp.Sync(); err != nil {
return 0, fmt.Errorf("sync temp file: %w", err)
}
if err :=Want this analysis on your repo? https://repobility.com/scan/
cmd.ensureWithinAllowedOutputDir function · go · L613-L641 (29 LOC)internal/cmd/docs.go
func ensureWithinAllowedOutputDir(outputPath, allowedDir string) error {
allowedDir = strings.TrimSpace(allowedDir)
if allowedDir == "" {
return nil
}
outResolved, err := resolvePathForContainment(outputPath)
if err != nil {
return fmt.Errorf("resolve output path: %w", err)
}
allowedResolved, err := resolvePathForContainment(allowedDir)
if err != nil {
return fmt.Errorf("resolve allowed output dir: %w", err)
}
if outResolved == allowedResolved {
return nil
}
prefix := allowedResolved + string(os.PathSeparator)
if allowedResolved == string(os.PathSeparator) {
prefix = allowedResolved
}
if !strings.HasPrefix(outResolved, prefix) {
return fmt.Errorf("output path must be under %s", allowedResolved)
}
return nil
}cmd.resolvePathForContainment function · go · L643-L685 (43 LOC)internal/cmd/docs.go
func resolvePathForContainment(path string) (string, error) {
absPath, err := filepath.Abs(path)
if err != nil {
return "", err
}
if _, err := os.Lstat(absPath); err == nil {
resolved, err := filepath.EvalSymlinks(absPath)
if err != nil {
return "", err
}
return filepath.Clean(resolved), nil
} else if !os.IsNotExist(err) {
return "", err
}
current := absPath
missing := make([]string, 0, 4)
for {
if _, err := os.Lstat(current); err == nil {
resolved, err := filepath.EvalSymlinks(current)
if err != nil {
return "", err
}
for i := len(missing) - 1; i >= 0; i-- {
resolved = filepath.Join(resolved, missing[i])
}
return filepath.Clean(resolved), nil
} else if !os.IsNotExist(err) {
return "", err
}
parent := filepath.Dir(current)
if parent == current {
return filepath.Clean(absPath), nil
}
missing = append(missing, filepath.Base(current))
current = parent
}
}cmd.docsAuthError function · go · L687-L694 (8 LOC)internal/cmd/docs.go
func docsAuthError(err error) error {
var authErr *googleapi.AuthRequiredError
if isAuthErr(err, &authErr) {
return output.WriteError(output.ExitCodeAuth, "auth_required", err.Error())
}
return output.WriteError(output.ExitCodeError, "docs_error", err.Error())
}cmd.writeGoogleAPIError function · go · L18-L30 (13 LOC)internal/cmd/errors.go
func writeGoogleAPIError(defaultCode string, err error) error {
var apiErr *gapi.Error
if errors.As(err, &apiErr) {
switch apiErr.Code {
case http.StatusNotFound:
return output.WriteError(output.ExitCodeNotFound, "not_found", err.Error())
case http.StatusForbidden:
return output.WriteError(output.ExitCodePermission, "permission_denied", err.Error())
}
}
return output.WriteError(output.ExitCodeError, defaultCode, err.Error())
}cmd.GmailSearchCmd.Run method · go · L36-L84 (49 LOC)internal/cmd/gmail.go
func (c *GmailSearchCmd) Run(ctx context.Context, _ *RootFlags) error {
if err := enforceActionPolicy(c.Account, "gmail.search"); err != nil {
return output.WriteError(output.ExitCodePermission, "policy_denied", err.Error())
}
if err := enforceRateLimit("gmail.search", 120, time.Minute); err != nil {
return output.WriteError(output.ExitCodeError, "rate_limited", err.Error())
}
svc, err := googleapi.NewGmailReadOnly(ctx, c.Account)
if err != nil {
return gmailAuthError(err)
}
type messageRef struct {
ID string `json:"id"`
ThreadID string `json:"thread_id"`
}
messages, nextPageToken, err := collectAllPages(c.AllPages, func(pageToken string) (string, []messageRef, error) {
req := svc.Users.Messages.List("me").Q(c.Query).MaxResults(c.Max)
if pageToken != "" {
req = req.PageToken(pageToken)
} else if c.Page != "" {
req = req.PageToken(c.Page)
}
resp, err := req.Do()
if err != nil {
return "", nil, fmt.Errorf("gmail search: %w", err)
}
cmd.GmailGetCmd.Run method · go · L93-L109 (17 LOC)internal/cmd/gmail.go
func (c *GmailGetCmd) Run(ctx context.Context, _ *RootFlags) error {
if err := enforceActionPolicy(c.Account, "gmail.get"); err != nil {
return output.WriteError(output.ExitCodePermission, "policy_denied", err.Error())
}
svc, err := googleapi.NewGmailReadOnly(ctx, c.Account)
if err != nil {
return gmailAuthError(err)
}
msg, err := svc.Users.Messages.Get("me", c.MessageID).Format(c.Format).Do()
if err != nil {
return writeGoogleAPIError("get_error", err)
}
return output.WriteJSON(os.Stdout, msg)
}cmd.GmailSendCmd.Run method · go · L122-L213 (92 LOC)internal/cmd/gmail.go
func (c *GmailSendCmd) Run(ctx context.Context, root *RootFlags) error {
if err := enforceActionPolicy(c.Account, "gmail.draft"); err != nil {
return output.WriteError(output.ExitCodePermission, "policy_denied", err.Error())
}
body := c.Body
if c.BodyStdin {
s, err := readStdinWithLimit(maxStdinBytes)
if err != nil {
return output.WriteError(output.ExitCodeError, "stdin_error", fmt.Sprintf("read stdin: %v", err))
}
body = s
}
for _, hv := range []struct {
name string
value string
}{
{name: "account", value: c.Account},
{name: "to", value: c.To},
{name: "cc", value: c.CC},
{name: "bcc", value: c.BCC},
{name: "subject", value: c.Subject},
} {
if err := validateHeaderValue(hv.name, hv.value); err != nil {
return output.WriteError(output.ExitCodeError, "invalid_header", err.Error())
}
}
for _, av := range []struct {
name string
value string
}{
{name: "to", value: c.To},
{name: "cc", value: c.CC},
{name: "bcc", value: c.BCC},
} {cmd.validateHeaderValue function · go · L215-L221 (7 LOC)internal/cmd/gmail.go
func validateHeaderValue(name, value string) error {
if strings.ContainsAny(value, "\r\n") {
return fmt.Errorf("%s must not contain CR or LF characters", name)
}
return nil
}Repobility — the code-quality scanner for AI-generated software · https://repobility.com
cmd.validateAddressList function · go · L223-L237 (15 LOC)internal/cmd/gmail.go
func validateAddressList(name, value string) error {
if strings.TrimSpace(value) == "" {
if name == "to" {
return fmt.Errorf("%s must not be empty", name)
}
return nil
}
if _, err := mail.ParseAddressList(value); err != nil {
return fmt.Errorf("%s contains invalid email address list: %v", name, err)
}
return nil
}cmd.GmailThreadCmd.Run method · go · L246-L262 (17 LOC)internal/cmd/gmail.go
func (c *GmailThreadCmd) Run(ctx context.Context, _ *RootFlags) error {
if err := enforceActionPolicy(c.Account, "gmail.thread"); err != nil {
return output.WriteError(output.ExitCodePermission, "policy_denied", err.Error())
}
svc, err := googleapi.NewGmailReadOnly(ctx, c.Account)
if err != nil {
return gmailAuthError(err)
}
thread, err := svc.Users.Threads.Get("me", c.ThreadID).Format(c.Format).Do()
if err != nil {
return writeGoogleAPIError("thread_error", err)
}
return output.WriteJSON(os.Stdout, thread)
}cmd.GmailLabelsCmd.Run method · go · L269-L298 (30 LOC)internal/cmd/gmail.go
func (c *GmailLabelsCmd) Run(ctx context.Context, _ *RootFlags) error {
if err := enforceActionPolicy(c.Account, "gmail.labels"); err != nil {
return output.WriteError(output.ExitCodePermission, "policy_denied", err.Error())
}
svc, err := googleapi.NewGmailReadOnly(ctx, c.Account)
if err != nil {
return gmailAuthError(err)
}
resp, err := svc.Users.Labels.List("me").Do()
if err != nil {
return writeGoogleAPIError("labels_error", err)
}
type labelInfo struct {
ID string `json:"id"`
Name string `json:"name"`
Type string `json:"type,omitempty"`
}
labels := make([]labelInfo, 0, len(resp.Labels))
for _, l := range resp.Labels {
labels = append(labels, labelInfo{ID: l.Id, Name: l.Name, Type: l.Type})
}
return output.WriteJSON(os.Stdout, map[string]any{
"labels": labels,
})
}page 1 / 3next ›