package api import ( "encoding/json" "time" ) type Repository struct { ID uint `json:"id"` Name string `json:"name"` Owner string `json:"owner"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` } type Commit struct { ID uint `json:"id"` RepositoryID uint `json:"repository_id"` SHA string `json:"sha"` Author *string `json:"author,omitempty"` Message *string `json:"message,omitempty"` Branch *string `json:"branch,omitempty"` CommittedAt *time.Time `json:"committed_at,omitempty"` CreatedAt time.Time `json:"created_at"` } type Artifact struct { ID uint `json:"id"` RepositoryID uint `json:"repository_id"` CommitID uint `json:"commit_id"` BuildID *uint `json:"build_id,omitempty"` RunID *uint `json:"run_id,omitempty"` CrashSignatureID *uint `json:"crash_signature_id,omitempty"` Type string `json:"type"` BlobKey string `json:"blob_key"` BlobSize int64 `json:"blob_size"` CrashMessage *string `json:"crash_message,omitempty"` StackTrace *string `json:"stack_trace,omitempty"` Tags json.RawMessage `json:"tags,omitempty"` Metadata json.RawMessage `json:"metadata,omitempty"` CreatedAt time.Time `json:"created_at"` RepoName string `json:"repo_name,omitempty"` CommitSHA string `json:"commit_sha,omitempty"` } type Target struct { ID uint `json:"id"` RepositoryID uint `json:"repository_id"` Name string `json:"name"` Type string `json:"type"` Tags json.RawMessage `json:"tags,omitempty"` Metadata json.RawMessage `json:"metadata,omitempty"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` RepoName string `json:"repo_name,omitempty"` RunCount int64 `json:"run_count,omitempty"` CorpusCount int64 `json:"corpus_count,omitempty"` } type Run struct { ID uint `json:"id"` TargetID uint `json:"target_id"` CommitID uint `json:"commit_id"` Status string `json:"status"` StartedAt time.Time `json:"started_at"` FinishedAt *time.Time `json:"finished_at,omitempty"` Tags json.RawMessage `json:"tags,omitempty"` Metadata json.RawMessage `json:"metadata,omitempty"` CreatedAt time.Time `json:"created_at"` TargetName string `json:"target_name,omitempty"` RepoName string `json:"repo_name,omitempty"` CommitSHA string `json:"commit_sha,omitempty"` ArtifactCount int64 `json:"artifact_count,omitempty"` } type CorpusEntry struct { ID uint `json:"id"` TargetID uint `json:"target_id"` RunID *uint `json:"run_id,omitempty"` BlobKey string `json:"blob_key"` BlobSize int64 `json:"blob_size"` Fingerprint *string `json:"fingerprint,omitempty"` CreatedAt time.Time `json:"created_at"` } type CrashSignature struct { ID uint `json:"id"` RepositoryID uint `json:"repository_id"` Fingerprint string `json:"fingerprint"` SampleTrace *string `json:"sample_trace,omitempty"` FirstSeenAt time.Time `json:"first_seen_at"` LastSeenAt time.Time `json:"last_seen_at"` OccurrenceCount uint `json:"occurrence_count"` } type CrashGroup struct { ID uint `json:"id"` RepositoryID uint `json:"repository_id"` CrashSignatureID uint `json:"crash_signature_id"` Title string `json:"title"` Status string `json:"status"` ForgejoIssueID *int `json:"forgejo_issue_id,omitempty"` FirstSeenAt time.Time `json:"first_seen_at"` LastSeenAt time.Time `json:"last_seen_at"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` RepoName string `json:"repo_name,omitempty"` Fingerprint string `json:"fingerprint,omitempty"` OccurrenceCount uint `json:"occurrence_count,omitempty"` ForgejoIssueURL *string `json:"forgejo_issue_url,omitempty"` }