2016-11-07 19:23:13 +05:30
// Copyright 2014 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
2019-05-11 15:51:34 +05:30
package structs
2016-11-07 19:23:13 +05:30
import (
"time"
)
2017-11-13 12:32:25 +05:30
// Permission represents a set of permissions
2016-11-07 19:23:13 +05:30
type Permission struct {
Admin bool ` json:"admin" `
Push bool ` json:"push" `
Pull bool ` json:"pull" `
}
2017-11-13 12:32:25 +05:30
// Repository represents a repository
2016-11-07 19:23:13 +05:30
type Repository struct {
ID int64 ` json:"id" `
Owner * User ` json:"owner" `
Name string ` json:"name" `
FullName string ` json:"full_name" `
Description string ` json:"description" `
2017-05-05 08:25:54 +05:30
Empty bool ` json:"empty" `
2016-11-07 19:23:13 +05:30
Private bool ` json:"private" `
Fork bool ` json:"fork" `
2017-05-12 08:39:26 +05:30
Parent * Repository ` json:"parent" `
2017-02-23 05:23:33 +05:30
Mirror bool ` json:"mirror" `
2017-05-05 08:25:54 +05:30
Size int ` json:"size" `
2016-11-07 19:23:13 +05:30
HTMLURL string ` json:"html_url" `
SSHURL string ` json:"ssh_url" `
CloneURL string ` json:"clone_url" `
2019-07-08 07:44:12 +05:30
OriginalURL string ` json:"original_url" `
2016-11-07 19:23:13 +05:30
Website string ` json:"website" `
Stars int ` json:"stars_count" `
Forks int ` json:"forks_count" `
Watchers int ` json:"watchers_count" `
OpenIssues int ` json:"open_issues_count" `
DefaultBranch string ` json:"default_branch" `
2018-10-29 03:33:02 +05:30
Archived bool ` json:"archived" `
2017-11-13 12:32:25 +05:30
// swagger:strfmt date-time
2018-03-06 06:52:16 +05:30
Created time . Time ` json:"created_at" `
2017-11-13 12:32:25 +05:30
// swagger:strfmt date-time
2019-05-30 20:39:05 +05:30
Updated time . Time ` json:"updated_at" `
Permissions * Permission ` json:"permissions,omitempty" `
HasIssues bool ` json:"has_issues" `
HasWiki bool ` json:"has_wiki" `
HasPullRequests bool ` json:"has_pull_requests" `
IgnoreWhitespaceConflicts bool ` json:"ignore_whitespace_conflicts" `
AllowMerge bool ` json:"allow_merge_commits" `
AllowRebase bool ` json:"allow_rebase" `
AllowRebaseMerge bool ` json:"allow_rebase_explicit" `
AllowSquash bool ` json:"allow_squash_merge" `
AvatarURL string ` json:"avatar_url" `
2016-11-07 19:23:13 +05:30
}
2016-11-29 13:39:17 +05:30
// CreateRepoOption options when creating repository
2017-11-13 12:32:25 +05:30
// swagger:model
2016-11-07 19:23:13 +05:30
type CreateRepoOption struct {
2017-05-02 19:05:59 +05:30
// Name of the repository to create
//
2017-11-13 12:32:25 +05:30
// required: true
2017-05-02 19:05:59 +05:30
// unique: true
Name string ` json:"name" binding:"Required;AlphaDashDot;MaxSize(100)" `
// Description of the repository to create
2016-11-07 19:23:13 +05:30
Description string ` json:"description" binding:"MaxSize(255)" `
2017-11-13 12:32:25 +05:30
// Whether the repository is private
2017-05-02 19:05:59 +05:30
Private bool ` json:"private" `
2019-09-08 13:58:40 +05:30
// Issue Label set to use
IssueLabels string ` json:"issue_labels" `
2017-11-13 12:32:25 +05:30
// Whether the repository should be auto-intialized?
2017-05-02 19:05:59 +05:30
AutoInit bool ` json:"auto_init" `
// Gitignores to use
Gitignores string ` json:"gitignores" `
// License to use
License string ` json:"license" `
// Readme of the repository to create
Readme string ` json:"readme" `
2016-11-07 19:23:13 +05:30
}
2019-05-11 15:51:34 +05:30
// EditRepoOption options when editing a repository's properties
// swagger:model
type EditRepoOption struct {
2019-05-30 20:39:05 +05:30
// name of the repository
2019-05-11 15:51:34 +05:30
// unique: true
2019-05-30 20:39:05 +05:30
Name * string ` json:"name,omitempty" binding:"OmitEmpty;AlphaDashDot;MaxSize(100);" `
// a short description of the repository.
2019-05-11 15:51:34 +05:30
Description * string ` json:"description,omitempty" binding:"MaxSize(255)" `
2019-05-30 20:39:05 +05:30
// a URL with more information about the repository.
2019-05-11 15:51:34 +05:30
Website * string ` json:"website,omitempty" binding:"MaxSize(255)" `
2019-05-30 20:39:05 +05:30
// either `true` to make the repository private or `false` to make it public.
// Note: you will get a 422 error if the organization restricts changing repository visibility to organization
2019-05-11 15:51:34 +05:30
// owners and a non-owner tries to change the value of private.
Private * bool ` json:"private,omitempty" `
2019-05-30 20:39:05 +05:30
// either `true` to enable issues for this repository or `false` to disable them.
HasIssues * bool ` json:"has_issues,omitempty" `
// either `true` to enable the wiki for this repository or `false` to disable it.
HasWiki * bool ` json:"has_wiki,omitempty" `
// sets the default branch for this repository.
2019-05-11 15:51:34 +05:30
DefaultBranch * string ` json:"default_branch,omitempty" `
2019-05-30 20:39:05 +05:30
// either `true` to allow pull requests, or `false` to prevent pull request.
HasPullRequests * bool ` json:"has_pull_requests,omitempty" `
// either `true` to ignore whitespace for conflicts, or `false` to not ignore whitespace. `has_pull_requests` must be `true`.
IgnoreWhitespaceConflicts * bool ` json:"ignore_whitespace_conflicts,omitempty" `
// either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits. `has_pull_requests` must be `true`.
2019-05-11 15:51:34 +05:30
AllowMerge * bool ` json:"allow_merge_commits,omitempty" `
2019-05-30 20:39:05 +05:30
// either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. `has_pull_requests` must be `true`.
2019-05-11 15:51:34 +05:30
AllowRebase * bool ` json:"allow_rebase,omitempty" `
2019-05-30 20:39:05 +05:30
// either `true` to allow rebase with explicit merge commits (--no-ff), or `false` to prevent rebase with explicit merge commits. `has_pull_requests` must be `true`.
2019-05-11 15:51:34 +05:30
AllowRebaseMerge * bool ` json:"allow_rebase_explicit,omitempty" `
2019-05-30 20:39:05 +05:30
// either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. `has_pull_requests` must be `true`.
AllowSquash * bool ` json:"allow_squash_merge,omitempty" `
// set to `true` to archive this repository.
2019-05-11 15:51:34 +05:30
Archived * bool ` json:"archived,omitempty" `
2016-11-07 19:23:13 +05:30
}
2017-11-13 12:32:25 +05:30
// MigrateRepoOption options for migrating a repository from an external service
2016-11-07 19:23:13 +05:30
type MigrateRepoOption struct {
2017-11-13 12:32:25 +05:30
// required: true
2018-03-06 06:52:16 +05:30
CloneAddr string ` json:"clone_addr" binding:"Required" `
2016-11-07 19:23:13 +05:30
AuthUsername string ` json:"auth_username" `
AuthPassword string ` json:"auth_password" `
2017-11-13 12:32:25 +05:30
// required: true
2017-08-21 16:43:47 +05:30
UID int ` json:"uid" binding:"Required" `
2017-11-13 12:32:25 +05:30
// required: true
2018-03-06 06:52:16 +05:30
RepoName string ` json:"repo_name" binding:"Required" `
Mirror bool ` json:"mirror" `
Private bool ` json:"private" `
2017-08-21 16:43:47 +05:30
Description string ` json:"description" `
2016-11-07 19:23:13 +05:30
}