Fix 500 on README in submodule (#13006)
If a README file is a symlink to a submodule Gitea the view branch page will return a 500. The underlying problem is a missed conversion of an plumbing.ErrObjectNotFound in git/tree_blob.go. Fix #12599 Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
		
							parent
							
								
									86b8c81240
								
							
						
					
					
						commit
						54dd28f159
					
				
					 1 changed files with 11 additions and 0 deletions
				
			
		|  | @ -9,6 +9,7 @@ import ( | |||
| 	"path" | ||||
| 	"strings" | ||||
| 
 | ||||
| 	"github.com/go-git/go-git/v5/plumbing" | ||||
| 	"github.com/go-git/go-git/v5/plumbing/filemode" | ||||
| 	"github.com/go-git/go-git/v5/plumbing/object" | ||||
| ) | ||||
|  | @ -35,6 +36,11 @@ func (t *Tree) GetTreeEntryByPath(relpath string) (*TreeEntry, error) { | |||
| 		if i == len(parts)-1 { | ||||
| 			entries, err := tree.ListEntries() | ||||
| 			if err != nil { | ||||
| 				if err == plumbing.ErrObjectNotFound { | ||||
| 					return nil, ErrNotExist{ | ||||
| 						RelPath: relpath, | ||||
| 					} | ||||
| 				} | ||||
| 				return nil, err | ||||
| 			} | ||||
| 			for _, v := range entries { | ||||
|  | @ -45,6 +51,11 @@ func (t *Tree) GetTreeEntryByPath(relpath string) (*TreeEntry, error) { | |||
| 		} else { | ||||
| 			tree, err = tree.SubTree(name) | ||||
| 			if err != nil { | ||||
| 				if err == plumbing.ErrObjectNotFound { | ||||
| 					return nil, ErrNotExist{ | ||||
| 						RelPath: relpath, | ||||
| 					} | ||||
| 				} | ||||
| 				return nil, err | ||||
| 			} | ||||
| 		} | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue