@@ -8,17 +8,9 @@ import (
88 "fmt"
99 "os"
1010 "path/filepath"
11- "strings"
1211
13- activities_model "code.gitea.io/gitea/models/activities"
14- "code.gitea.io/gitea/models/db"
1512 git_model "code.gitea.io/gitea/models/git"
16- access_model "code.gitea.io/gitea/models/perm/access"
1713 repo_model "code.gitea.io/gitea/models/repo"
18- issue_indexer "code.gitea.io/gitea/modules/indexer/issues"
19- "code.gitea.io/gitea/modules/log"
20- api "code.gitea.io/gitea/modules/structs"
21- "code.gitea.io/gitea/modules/util"
2214)
2315
2416const notRegularFileMode = os .ModeSymlink | os .ModeNamedPipe | os .ModeSocket | os .ModeDevice | os .ModeCharDevice | os .ModeIrregular
@@ -63,97 +55,3 @@ func UpdateRepoSize(ctx context.Context, repo *repo_model.Repository) error {
6355
6456 return repo_model .UpdateRepoSize (ctx , repo .ID , size , lfsSize )
6557}
66-
67- // CheckDaemonExportOK creates/removes git-daemon-export-ok for git-daemon...
68- func CheckDaemonExportOK (ctx context.Context , repo * repo_model.Repository ) error {
69- if err := repo .LoadOwner (ctx ); err != nil {
70- return err
71- }
72-
73- // Create/Remove git-daemon-export-ok for git-daemon...
74- daemonExportFile := filepath .Join (repo .RepoPath (), `git-daemon-export-ok` )
75-
76- isExist , err := util .IsExist (daemonExportFile )
77- if err != nil {
78- log .Error ("Unable to check if %s exists. Error: %v" , daemonExportFile , err )
79- return err
80- }
81-
82- isPublic := ! repo .IsPrivate && repo .Owner .Visibility == api .VisibleTypePublic
83- if ! isPublic && isExist {
84- if err = util .Remove (daemonExportFile ); err != nil {
85- log .Error ("Failed to remove %s: %v" , daemonExportFile , err )
86- }
87- } else if isPublic && ! isExist {
88- if f , err := os .Create (daemonExportFile ); err != nil {
89- log .Error ("Failed to create %s: %v" , daemonExportFile , err )
90- } else {
91- f .Close ()
92- }
93- }
94-
95- return nil
96- }
97-
98- // UpdateRepository updates a repository with db context
99- func UpdateRepository (ctx context.Context , repo * repo_model.Repository , visibilityChanged bool ) (err error ) {
100- repo .LowerName = strings .ToLower (repo .Name )
101-
102- e := db .GetEngine (ctx )
103-
104- if _ , err = e .ID (repo .ID ).AllCols ().Update (repo ); err != nil {
105- return fmt .Errorf ("update: %w" , err )
106- }
107-
108- if err = UpdateRepoSize (ctx , repo ); err != nil {
109- log .Error ("Failed to update size for repository: %v" , err )
110- }
111-
112- if visibilityChanged {
113- if err = repo .LoadOwner (ctx ); err != nil {
114- return fmt .Errorf ("LoadOwner: %w" , err )
115- }
116- if repo .Owner .IsOrganization () {
117- // Organization repository need to recalculate access table when visibility is changed.
118- if err = access_model .RecalculateTeamAccesses (ctx , repo , 0 ); err != nil {
119- return fmt .Errorf ("recalculateTeamAccesses: %w" , err )
120- }
121- }
122-
123- // If repo has become private, we need to set its actions to private.
124- if repo .IsPrivate {
125- _ , err = e .Where ("repo_id = ?" , repo .ID ).Cols ("is_private" ).Update (& activities_model.Action {
126- IsPrivate : true ,
127- })
128- if err != nil {
129- return err
130- }
131-
132- if err = repo_model .ClearRepoStars (ctx , repo .ID ); err != nil {
133- return err
134- }
135- }
136-
137- // Create/Remove git-daemon-export-ok for git-daemon...
138- if err := CheckDaemonExportOK (ctx , repo ); err != nil {
139- return err
140- }
141-
142- forkRepos , err := repo_model .GetRepositoriesByForkID (ctx , repo .ID )
143- if err != nil {
144- return fmt .Errorf ("getRepositoriesByForkID: %w" , err )
145- }
146- for i := range forkRepos {
147- forkRepos [i ].IsPrivate = repo .IsPrivate || repo .Owner .Visibility == api .VisibleTypePrivate
148- if err = UpdateRepository (ctx , forkRepos [i ], true ); err != nil {
149- return fmt .Errorf ("updateRepository[%d]: %w" , forkRepos [i ].ID , err )
150- }
151- }
152-
153- // If visibility is changed, we need to update the issue indexer.
154- // Since the data in the issue indexer have field to indicate if the repo is public or not.
155- issue_indexer .UpdateRepoIndexer (ctx , repo .ID )
156- }
157-
158- return nil
159- }
0 commit comments