summaryrefslogtreecommitdiffstats
path: root/vendor/code.gitea.io
diff options
context:
space:
mode:
authorPeter Hoffmann <Hoffmann.P@gmx.net>2018-11-18 19:45:40 +0100
committertechknowlogick <hello@techknowlogick.com>2018-11-18 13:45:40 -0500
commite08c7e521b02859f0e53a858443e78b86c301884 (patch)
treec9b20317c40b866992540aae0384cf411ffabc8c /vendor/code.gitea.io
parent4651ba06c17856c5e613b8027461a42c17f17234 (diff)
downloadgitea-e08c7e521b02859f0e53a858443e78b86c301884.tar.gz
gitea-e08c7e521b02859f0e53a858443e78b86c301884.zip
Add raw blob endpoint to get objects by SHA ID (#5334)
* Add raw blob endpoint This should make it possible to download raw blobs directly from /:repo/:username/raw/blob/:sha1 URLs. * fix: Make it work * As an SHA-ID is no path getRefNameFromPath can't be used to verify file specifying parameter * added relevant change in go-gitea/git #132 Signed-off-by: Berengar W. Lehr <Berengar.Lehr@kompetenztest.de> * Update Gopkg.lock Can't update all vendors due to errors Signed-off-by: Berengar W. Lehr <Berengar.Lehr@kompetenztest.de> * style: Add Gitea copyright header * feat: Added integration test for /repo/u/r/raw/blob * fix: correct year in copyright header
Diffstat (limited to 'vendor/code.gitea.io')
-rw-r--r--vendor/code.gitea.io/git/repo_blob.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/vendor/code.gitea.io/git/repo_blob.go b/vendor/code.gitea.io/git/repo_blob.go
new file mode 100644
index 0000000000..a9445a1f7a
--- /dev/null
+++ b/vendor/code.gitea.io/git/repo_blob.go
@@ -0,0 +1,30 @@
+// 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 git
+
+func (repo *Repository) getBlob(id SHA1) (*Blob, error) {
+ if _, err := NewCommand("cat-file", "-p", id.String()).RunInDir(repo.Path); err != nil {
+ return nil, ErrNotExist{id.String(), ""}
+ }
+
+ return &Blob{
+ repo: repo,
+ TreeEntry: &TreeEntry{
+ ID: id,
+ ptree: &Tree{
+ repo: repo,
+ },
+ },
+ }, nil
+}
+
+// GetBlob finds the blob object in the repository.
+func (repo *Repository) GetBlob(idStr string) (*Blob, error) {
+ id, err := NewIDFromString(idStr)
+ if err != nil {
+ return nil, err
+ }
+ return repo.getBlob(id)
+}