parent
					
						
							
								6398ca745a
							
						
					
				
			
			
				commit
				
					
						36a2d2f919
					
				
			
		
					 24 changed files with 178 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -25,7 +25,7 @@ func TestIterate(t *testing.T) {
 | 
			
		|||
		return nil
 | 
			
		||||
	})
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
	assert.EqualValues(t, 79, repoCnt)
 | 
			
		||||
	assert.EqualValues(t, 80, repoCnt)
 | 
			
		||||
 | 
			
		||||
	err = db.Iterate(db.DefaultContext, nil, func(ctx context.Context, repoUnit *repo_model.RepoUnit) error {
 | 
			
		||||
		reopUnit2 := repo_model.RepoUnit{ID: repoUnit.ID}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -544,3 +544,9 @@
 | 
			
		|||
  repo_id: 51
 | 
			
		||||
  type: 2
 | 
			
		||||
  created_unix: 946684810
 | 
			
		||||
 | 
			
		||||
-
 | 
			
		||||
  id: 80
 | 
			
		||||
  repo_id: 53
 | 
			
		||||
  type: 1
 | 
			
		||||
  created_unix: 946684810
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1558,3 +1558,30 @@
 | 
			
		|||
  size: 0
 | 
			
		||||
  is_fsck_enabled: true
 | 
			
		||||
  close_issues_via_commit_in_any_branch: false
 | 
			
		||||
 | 
			
		||||
-
 | 
			
		||||
  id: 53
 | 
			
		||||
  owner_id: 30
 | 
			
		||||
  owner_name: user30
 | 
			
		||||
  lower_name: renderer
 | 
			
		||||
  name: renderer
 | 
			
		||||
  is_archived: false
 | 
			
		||||
  is_empty: false
 | 
			
		||||
  is_private: false
 | 
			
		||||
  num_issues: 0
 | 
			
		||||
  num_closed_issues: 0
 | 
			
		||||
  num_pulls: 0
 | 
			
		||||
  num_closed_pulls: 0
 | 
			
		||||
  num_milestones: 0
 | 
			
		||||
  num_closed_milestones: 0
 | 
			
		||||
  num_watches: 0
 | 
			
		||||
  num_projects: 0
 | 
			
		||||
  num_closed_projects: 0
 | 
			
		||||
  status: 0
 | 
			
		||||
  is_fork: false
 | 
			
		||||
  fork_id: 0
 | 
			
		||||
  is_template: false
 | 
			
		||||
  template_id: 0
 | 
			
		||||
  size: 0
 | 
			
		||||
  is_fsck_enabled: true
 | 
			
		||||
  close_issues_via_commit_in_any_branch: false
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1102,7 +1102,7 @@
 | 
			
		|||
  num_followers: 0
 | 
			
		||||
  num_following: 0
 | 
			
		||||
  num_stars: 0
 | 
			
		||||
  num_repos: 3
 | 
			
		||||
  num_repos: 4
 | 
			
		||||
  num_teams: 0
 | 
			
		||||
  num_members: 0
 | 
			
		||||
  visibility: 0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -235,12 +235,12 @@ func TestSearchRepository(t *testing.T) {
 | 
			
		|||
		{
 | 
			
		||||
			name:  "AllPublic/PublicRepositoriesOfUserIncludingCollaborative",
 | 
			
		||||
			opts:  &repo_model.SearchRepoOptions{ListOptions: db.ListOptions{Page: 1, PageSize: 10}, OwnerID: 15, AllPublic: true, Template: util.OptionalBoolFalse},
 | 
			
		||||
			count: 28,
 | 
			
		||||
			count: 29,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name:  "AllPublic/PublicAndPrivateRepositoriesOfUserIncludingCollaborative",
 | 
			
		||||
			opts:  &repo_model.SearchRepoOptions{ListOptions: db.ListOptions{Page: 1, PageSize: 10}, OwnerID: 15, Private: true, AllPublic: true, AllLimited: true, Template: util.OptionalBoolFalse},
 | 
			
		||||
			count: 33,
 | 
			
		||||
			count: 34,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name:  "AllPublic/PublicAndPrivateRepositoriesOfUserIncludingCollaborativeByName",
 | 
			
		||||
| 
						 | 
				
			
			@ -255,7 +255,7 @@ func TestSearchRepository(t *testing.T) {
 | 
			
		|||
		{
 | 
			
		||||
			name:  "AllPublic/PublicRepositoriesOfOrganization",
 | 
			
		||||
			opts:  &repo_model.SearchRepoOptions{ListOptions: db.ListOptions{Page: 1, PageSize: 10}, OwnerID: 17, AllPublic: true, Collaborate: util.OptionalBoolFalse, Template: util.OptionalBoolFalse},
 | 
			
		||||
			count: 28,
 | 
			
		||||
			count: 29,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name:  "AllTemplates",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,7 +26,7 @@ func TestArchivedIssues(t *testing.T) {
 | 
			
		|||
 | 
			
		||||
	// Assume: User 30 has access to two Repos with Issues, one of the Repos being archived.
 | 
			
		||||
	repos, _, _ := repo_model.GetUserRepositories(&repo_model.SearchRepoOptions{Actor: ctx.Doer})
 | 
			
		||||
	assert.Len(t, repos, 2)
 | 
			
		||||
	assert.Len(t, repos, 3)
 | 
			
		||||
	IsArchived := make(map[int64]bool)
 | 
			
		||||
	NumIssues := make(map[int64]int)
 | 
			
		||||
	for _, repo := range repos {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								tests/gitea-repositories-meta/user30/renderer.git/HEAD
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								tests/gitea-repositories-meta/user30/renderer.git/HEAD
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
ref: refs/heads/master
 | 
			
		||||
							
								
								
									
										6
									
								
								tests/gitea-repositories-meta/user30/renderer.git/config
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								tests/gitea-repositories-meta/user30/renderer.git/config
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
[core]
 | 
			
		||||
	repositoryformatversion = 0
 | 
			
		||||
	filemode = true
 | 
			
		||||
	bare = true
 | 
			
		||||
	ignorecase = true
 | 
			
		||||
	precomposeunicode = true
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
The repository will be used to test third-party renderer in TestExternalMarkupRenderer
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,15 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
data=$(cat)
 | 
			
		||||
exitcodes=""
 | 
			
		||||
hookname=$(basename $0)
 | 
			
		||||
GIT_DIR=${GIT_DIR:-$(dirname $0)}
 | 
			
		||||
 | 
			
		||||
for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do
 | 
			
		||||
test -x "${hook}" && test -f "${hook}" || continue
 | 
			
		||||
echo "${data}" | "${hook}"
 | 
			
		||||
exitcodes="${exitcodes} $?"
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
for i in ${exitcodes}; do
 | 
			
		||||
[ ${i} -eq 0 ] || exit ${i}
 | 
			
		||||
done
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
"$GITEA_ROOT/gitea" hook --config="$GITEA_ROOT/$GITEA_CONF" post-receive
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,15 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
data=$(cat)
 | 
			
		||||
exitcodes=""
 | 
			
		||||
hookname=$(basename $0)
 | 
			
		||||
GIT_DIR=${GIT_DIR:-$(dirname $0)}
 | 
			
		||||
 | 
			
		||||
for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do
 | 
			
		||||
test -x "${hook}" && test -f "${hook}" || continue
 | 
			
		||||
echo "${data}" | "${hook}"
 | 
			
		||||
exitcodes="${exitcodes} $?"
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
for i in ${exitcodes}; do
 | 
			
		||||
[ ${i} -eq 0 ] || exit ${i}
 | 
			
		||||
done
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
"$GITEA_ROOT/gitea" hook --config="$GITEA_ROOT/$GITEA_CONF" pre-receive
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
exitcodes=""
 | 
			
		||||
hookname=$(basename $0)
 | 
			
		||||
GIT_DIR=${GIT_DIR:-$(dirname $0)}
 | 
			
		||||
 | 
			
		||||
for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do
 | 
			
		||||
test -x "${hook}" && test -f "${hook}" || continue
 | 
			
		||||
"${hook}" $1 $2 $3
 | 
			
		||||
exitcodes="${exitcodes} $?"
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
for i in ${exitcodes}; do
 | 
			
		||||
[ ${i} -eq 0 ] || exit ${i}
 | 
			
		||||
done
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
"$GITEA_ROOT/gitea" hook --config="$GITEA_ROOT/$GITEA_CONF" update $1 $2 $3
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
# git ls-files --others --exclude-from=.git/info/exclude
 | 
			
		||||
# Lines that start with '#' are comments.
 | 
			
		||||
# For a project mostly in C, the following would be a good set of
 | 
			
		||||
# exclude patterns (uncomment them if you want to use them):
 | 
			
		||||
# *.[oa]
 | 
			
		||||
# *~
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
# pack-refs with: peeled fully-peeled sorted 
 | 
			
		||||
c961cc4d1ba6b7ee1ba228a9a02b00b7746d8033 refs/heads/master
 | 
			
		||||
| 
						 | 
				
			
			@ -81,9 +81,9 @@ func TestAPISearchRepo(t *testing.T) {
 | 
			
		|||
	}{
 | 
			
		||||
		{
 | 
			
		||||
			name: "RepositoriesMax50", requestURL: "/api/v1/repos/search?limit=50&private=false", expectedResults: expectedResults{
 | 
			
		||||
				nil:   {count: 30},
 | 
			
		||||
				user:  {count: 30},
 | 
			
		||||
				user2: {count: 30},
 | 
			
		||||
				nil:   {count: 31},
 | 
			
		||||
				user:  {count: 31},
 | 
			
		||||
				user2: {count: 31},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										40
									
								
								tests/integration/markup_external_test.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								tests/integration/markup_external_test.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,40 @@
 | 
			
		|||
// Copyright 2022 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 integration
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"io"
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"testing"
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/modules/setting"
 | 
			
		||||
	"code.gitea.io/gitea/tests"
 | 
			
		||||
 | 
			
		||||
	"github.com/stretchr/testify/assert"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestExternalMarkupRenderer(t *testing.T) {
 | 
			
		||||
	defer tests.PrepareTestEnv(t)()
 | 
			
		||||
	if !setting.Database.UseSQLite3 {
 | 
			
		||||
		t.Skip()
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	const repoURL = "user30/renderer"
 | 
			
		||||
	req := NewRequest(t, "GET", repoURL+"/src/branch/master/README.html")
 | 
			
		||||
	resp := MakeRequest(t, req, http.StatusOK)
 | 
			
		||||
	assert.EqualValues(t, "text/html; charset=UTF-8", resp.Header()["Content-Type"][0])
 | 
			
		||||
 | 
			
		||||
	bs, err := io.ReadAll(resp.Body)
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
 | 
			
		||||
	doc := NewHTMLParser(t, bytes.NewBuffer(bs))
 | 
			
		||||
	div := doc.Find("div.file-view")
 | 
			
		||||
	data, err := div.Html()
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
	assert.EqualValues(t, "<div>\n\ttest external renderer\n</div>", strings.TrimSpace(data))
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -107,3 +107,10 @@ PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/data/lfs
 | 
			
		|||
 | 
			
		||||
[packages]
 | 
			
		||||
ENABLED = true
 | 
			
		||||
 | 
			
		||||
[markup.html]
 | 
			
		||||
ENABLED = true
 | 
			
		||||
FILE_EXTENSIONS = .html
 | 
			
		||||
RENDER_COMMAND = `go run tools/external_renderer.go`
 | 
			
		||||
IS_INPUT_FILE = false
 | 
			
		||||
RENDER_CONTENT_MODE=sanitized
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										23
									
								
								tools/external_renderer.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								tools/external_renderer.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,23 @@
 | 
			
		|||
// Copyright 2017 The Gitea Authors. All rights reserved.
 | 
			
		||||
// SPDX-License-Identifier: MIT
 | 
			
		||||
 | 
			
		||||
// gobuild: external_renderer
 | 
			
		||||
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"io"
 | 
			
		||||
	"os"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	if len(os.Args) > 1 {
 | 
			
		||||
		fmt.Print(os.Args[1])
 | 
			
		||||
	} else {
 | 
			
		||||
		_, err := io.Copy(os.Stdout, os.Stdin)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			fmt.Println(err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue