2016-11-07 16:53:13 +03:00
// 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.
2019-05-11 13:21:34 +03:00
package structs
2016-11-07 16:53:13 +03:00
import (
"time"
)
2016-11-29 11:09:17 +03:00
// StateType issue state type
2016-11-07 16:53:13 +03:00
type StateType string
const (
2016-11-29 11:09:17 +03:00
// StateOpen pr is opend
StateOpen StateType = "open"
// StateClosed pr is closed
StateClosed StateType = "closed"
2019-06-06 03:37:45 +03:00
// StateAll is all
StateAll StateType = "all"
2016-11-07 16:53:13 +03:00
)
2016-11-29 11:09:17 +03:00
// PullRequestMeta PR info if an issue is a PR
2016-11-07 16:53:13 +03:00
type PullRequestMeta struct {
HasMerged bool ` json:"merged" `
Merged * time . Time ` json:"merged_at" `
}
2017-11-13 10:02:25 +03:00
// Issue represents an issue in a repository
// swagger:model
2016-11-07 16:53:13 +03:00
type Issue struct {
2019-07-08 05:14:12 +03:00
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" `
2017-11-13 10:02:25 +03:00
// Whether the issue is open or closed
//
// type: string
// enum: open,closed
2018-03-06 04:22:16 +03:00
State StateType ` json:"state" `
Comments int ` json:"comments" `
2017-11-13 10:02:25 +03:00
// swagger:strfmt date-time
2018-03-06 04:22:16 +03:00
Created time . Time ` json:"created_at" `
2017-11-13 10:02:25 +03:00
// swagger:strfmt date-time
2018-03-06 04:22:16 +03:00
Updated time . Time ` json:"updated_at" `
2018-05-01 22:05:28 +03:00
// swagger:strfmt date-time
Closed * time . Time ` json:"closed_at" `
// swagger:strfmt date-time
Deadline * time . Time ` json:"due_date" `
2016-11-07 16:53:13 +03:00
PullRequest * PullRequestMeta ` json:"pull_request" `
}
2016-11-29 11:09:17 +03:00
// ListIssueOption list issue options
2016-11-07 16:53:13 +03:00
type ListIssueOption struct {
2016-11-29 11:09:17 +03:00
Page int
State string
2016-11-07 16:53:13 +03:00
}
2016-11-29 11:09:17 +03:00
// CreateIssueOption options to create one issue
2016-11-07 16:53:13 +03:00
type CreateIssueOption struct {
2017-11-13 10:02:25 +03:00
// required:true
2018-03-06 04:22:16 +03:00
Title string ` json:"title" binding:"Required" `
Body string ` json:"body" `
2017-11-13 10:02:25 +03:00
// username of assignee
2018-05-01 22:05:28 +03:00
Assignee string ` json:"assignee" `
Assignees [ ] string ` json:"assignees" `
// swagger:strfmt date-time
Deadline * time . Time ` json:"due_date" `
2017-11-13 10:02:25 +03:00
// milestone id
2018-03-06 04:22:16 +03:00
Milestone int64 ` json:"milestone" `
2017-11-13 10:02:25 +03:00
// list of label ids
2018-03-06 04:22:16 +03:00
Labels [ ] int64 ` json:"labels" `
Closed bool ` json:"closed" `
2016-11-07 16:53:13 +03:00
}
2017-11-13 10:02:25 +03:00
// EditIssueOption options for editing an issue
2016-11-07 16:53:13 +03:00
type EditIssueOption struct {
2018-05-16 17:01:55 +03:00
Title string ` json:"title" `
Body * string ` json:"body" `
Assignee * string ` json:"assignee" `
Assignees [ ] string ` json:"assignees" `
Milestone * int64 ` json:"milestone" `
State * string ` json:"state" `
2018-05-01 22:05:28 +03:00
// swagger:strfmt date-time
2018-05-16 17:01:55 +03:00
Deadline * time . Time ` json:"due_date" `
2016-11-07 16:53:13 +03:00
}
2018-05-16 17:01:55 +03:00
// 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" `
}
2018-10-29 01:03:02 +03:00
// EditPriorityOption options for updating priority
type EditPriorityOption struct {
// required:true
Priority int ` json:"priority" `
}