You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.9 KiB
Go
68 lines
1.9 KiB
Go
package scm
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
)
|
|
|
|
type (
|
|
// Release the release
|
|
Release struct {
|
|
ID int
|
|
Title string
|
|
Description string
|
|
Link string
|
|
Tag string
|
|
Commitish string
|
|
Draft bool
|
|
Prerelease bool
|
|
Created time.Time
|
|
Published time.Time
|
|
}
|
|
|
|
// ReleaseInput contains the information needed to create a release
|
|
ReleaseInput struct {
|
|
Title string
|
|
Description string
|
|
Tag string
|
|
Commitish string
|
|
Draft bool
|
|
Prerelease bool
|
|
}
|
|
|
|
// ReleaseListOptions provides options for querying a list of repository releases.
|
|
ReleaseListOptions struct {
|
|
Page int
|
|
Size int
|
|
Open bool
|
|
Closed bool
|
|
}
|
|
|
|
// ReleaseService provides access to creating, listing, updating, and deleting releases
|
|
ReleaseService interface {
|
|
// Find returns the release for the given number in the given repository
|
|
Find(context.Context, string, int) (*Release, *Response, error)
|
|
|
|
// FindByTag returns the release for the given tag in the given repository
|
|
FindByTag(context.Context, string, string) (*Release, *Response, error)
|
|
|
|
// List returns a list of releases in the given repository
|
|
List(context.Context, string, ReleaseListOptions) ([]*Release, *Response, error)
|
|
|
|
// Create creates a release in the given repository
|
|
Create(context.Context, string, *ReleaseInput) (*Release, *Response, error)
|
|
|
|
// Update updates a release in the given repository
|
|
Update(context.Context, string, int, *ReleaseInput) (*Release, *Response, error)
|
|
|
|
// UpdateByTag deletes a release in the given repository by tag
|
|
UpdateByTag(context.Context, string, string, *ReleaseInput) (*Release, *Response, error)
|
|
|
|
// Delete deletes a release in the given repository
|
|
Delete(context.Context, string, int) (*Response, error)
|
|
|
|
// DeleteByTag deletes a release in the given repository by tag
|
|
DeleteByTag(context.Context, string, string) (*Response, error)
|
|
}
|
|
)
|