mirror of
https://github.com/hanzoai/forge.git
synced 2026-10-30 15:00:39 +00:00
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]>
79 lines
2.4 KiB
Go
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"`
|
|
}
|