mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-27 00:23:41 +09:00 
			
		
		
		
	This is a follow-up to https://github.com/go-gitea/gitea/pull/33097. When linking a submodule at a commit in either the repo view, or a diff when adding a new submodule, link to the tree view of that submodules intead of the individual commit. This shows the user the full tree, instead of the diff of the commit. This makes the assumption that the tree for a given SHA is at `<repo_url>/tree/<sha>`. This URL format is supported by both Github & Gitlab, but not Gitea. To fix this, add a redirect from `<username>/<repo>/tree/<ref>` to `<username>/<repo>/src/<ref>`, so that Gitea can support this URL structure.
		
			
				
	
	
		
			31 lines
		
	
	
		
			995 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			995 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2024 The Gitea Authors. All rights reserved.
 | |
| // SPDX-License-Identifier: MIT
 | |
| 
 | |
| package git
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| )
 | |
| 
 | |
| func TestCommitSubmoduleLink(t *testing.T) {
 | |
| 	sf := NewCommitSubmoduleFile("git@github.com:user/repo.git", "aaaa")
 | |
| 
 | |
| 	wl := sf.SubmoduleWebLink(context.Background())
 | |
| 	assert.Equal(t, "https://github.com/user/repo", wl.RepoWebLink)
 | |
| 	assert.Equal(t, "https://github.com/user/repo/tree/aaaa", wl.CommitWebLink)
 | |
| 
 | |
| 	wl = sf.SubmoduleWebLink(context.Background(), "1111")
 | |
| 	assert.Equal(t, "https://github.com/user/repo", wl.RepoWebLink)
 | |
| 	assert.Equal(t, "https://github.com/user/repo/tree/1111", wl.CommitWebLink)
 | |
| 
 | |
| 	wl = sf.SubmoduleWebLink(context.Background(), "1111", "2222")
 | |
| 	assert.Equal(t, "https://github.com/user/repo", wl.RepoWebLink)
 | |
| 	assert.Equal(t, "https://github.com/user/repo/compare/1111...2222", wl.CommitWebLink)
 | |
| 
 | |
| 	wl = (*CommitSubmoduleFile)(nil).SubmoduleWebLink(context.Background())
 | |
| 	assert.Nil(t, wl)
 | |
| }
 |