Skip to content

Commit 11eb3f8

Browse files
authored
Merge branch 'main' into move-login-out-of-models
2 parents 3a7e26e + 1ce4fb2 commit 11eb3f8

File tree

5 files changed

+90
-6
lines changed

5 files changed

+90
-6
lines changed

models/repo.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1152,6 +1152,16 @@ func CreateRepository(ctx DBContext, doer, u *User, repo *Repository, overwriteO
11521152
return fmt.Errorf("recalculateAccesses: %v", err)
11531153
}
11541154

1155+
if u.Visibility == api.VisibleTypePublic && !repo.IsPrivate {
1156+
// Create/Remove git-daemon-export-ok for git-daemon...
1157+
daemonExportFile := path.Join(repo.RepoPath(), `git-daemon-export-ok`)
1158+
if f, err := os.Create(daemonExportFile); err != nil {
1159+
log.Error("Failed to create %s: %v", daemonExportFile, err)
1160+
} else {
1161+
f.Close()
1162+
}
1163+
}
1164+
11551165
if setting.Service.AutoWatchNewRepos {
11561166
if err = watchRepo(ctx.e, doer.ID, repo.ID, true); err != nil {
11571167
return fmt.Errorf("watchRepo: %v", err)
@@ -1310,15 +1320,16 @@ func updateRepository(e Engine, repo *Repository, visibilityChanged bool) (err e
13101320
// Create/Remove git-daemon-export-ok for git-daemon...
13111321
daemonExportFile := path.Join(repo.RepoPath(), `git-daemon-export-ok`)
13121322
isExist, err := util.IsExist(daemonExportFile)
1323+
isPublic := !repo.IsPrivate && repo.Owner.Visibility == api.VisibleTypePublic
13131324
if err != nil {
13141325
log.Error("Unable to check if %s exists. Error: %v", daemonExportFile, err)
13151326
return err
13161327
}
1317-
if repo.IsPrivate && isExist {
1328+
if !isPublic && isExist {
13181329
if err = util.Remove(daemonExportFile); err != nil {
13191330
log.Error("Failed to remove %s: %v", daemonExportFile, err)
13201331
}
1321-
} else if !repo.IsPrivate && !isExist {
1332+
} else if isPublic && !isExist {
13221333
if f, err := os.Create(daemonExportFile); err != nil {
13231334
log.Error("Failed to create %s: %v", daemonExportFile, err)
13241335
} else {

modules/doctor/misc.go

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,19 @@ package doctor
66

77
import (
88
"fmt"
9+
"os"
910
"os/exec"
11+
"path"
1012
"strings"
1113

1214
"code.gitea.io/gitea/models"
1315
"code.gitea.io/gitea/modules/git"
1416
"code.gitea.io/gitea/modules/log"
1517
"code.gitea.io/gitea/modules/repository"
1618
"code.gitea.io/gitea/modules/setting"
19+
"code.gitea.io/gitea/modules/structs"
20+
"code.gitea.io/gitea/modules/util"
21+
lru "github.com/hashicorp/golang-lru"
1722
"xorm.io/builder"
1823
)
1924

@@ -75,6 +80,7 @@ func checkUserStarNum(logger log.Logger, autofix bool) error {
7580
func checkEnablePushOptions(logger log.Logger, autofix bool) error {
7681
numRepos := 0
7782
numNeedUpdate := 0
83+
7884
if err := iterateRepositories(func(repo *models.Repository) error {
7985
numRepos++
8086
r, err := git.OpenRepository(repo.RepoPath())
@@ -114,6 +120,66 @@ func checkEnablePushOptions(logger log.Logger, autofix bool) error {
114120
return nil
115121
}
116122

123+
func checkDaemonExport(logger log.Logger, autofix bool) error {
124+
numRepos := 0
125+
numNeedUpdate := 0
126+
cache, err := lru.New(512)
127+
if err != nil {
128+
logger.Critical("Unable to create cache: %v", err)
129+
return err
130+
}
131+
if err := iterateRepositories(func(repo *models.Repository) error {
132+
numRepos++
133+
134+
if owner, has := cache.Get(repo.OwnerID); has {
135+
repo.Owner = owner.(*models.User)
136+
} else {
137+
if err := repo.GetOwner(); err != nil {
138+
return err
139+
}
140+
cache.Add(repo.OwnerID, repo.Owner)
141+
}
142+
143+
// Create/Remove git-daemon-export-ok for git-daemon...
144+
daemonExportFile := path.Join(repo.RepoPath(), `git-daemon-export-ok`)
145+
isExist, err := util.IsExist(daemonExportFile)
146+
if err != nil {
147+
log.Error("Unable to check if %s exists. Error: %v", daemonExportFile, err)
148+
return err
149+
}
150+
isPublic := !repo.IsPrivate && repo.Owner.Visibility == structs.VisibleTypePublic
151+
152+
if isPublic != isExist {
153+
numNeedUpdate++
154+
if autofix {
155+
if !isPublic && isExist {
156+
if err = util.Remove(daemonExportFile); err != nil {
157+
log.Error("Failed to remove %s: %v", daemonExportFile, err)
158+
}
159+
} else if isPublic && !isExist {
160+
if f, err := os.Create(daemonExportFile); err != nil {
161+
log.Error("Failed to create %s: %v", daemonExportFile, err)
162+
} else {
163+
f.Close()
164+
}
165+
}
166+
}
167+
}
168+
return nil
169+
}); err != nil {
170+
logger.Critical("Unable to checkDaemonExport: %v", err)
171+
return err
172+
}
173+
174+
if autofix {
175+
logger.Info("Updated git-daemon-export-ok files for %d of %d repositories.", numNeedUpdate, numRepos)
176+
} else {
177+
logger.Info("Checked %d repositories, %d need updates.", numRepos, numNeedUpdate)
178+
}
179+
180+
return nil
181+
}
182+
117183
func init() {
118184
Register(&Check{
119185
Title: "Check if SCRIPT_TYPE is available",
@@ -143,4 +209,11 @@ func init() {
143209
Run: checkEnablePushOptions,
144210
Priority: 7,
145211
})
212+
Register(&Check{
213+
Title: "Check git-daemon-export-ok files",
214+
Name: "check-git-daemon-export-ok",
215+
IsDefault: false,
216+
Run: checkDaemonExport,
217+
Priority: 8,
218+
})
146219
}

options/locale/locale_pt-PT.ini

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1470,8 +1470,8 @@ pulls.closed_at=`fechou este pedido de integração <a id="%[1]s" href="#%[1]s">
14701470
pulls.reopened_at=`reabriu este pedido de integração <a id="%[1]s" href="#%[1]s">%[2]s</a>`
14711471
pulls.merge_instruction_hint=`Também pode ver as <a class="show-instruction">instruções para a linha de comandos</a>.`
14721472

1473-
pulls.merge_instruction_step1_desc=No repositório do seu projecto, crie um novo ramo e teste as modificações.
1474-
pulls.merge_instruction_step2_desc=Integre as modificações e sincronize no Gitea.
1473+
pulls.merge_instruction_step1_desc=No seu repositório do projecto, crie um novo ramo e teste as modificações.
1474+
pulls.merge_instruction_step2_desc=Integre as modificações e envie para o Gitea.
14751475

14761476
milestones.new=Nova etapa
14771477
milestones.open_tab=%d abertas

routers/api/v1/user/repo.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ func ListUserRepos(ctx *context.APIContext) {
8585
func ListMyRepos(ctx *context.APIContext) {
8686
// swagger:operation GET /user/repos user userCurrentListRepos
8787
// ---
88-
// summary: List the repos that the authenticated user owns or has access to
88+
// summary: List the repos that the authenticated user owns
8989
// produces:
9090
// - application/json
9191
// parameters:

templates/swagger/v1_json.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11052,7 +11052,7 @@
1105211052
"tags": [
1105311053
"user"
1105411054
],
11055-
"summary": "List the repos that the authenticated user owns or has access to",
11055+
"summary": "List the repos that the authenticated user owns",
1105611056
"operationId": "userCurrentListRepos",
1105711057
"parameters": [
1105811058
{

0 commit comments

Comments
 (0)