57 lines
1.5 KiB
Go
57 lines
1.5 KiB
Go
// Copyright 2026 The Gitea 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 gitea
|
|
|
|
import (
|
|
"fmt"
|
|
"net/url"
|
|
)
|
|
|
|
// Note represents a git note
|
|
type Note struct {
|
|
Message string `json:"message"`
|
|
Commit *Commit `json:"commit"`
|
|
}
|
|
|
|
// GetRepoNoteOptions options for getting a note
|
|
type GetRepoNoteOptions struct {
|
|
// include verification for every commit (disable for speedup, default 'true')
|
|
Verification *bool `json:"verification,omitempty"`
|
|
// include a list of affected files for every commit (disable for speedup, default 'true')
|
|
Files *bool `json:"files,omitempty"`
|
|
}
|
|
|
|
// GetRepoNote gets a note corresponding to a single commit from a repository
|
|
func (c *Client) GetRepoNote(owner, repo, sha string, opt GetRepoNoteOptions) (*Note, *Response, error) {
|
|
if err := escapeValidatePathSegments(&owner, &repo, &sha); err != nil {
|
|
return nil, nil, err
|
|
}
|
|
|
|
link, _ := url.Parse(fmt.Sprintf("/repos/%s/%s/git/notes/%s", owner, repo, sha))
|
|
query := link.Query()
|
|
|
|
if opt.Verification != nil {
|
|
if *opt.Verification {
|
|
query.Add("verification", "true")
|
|
} else {
|
|
query.Add("verification", "false")
|
|
}
|
|
}
|
|
|
|
if opt.Files != nil {
|
|
if *opt.Files {
|
|
query.Add("files", "true")
|
|
} else {
|
|
query.Add("files", "false")
|
|
}
|
|
}
|
|
|
|
link.RawQuery = query.Encode()
|
|
|
|
note := new(Note)
|
|
resp, err := c.getParsedResponse("GET", link.String(), jsonHeader, nil, ¬e)
|
|
return note, resp, err
|
|
}
|