2019-01-30 19:33:00 +03:00
// Copyright 2018 The Gogs Authors. All rights reserved.
// Copyright 2019 The Gitea Authors. All rights reserved.
2022-11-27 21:20:29 +03:00
// SPDX-License-Identifier: MIT
2019-01-30 19:33:00 +03:00
2019-05-11 13:21:34 +03:00
package structs
2019-01-30 19:33:00 +03:00
2019-12-24 05:33:52 +03:00
import (
"time"
)
2019-03-22 18:38:49 +03:00
// Identity for a person's identity like an author or committer
type Identity struct {
Name string ` json:"name" binding:"MaxSize(100)" `
// swagger:strfmt email
Email string ` json:"email" binding:"MaxSize(254)" `
}
2019-01-30 19:33:00 +03:00
// CommitMeta contains meta information of a commit in terms of API.
type CommitMeta struct {
URL string ` json:"url" `
SHA string ` json:"sha" `
2020-10-05 07:07:54 +03:00
// swagger:strfmt date-time
Created time . Time ` json:"created" `
2019-01-30 19:33:00 +03:00
}
// CommitUser contains information of a user in the context of a commit.
type CommitUser struct {
2019-03-22 18:38:49 +03:00
Identity
Date string ` json:"date" `
2019-01-30 19:33:00 +03:00
}
// RepoCommit contains information of a commit in the context of a repository.
type RepoCommit struct {
2022-03-29 18:47:44 +03:00
URL string ` json:"url" `
Author * CommitUser ` json:"author" `
Committer * CommitUser ` json:"committer" `
Message string ` json:"message" `
Tree * CommitMeta ` json:"tree" `
Verification * PayloadCommitVerification ` json:"verification" `
}
// CommitStats is statistics for a RepoCommit
type CommitStats struct {
Total int ` json:"total" `
Additions int ` json:"additions" `
Deletions int ` json:"deletions" `
2019-01-30 19:33:00 +03:00
}
// Commit contains information generated from a Git commit.
type Commit struct {
* CommitMeta
2021-02-07 17:43:40 +03:00
HTMLURL string ` json:"html_url" `
RepoCommit * RepoCommit ` json:"commit" `
Author * User ` json:"author" `
Committer * User ` json:"committer" `
Parents [ ] * CommitMeta ` json:"parents" `
Files [ ] * CommitAffectedFiles ` json:"files" `
2022-03-29 18:47:44 +03:00
Stats * CommitStats ` json:"stats" `
2019-01-30 19:33:00 +03:00
}
2019-12-24 05:33:52 +03:00
// CommitDateOptions store dates for GIT_AUTHOR_DATE and GIT_COMMITTER_DATE
type CommitDateOptions struct {
// swagger:strfmt date-time
Author time . Time ` json:"author" `
// swagger:strfmt date-time
Committer time . Time ` json:"committer" `
}
2021-02-07 17:43:40 +03:00
// CommitAffectedFiles store information about files affected by the commit
type CommitAffectedFiles struct {
Filename string ` json:"filename" `
2023-07-20 11:35:47 +03:00
Status string ` json:"status" `
2021-02-07 17:43:40 +03:00
}