* Store original author info for migrated issues and comments Keep original author name for displaying in Gitea interface and also store original author user ID for potential future use in linking accounts from old location. * Add original_url for repo Store the original URL for a migrated repo Clean up migrations/tests * fix migration * fix golangci-lint * make 'make revive' happy also * Modify templates to use OriginalAuthor if set Use the original author name in templates if it is set rather than the user who migrated/currently owns the issues * formatting fixes * make generate-swagger * Use default avatar for imported comments * Remove no longer used IgnoreIssueAuthor option * Add OriginalAuthorID to swagger also
		
			
				
	
	
		
			116 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2016 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.
 | |
| 
 | |
| package structs
 | |
| 
 | |
| import (
 | |
| 	"time"
 | |
| )
 | |
| 
 | |
| // StateType issue state type
 | |
| type StateType string
 | |
| 
 | |
| const (
 | |
| 	// StateOpen pr is opend
 | |
| 	StateOpen StateType = "open"
 | |
| 	// StateClosed pr is closed
 | |
| 	StateClosed StateType = "closed"
 | |
| 	// StateAll is all
 | |
| 	StateAll StateType = "all"
 | |
| )
 | |
| 
 | |
| // PullRequestMeta PR info if an issue is a PR
 | |
| type PullRequestMeta struct {
 | |
| 	HasMerged bool       `json:"merged"`
 | |
| 	Merged    *time.Time `json:"merged_at"`
 | |
| }
 | |
| 
 | |
| // Issue represents an issue in a repository
 | |
| // swagger:model
 | |
| type Issue struct {
 | |
| 	ID               int64      `json:"id"`
 | |
| 	URL              string     `json:"url"`
 | |
| 	Index            int64      `json:"number"`
 | |
| 	Poster           *User      `json:"user"`
 | |
| 	OriginalAuthor   string     `json:"original_author"`
 | |
| 	OriginalAuthorID int64      `json:"original_author_id"`
 | |
| 	Title            string     `json:"title"`
 | |
| 	Body             string     `json:"body"`
 | |
| 	Labels           []*Label   `json:"labels"`
 | |
| 	Milestone        *Milestone `json:"milestone"`
 | |
| 	Assignee         *User      `json:"assignee"`
 | |
| 	Assignees        []*User    `json:"assignees"`
 | |
| 	// Whether the issue is open or closed
 | |
| 	//
 | |
| 	// type: string
 | |
| 	// enum: open,closed
 | |
| 	State    StateType `json:"state"`
 | |
| 	Comments int       `json:"comments"`
 | |
| 	// swagger:strfmt date-time
 | |
| 	Created time.Time `json:"created_at"`
 | |
| 	// swagger:strfmt date-time
 | |
| 	Updated time.Time `json:"updated_at"`
 | |
| 	// swagger:strfmt date-time
 | |
| 	Closed *time.Time `json:"closed_at"`
 | |
| 	// swagger:strfmt date-time
 | |
| 	Deadline *time.Time `json:"due_date"`
 | |
| 
 | |
| 	PullRequest *PullRequestMeta `json:"pull_request"`
 | |
| }
 | |
| 
 | |
| // ListIssueOption list issue options
 | |
| type ListIssueOption struct {
 | |
| 	Page  int
 | |
| 	State string
 | |
| }
 | |
| 
 | |
| // CreateIssueOption options to create one issue
 | |
| type CreateIssueOption struct {
 | |
| 	// required:true
 | |
| 	Title string `json:"title" binding:"Required"`
 | |
| 	Body  string `json:"body"`
 | |
| 	// username of assignee
 | |
| 	Assignee  string   `json:"assignee"`
 | |
| 	Assignees []string `json:"assignees"`
 | |
| 	// swagger:strfmt date-time
 | |
| 	Deadline *time.Time `json:"due_date"`
 | |
| 	// milestone id
 | |
| 	Milestone int64 `json:"milestone"`
 | |
| 	// list of label ids
 | |
| 	Labels []int64 `json:"labels"`
 | |
| 	Closed bool    `json:"closed"`
 | |
| }
 | |
| 
 | |
| // EditIssueOption options for editing an issue
 | |
| type EditIssueOption struct {
 | |
| 	Title     string   `json:"title"`
 | |
| 	Body      *string  `json:"body"`
 | |
| 	Assignee  *string  `json:"assignee"`
 | |
| 	Assignees []string `json:"assignees"`
 | |
| 	Milestone *int64   `json:"milestone"`
 | |
| 	State     *string  `json:"state"`
 | |
| 	// swagger:strfmt date-time
 | |
| 	Deadline *time.Time `json:"due_date"`
 | |
| }
 | |
| 
 | |
| // EditDeadlineOption options for creating a deadline
 | |
| type EditDeadlineOption struct {
 | |
| 	// required:true
 | |
| 	// swagger:strfmt date-time
 | |
| 	Deadline *time.Time `json:"due_date"`
 | |
| }
 | |
| 
 | |
| // IssueDeadline represents an issue deadline
 | |
| // swagger:model
 | |
| type IssueDeadline struct {
 | |
| 	// swagger:strfmt date-time
 | |
| 	Deadline *time.Time `json:"due_date"`
 | |
| }
 | |
| 
 | |
| // EditPriorityOption options for updating priority
 | |
| type EditPriorityOption struct {
 | |
| 	// required:true
 | |
| 	Priority int `json:"priority"`
 | |
| }
 |