feat: Add cloud sync event emit (#212)

* feat: Add cloud sync event emit

* fix: Linter fixes

* fix: Include malysis metadata in confirmed event

* fix: Code review fixes

* fix: Emit session complet event

* fix: Code review fixes

* chore: Add comment

* chore: Add cloud info in setup info command

* fix: Proxy flow must call install started

* fix: Code review fixes

* fix: Code review fixes

* Update internal/audit/cloud_sink.go

Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Signed-off-by: Abhisek Datta <abhisek.datta@gmail.com>

* fix: Code review fixes

---------

Signed-off-by: Abhisek Datta <abhisek.datta@gmail.com>
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Abhisek Datta
2026-04-11 12:33:27 +05:30
committed by GitHub
co-authored by devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com> devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
parent 0355a5d4fd
commit e67735c1c3
20 changed files with 981 additions and 21 deletions
+20 -1
View File
@@ -13,6 +13,11 @@ func newEventlogSink() *eventlogSink {
}
func (s *eventlogSink) Handle(_ context.Context, event AuditEvent) error {
details := event.Details
if details == nil && event.SessionData != nil {
details = sessionDataToDetails(event.SessionData)
}
elEvent := eventlog.Event{
Timestamp: event.Timestamp,
EventType: mapEventType(event.Type),
@@ -20,11 +25,25 @@ func (s *eventlogSink) Handle(_ context.Context, event AuditEvent) error {
PackageName: pkgName(event.PackageVersion),
Version: pkgVersion(event.PackageVersion),
Ecosystem: pkgEcosystem(event.PackageVersion),
Details: event.Details,
Details: details,
}
return eventlog.LogEvent(elEvent)
}
func sessionDataToDetails(sd *SessionData) map[string]interface{} {
return map[string]interface{}{
"outcome": sd.Outcome,
"flow_type": sd.FlowType,
"package_manager": sd.PackageManager,
"total_analyzed": sd.TotalAnalyzed,
"allowed_count": sd.AllowedCount,
"blocked_count": sd.BlockedCount,
"confirmed_count": sd.ConfirmedCount,
"trusted_skipped": sd.TrustedSkipped,
"insecure_bypassed": sd.InsecureBypassed,
}
}
func (s *eventlogSink) Close() error {
return nil
}