summaryrefslogtreecommitdiffstats
path: root/modules/structs/repo_tag.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/structs/repo_tag.go')
-rw-r--r--modules/structs/repo_tag.go76
1 files changed, 76 insertions, 0 deletions
diff --git a/modules/structs/repo_tag.go b/modules/structs/repo_tag.go
new file mode 100644
index 0000000..1bea5b3
--- /dev/null
+++ b/modules/structs/repo_tag.go
@@ -0,0 +1,76 @@
+// Copyright 2019 The Gitea Authors. All rights reserved.
+// SPDX-License-Identifier: MIT
+
+package structs
+
+import "time"
+
+// Tag represents a repository tag
+type Tag struct {
+ Name string `json:"name"`
+ Message string `json:"message"`
+ ID string `json:"id"`
+ Commit *CommitMeta `json:"commit"`
+ ZipballURL string `json:"zipball_url"`
+ TarballURL string `json:"tarball_url"`
+ ArchiveDownloadCount *TagArchiveDownloadCount `json:"archive_download_count"`
+}
+
+// AnnotatedTag represents an annotated tag
+type AnnotatedTag struct {
+ Tag string `json:"tag"`
+ SHA string `json:"sha"`
+ URL string `json:"url"`
+ Message string `json:"message"`
+ Tagger *CommitUser `json:"tagger"`
+ Object *AnnotatedTagObject `json:"object"`
+ Verification *PayloadCommitVerification `json:"verification"`
+ ArchiveDownloadCount *TagArchiveDownloadCount `json:"archive_download_count"`
+}
+
+// AnnotatedTagObject contains meta information of the tag object
+type AnnotatedTagObject struct {
+ Type string `json:"type"`
+ URL string `json:"url"`
+ SHA string `json:"sha"`
+}
+
+// CreateTagOption options when creating a tag
+type CreateTagOption struct {
+ // required: true
+ TagName string `json:"tag_name" binding:"Required"`
+ Message string `json:"message"`
+ Target string `json:"target"`
+}
+
+// TagArchiveDownloadCount counts how many times a archive was downloaded
+type TagArchiveDownloadCount struct {
+ Zip int64 `json:"zip"`
+ TarGz int64 `json:"tar_gz"`
+}
+
+// TagProtection represents a tag protection
+type TagProtection struct {
+ ID int64 `json:"id"`
+ NamePattern string `json:"name_pattern"`
+ WhitelistUsernames []string `json:"whitelist_usernames"`
+ WhitelistTeams []string `json:"whitelist_teams"`
+ // swagger:strfmt date-time
+ Created time.Time `json:"created_at"`
+ // swagger:strfmt date-time
+ Updated time.Time `json:"updated_at"`
+}
+
+// CreateTagProtectionOption options for creating a tag protection
+type CreateTagProtectionOption struct {
+ NamePattern string `json:"name_pattern"`
+ WhitelistUsernames []string `json:"whitelist_usernames"`
+ WhitelistTeams []string `json:"whitelist_teams"`
+}
+
+// EditTagProtectionOption options for editing a tag protection
+type EditTagProtectionOption struct {
+ NamePattern *string `json:"name_pattern"`
+ WhitelistUsernames []string `json:"whitelist_usernames"`
+ WhitelistTeams []string `json:"whitelist_teams"`
+}