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]>
50 lines
1.6 KiB
Go
50 lines
1.6 KiB
Go
// Copyright 2026 Hanzo AI, Inc. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package migration
|
|
|
|
import (
|
|
"io"
|
|
"time"
|
|
)
|
|
|
|
// ReleaseAsset represents a release asset
|
|
type ReleaseAsset struct {
|
|
ID int64
|
|
Name string
|
|
|
|
// There was a field "ContentType (content_type)" because Some forges can provide that for assets,
|
|
// but we don't need it when migrating, so the field is omitted here.
|
|
|
|
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 }
|