Files
zeekayandHanzo Dev aa87442fdd Record upstream authorship centrally in NOTICE instead of in every file header
Source files keep their SPDX-License-Identifier and Hanzo copyright line; the
Gitea, Gogs and LFS Test Server copyrights they used to repeat now live once in
NOTICE, alongside LICENSE. The header lint accepts any copyright line above the
SPDX line, so it no longer demands an upstream one.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-10 17:50:35 -07:00

79 lines
2.4 KiB
Go

// Copyright 2026 Hanzo AI, Inc. 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"`
}