mirror of
https://github.com/hanzoai/forge.git
synced 2026-10-30 15:00:39 +00:00
Source files keep their SPDX-License-Identifier and Hanzo copyright line; the Gitea, Gogs and LFS Test Server copyrights they used to repeat now live once in NOTICE, alongside LICENSE. The header lint accepts any copyright line above the SPDX line, so it no longer demands an upstream one. Co-authored-by: Hanzo Dev <[email protected]>
101 lines
3.3 KiB
Go
101 lines
3.3 KiB
Go
// Copyright 2026 Hanzo AI, Inc. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package structs
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// Comment represents a comment on a commit or issue
|
|
type Comment struct {
|
|
// ID is the unique identifier for the comment
|
|
ID int64 `json:"id"`
|
|
// HTMLURL is the web URL for viewing the comment
|
|
HTMLURL string `json:"html_url"`
|
|
// PRURL is the API URL for the pull request (if applicable)
|
|
PRURL string `json:"pull_request_url"`
|
|
// IssueURL is the API URL for the issue
|
|
IssueURL string `json:"issue_url"`
|
|
// Poster is the user who posted the comment
|
|
Poster *User `json:"user"`
|
|
// OriginalAuthor is the original author name (for imported comments)
|
|
OriginalAuthor string `json:"original_author"`
|
|
// OriginalAuthorID is the original author ID (for imported comments)
|
|
OriginalAuthorID int64 `json:"original_author_id"`
|
|
// Body contains the comment text content
|
|
Body string `json:"body"`
|
|
// Attachments contains files attached to the comment
|
|
Attachments []*Attachment `json:"assets"`
|
|
// swagger:strfmt date-time
|
|
Created time.Time `json:"created_at"`
|
|
// swagger:strfmt date-time
|
|
Updated time.Time `json:"updated_at"`
|
|
}
|
|
|
|
// CreateIssueCommentOption options for creating a comment on an issue
|
|
type CreateIssueCommentOption struct {
|
|
// required:true
|
|
// Body is the comment text content
|
|
Body string `json:"body" binding:"Required"`
|
|
}
|
|
|
|
// EditIssueCommentOption options for editing a comment
|
|
type EditIssueCommentOption struct {
|
|
// required: true
|
|
// Body is the updated comment text content
|
|
Body string `json:"body" binding:"Required"`
|
|
}
|
|
|
|
// TimelineComment represents a timeline comment (comment of any type) on a commit or issue
|
|
type TimelineComment struct {
|
|
// ID is the unique identifier for the timeline comment
|
|
ID int64 `json:"id"`
|
|
// Type indicates the type of timeline event
|
|
Type string `json:"type"`
|
|
|
|
// HTMLURL is the web URL for viewing the comment
|
|
HTMLURL string `json:"html_url"`
|
|
// PRURL is the API URL for the pull request (if applicable)
|
|
PRURL string `json:"pull_request_url"`
|
|
// IssueURL is the API URL for the issue
|
|
IssueURL string `json:"issue_url"`
|
|
// Poster is the user who created the timeline event
|
|
Poster *User `json:"user"`
|
|
// Body contains the timeline event content
|
|
Body string `json:"body"`
|
|
// swagger:strfmt date-time
|
|
Created time.Time `json:"created_at"`
|
|
// swagger:strfmt date-time
|
|
Updated time.Time `json:"updated_at"`
|
|
|
|
OldProjectID int64 `json:"old_project_id"`
|
|
ProjectID int64 `json:"project_id"`
|
|
OldMilestone *Milestone `json:"old_milestone"`
|
|
Milestone *Milestone `json:"milestone"`
|
|
TrackedTime *TrackedTime `json:"tracked_time"`
|
|
OldTitle string `json:"old_title"`
|
|
NewTitle string `json:"new_title"`
|
|
OldRef string `json:"old_ref"`
|
|
NewRef string `json:"new_ref"`
|
|
|
|
RefIssue *Issue `json:"ref_issue"`
|
|
RefComment *Comment `json:"ref_comment"`
|
|
RefAction string `json:"ref_action"`
|
|
// commit SHA where issue/PR was referenced
|
|
RefCommitSHA string `json:"ref_commit_sha"`
|
|
|
|
ReviewID int64 `json:"review_id"`
|
|
|
|
Label *Label `json:"label"`
|
|
|
|
Assignee *User `json:"assignee"`
|
|
AssigneeTeam *Team `json:"assignee_team"`
|
|
// whether the assignees were removed or added
|
|
RemovedAssignee bool `json:"removed_assignee"`
|
|
|
|
ResolveDoer *User `json:"resolve_doer"`
|
|
|
|
DependentIssue *Issue `json:"dependent_issue"`
|
|
}
|