mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2024-12-23 00:46:30 +00:00
Refactor JSON and SDK fields (#3968)
This commit is contained in:
parent
2d1bc9f15c
commit
2081ca85db
16 changed files with 164 additions and 133 deletions
|
@ -4415,8 +4415,7 @@ const docTemplate = `{
|
|||
"branch": {
|
||||
"type": "string"
|
||||
},
|
||||
"created_at": {
|
||||
"description": "TODO change JSON field to \"created\" in 3.0",
|
||||
"created": {
|
||||
"type": "integer"
|
||||
},
|
||||
"creator_id": {
|
||||
|
@ -4458,15 +4457,13 @@ const docTemplate = `{
|
|||
"commit": {
|
||||
"type": "string"
|
||||
},
|
||||
"created_at": {
|
||||
"description": "TODO change JSON field to \"created\" in 3.0",
|
||||
"created": {
|
||||
"type": "integer"
|
||||
},
|
||||
"event": {
|
||||
"type": "string"
|
||||
},
|
||||
"finished_at": {
|
||||
"description": "TODO change JSON field to \"finished\" in 3.0",
|
||||
"finished": {
|
||||
"type": "integer"
|
||||
},
|
||||
"id": {
|
||||
|
@ -4487,8 +4484,7 @@ const docTemplate = `{
|
|||
"repo_id": {
|
||||
"type": "integer"
|
||||
},
|
||||
"started_at": {
|
||||
"description": "TODO change JSON field to \"started\" in 3.0",
|
||||
"started": {
|
||||
"type": "integer"
|
||||
},
|
||||
"status": {
|
||||
|
@ -4645,8 +4641,7 @@ const docTemplate = `{
|
|||
"commit": {
|
||||
"type": "string"
|
||||
},
|
||||
"created_at": {
|
||||
"description": "TODO change JSON field to \"created\" in 3.0",
|
||||
"created": {
|
||||
"type": "integer"
|
||||
},
|
||||
"deploy_task": {
|
||||
|
@ -4664,8 +4659,7 @@ const docTemplate = `{
|
|||
"event": {
|
||||
"$ref": "#/definitions/WebhookEvent"
|
||||
},
|
||||
"finished_at": {
|
||||
"description": "TODO change JSON field to \"finished\" in 3.0",
|
||||
"finished": {
|
||||
"type": "integer"
|
||||
},
|
||||
"forge_url": {
|
||||
|
@ -4698,8 +4692,7 @@ const docTemplate = `{
|
|||
"refspec": {
|
||||
"type": "string"
|
||||
},
|
||||
"reviewed_at": {
|
||||
"description": "TODO change JSON field to \"reviewed\" in 3.0",
|
||||
"reviewed": {
|
||||
"type": "integer"
|
||||
},
|
||||
"reviewed_by": {
|
||||
|
@ -4709,8 +4702,7 @@ const docTemplate = `{
|
|||
"description": "uses reported user for webhooks and name of cron for cron pipelines",
|
||||
"type": "string"
|
||||
},
|
||||
"started_at": {
|
||||
"description": "TODO change JSON field to \"started\" in 3.0",
|
||||
"started": {
|
||||
"type": "integer"
|
||||
},
|
||||
"status": {
|
||||
|
@ -4722,8 +4714,7 @@ const docTemplate = `{
|
|||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"updated_at": {
|
||||
"description": "TODO change JSON field to \"updated\" in 3.0",
|
||||
"updated": {
|
||||
"type": "integer"
|
||||
},
|
||||
"variables": {
|
||||
|
@ -5012,15 +5003,15 @@ const docTemplate = `{
|
|||
"Step": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"end_time": {
|
||||
"type": "integer"
|
||||
},
|
||||
"error": {
|
||||
"type": "string"
|
||||
},
|
||||
"exit_code": {
|
||||
"type": "integer"
|
||||
},
|
||||
"finished": {
|
||||
"type": "integer"
|
||||
},
|
||||
"id": {
|
||||
"type": "integer"
|
||||
},
|
||||
|
@ -5036,7 +5027,7 @@ const docTemplate = `{
|
|||
"ppid": {
|
||||
"type": "integer"
|
||||
},
|
||||
"start_time": {
|
||||
"started": {
|
||||
"type": "integer"
|
||||
},
|
||||
"state": {
|
||||
|
@ -5196,9 +5187,6 @@ const docTemplate = `{
|
|||
"$ref": "#/definitions/Step"
|
||||
}
|
||||
},
|
||||
"end_time": {
|
||||
"type": "integer"
|
||||
},
|
||||
"environ": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
|
@ -5208,6 +5196,9 @@ const docTemplate = `{
|
|||
"error": {
|
||||
"type": "string"
|
||||
},
|
||||
"finished": {
|
||||
"type": "integer"
|
||||
},
|
||||
"id": {
|
||||
"type": "integer"
|
||||
},
|
||||
|
@ -5223,7 +5214,7 @@ const docTemplate = `{
|
|||
"platform": {
|
||||
"type": "string"
|
||||
},
|
||||
"start_time": {
|
||||
"started": {
|
||||
"type": "integer"
|
||||
},
|
||||
"state": {
|
||||
|
|
|
@ -25,6 +25,7 @@ Some versions need some changes to the server configuration or the pipeline conf
|
|||
- Deprecated `environment` filter, use `when.evaluate`
|
||||
- Removed `WOODPECKER_WEBHOOK_HOST` in favor of `WOODPECKER_EXPERT_WEBHOOK_HOST`
|
||||
- Migrated to rfc9421 for webhook signatures
|
||||
- Renamed `start_time`, `end_time`, `created_at`, `started_at`, `finished_at` and `reviewed_at` JSON fields to `started`, `finished`, `created`, `started`, `finished`, `reviewed`
|
||||
|
||||
## 2.0.0
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ type Cron struct {
|
|||
CreatorID int64 `json:"creator_id" xorm:"creator_id INDEX"`
|
||||
NextExec int64 `json:"next_exec" xorm:"next_exec"`
|
||||
Schedule string `json:"schedule" xorm:"schedule NOT NULL"` // @weekly, 3min, ...
|
||||
Created int64 `json:"created_at" xorm:"created NOT NULL DEFAULT 0"` // TODO change JSON field to "created" in 3.0
|
||||
Created int64 `json:"created" xorm:"created NOT NULL DEFAULT 0"`
|
||||
Branch string `json:"branch" xorm:"branch"`
|
||||
} // @name Cron
|
||||
|
||||
|
|
|
@ -22,9 +22,9 @@ type Feed struct {
|
|||
Number int64 `json:"number,omitempty" xorm:"pipeline_number"`
|
||||
Event string `json:"event,omitempty" xorm:"pipeline_event"`
|
||||
Status string `json:"status,omitempty" xorm:"pipeline_status"`
|
||||
Created int64 `json:"created_at,omitempty" xorm:"pipeline_created"` // TODO change JSON field to "created" in 3.0
|
||||
Started int64 `json:"started_at,omitempty" xorm:"pipeline_started"` // TODO change JSON field to "started" in 3.0
|
||||
Finished int64 `json:"finished_at,omitempty" xorm:"pipeline_finished"` // TODO change JSON field to "finished" in 3.0
|
||||
Created int64 `json:"created,omitempty" xorm:"pipeline_created"`
|
||||
Started int64 `json:"started,omitempty" xorm:"pipeline_started"`
|
||||
Finished int64 `json:"finished,omitempty" xorm:"pipeline_finished"`
|
||||
Commit string `json:"commit,omitempty" xorm:"pipeline_commit"`
|
||||
Branch string `json:"branch,omitempty" xorm:"pipeline_branch"`
|
||||
Ref string `json:"ref,omitempty" xorm:"pipeline_ref"`
|
||||
|
|
|
@ -28,10 +28,10 @@ type Pipeline struct {
|
|||
Event WebhookEvent `json:"event" xorm:"event"`
|
||||
Status StatusValue `json:"status" xorm:"INDEX 'status'"`
|
||||
Errors []*types.PipelineError `json:"errors" xorm:"json 'errors'"`
|
||||
Created int64 `json:"created_at" xorm:"'created' NOT NULL DEFAULT 0 created"` // TODO change JSON field to "created" in 3.0
|
||||
Updated int64 `json:"updated_at" xorm:"'updated' NOT NULL DEFAULT 0 updated"` // TODO change JSON field to "updated" in 3.0
|
||||
Started int64 `json:"started_at" xorm:"started"` // TODO change JSON field to "started" in 3.0
|
||||
Finished int64 `json:"finished_at" xorm:"finished"` // TODO change JSON field to "finished" in 3.0
|
||||
Created int64 `json:"created" xorm:"'created' NOT NULL DEFAULT 0 created"`
|
||||
Updated int64 `json:"updated" xorm:"'updated' NOT NULL DEFAULT 0 updated"`
|
||||
Started int64 `json:"started" xorm:"started"`
|
||||
Finished int64 `json:"finished" xorm:"finished"`
|
||||
DeployTo string `json:"deploy_to" xorm:"deploy"`
|
||||
DeployTask string `json:"deploy_task" xorm:"deploy_task"`
|
||||
Commit string `json:"commit" xorm:"commit"`
|
||||
|
@ -46,7 +46,7 @@ type Pipeline struct {
|
|||
Email string `json:"author_email" xorm:"email"`
|
||||
ForgeURL string `json:"forge_url" xorm:"forge_url"`
|
||||
Reviewer string `json:"reviewed_by" xorm:"reviewer"`
|
||||
Reviewed int64 `json:"reviewed_at" xorm:"reviewed"` // TODO change JSON field to "reviewed" in 3.0
|
||||
Reviewed int64 `json:"reviewed" xorm:"reviewed"`
|
||||
Workflows []*Workflow `json:"workflows,omitempty" xorm:"-"`
|
||||
ChangedFiles []string `json:"changed_files,omitempty" xorm:"LONGTEXT 'changed_files'"`
|
||||
AdditionalVariables map[string]string `json:"variables,omitempty" xorm:"json 'additional_variables'"`
|
||||
|
|
|
@ -36,8 +36,8 @@ type Step struct {
|
|||
Error string `json:"error,omitempty" xorm:"TEXT 'error'"`
|
||||
Failure string `json:"-" xorm:"failure"`
|
||||
ExitCode int `json:"exit_code" xorm:"exit_code"`
|
||||
Started int64 `json:"start_time,omitempty" xorm:"started"`
|
||||
Finished int64 `json:"end_time,omitempty" xorm:"stopped"`
|
||||
Started int64 `json:"started,omitempty" xorm:"started"`
|
||||
Finished int64 `json:"finished,omitempty" xorm:"finished"`
|
||||
Type StepType `json:"type,omitempty" xorm:"type"`
|
||||
} // @name Step
|
||||
|
||||
|
|
|
@ -23,8 +23,8 @@ type Workflow struct {
|
|||
Name string `json:"name" xorm:"name"`
|
||||
State StatusValue `json:"state" xorm:"state"`
|
||||
Error string `json:"error,omitempty" xorm:"TEXT 'error'"`
|
||||
Started int64 `json:"start_time,omitempty" xorm:"started"`
|
||||
Finished int64 `json:"end_time,omitempty" xorm:"stopped"`
|
||||
Started int64 `json:"started,omitempty" xorm:"started"`
|
||||
Finished int64 `json:"finished,omitempty" xorm:"finished"`
|
||||
AgentID int64 `json:"agent_id,omitempty" xorm:"agent_id"`
|
||||
Platform string `json:"platform,omitempty" xorm:"platform"`
|
||||
Environ map[string]string `json:"environ,omitempty" xorm:"json 'environ'"`
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
// Copyright 2024 Woodpecker Authors
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package migration
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"src.techknowlogick.com/xormigrate"
|
||||
"xorm.io/xorm"
|
||||
)
|
||||
|
||||
type stepV033 struct {
|
||||
Finished int64 `xorm:"stopped"`
|
||||
}
|
||||
|
||||
func (stepV033) TableName() string {
|
||||
return "steps"
|
||||
}
|
||||
|
||||
type workflowV033 struct {
|
||||
Finished int64 `xorm:"stopped"`
|
||||
}
|
||||
|
||||
func (workflowV033) TableName() string {
|
||||
return "workflows"
|
||||
}
|
||||
|
||||
var renameStartEndTime = xormigrate.Migration{
|
||||
ID: "rename-start-end-time",
|
||||
MigrateSession: func(sess *xorm.Session) (err error) {
|
||||
if err := sess.Sync(new(stepV033), new(workflowV033)); err != nil {
|
||||
return fmt.Errorf("sync models failed: %w", err)
|
||||
}
|
||||
|
||||
// Step
|
||||
if err := renameColumn(sess, "steps", "stopped", "finished"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Workflow
|
||||
if err := renameColumn(sess, "workflows", "stopped", "finished"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
},
|
||||
}
|
|
@ -64,6 +64,7 @@ var migrationTasks = []*xormigrate.Migration{
|
|||
&unifyColumnsTables,
|
||||
&alterTableRegistriesFixRequiredFields,
|
||||
&cronWithoutSec,
|
||||
&renameStartEndTime,
|
||||
}
|
||||
|
||||
var allBeans = []any{
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
<div class="flex flex-row items-center ml-auto gap-x-2">
|
||||
<IconButton
|
||||
v-if="step?.end_time !== undefined && hasLogs"
|
||||
v-if="step?.finished !== undefined && hasLogs"
|
||||
:is-loading="downloadInProgress"
|
||||
:title="$t('repo.pipeline.actions.log_download')"
|
||||
class="!hover:bg-white !hover:bg-opacity-10"
|
||||
|
@ -21,14 +21,14 @@
|
|||
@click="download"
|
||||
/>
|
||||
<IconButton
|
||||
v-if="step?.end_time !== undefined && hasLogs && hasPushPermission"
|
||||
v-if="step?.finished !== undefined && hasLogs && hasPushPermission"
|
||||
:title="$t('repo.pipeline.actions.log_delete')"
|
||||
class="!hover:bg-white !hover:bg-opacity-10"
|
||||
icon="trash"
|
||||
@click="deleteLogs"
|
||||
/>
|
||||
<IconButton
|
||||
v-if="step?.end_time === undefined"
|
||||
v-if="step?.finished === undefined"
|
||||
:title="
|
||||
autoScroll ? $t('repo.pipeline.actions.log_auto_scroll_off') : $t('repo.pipeline.actions.log_auto_scroll')
|
||||
"
|
||||
|
@ -89,13 +89,13 @@
|
|||
|
||||
<div class="m-auto text-xl text-wp-text-alt-100">
|
||||
<span v-if="step?.state === 'skipped'">{{ $t('repo.pipeline.actions.canceled') }}</span>
|
||||
<span v-else-if="!step?.start_time">{{ $t('repo.pipeline.step_not_started') }}</span>
|
||||
<span v-else-if="!step?.started">{{ $t('repo.pipeline.step_not_started') }}</span>
|
||||
<div v-else-if="!loadedLogs">{{ $t('repo.pipeline.loading') }}</div>
|
||||
<div v-else-if="log?.length === 0">{{ $t('repo.pipeline.no_logs') }}</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="step?.end_time !== undefined"
|
||||
v-if="step?.finished !== undefined"
|
||||
class="flex items-center w-full bg-wp-code-100 text-md text-wp-code-text-alt-100 p-4 font-bold"
|
||||
>
|
||||
<PipelineStatusIcon :status="step.state" class="!h-4 !w-4" />
|
||||
|
@ -350,7 +350,7 @@ watch(stepSlug, async () => {
|
|||
|
||||
watch(step, async (newStep, oldStep) => {
|
||||
if (oldStep?.name === newStep?.name) {
|
||||
if (oldStep?.end_time !== newStep?.end_time && autoScroll.value) {
|
||||
if (oldStep?.finished !== newStep?.finished && autoScroll.value) {
|
||||
scrollDown();
|
||||
}
|
||||
|
||||
|
|
|
@ -19,8 +19,8 @@ const workflow = toRef(props, 'workflow');
|
|||
const { durationAsNumber } = useDate();
|
||||
|
||||
const durationRaw = computed(() => {
|
||||
const start = (step.value ? step.value?.start_time : workflow.value?.start_time) || 0;
|
||||
const end = (step.value ? step.value?.end_time : workflow.value?.end_time) || 0;
|
||||
const start = (step.value ? step.value?.started : workflow.value?.started) || 0;
|
||||
const end = (step.value ? step.value?.finished : workflow.value?.finished) || 0;
|
||||
|
||||
if (end === 0 && start === 0) {
|
||||
return undefined;
|
||||
|
@ -43,5 +43,5 @@ const duration = computed(() => {
|
|||
|
||||
return durationAsNumber(durationElapsed.value || 0);
|
||||
});
|
||||
const started = computed(() => (step.value ? step.value?.start_time : workflow.value?.start_time) !== undefined);
|
||||
const started = computed(() => (step.value ? step.value?.started : workflow.value?.started) !== undefined);
|
||||
</script>
|
||||
|
|
|
@ -82,7 +82,7 @@
|
|||
<PipelineStatusIcon :status="workflow.state" class="!h-4 !w-4" />
|
||||
<span class="truncate">{{ workflow.name }}</span>
|
||||
<PipelineStepDuration
|
||||
v-if="workflow.start_time !== workflow.end_time"
|
||||
v-if="workflow.started !== workflow.finished"
|
||||
:workflow="workflow"
|
||||
class="mr-1 pr-2px"
|
||||
/>
|
||||
|
|
|
@ -14,7 +14,7 @@ export default (pipeline: Ref<Pipeline | undefined>) => {
|
|||
return undefined;
|
||||
}
|
||||
|
||||
const start = pipeline.value.created_at || 0;
|
||||
const start = pipeline.value.created || 0;
|
||||
|
||||
return start * 1000;
|
||||
});
|
||||
|
@ -44,8 +44,8 @@ export default (pipeline: Ref<Pipeline | undefined>) => {
|
|||
return undefined;
|
||||
}
|
||||
|
||||
const start = pipeline.value.started_at || 0;
|
||||
const end = pipeline.value.finished_at || pipeline.value.updated_at || 0;
|
||||
const start = pipeline.value.started || 0;
|
||||
const end = pipeline.value.finished || pipeline.value.updated || 0;
|
||||
|
||||
if (start === 0 || end === 0) {
|
||||
return 0;
|
||||
|
@ -109,7 +109,7 @@ export default (pipeline: Ref<Pipeline | undefined>) => {
|
|||
return undefined;
|
||||
}
|
||||
|
||||
const start = pipeline.value.created_at || 0;
|
||||
const start = pipeline.value.created || 0;
|
||||
|
||||
return toLocaleString(new Date(start * 1000));
|
||||
});
|
||||
|
|
|
@ -25,16 +25,16 @@ export interface Pipeline {
|
|||
errors?: PipelineError[];
|
||||
|
||||
// When the pipeline request was received.
|
||||
created_at: number;
|
||||
created: number;
|
||||
|
||||
// When the pipeline was updated last time in database.
|
||||
updated_at: number;
|
||||
updated: number;
|
||||
|
||||
// When the pipeline began execution.
|
||||
started_at: number;
|
||||
started: number;
|
||||
|
||||
// When the pipeline was finished.
|
||||
finished_at: number;
|
||||
finished: number;
|
||||
|
||||
// Where the deployment should go.
|
||||
deploy_to: string;
|
||||
|
@ -76,13 +76,9 @@ export interface Pipeline {
|
|||
// This url will point to the repository state associated with the pipeline's commit.
|
||||
forge_url: string;
|
||||
|
||||
signed: boolean;
|
||||
|
||||
verified: boolean;
|
||||
|
||||
reviewed_by: string;
|
||||
|
||||
reviewed_at: number;
|
||||
reviewed: number;
|
||||
|
||||
// The steps associated with this pipeline.
|
||||
// A pipeline will have multiple steps if a matrix pipeline was used or if a rebuild was requested.
|
||||
|
@ -110,8 +106,8 @@ export interface PipelineWorkflow {
|
|||
name: string;
|
||||
state: PipelineStatus;
|
||||
environ?: Record<string, string>;
|
||||
start_time?: number;
|
||||
end_time?: number;
|
||||
started?: number;
|
||||
finished?: number;
|
||||
agent_id?: number;
|
||||
error?: string;
|
||||
children: PipelineStep[];
|
||||
|
@ -126,8 +122,8 @@ export interface PipelineStep {
|
|||
name: string;
|
||||
state: PipelineStatus;
|
||||
exit_code: number;
|
||||
start_time?: number;
|
||||
end_time?: number;
|
||||
started?: number;
|
||||
finished?: number;
|
||||
error?: string;
|
||||
type?: StepType;
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ export function isStepRunning(step: PipelineStep): boolean {
|
|||
* @returns {number} 0 if created at the same time, < 0 if b was create before a, > 0 otherwise
|
||||
*/
|
||||
export function comparePipelines(a: Pipeline, b: Pipeline): number {
|
||||
return (b.created_at || -1) - (a.created_at || -1);
|
||||
return (b.created || -1) - (a.created || -1);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -75,8 +75,6 @@ type (
|
|||
Event string `json:"event"`
|
||||
Status string `json:"status"`
|
||||
Errors []*PipelineError `json:"errors"`
|
||||
// Deprecated TODO remove in 3.x
|
||||
Enqueued int64 `json:"enqueued_at"`
|
||||
Created int64 `json:"created_at"`
|
||||
Updated int64 `json:"updated_at"`
|
||||
Started int64 `json:"started_at"`
|
||||
|
@ -86,7 +84,6 @@ type (
|
|||
Branch string `json:"branch"`
|
||||
Ref string `json:"ref"`
|
||||
Refspec string `json:"refspec"`
|
||||
CloneURL string `json:"clone_url"`
|
||||
Title string `json:"title"`
|
||||
Message string `json:"message"`
|
||||
Timestamp int64 `json:"timestamp"`
|
||||
|
@ -137,10 +134,6 @@ type (
|
|||
Address string `json:"address"`
|
||||
Username string `json:"username"`
|
||||
Password string `json:"password,omitempty"`
|
||||
// Deprecated
|
||||
Email string `json:"email"` // TODO: remove in 3.x
|
||||
// Deprecated
|
||||
Token string `json:"token"` // TODO: remove in 3.x
|
||||
}
|
||||
|
||||
// Secret represents a secret variable, such as a password or token.
|
||||
|
@ -161,9 +154,9 @@ type (
|
|||
Number int64 `json:"number,omitempty"`
|
||||
Event string `json:"event,omitempty"`
|
||||
Status string `json:"status,omitempty"`
|
||||
Created int64 `json:"created_at,omitempty"`
|
||||
Started int64 `json:"started_at,omitempty"`
|
||||
Finished int64 `json:"finished_at,omitempty"`
|
||||
Created int64 `json:"created,omitempty"`
|
||||
Started int64 `json:"started,omitempty"`
|
||||
Finished int64 `json:"finished,omitempty"`
|
||||
Commit string `json:"commit,omitempty"`
|
||||
Branch string `json:"branch,omitempty"`
|
||||
Ref string `json:"ref,omitempty"`
|
||||
|
@ -183,30 +176,20 @@ type (
|
|||
Commit string `json:"commit,omitempty"`
|
||||
}
|
||||
|
||||
//nolint:godot
|
||||
// TODO: use dedicated struct in 3.x
|
||||
// QueueStats struct {
|
||||
// Workers int `json:"worker_count"`
|
||||
// Pending int `json:"pending_count"`
|
||||
// WaitingOnDeps int `json:"waiting_on_deps_count"`
|
||||
// Running int `json:"running_count"`
|
||||
// Complete int `json:"completed_count"`
|
||||
// }
|
||||
QueueStats struct {
|
||||
Workers int `json:"worker_count"`
|
||||
Pending int `json:"pending_count"`
|
||||
WaitingOnDeps int `json:"waiting_on_deps_count"`
|
||||
Running int `json:"running_count"`
|
||||
Complete int `json:"completed_count"`
|
||||
}
|
||||
|
||||
// Info provides queue stats.
|
||||
Info struct {
|
||||
Pending []Task `json:"pending"`
|
||||
WaitingOnDeps []Task `json:"waiting_on_deps"`
|
||||
Running []Task `json:"running"`
|
||||
// TODO: use dedicated struct in 3.x
|
||||
// Stats QueueStats `json:"stats"`
|
||||
Stats struct {
|
||||
Workers int `json:"worker_count"`
|
||||
Pending int `json:"pending_count"`
|
||||
WaitingOnDeps int `json:"waiting_on_deps_count"`
|
||||
Running int `json:"running_count"`
|
||||
Complete int `json:"completed_count"`
|
||||
} `json:"stats"`
|
||||
Stats QueueStats `json:"stats"`
|
||||
Paused bool `json:"paused,omitempty"`
|
||||
}
|
||||
|
||||
|
@ -233,7 +216,7 @@ type (
|
|||
CreatorID int64 `json:"creator_id"`
|
||||
NextExec int64 `json:"next_exec"`
|
||||
Schedule string `json:"schedule"`
|
||||
Created int64 `json:"created_at"`
|
||||
Created int64 `json:"created"`
|
||||
Branch string `json:"branch"`
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue