@@ -8,17 +8,9 @@ import (
8
8
"fmt"
9
9
"os"
10
10
"path/filepath"
11
- "strings"
12
11
13
- activities_model "code.gitea.io/gitea/models/activities"
14
- "code.gitea.io/gitea/models/db"
15
12
git_model "code.gitea.io/gitea/models/git"
16
- access_model "code.gitea.io/gitea/models/perm/access"
17
13
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"
22
14
)
23
15
24
16
const 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 {
63
55
64
56
return repo_model .UpdateRepoSize (ctx , repo .ID , size , lfsSize )
65
57
}
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