From 545830e497fb92742f8aace41043c458a51c999c Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sat, 24 Nov 2018 19:03:22 +0800 Subject: [PATCH] Add repo trees (#94) * add repo trees * Update copyright --- gitea/repo_tree.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 gitea/repo_tree.go diff --git a/gitea/repo_tree.go b/gitea/repo_tree.go new file mode 100644 index 0000000..0385a70 --- /dev/null +++ b/gitea/repo_tree.go @@ -0,0 +1,35 @@ +// 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) (*GitTreeResponse, error) { + var trees GitTreeResponse + _, err := c.getResponse("GET", fmt.Sprintf("/repos/%s/%s/git/trees/%s", user, repo, ref), nil, nil) + return &trees, err +}