61 lines
1.5 KiB
Go
61 lines
1.5 KiB
Go
package common
|
|
|
|
// NameWithOwner represents a repository name and its owner name.
|
|
type NameWithOwner struct {
|
|
Owner string
|
|
Repo string
|
|
}
|
|
|
|
// AnalyzeJob represents a job specifying a repository and a query pack to analyze it with.
|
|
// This is the message format that the agent receives from the queue.
|
|
type AnalyzeJob struct {
|
|
RequestId int // json:"request_id"
|
|
QueryPackId int // json:"query_pack_id"
|
|
QueryPackURL string // json:"query_pack_url"
|
|
QueryLanguage string // json:"query_language"
|
|
NWO NameWithOwner // json:"nwo"
|
|
}
|
|
|
|
// AnalyzeResult represents the result of an analysis job.
|
|
// This is the message format that the agent sends to the queue.
|
|
// Status will only ever be StatusSuccess or StatusError when sent in a result.
|
|
type AnalyzeResult struct {
|
|
Status Status // json:"status"
|
|
RequestId int // json:"request_id"
|
|
ResultCount int // json:"result_count"
|
|
ResultArchiveURL string // json:"result_archive_url"
|
|
}
|
|
|
|
// Status represents the status of a job.
|
|
type Status int
|
|
|
|
const (
|
|
StatusInProgress = iota
|
|
StatusQueued
|
|
StatusError
|
|
StatusSuccess
|
|
StatusFailed
|
|
)
|
|
|
|
func (s Status) ToExternalString() string {
|
|
switch s {
|
|
case StatusInProgress:
|
|
return "in_progress"
|
|
case StatusQueued:
|
|
return "queued"
|
|
case StatusError:
|
|
return "error"
|
|
case StatusSuccess:
|
|
return "succeeded"
|
|
case StatusFailed:
|
|
return "failed"
|
|
default:
|
|
return "unknown"
|
|
}
|
|
}
|
|
|
|
type JobSpec struct {
|
|
JobID int
|
|
NameWithOwner
|
|
}
|