Files
gitea/modules/structs/release.go

79 lines
2.4 KiB
Go

// Copyright 2016 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package structs
import (
"time"
)
// Release represents a repository release
type Release struct {
// The unique identifier of the release
ID int64 `json:"id"`
// The name of the git tag associated with the release
TagName string `json:"tag_name"`
// The target commitish for the release
Target string `json:"target_commitish"`
// The display title of the release
Title string `json:"name"`
// The release notes or description
Note string `json:"body"`
// The API URL of the release
URL string `json:"url"`
// The HTML URL to view the release
HTMLURL string `json:"html_url"`
// The URL to download the tarball archive
TarURL string `json:"tarball_url"`
// The URL to download the zip archive
ZipURL string `json:"zipball_url"`
// The URL template for uploading release assets
UploadURL string `json:"upload_url"`
// Whether the release is a draft
IsDraft bool `json:"draft"`
// Whether the release is a prerelease
IsPrerelease bool `json:"prerelease"`
// swagger:strfmt date-time
CreatedAt time.Time `json:"created_at"`
// swagger:strfmt date-time
PublishedAt time.Time `json:"published_at"`
// The user who published the release
Publisher *User `json:"author"`
// The files attached to the release
Attachments []*Attachment `json:"assets"`
}
// CreateReleaseOption options when creating a release
type CreateReleaseOption struct {
// required: true
TagName string `json:"tag_name" binding:"Required"`
// The message for the git tag
TagMessage string `json:"tag_message"`
// The target commitish for the release
Target string `json:"target_commitish"`
// The display title of the release
Title string `json:"name"`
// The release notes or description
Note string `json:"body"`
// Whether to create the release as a draft
IsDraft bool `json:"draft"`
// Whether to mark the release as a prerelease
IsPrerelease bool `json:"prerelease"`
}
// EditReleaseOption options when editing a release
type EditReleaseOption struct {
// The new name of the git tag
TagName string `json:"tag_name"`
// The new target commitish for the release
Target string `json:"target_commitish"`
// The new display title of the release
Title string `json:"name"`
// The new release notes or description
Note string `json:"body"`
// Whether to change the draft status
IsDraft *bool `json:"draft"`
// Whether to change the prerelease status
IsPrerelease *bool `json:"prerelease"`
}