From 052bff0cff30f43ddd656bccc36b29bce3866393 Mon Sep 17 00:00:00 2001
From: zeripath <art27@cantab.net>
Date: Sat, 28 Mar 2020 18:59:21 +0000
Subject: [PATCH] Convert plumbing.ErrObjectNotFound to git.ErrNotExist in
 getCommit (#10862)

Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com>
Co-authored-by: Antoine GIRARD <sapk@users.noreply.github.com>
---
 modules/git/repo_commit.go | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/modules/git/repo_commit.go b/modules/git/repo_commit.go
index a7a7c66231..c5f6d6cdd6 100644
--- a/modules/git/repo_commit.go
+++ b/modules/git/repo_commit.go
@@ -94,9 +94,15 @@ func (repo *Repository) getCommit(id SHA1) (*Commit, error) {
 	gogitCommit, err := repo.gogitRepo.CommitObject(id)
 	if err == plumbing.ErrObjectNotFound {
 		tagObject, err = repo.gogitRepo.TagObject(id)
+		if err == plumbing.ErrObjectNotFound {
+			return nil, ErrNotExist{
+				ID: id.String(),
+			}
+		}
 		if err == nil {
 			gogitCommit, err = repo.gogitRepo.CommitObject(tagObject.Target)
 		}
+		// if we get a plumbing.ErrObjectNotFound here then the repository is broken and it should be 500
 	}
 	if err != nil {
 		return nil, err