|
- // Copyright 2018 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"
- )
-
- // GitEntry represents a git tree
- type GitEntry struct {
- Path string `json:"path"`
- Mode string `json:"mode"`
- Type string `json:"type"`
- Size int64 `json:"size"`
- SHA string `json:"sha"`
- URL string `json:"url"`
- }
-
- // GitTreeResponse returns a git tree
- type GitTreeResponse struct {
- SHA string `json:"sha"`
- URL string `json:"url"`
- Entries []GitEntry `json:"tree"`
- Truncated bool `json:"truncated"`
- }
-
- // GetTrees downloads a file of repository, ref can be branch/tag/commit.
- // e.g.: ref -> master, tree -> macaron.go(no leading slash)
- func (c *Client) GetTrees(user, repo, ref string, recursive bool) (*GitTreeResponse, error) {
- var trees GitTreeResponse
- var path = fmt.Sprintf("/repos/%s/%s/git/trees/%s", user, repo, ref)
- if recursive {
- path += "?recursive=1"
- }
- err := c.getParsedResponse("GET", path, nil, nil, &trees)
- return &trees, err
- }
|