Documentation
¶
Index ¶
- Constants
- func ComputeTaskTokenPermissions(ctx context.Context, task *ActionTask, targetRepo *repo_model.Repository) (ret repo_model.ActionsTokenPermissions, err error)
- func CountRunnersWithoutBelongingOwner(ctx context.Context) (int64, error)
- func CountRunnersWithoutBelongingRepo(ctx context.Context) (int64, error)
- func CountWrongRepoLevelRunners(ctx context.Context) (int64, error)
- func CountWrongRepoLevelVariables(ctx context.Context) (int64, error)
- func CreateRunner(ctx context.Context, t *ActionRunner) error
- func CreateScheduleTask(ctx context.Context, rows []*ActionSchedule) error
- func DeleteEphemeralRunner(ctx context.Context, id int64) error
- func DeleteRunner(ctx context.Context, id int64) error
- func DeleteScheduleTaskByRepo(ctx context.Context, id int64) error
- func DeleteVariable(ctx context.Context, id int64) error
- func FindTaskOutputKeyByTaskID(ctx context.Context, taskID int64) ([]string, error)
- func FixRunnersWithoutBelongingOwner(ctx context.Context) (int64, error)
- func FixRunnersWithoutBelongingRepo(ctx context.Context) (int64, error)
- func GetActors(ctx context.Context, repoID int64) ([]*user_model.User, error)
- func GetConcurrentRunsAndJobs(ctx context.Context, repoID int64, concurrencyGroup string, status []Status) ([]*ActionRun, []*ActionRunJob, error)
- func GetSchedulesMapByIDs(ctx context.Context, ids []int64) (map[int64]*ActionSchedule, error)
- func GetTasksVersionByScope(ctx context.Context, ownerID, repoID int64) (int64, error)
- func GetVariablesOfRun(ctx context.Context, run *ActionRun) (map[string]string, error)
- func IncreaseTaskVersion(ctx context.Context, ownerID, repoID int64) error
- func InsertTaskOutputIfNotExist(ctx context.Context, taskID int64, key, value string) error
- func SetArtifactDeleted(ctx context.Context, artifactID int64) error
- func SetArtifactExpired(ctx context.Context, artifactID int64) error
- func SetArtifactNeedDelete(ctx context.Context, runID int64, name string) error
- func SetOwnerActionsConfig(ctx context.Context, userID int64, cfg OwnerActionsConfig) error
- func SetRunnerDisabled(ctx context.Context, runner *ActionRunner, isDisabled bool) error
- func StopTask(ctx context.Context, taskID int64, status Status) error
- func UpdateArtifactByID(ctx context.Context, id int64, art *ActionArtifact) error
- func UpdateRepoRunsNumbers(ctx context.Context, repo *repo_model.Repository) error
- func UpdateRun(ctx context.Context, run *ActionRun, cols ...string) error
- func UpdateRunJob(ctx context.Context, job *ActionRunJob, cond builder.Cond, cols ...string) (int64, error)
- func UpdateRunner(ctx context.Context, r *ActionRunner, cols ...string) error
- func UpdateRunnerToken(ctx context.Context, r *ActionRunnerToken, cols ...string) (err error)
- func UpdateScheduleSpec(ctx context.Context, spec *ActionScheduleSpec, cols ...string) error
- func UpdateTask(ctx context.Context, task *ActionTask, cols ...string) error
- func UpdateVariableCols(ctx context.Context, variable *ActionVariable, cols ...string) (bool, error)
- func UpdateWrongRepoLevelRunners(ctx context.Context) (int64, error)
- func UpdateWrongRepoLevelVariables(ctx context.Context) (int64, error)
- type ActionArtifact
- type ActionArtifactMeta
- type ActionJobList
- type ActionRun
- func GetLatestRun(ctx context.Context, repoID int64) (*ActionRun, error)
- func GetRunByRepoAndID(ctx context.Context, repoID, runID int64) (*ActionRun, error)
- func GetRunByRepoAndIndex(ctx context.Context, repoID, runIndex int64) (*ActionRun, error)
- func GetWorkflowLatestRun(ctx context.Context, repoID int64, workflowFile, branch, event string) (*ActionRun, error)
- func (run *ActionRun) Duration() time.Duration
- func (run *ActionRun) GetPullRequestEventPayload() (*api.PullRequestPayload, error)
- func (run *ActionRun) GetPushEventPayload() (*api.PushPayload, error)
- func (run *ActionRun) GetWorkflowRunEventPayload() (*api.WorkflowRunPayload, error)
- func (run *ActionRun) HTMLURL() string
- func (run *ActionRun) IsSchedule() bool
- func (run *ActionRun) Link() string
- func (run *ActionRun) LoadAttributes(ctx context.Context) error
- func (run *ActionRun) LoadRepo(ctx context.Context) error
- func (run *ActionRun) PrettyRef() string
- func (run *ActionRun) RefLink() string
- func (run *ActionRun) RefTooltip() string
- func (run *ActionRun) WorkflowLink() string
- type ActionRunIndex
- type ActionRunJob
- func CancelJobs(ctx context.Context, jobs []*ActionRunJob) ([]*ActionRunJob, error)
- func CancelPreviousJobs(ctx context.Context, repoID int64, ref, workflowID string, ...) ([]*ActionRunJob, error)
- func CancelPreviousJobsByJobConcurrency(ctx context.Context, job *ActionRunJob) (jobsToCancel []*ActionRunJob, _ error)
- func CancelPreviousJobsByRunConcurrency(ctx context.Context, actionRun *ActionRun) ([]*ActionRunJob, error)
- func CleanRepoScheduleTasks(ctx context.Context, repo *repo_model.Repository) ([]*ActionRunJob, error)
- func GetRunJobByRepoAndID(ctx context.Context, repoID, jobID int64) (*ActionRunJob, error)
- func GetRunJobByRunAndID(ctx context.Context, runID, jobID int64) (*ActionRunJob, error)
- type ActionRunner
- func (r *ActionRunner) BelongsToOwnerName() string
- func (r *ActionRunner) BelongsToOwnerType() types.OwnerType
- func (r *ActionRunner) CanMatchLabels(jobRunsOn []string) bool
- func (r *ActionRunner) EditableInContext(ownerID, repoID int64) bool
- func (r *ActionRunner) GenerateToken() (err error)
- func (r *ActionRunner) IsOnline() bool
- func (r *ActionRunner) LoadAttributes(ctx context.Context) error
- func (r *ActionRunner) Status() runnerv1.RunnerStatus
- func (r *ActionRunner) StatusLocaleName(lang translation.Locale) string
- func (r *ActionRunner) StatusName() string
- type ActionRunnerToken
- func GetLatestRunnerToken(ctx context.Context, ownerID, repoID int64) (*ActionRunnerToken, error)
- func GetRunnerToken(ctx context.Context, token string) (*ActionRunnerToken, error)
- func NewRunnerToken(ctx context.Context, ownerID, repoID int64) (*ActionRunnerToken, error)
- func NewRunnerTokenWithValue(ctx context.Context, ownerID, repoID int64, token string) (*ActionRunnerToken, error)
- type ActionSchedule
- type ActionScheduleSpec
- type ActionTask
- func CreateTaskForRunner(ctx context.Context, runner *ActionRunner) (*ActionTask, bool, error)
- func FindOldTasksToExpire(ctx context.Context, olderThan timeutil.TimeStamp, limit int) ([]*ActionTask, error)
- func GetRunningTaskByToken(ctx context.Context, token string) (*ActionTask, error)
- func GetTaskByID(ctx context.Context, id int64) (*ActionTask, error)
- func UpdateTaskByState(ctx context.Context, runnerID int64, state *runnerv1.TaskState) (*ActionTask, error)
- func (task *ActionTask) Duration() time.Duration
- func (task *ActionTask) GenerateToken() (err error)
- func (task *ActionTask) GetCommitLink() string
- func (task *ActionTask) GetRepoLink() string
- func (task *ActionTask) GetRepoName() string
- func (task *ActionTask) GetRunLink() string
- func (task *ActionTask) IsStopped() bool
- func (task *ActionTask) LoadAttributes(ctx context.Context) error
- func (task *ActionTask) LoadJob(ctx context.Context) error
- type ActionTaskOutput
- type ActionTaskStep
- type ActionTasksVersion
- type ActionVariable
- type ArtifactStatus
- type FindArtifactsOptions
- type FindRunJobOptions
- type FindRunOptions
- type FindRunnerOptions
- type FindScheduleOptions
- type FindSpecOptions
- type FindTaskOptions
- type FindVariablesOpts
- type LogIndexes
- type OwnerActionsConfig
- func (cfg *OwnerActionsConfig) ClampPermissions(perms repo_model.ActionsTokenPermissions) repo_model.ActionsTokenPermissions
- func (cfg *OwnerActionsConfig) FromDB(bytes []byte) error
- func (cfg *OwnerActionsConfig) GetDefaultTokenPermissions() repo_model.ActionsTokenPermissions
- func (cfg *OwnerActionsConfig) GetMaxTokenPermissions() repo_model.ActionsTokenPermissions
- type RunList
- type RunnerList
- type ScheduleList
- type SpecList
- type Status
- func (s Status) AsResult() runnerv1.Result
- func (s Status) HasRun() bool
- func (s Status) In(statuses ...Status) bool
- func (s Status) IsBlocked() bool
- func (s Status) IsCancelled() bool
- func (s Status) IsDone() bool
- func (s Status) IsFailure() bool
- func (s Status) IsRunning() bool
- func (s Status) IsSkipped() bool
- func (s Status) IsSuccess() bool
- func (s Status) IsUnknown() bool
- func (s Status) IsWaiting() bool
- func (s Status) LocaleString(lang translation.Locale) string
- func (s Status) String() string
- type StatusInfo
- type TaskList
Constants ¶
const ( ContentEncodingV3Gzip = "gzip" ContentTypeZip = "application/zip" )
const ( RunnerOfflineTime = time.Minute RunnerIdleTime = 10 * time.Second )
const ( VariableDataMaxLength = 65536 VariableDescriptionMaxLength = 4096 )
const MaxJobNumPerRun = 256
MaxJobNumPerRun is the maximum number of jobs in a single run. https://docs.github.com/en/actions/reference/limits#existing-system-limits TODO: check this limit when creating jobs
Variables ¶
This section is empty.
Functions ¶
func ComputeTaskTokenPermissions ¶ added in v1.26.0
func ComputeTaskTokenPermissions(ctx context.Context, task *ActionTask, targetRepo *repo_model.Repository) (ret repo_model.ActionsTokenPermissions, err error)
ComputeTaskTokenPermissions computes the effective permissions for a job token against the target repository. It uses the job's stored permissions (if any), then applies org/repo clamps and fork/cross-repo restrictions. Note: target repository access policy checks are enforced in GetActionsUserRepoPermission; this function only computes the job token's effective permission ceiling.
func CountRunnersWithoutBelongingOwner ¶ added in v1.21.0
func CountRunnersWithoutBelongingRepo ¶ added in v1.22.0
func CountWrongRepoLevelRunners ¶ added in v1.24.0
func CountWrongRepoLevelVariables ¶ added in v1.24.0
func CreateRunner ¶
func CreateRunner(ctx context.Context, t *ActionRunner) error
CreateRunner creates new runner.
func CreateScheduleTask ¶ added in v1.21.0
func CreateScheduleTask(ctx context.Context, rows []*ActionSchedule) error
CreateScheduleTask creates new schedule task.
func DeleteEphemeralRunner ¶ added in v1.24.0
DeleteEphemeralRunner deletes a ephemeral runner by given ID.
func DeleteRunner ¶
DeleteRunner deletes a runner by given ID.
func DeleteScheduleTaskByRepo ¶ added in v1.21.0
func FindTaskOutputKeyByTaskID ¶ added in v1.20.0
FindTaskOutputKeyByTaskID returns the keys of the outputs of the task.
func FixRunnersWithoutBelongingOwner ¶ added in v1.21.0
func FixRunnersWithoutBelongingRepo ¶ added in v1.22.0
func GetConcurrentRunsAndJobs ¶ added in v1.26.0
func GetSchedulesMapByIDs ¶ added in v1.21.0
GetSchedulesMapByIDs returns the schedules by given id slice.
func GetTasksVersionByScope ¶ added in v1.21.0
func GetVariablesOfRun ¶ added in v1.21.9
func IncreaseTaskVersion ¶ added in v1.21.0
func InsertTaskOutputIfNotExist ¶ added in v1.20.0
InsertTaskOutputIfNotExist inserts a new task output if it does not exist.
func SetArtifactDeleted ¶ added in v1.22.0
SetArtifactDeleted sets an artifact to deleted
func SetArtifactExpired ¶ added in v1.21.0
SetArtifactExpired sets an artifact to expired
func SetArtifactNeedDelete ¶ added in v1.22.0
SetArtifactNeedDelete sets an artifact to need-delete, cron job will delete it
func SetOwnerActionsConfig ¶ added in v1.26.0
func SetOwnerActionsConfig(ctx context.Context, userID int64, cfg OwnerActionsConfig) error
SetOwnerActionsConfig saves the OwnerActionsConfig for a user or organization to user settings
func SetRunnerDisabled ¶ added in v1.26.0
func SetRunnerDisabled(ctx context.Context, runner *ActionRunner, isDisabled bool) error
func UpdateArtifactByID ¶ added in v1.20.0
func UpdateArtifactByID(ctx context.Context, id int64, art *ActionArtifact) error
UpdateArtifactByID updates an artifact by id
func UpdateRepoRunsNumbers ¶ added in v1.26.0
func UpdateRepoRunsNumbers(ctx context.Context, repo *repo_model.Repository) error
UpdateRepoRunsNumbers updates the number of runs and closed runs of a repository.
func UpdateRun ¶
UpdateRun updates a run. It requires the inputted run has Version set. It will return error if the version is not matched (it means the run has been changed after loaded).
func UpdateRunJob ¶
func UpdateRunner ¶
func UpdateRunner(ctx context.Context, r *ActionRunner, cols ...string) error
UpdateRunner updates runner's information.
func UpdateRunnerToken ¶
func UpdateRunnerToken(ctx context.Context, r *ActionRunnerToken, cols ...string) (err error)
UpdateRunnerToken updates runner token information.
func UpdateScheduleSpec ¶ added in v1.21.0
func UpdateScheduleSpec(ctx context.Context, spec *ActionScheduleSpec, cols ...string) error
func UpdateTask ¶
func UpdateTask(ctx context.Context, task *ActionTask, cols ...string) error
func UpdateVariableCols ¶ added in v1.23.4
func UpdateWrongRepoLevelRunners ¶ added in v1.24.0
Types ¶
type ActionArtifact ¶ added in v1.20.0
type ActionArtifact struct {
ID int64 `xorm:"pk autoincr"`
RunID int64 `xorm:"index unique(runid_name_path)"` // The run id of the artifact
RunnerID int64
RepoID int64 `xorm:"index"`
OwnerID int64
CommitSHA string
StoragePath string // The path to the artifact in the storage
FileSize int64 // The size of the artifact in bytes
FileCompressedSize int64 // The size of the artifact in bytes after gzip compression
// The content encoding or content type of the artifact
// * empty or null: legacy (v3) uncompressed content
// * magic string "gzip" (ContentEncodingV3Gzip): v3 gzip compressed content
// * requires gzip decoding before storing in a zip for download
// * requires gzip content-encoding header when downloaded single files within a workflow
// * mime type for "Content-Type":
// * "application/zip" (ContentTypeZip), seems to be an abuse, fortunately there is no conflict, and it won't cause problems?
// * "application/pdf", "text/html", etc.: real content type of the artifact
ContentEncodingOrType string `xorm:"content_encoding"`
ArtifactPath string `xorm:"index unique(runid_name_path)"` // The path to the artifact when runner uploads it
ArtifactName string `xorm:"index unique(runid_name_path)"` // The name of the artifact when runner uploads it
Status ArtifactStatus `xorm:"index"` // The status of the artifact, uploading, expired or need-delete
CreatedUnix timeutil.TimeStamp `xorm:"created"`
UpdatedUnix timeutil.TimeStamp `xorm:"updated index"`
ExpiredUnix timeutil.TimeStamp `xorm:"index"` // The time when the artifact will be expired
}
ActionArtifact is a file that is stored in the artifact storage.
func CreateArtifact ¶ added in v1.20.0
func CreateArtifact(ctx context.Context, t *ActionTask, artifactName, artifactPath string, expiredDays int64) (*ActionArtifact, error)
func ListNeedExpiredArtifacts ¶ added in v1.21.0
func ListNeedExpiredArtifacts(ctx context.Context) ([]*ActionArtifact, error)
ListNeedExpiredArtifacts returns all need expired artifacts but not deleted
func ListPendingDeleteArtifacts ¶ added in v1.22.0
func ListPendingDeleteArtifacts(ctx context.Context, limit int) ([]*ActionArtifact, error)
ListPendingDeleteArtifacts returns all artifacts in pending-delete status. limit is the max number of artifacts to return.
type ActionArtifactMeta ¶ added in v1.21.0
type ActionArtifactMeta struct {
ArtifactName string
FileSize int64
Status ArtifactStatus
}
ActionArtifactMeta is the meta-data of an artifact
func ListUploadedArtifactsMeta ¶ added in v1.21.0
func ListUploadedArtifactsMeta(ctx context.Context, repoID, runID int64) ([]*ActionArtifactMeta, error)
ListUploadedArtifactsMeta returns all uploaded artifacts meta of a run
type ActionJobList ¶
type ActionJobList []*ActionRunJob
func GetRunJobsByRunID ¶
func GetRunJobsByRunID(ctx context.Context, runID int64) (ActionJobList, error)
func (ActionJobList) GetRunIDs ¶
func (jobs ActionJobList) GetRunIDs() []int64
func (ActionJobList) LoadAttributes ¶
func (jobs ActionJobList) LoadAttributes(ctx context.Context, withRepo bool) error
type ActionRun ¶
type ActionRun struct {
ID int64
Title string
RepoID int64 `xorm:"unique(repo_index) index(repo_concurrency)"`
Repo *repo_model.Repository `xorm:"-"`
OwnerID int64 `xorm:"index"`
WorkflowID string `xorm:"index"` // the name of workflow file
Index int64 `xorm:"index unique(repo_index)"` // a unique number for each run of a repository
TriggerUserID int64 `xorm:"index"`
TriggerUser *user_model.User `xorm:"-"`
ScheduleID int64
Ref string `xorm:"index"` // the commit/tag/… that caused the run
IsRefDeleted bool `xorm:"-"`
CommitSHA string
IsForkPullRequest bool // If this is triggered by a PR from a forked repository or an untrusted user, we need to check if it is approved and limit permissions when running the workflow.
NeedApproval bool // may need approval if it's a fork pull request
ApprovedBy int64 `xorm:"index"` // who approved
Event webhook_module.HookEventType // the webhook event that causes the workflow to run
EventPayload string `xorm:"LONGTEXT"`
TriggerEvent string // the trigger event defined in the `on` configuration of the triggered workflow
Status Status `xorm:"index"`
Version int `xorm:"version default 0"` // Status could be updated concomitantly, so an optimistic lock is needed
RawConcurrency string // raw concurrency
ConcurrencyGroup string `xorm:"index(repo_concurrency) NOT NULL DEFAULT ''"`
ConcurrencyCancel bool `xorm:"NOT NULL DEFAULT FALSE"`
// Started and Stopped is used for recording last run time, if rerun happened, they will be reset to 0
Started timeutil.TimeStamp
Stopped timeutil.TimeStamp
// PreviousDuration is used for recording previous duration
PreviousDuration time.Duration
Created timeutil.TimeStamp `xorm:"created"`
Updated timeutil.TimeStamp `xorm:"updated"`
}
ActionRun represents a run of a workflow file
func GetLatestRun ¶ added in v1.23.0
func GetRunByRepoAndID ¶ added in v1.25.0
func GetRunByRepoAndIndex ¶ added in v1.26.0
func GetWorkflowLatestRun ¶ added in v1.22.0
func (*ActionRun) GetPullRequestEventPayload ¶
func (run *ActionRun) GetPullRequestEventPayload() (*api.PullRequestPayload, error)
func (*ActionRun) GetPushEventPayload ¶
func (run *ActionRun) GetPushEventPayload() (*api.PushPayload, error)
func (*ActionRun) GetWorkflowRunEventPayload ¶ added in v1.25.0
func (run *ActionRun) GetWorkflowRunEventPayload() (*api.WorkflowRunPayload, error)
func (*ActionRun) IsSchedule ¶ added in v1.22.0
func (*ActionRun) LoadAttributes ¶
LoadAttributes load Repo TriggerUser if not loaded
func (*ActionRun) RefTooltip ¶ added in v1.26.0
RefTooltip return a tooltop of run's ref. For pull request, it's the title of the PR, otherwise it's the ShortName.
func (*ActionRun) WorkflowLink ¶ added in v1.22.0
type ActionRunIndex ¶
type ActionRunIndex db.ResourceIndex
type ActionRunJob ¶
type ActionRunJob struct {
ID int64
RunID int64 `xorm:"index"`
Run *ActionRun `xorm:"-"`
RepoID int64 `xorm:"index(repo_concurrency)"`
Repo *repo_model.Repository `xorm:"-"`
OwnerID int64 `xorm:"index"`
CommitSHA string `xorm:"index"`
IsForkPullRequest bool
Name string `xorm:"VARCHAR(255)"`
Attempt int64
// WorkflowPayload is act/jobparser.SingleWorkflow for act/jobparser.Parse
// it should contain exactly one job with global workflow fields for this model
WorkflowPayload []byte
JobID string `xorm:"VARCHAR(255)"` // job id in workflow, not job's id
Needs []string `xorm:"JSON TEXT"`
RunsOn []string `xorm:"JSON TEXT"`
TaskID int64 // the latest task of the job
Status Status `xorm:"index"`
RawConcurrency string // raw concurrency from job YAML's "concurrency" section
// IsConcurrencyEvaluated is only valid/needed when this job's RawConcurrency is not empty.
// If RawConcurrency can't be evaluated (e.g. depend on other job's outputs or have errors), this field will be false.
// If RawConcurrency has been successfully evaluated, this field will be true, ConcurrencyGroup and ConcurrencyCancel are also set.
IsConcurrencyEvaluated bool
ConcurrencyGroup string `xorm:"index(repo_concurrency) NOT NULL DEFAULT ''"` // evaluated concurrency.group
ConcurrencyCancel bool `xorm:"NOT NULL DEFAULT FALSE"` // evaluated concurrency.cancel-in-progress
// TokenPermissions stores the explicit permissions from workflow/job YAML (no org/repo clamps applied).
// Org/repo clamps are enforced when the token is used at runtime.
// It is JSON-encoded repo_model.ActionsTokenPermissions and may be empty if not specified.
TokenPermissions *repo_model.ActionsTokenPermissions `xorm:"JSON TEXT"`
Started timeutil.TimeStamp
Stopped timeutil.TimeStamp
Created timeutil.TimeStamp `xorm:"created"`
Updated timeutil.TimeStamp `xorm:"updated index"`
}
ActionRunJob represents a job of a run
func CancelJobs ¶ added in v1.26.0
func CancelJobs(ctx context.Context, jobs []*ActionRunJob) ([]*ActionRunJob, error)
func CancelPreviousJobs ¶ added in v1.22.0
func CancelPreviousJobs(ctx context.Context, repoID int64, ref, workflowID string, event webhook_module.HookEventType) ([]*ActionRunJob, error)
CancelPreviousJobs cancels all previous jobs of the same repository, reference, workflow, and event. It's useful when a new run is triggered, and all previous runs needn't be continued anymore.
func CancelPreviousJobsByJobConcurrency ¶ added in v1.26.0
func CancelPreviousJobsByJobConcurrency(ctx context.Context, job *ActionRunJob) (jobsToCancel []*ActionRunJob, _ error)
func CancelPreviousJobsByRunConcurrency ¶ added in v1.26.0
func CancelPreviousJobsByRunConcurrency(ctx context.Context, actionRun *ActionRun) ([]*ActionRunJob, error)
func CleanRepoScheduleTasks ¶ added in v1.21.4
func CleanRepoScheduleTasks(ctx context.Context, repo *repo_model.Repository) ([]*ActionRunJob, error)
func GetRunJobByRepoAndID ¶ added in v1.26.0
func GetRunJobByRepoAndID(ctx context.Context, repoID, jobID int64) (*ActionRunJob, error)
func GetRunJobByRunAndID ¶ added in v1.26.0
func GetRunJobByRunAndID(ctx context.Context, runID, jobID int64) (*ActionRunJob, error)
func (*ActionRunJob) Duration ¶
func (job *ActionRunJob) Duration() time.Duration
func (*ActionRunJob) LoadAttributes ¶
func (job *ActionRunJob) LoadAttributes(ctx context.Context) error
LoadAttributes load Run if not loaded
type ActionRunner ¶
type ActionRunner struct {
ID int64
UUID string `xorm:"CHAR(36) UNIQUE"`
Name string `xorm:"VARCHAR(255)"`
Version string `xorm:"VARCHAR(64)"`
OwnerID int64 `xorm:"index"`
Owner *user_model.User `xorm:"-"`
RepoID int64 `xorm:"index"`
Repo *repo_model.Repository `xorm:"-"`
Description string `xorm:"TEXT"`
Base int // 0 native 1 docker 2 virtual machine
RepoRange string // glob match which repositories could use this runner
Token string `xorm:"-"`
TokenHash string `xorm:"UNIQUE"` // sha256 of token
TokenSalt string
LastOnline timeutil.TimeStamp `xorm:"index"`
LastActive timeutil.TimeStamp `xorm:"index"`
// Store labels defined in state file (default: .runner file) of `act_runner`
AgentLabels []string `xorm:"TEXT"`
// Store if this is a runner that only ever get one single job assigned
Ephemeral bool `xorm:"ephemeral NOT NULL DEFAULT false"`
// Store if this runner is disabled and should not pick up new jobs
IsDisabled bool `xorm:"is_disabled NOT NULL DEFAULT false"`
Created timeutil.TimeStamp `xorm:"created"`
Updated timeutil.TimeStamp `xorm:"updated"`
Deleted timeutil.TimeStamp `xorm:"deleted"`
}
ActionRunner represents runner machines
It can be:
- global runner, OwnerID is 0 and RepoID is 0
- org/user level runner, OwnerID is org/user ID and RepoID is 0
- repo level runner, OwnerID is 0 and RepoID is repo ID
Please note that it's not acceptable to have both OwnerID and RepoID to be non-zero, or it will be complicated to find runners belonging to a specific owner. For example, conditions like `OwnerID = 1` will also return runner {OwnerID: 1, RepoID: 1}, but it's a repo level runner, not an org/user level runner. To avoid this, make it clear with {OwnerID: 0, RepoID: 1} for repo level runners.
func GetRunnerByID ¶
func GetRunnerByID(ctx context.Context, id int64) (*ActionRunner, error)
GetRunnerByID returns a runner via id
func GetRunnerByUUID ¶
func GetRunnerByUUID(ctx context.Context, uuid string) (*ActionRunner, error)
GetRunnerByUUID returns a runner via uuid
func (*ActionRunner) BelongsToOwnerName ¶ added in v1.20.0
func (r *ActionRunner) BelongsToOwnerName() string
BelongsToOwnerName before calling, should guarantee that all attributes are loaded
func (*ActionRunner) BelongsToOwnerType ¶ added in v1.20.0
func (r *ActionRunner) BelongsToOwnerType() types.OwnerType
func (*ActionRunner) CanMatchLabels ¶ added in v1.26.0
func (r *ActionRunner) CanMatchLabels(jobRunsOn []string) bool
CanMatchLabels checks whether the runner's labels can match a job's "runs-on" See https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idruns-on
func (*ActionRunner) EditableInContext ¶ added in v1.24.0
func (r *ActionRunner) EditableInContext(ownerID, repoID int64) bool
EditableInContext checks if the runner is editable by the "context" owner/repo ownerID == 0 and repoID == 0 means "admin" context, any runner including global runners could be edited ownerID == 0 and repoID != 0 means "repo" context, any runner belonging to the given repo could be edited ownerID != 0 and repoID == 0 means "owner(org/user)" context, any runner belonging to the given user/org could be edited ownerID != 0 and repoID != 0 means "owner" OR "repo" context, legacy behavior, but we should forbid using it
func (*ActionRunner) GenerateToken ¶
func (r *ActionRunner) GenerateToken() (err error)
func (*ActionRunner) IsOnline ¶
func (r *ActionRunner) IsOnline() bool
func (*ActionRunner) LoadAttributes ¶
func (r *ActionRunner) LoadAttributes(ctx context.Context) error
LoadAttributes loads the attributes of the runner
func (*ActionRunner) Status ¶
func (r *ActionRunner) Status() runnerv1.RunnerStatus
if the logic here changed, you should also modify FindRunnerOptions.ToCond
func (*ActionRunner) StatusLocaleName ¶
func (r *ActionRunner) StatusLocaleName(lang translation.Locale) string
func (*ActionRunner) StatusName ¶
func (r *ActionRunner) StatusName() string
type ActionRunnerToken ¶
type ActionRunnerToken struct {
ID int64
Token string `xorm:"UNIQUE"`
OwnerID int64 `xorm:"index"`
Owner *user_model.User `xorm:"-"`
RepoID int64 `xorm:"index"`
Repo *repo_model.Repository `xorm:"-"`
IsActive bool // true means it can be used
Created timeutil.TimeStamp `xorm:"created"`
Updated timeutil.TimeStamp `xorm:"updated"`
Deleted timeutil.TimeStamp `xorm:"deleted"`
}
ActionRunnerToken represents runner tokens
It can be:
- global token, OwnerID is 0 and RepoID is 0
- org/user level token, OwnerID is org/user ID and RepoID is 0
- repo level token, OwnerID is 0 and RepoID is repo ID
Please note that it's not acceptable to have both OwnerID and RepoID to be non-zero, or it will be complicated to find tokens belonging to a specific owner. For example, conditions like `OwnerID = 1` will also return token {OwnerID: 1, RepoID: 1}, but it's a repo level token, not an org/user level token. To avoid this, make it clear with {OwnerID: 0, RepoID: 1} for repo level tokens.
func GetLatestRunnerToken ¶ added in v1.22.0
func GetLatestRunnerToken(ctx context.Context, ownerID, repoID int64) (*ActionRunnerToken, error)
GetLatestRunnerToken returns the latest runner token
func GetRunnerToken ¶
func GetRunnerToken(ctx context.Context, token string) (*ActionRunnerToken, error)
GetRunnerToken returns a action runner via token
func NewRunnerToken ¶
func NewRunnerToken(ctx context.Context, ownerID, repoID int64) (*ActionRunnerToken, error)
func NewRunnerTokenWithValue ¶ added in v1.23.0
func NewRunnerTokenWithValue(ctx context.Context, ownerID, repoID int64, token string) (*ActionRunnerToken, error)
NewRunnerTokenWithValue creates a new active runner token and invalidate all old tokens ownerID will be ignored and treated as 0 if repoID is non-zero.
type ActionSchedule ¶ added in v1.21.0
type ActionSchedule struct {
ID int64
Title string
Specs []string
RepoID int64 `xorm:"index"`
Repo *repo_model.Repository `xorm:"-"`
OwnerID int64 `xorm:"index"`
WorkflowID string
TriggerUserID int64
TriggerUser *user_model.User `xorm:"-"`
Ref string
CommitSHA string
Event webhook_module.HookEventType
EventPayload string `xorm:"LONGTEXT"`
Content []byte
Created timeutil.TimeStamp `xorm:"created"`
Updated timeutil.TimeStamp `xorm:"updated"`
}
ActionSchedule represents a schedule of a workflow file
func (*ActionSchedule) ToActionRun ¶ added in v1.25.0
func (s *ActionSchedule) ToActionRun() *ActionRun
best effort function to convert an action schedule to action run, to be used in GenerateGiteaContext
type ActionScheduleSpec ¶ added in v1.21.0
type ActionScheduleSpec struct {
ID int64
RepoID int64 `xorm:"index"`
Repo *repo_model.Repository `xorm:"-"`
ScheduleID int64 `xorm:"index"`
Schedule *ActionSchedule `xorm:"-"`
// Next time the job will run, or the zero time if Cron has not been
// started or this entry's schedule is unsatisfiable
Next timeutil.TimeStamp `xorm:"index"`
// Prev is the last time this job was run, or the zero time if never.
Prev timeutil.TimeStamp
Spec string
Created timeutil.TimeStamp `xorm:"created"`
Updated timeutil.TimeStamp `xorm:"updated"`
}
ActionScheduleSpec represents a schedule spec of a workflow file
type ActionTask ¶
type ActionTask struct {
ID int64
JobID int64
Job *ActionRunJob `xorm:"-"`
Steps []*ActionTaskStep `xorm:"-"`
Attempt int64
RunnerID int64 `xorm:"index"`
Status Status `xorm:"index"`
Started timeutil.TimeStamp `xorm:"index"`
Stopped timeutil.TimeStamp `xorm:"index(stopped_log_expired)"`
RepoID int64 `xorm:"index"`
OwnerID int64 `xorm:"index"`
CommitSHA string `xorm:"index"`
IsForkPullRequest bool
Token string `xorm:"-"`
TokenHash string `xorm:"UNIQUE"` // sha256 of token
TokenSalt string
TokenLastEight string `xorm:"index token_last_eight"`
LogFilename string // file name of log
LogInStorage bool // read log from database or from storage
LogLength int64 // lines count
LogSize int64 // blob size
LogIndexes LogIndexes `xorm:"LONGBLOB"` // line number to offset
LogExpired bool `xorm:"index(stopped_log_expired)"` // files that are too old will be deleted
Created timeutil.TimeStamp `xorm:"created"`
Updated timeutil.TimeStamp `xorm:"updated index"`
}
ActionTask represents a distribution of job
func CreateTaskForRunner ¶
func CreateTaskForRunner(ctx context.Context, runner *ActionRunner) (*ActionTask, bool, error)
func FindOldTasksToExpire ¶ added in v1.23.0
func GetRunningTaskByToken ¶
func GetRunningTaskByToken(ctx context.Context, token string) (*ActionTask, error)
func GetTaskByID ¶
func GetTaskByID(ctx context.Context, id int64) (*ActionTask, error)
func UpdateTaskByState ¶
func UpdateTaskByState(ctx context.Context, runnerID int64, state *runnerv1.TaskState) (*ActionTask, error)
UpdateTaskByState updates the task by the state. It will always update the task if the state is not final, even there is no change. So it will update ActionTask.Updated to avoid the task being judged as a zombie task.
func (*ActionTask) Duration ¶
func (task *ActionTask) Duration() time.Duration
func (*ActionTask) GenerateToken ¶
func (task *ActionTask) GenerateToken() (err error)
func (*ActionTask) GetCommitLink ¶
func (task *ActionTask) GetCommitLink() string
func (*ActionTask) GetRepoLink ¶
func (task *ActionTask) GetRepoLink() string
func (*ActionTask) GetRepoName ¶
func (task *ActionTask) GetRepoName() string
func (*ActionTask) GetRunLink ¶
func (task *ActionTask) GetRunLink() string
func (*ActionTask) IsStopped ¶
func (task *ActionTask) IsStopped() bool
func (*ActionTask) LoadAttributes ¶
func (task *ActionTask) LoadAttributes(ctx context.Context) error
LoadAttributes load Job Steps if not loaded
type ActionTaskOutput ¶ added in v1.20.0
type ActionTaskOutput struct {
ID int64
TaskID int64 `xorm:"INDEX UNIQUE(task_id_output_key)"`
OutputKey string `xorm:"VARCHAR(255) UNIQUE(task_id_output_key)"`
OutputValue string `xorm:"MEDIUMTEXT"`
}
ActionTaskOutput represents an output of ActionTask. So the outputs are bound to a task, that means when a completed job has been rerun, the outputs of the job will be reset because the task is new. It's by design, to avoid the outputs of the old task to be mixed with the new task.
func FindTaskOutputByTaskID ¶ added in v1.20.0
func FindTaskOutputByTaskID(ctx context.Context, taskID int64) ([]*ActionTaskOutput, error)
FindTaskOutputByTaskID returns the outputs of the task.
type ActionTaskStep ¶
type ActionTaskStep struct {
ID int64
Name string `xorm:"VARCHAR(255)"` // the step name, for display purpose only, it will be truncated if it is too long
TaskID int64 `xorm:"index unique(task_index)"`
Index int64 `xorm:"index unique(task_index)"`
RepoID int64 `xorm:"index"`
Status Status `xorm:"index"`
LogIndex int64
LogLength int64
Started timeutil.TimeStamp
Stopped timeutil.TimeStamp
Created timeutil.TimeStamp `xorm:"created"`
Updated timeutil.TimeStamp `xorm:"updated"`
}
ActionTaskStep represents a step of ActionTask
func GetTaskStepsByTaskID ¶
func GetTaskStepsByTaskID(ctx context.Context, taskID int64) ([]*ActionTaskStep, error)
func (*ActionTaskStep) Duration ¶
func (step *ActionTaskStep) Duration() time.Duration
type ActionTasksVersion ¶ added in v1.21.0
type ActionTasksVersion struct {
ID int64 `xorm:"pk autoincr"`
OwnerID int64 `xorm:"UNIQUE(owner_repo)"`
RepoID int64 `xorm:"INDEX UNIQUE(owner_repo)"`
Version int64
CreatedUnix timeutil.TimeStamp `xorm:"created"`
UpdatedUnix timeutil.TimeStamp `xorm:"updated"`
}
ActionTasksVersion If both ownerID and repoID is zero, its scope is global. If ownerID is not zero and repoID is zero, its scope is org (there is no user-level runner currently). If ownerID is zero and repoID is not zero, its scope is repo.
type ActionVariable ¶ added in v1.21.0
type ActionVariable struct {
ID int64 `xorm:"pk autoincr"`
OwnerID int64 `xorm:"UNIQUE(owner_repo_name)"`
RepoID int64 `xorm:"INDEX UNIQUE(owner_repo_name)"`
Name string `xorm:"UNIQUE(owner_repo_name) NOT NULL"`
Data string `xorm:"LONGTEXT NOT NULL"`
Description string `xorm:"TEXT"`
CreatedUnix timeutil.TimeStamp `xorm:"created NOT NULL"`
UpdatedUnix timeutil.TimeStamp `xorm:"updated"`
}
ActionVariable represents a variable that can be used in actions
It can be:
- global variable, OwnerID is 0 and RepoID is 0
- org/user level variable, OwnerID is org/user ID and RepoID is 0
- repo level variable, OwnerID is 0 and RepoID is repo ID
Please note that it's not acceptable to have both OwnerID and RepoID to be non-zero, or it will be complicated to find variables belonging to a specific owner. For example, conditions like `OwnerID = 1` will also return variable {OwnerID: 1, RepoID: 1}, but it's a repo level variable, not an org/user level variable. To avoid this, make it clear with {OwnerID: 0, RepoID: 1} for repo level variables.
func FindVariables ¶ added in v1.21.0
func FindVariables(ctx context.Context, opts FindVariablesOpts) ([]*ActionVariable, error)
func InsertVariable ¶ added in v1.21.0
type ArtifactStatus ¶ added in v1.21.0
type ArtifactStatus int64
ArtifactStatus is the status of an artifact, uploading, expired or need-delete
const ( ArtifactStatusUploadPending ArtifactStatus = iota + 1 // 1, ArtifactStatusUploadPending is the status of an artifact upload that is pending ArtifactStatusUploadConfirmed // 2, ArtifactStatusUploadConfirmed is the status of an artifact upload that is confirmed ArtifactStatusUploadError // 3, ArtifactStatusUploadError is the status of an artifact upload that is errored ArtifactStatusExpired // 4, ArtifactStatusExpired is the status of an artifact that is expired ArtifactStatusPendingDeletion // 5, ArtifactStatusPendingDeletion is the status of an artifact that is pending deletion ArtifactStatusDeleted // 6, ArtifactStatusDeleted is the status of an artifact that is deleted )
func (ArtifactStatus) ToString ¶ added in v1.24.0
func (status ArtifactStatus) ToString() string
type FindArtifactsOptions ¶ added in v1.22.0
type FindArtifactsOptions struct {
db.ListOptions
RepoID int64
RunID int64
ArtifactName string
Status int
FinalizedArtifactsV4 bool
}
func (FindArtifactsOptions) ToConds ¶ added in v1.22.0
func (opts FindArtifactsOptions) ToConds() builder.Cond
func (FindArtifactsOptions) ToOrders ¶ added in v1.23.4
func (opts FindArtifactsOptions) ToOrders() string
type FindRunJobOptions ¶
type FindRunJobOptions struct {
db.ListOptions
RunID int64
RepoID int64
OwnerID int64
CommitSHA string
Statuses []Status
UpdatedBefore timeutil.TimeStamp
ConcurrencyGroup string
}
func (FindRunJobOptions) ToConds ¶ added in v1.22.0
func (opts FindRunJobOptions) ToConds() builder.Cond
func (FindRunJobOptions) ToJoins ¶ added in v1.25.0
func (opts FindRunJobOptions) ToJoins() []db.JoinFunc
type FindRunOptions ¶
type FindRunOptions struct {
db.ListOptions
RepoID int64
OwnerID int64
WorkflowID string
Ref string // the commit/tag/… that caused this workflow
TriggerUserID int64
TriggerEvent webhook_module.HookEventType
Approved bool // not util.OptionalBool, it works only when it's true
Status []Status
ConcurrencyGroup string
CommitSHA string
}
func (FindRunOptions) ToConds ¶ added in v1.22.0
func (opts FindRunOptions) ToConds() builder.Cond
func (FindRunOptions) ToJoins ¶ added in v1.25.0
func (opts FindRunOptions) ToJoins() []db.JoinFunc
func (FindRunOptions) ToOrders ¶ added in v1.22.0
func (opts FindRunOptions) ToOrders() string
type FindRunnerOptions ¶
type FindRunnerOptions struct {
db.ListOptions
IDs []int64
RepoID int64
OwnerID int64 // it will be ignored if RepoID is set
Sort string
Filter string
IsOnline optional.Option[bool]
IsDisabled optional.Option[bool]
WithAvailable bool // not only runners belong to, but also runners can be used
}
FindRunnerOptions ownerID == 0 and repoID == 0 means any runner including global runners repoID != 0 and WithAvailable == false means any runner for the given repo repoID != 0 and WithAvailable == true means any runner for the given repo, parent user/org, and global runners ownerID != 0 and repoID == 0 and WithAvailable == false means any runner for the given user/org ownerID != 0 and repoID == 0 and WithAvailable == true means any runner for the given user/org and global runners
func (FindRunnerOptions) ToConds ¶ added in v1.22.0
func (opts FindRunnerOptions) ToConds() builder.Cond
func (FindRunnerOptions) ToOrders ¶ added in v1.22.0
func (opts FindRunnerOptions) ToOrders() string
type FindScheduleOptions ¶ added in v1.21.0
type FindScheduleOptions struct {
db.ListOptions
RepoID int64
OwnerID int64
}
func (FindScheduleOptions) ToConds ¶ added in v1.22.0
func (opts FindScheduleOptions) ToConds() builder.Cond
func (FindScheduleOptions) ToOrders ¶ added in v1.22.0
func (opts FindScheduleOptions) ToOrders() string
type FindSpecOptions ¶ added in v1.21.0
type FindSpecOptions struct {
db.ListOptions
RepoID int64
Next int64
}
func (FindSpecOptions) ToConds ¶ added in v1.22.0
func (opts FindSpecOptions) ToConds() builder.Cond
func (FindSpecOptions) ToOrders ¶ added in v1.22.0
func (opts FindSpecOptions) ToOrders() string
type FindTaskOptions ¶
type FindTaskOptions struct {
db.ListOptions
RepoID int64
JobID int64
OwnerID int64
CommitSHA string
Status Status
UpdatedBefore timeutil.TimeStamp
StartedBefore timeutil.TimeStamp
RunnerID int64
}
func (FindTaskOptions) ToConds ¶ added in v1.22.0
func (opts FindTaskOptions) ToConds() builder.Cond
func (FindTaskOptions) ToOrders ¶ added in v1.22.0
func (opts FindTaskOptions) ToOrders() string
type FindVariablesOpts ¶ added in v1.21.0
type FindVariablesOpts struct {
db.ListOptions
IDs []int64
RepoID int64
OwnerID int64 // it will be ignored if RepoID is set
Name string
}
func (FindVariablesOpts) ToConds ¶ added in v1.22.0
func (opts FindVariablesOpts) ToConds() builder.Cond
type LogIndexes ¶
type LogIndexes []int64
LogIndexes is the index for mapping log line number to buffer offset. Because it uses varint encoding, it is impossible to predict its size. But we can make a simple estimate with an assumption that each log line has 200 byte, then: | lines | file size | index size | |-----------|---------------------|--------------------| | 100 | 20 KiB(20000) | 258 B(258) | | 1000 | 195 KiB(200000) | 2.9 KiB(2958) | | 10000 | 1.9 MiB(2000000) | 34 KiB(34715) | | 100000 | 19 MiB(20000000) | 386 KiB(394715) | | 1000000 | 191 MiB(200000000) | 4.1 MiB(4323626) | | 10000000 | 1.9 GiB(2000000000) | 47 MiB(49323626) | | 100000000 | 19 GiB(20000000000) | 490 MiB(513424280) |
func (*LogIndexes) FromDB ¶
func (indexes *LogIndexes) FromDB(b []byte) error
func (*LogIndexes) ToDB ¶
func (indexes *LogIndexes) ToDB() ([]byte, error)
type OwnerActionsConfig ¶ added in v1.26.0
type OwnerActionsConfig struct {
// TokenPermissionMode defines the default permission mode (permissive, restricted)
TokenPermissionMode repo_model.ActionsTokenPermissionMode `json:"token_permission_mode,omitempty"`
// MaxTokenPermissions defines the absolute maximum permissions any token can have in this context.
MaxTokenPermissions *repo_model.ActionsTokenPermissions `json:"max_token_permissions,omitempty"`
// AllowedCrossRepoIDs is a list of specific repo IDs that can be accessed cross-repo
AllowedCrossRepoIDs []int64 `json:"allowed_cross_repo_ids,omitempty"`
}
OwnerActionsConfig defines the Actions configuration for a user or organization
func GetOwnerActionsConfig ¶ added in v1.26.0
func GetOwnerActionsConfig(ctx context.Context, userID int64) (ret OwnerActionsConfig, err error)
GetOwnerActionsConfig loads the OwnerActionsConfig for a user or organization from user settings It returns a default config if no setting is found
func (*OwnerActionsConfig) ClampPermissions ¶ added in v1.26.0
func (cfg *OwnerActionsConfig) ClampPermissions(perms repo_model.ActionsTokenPermissions) repo_model.ActionsTokenPermissions
ClampPermissions ensures that the given permissions don't exceed the maximum
func (*OwnerActionsConfig) FromDB ¶ added in v1.26.0
func (cfg *OwnerActionsConfig) FromDB(bytes []byte) error
func (*OwnerActionsConfig) GetDefaultTokenPermissions ¶ added in v1.26.0
func (cfg *OwnerActionsConfig) GetDefaultTokenPermissions() repo_model.ActionsTokenPermissions
GetDefaultTokenPermissions returns the default token permissions by its TokenPermissionMode.
func (*OwnerActionsConfig) GetMaxTokenPermissions ¶ added in v1.26.0
func (cfg *OwnerActionsConfig) GetMaxTokenPermissions() repo_model.ActionsTokenPermissions
GetMaxTokenPermissions returns the maximum allowed permissions
type RunList ¶
type RunList []*ActionRun
func (RunList) GetRepoIDs ¶
func (RunList) GetUserIDs ¶
GetUserIDs returns a slice of user's id
type RunnerList ¶
type RunnerList []*ActionRunner
func (RunnerList) GetUserIDs ¶
func (runners RunnerList) GetUserIDs() []int64
GetUserIDs returns a slice of user's id
func (RunnerList) LoadAttributes ¶
func (runners RunnerList) LoadAttributes(ctx context.Context) error
func (RunnerList) LoadOwners ¶
func (runners RunnerList) LoadOwners(ctx context.Context) error
type ScheduleList ¶ added in v1.21.0
type ScheduleList []*ActionSchedule
func (ScheduleList) GetRepoIDs ¶ added in v1.21.0
func (schedules ScheduleList) GetRepoIDs() []int64
func (ScheduleList) GetUserIDs ¶ added in v1.21.0
func (schedules ScheduleList) GetUserIDs() []int64
GetUserIDs returns a slice of user's id
func (ScheduleList) LoadRepos ¶ added in v1.21.0
func (schedules ScheduleList) LoadRepos(ctx context.Context) error
func (ScheduleList) LoadTriggerUser ¶ added in v1.21.0
func (schedules ScheduleList) LoadTriggerUser(ctx context.Context) error
type SpecList ¶ added in v1.21.0
type SpecList []*ActionScheduleSpec
func (SpecList) GetRepoIDs ¶ added in v1.21.0
func (SpecList) GetScheduleIDs ¶ added in v1.21.0
type Status ¶
type Status int
Status represents the status of ActionRun, ActionRunJob, ActionTask, or ActionTaskStep
const ( StatusUnknown Status = iota // 0, consistent with runnerv1.Result_RESULT_UNSPECIFIED StatusSuccess // 1, consistent with runnerv1.Result_RESULT_SUCCESS StatusFailure // 2, consistent with runnerv1.Result_RESULT_FAILURE StatusCancelled // 3, consistent with runnerv1.Result_RESULT_CANCELLED StatusSkipped // 4, consistent with runnerv1.Result_RESULT_SKIPPED StatusWaiting // 5, isn't a runnerv1.Result StatusRunning // 6, isn't a runnerv1.Result StatusBlocked // 7, isn't a runnerv1.Result )
func AggregateJobStatus ¶ added in v1.23.0
func AggregateJobStatus(jobs []*ActionRunJob) Status
func (Status) IsCancelled ¶
func (Status) LocaleString ¶
func (s Status) LocaleString(lang translation.Locale) string
LocaleString returns the locale string name of the Status
type StatusInfo ¶ added in v1.21.0
func GetStatusInfoList ¶ added in v1.21.0
func GetStatusInfoList(ctx context.Context, lang translation.Locale) []StatusInfo
GetStatusInfoList returns a slice of StatusInfo