mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2026-09-05 20:07:25 +00:00
69 lines
2.8 KiB
Go
69 lines
2.8 KiB
Go
// Copyright 2021 Woodpecker Authors
|
|
// Copyright 2018 Drone.IO Inc.
|
|
//
|
|
// 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 model
|
|
|
|
import "fmt"
|
|
|
|
// Feed represents an item in the user's feed or timeline.
|
|
type Feed struct {
|
|
RepoID int64 `json:"repo_id" xorm:"repo_id"`
|
|
FullName string `json:"full_name,omitempty" xorm:"repo_full_name"`
|
|
ID int64 `json:"id,omitempty" xorm:"pipeline_id"`
|
|
Number int64 `json:"number,omitempty" xorm:"pipeline_number"`
|
|
Event WebhookEvent `json:"event,omitempty" xorm:"pipeline_event"`
|
|
Status string `json:"status,omitempty" xorm:"pipeline_status"`
|
|
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"`
|
|
Refspec string `json:"refspec,omitempty" xorm:"pipeline_refspec"`
|
|
Title string `json:"title,omitempty" xorm:"pipeline_title"`
|
|
Author string `json:"author,omitempty" xorm:"pipeline_author"`
|
|
Avatar string `json:"author_avatar,omitempty" xorm:"pipeline_avatar"`
|
|
Email string `json:"author_email,omitempty" xorm:"pipeline_email"`
|
|
|
|
// Ongoing Work: https://github.com/woodpecker-ci/woodpecker/pull/4626
|
|
// // New
|
|
Release *Release `json:"release,omitempty" xorm:"json 'pipeline_release'"`
|
|
TagTitle string `json:"tag_title,omitempty" xorm:"pipeline_tag_title"`
|
|
// // Deprecated
|
|
Message string `json:"message,omitempty" xorm:"pipeline_message"`
|
|
}
|
|
|
|
func (f *Feed) ToAPIModel() *APIFeed {
|
|
af := &APIFeed{
|
|
Feed: f,
|
|
}
|
|
switch af.Event {
|
|
case EventTag:
|
|
af.Message = fmt.Sprintf("created tag %s", af.TagTitle)
|
|
case EventRelease:
|
|
af.Message = "created release " + af.TagTitle
|
|
if af.Release != nil {
|
|
af.Title = af.Release.Title
|
|
af.Message = "created release " + af.Release.Title
|
|
}
|
|
}
|
|
return af
|
|
}
|
|
|
|
// APIFeed TODO remove in next major.
|
|
type APIFeed struct {
|
|
*Feed
|
|
} // @name Feed
|