mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-11-04 00:11:04 +00:00 
			
		
		
		
	- Resolves https://codeberg.org/forgejo/forgejo/issues/580 - Return a `upload_field` to any release API response, which points to the API URL for uploading new assets. - Adds unit test. - Adds integration testing to verify URL is returned correctly and that upload endpoint actually works (cherry picked from commit074413a2dc) (cherry picked from commit33feed4723) (cherry picked from commit1ca21b95ff) (cherry picked from commit874f07cec2) (cherry picked from commita78c538d8e) (cherry picked from commitbef38ce382) (cherry picked from commitc8eb345354)
		
			
				
	
	
		
			51 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1.5 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 {
 | 
						|
	ID           int64  `json:"id"`
 | 
						|
	TagName      string `json:"tag_name"`
 | 
						|
	Target       string `json:"target_commitish"`
 | 
						|
	Title        string `json:"name"`
 | 
						|
	Note         string `json:"body"`
 | 
						|
	URL          string `json:"url"`
 | 
						|
	HTMLURL      string `json:"html_url"`
 | 
						|
	TarURL       string `json:"tarball_url"`
 | 
						|
	ZipURL       string `json:"zipball_url"`
 | 
						|
	UploadURL    string `json:"upload_url"`
 | 
						|
	IsDraft      bool   `json:"draft"`
 | 
						|
	IsPrerelease bool   `json:"prerelease"`
 | 
						|
	// swagger:strfmt date-time
 | 
						|
	CreatedAt time.Time `json:"created_at"`
 | 
						|
	// swagger:strfmt date-time
 | 
						|
	PublishedAt time.Time     `json:"published_at"`
 | 
						|
	Publisher   *User         `json:"author"`
 | 
						|
	Attachments []*Attachment `json:"assets"`
 | 
						|
}
 | 
						|
 | 
						|
// CreateReleaseOption options when creating a release
 | 
						|
type CreateReleaseOption struct {
 | 
						|
	// required: true
 | 
						|
	TagName      string `json:"tag_name" binding:"Required"`
 | 
						|
	Target       string `json:"target_commitish"`
 | 
						|
	Title        string `json:"name"`
 | 
						|
	Note         string `json:"body"`
 | 
						|
	IsDraft      bool   `json:"draft"`
 | 
						|
	IsPrerelease bool   `json:"prerelease"`
 | 
						|
}
 | 
						|
 | 
						|
// EditReleaseOption options when editing a release
 | 
						|
type EditReleaseOption struct {
 | 
						|
	TagName      string `json:"tag_name"`
 | 
						|
	Target       string `json:"target_commitish"`
 | 
						|
	Title        string `json:"name"`
 | 
						|
	Note         string `json:"body"`
 | 
						|
	IsDraft      *bool  `json:"draft"`
 | 
						|
	IsPrerelease *bool  `json:"prerelease"`
 | 
						|
}
 |