mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 00:20:25 +08:00 
			
		
		
		
	Api: advanced settings for repository (external wiki, issue tracker etc.) (#7756)
* Add API for Repo Advanced Settings of wiki and issue tracker Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add some integration tests for tracker and wiki settings through API * Should return StatusUnprocessableEntity in case of invalid API values. * Add tests for invalid URLs for external tracker and wiki. * Do not set inital values if they are default of type * Make issue tracker and wiki units separate structures in Repository API structure. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix comment of structures Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Rewrite API to use struct for setting tracker and wiki settings. * LetOnlyContributorsTrackTime -> AllowOnlyContributorsToTrackTime
This commit is contained in:
		
				
					committed by
					
						
						Lunny Xiao
					
				
			
			
				
	
			
			
			
						parent
						
							f8899678d2
						
					
				
				
					commit
					90ab3056eb
				
			@@ -15,6 +15,35 @@ type Permission struct {
 | 
			
		||||
	Pull  bool `json:"pull"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// InternalTracker represents settings for internal tracker
 | 
			
		||||
// swagger:model
 | 
			
		||||
type InternalTracker struct {
 | 
			
		||||
	// Enable time tracking (Built-in issue tracker)
 | 
			
		||||
	EnableTimeTracker bool `json:"enable_time_tracker"`
 | 
			
		||||
	// Let only contributors track time (Built-in issue tracker)
 | 
			
		||||
	AllowOnlyContributorsToTrackTime bool `json:"allow_only_contributors_to_track_time"`
 | 
			
		||||
	// Enable dependencies for issues and pull requests (Built-in issue tracker)
 | 
			
		||||
	EnableIssueDependencies bool `json:"enable_issue_dependencies"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ExternalTracker represents settings for external tracker
 | 
			
		||||
// swagger:model
 | 
			
		||||
type ExternalTracker struct {
 | 
			
		||||
	// URL of external issue tracker.
 | 
			
		||||
	ExternalTrackerURL string `json:"external_tracker_url"`
 | 
			
		||||
	// External Issue Tracker URL Format. Use the placeholders {user}, {repo} and {index} for the username, repository name and issue index.
 | 
			
		||||
	ExternalTrackerFormat string `json:"external_tracker_format"`
 | 
			
		||||
	// External Issue Tracker Number Format, either `numeric` or `alphanumeric`
 | 
			
		||||
	ExternalTrackerStyle string `json:"external_tracker_style"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ExternalWiki represents setting for external wiki
 | 
			
		||||
// swagger:model
 | 
			
		||||
type ExternalWiki struct {
 | 
			
		||||
	// URL of external wiki.
 | 
			
		||||
	ExternalWikiURL string `json:"external_wiki_url"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Repository represents a repository
 | 
			
		||||
type Repository struct {
 | 
			
		||||
	ID            int64       `json:"id"`
 | 
			
		||||
@@ -42,17 +71,20 @@ type Repository struct {
 | 
			
		||||
	// swagger:strfmt date-time
 | 
			
		||||
	Created time.Time `json:"created_at"`
 | 
			
		||||
	// swagger:strfmt date-time
 | 
			
		||||
	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"`
 | 
			
		||||
	Updated                   time.Time        `json:"updated_at"`
 | 
			
		||||
	Permissions               *Permission      `json:"permissions,omitempty"`
 | 
			
		||||
	HasIssues                 bool             `json:"has_issues"`
 | 
			
		||||
	InternalTracker           *InternalTracker `json:"internal_tracker,omitempty"`
 | 
			
		||||
	ExternalTracker           *ExternalTracker `json:"external_tracker,omitempty"`
 | 
			
		||||
	HasWiki                   bool             `json:"has_wiki"`
 | 
			
		||||
	ExternalWiki              *ExternalWiki    `json:"external_wiki,omitempty"`
 | 
			
		||||
	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"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CreateRepoOption options when creating repository
 | 
			
		||||
@@ -95,8 +127,14 @@ type EditRepoOption struct {
 | 
			
		||||
	Private *bool `json:"private,omitempty"`
 | 
			
		||||
	// either `true` to enable issues for this repository or `false` to disable them.
 | 
			
		||||
	HasIssues *bool `json:"has_issues,omitempty"`
 | 
			
		||||
	// set this structure to configure internal issue tracker (requires has_issues)
 | 
			
		||||
	InternalTracker *InternalTracker `json:"internal_tracker,omitempty"`
 | 
			
		||||
	// set this structure to use external issue tracker (requires has_issues)
 | 
			
		||||
	ExternalTracker *ExternalTracker `json:"external_tracker,omitempty"`
 | 
			
		||||
	// either `true` to enable the wiki for this repository or `false` to disable it.
 | 
			
		||||
	HasWiki *bool `json:"has_wiki,omitempty"`
 | 
			
		||||
	// set this structure to use external wiki instead of internal (requires has_wiki)
 | 
			
		||||
	ExternalWiki *ExternalWiki `json:"external_wiki,omitempty"`
 | 
			
		||||
	// sets the default branch for this repository.
 | 
			
		||||
	DefaultBranch *string `json:"default_branch,omitempty"`
 | 
			
		||||
	// either `true` to allow pull requests, or `false` to prevent pull request.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user