mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-15 14:08:21 +00:00
3aba72c613
Backport #21011 When migrating add several more important sanity checks: * SHAs must be SHAs * Refs must be valid Refs * URLs must be reasonable Signed-off-by: Andrew Thornton <art27@cantab.net>
48 lines
1.6 KiB
Go
48 lines
1.6 KiB
Go
// Copyright 2019 The Gitea Authors. All rights reserved.
|
|
// Use of this source code is governed by a MIT-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package migration
|
|
|
|
import (
|
|
"io"
|
|
"time"
|
|
)
|
|
|
|
// ReleaseAsset represents a release asset
|
|
type ReleaseAsset struct {
|
|
ID int64
|
|
Name string
|
|
ContentType *string `yaml:"content_type"`
|
|
Size *int
|
|
DownloadCount *int `yaml:"download_count"`
|
|
Created time.Time
|
|
Updated time.Time
|
|
|
|
DownloadURL *string `yaml:"download_url"` // SECURITY: It is the responsibility of downloader to make sure this is safe
|
|
// if DownloadURL is nil, the function should be invoked
|
|
DownloadFunc func() (io.ReadCloser, error) `yaml:"-"` // SECURITY: It is the responsibility of downloader to make sure this is safe
|
|
}
|
|
|
|
// Release represents a release
|
|
type Release struct {
|
|
TagName string `yaml:"tag_name"` // SECURITY: This must pass git.IsValidRefPattern
|
|
TargetCommitish string `yaml:"target_commitish"` // SECURITY: This must pass git.IsValidRefPattern
|
|
Name string
|
|
Body string
|
|
Draft bool
|
|
Prerelease bool
|
|
PublisherID int64 `yaml:"publisher_id"`
|
|
PublisherName string `yaml:"publisher_name"`
|
|
PublisherEmail string `yaml:"publisher_email"`
|
|
Assets []*ReleaseAsset
|
|
Created time.Time
|
|
Published time.Time
|
|
}
|
|
|
|
// GetExternalName ExternalUserMigrated interface
|
|
func (r *Release) GetExternalName() string { return r.PublisherName }
|
|
|
|
// GetExternalID ExternalUserMigrated interface
|
|
func (r *Release) GetExternalID() int64 { return r.PublisherID }
|