aboutsummaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorKN4CK3R <admin@oldschoolhack.me>2023-09-16 18:03:02 +0200
committerGitHub <noreply@github.com>2023-09-16 16:03:02 +0000
commitc766140dad3408048ad843d0e7b4ab5d9f5777c6 (patch)
tree49cd37606ae0cb252cd16264c111c3cf5b00088d /modules
parent5e039b05801a2ceeb29b23c657110af02834b57e (diff)
downloadgitea-c766140dad3408048ad843d0e7b4ab5d9f5777c6.tar.gz
gitea-c766140dad3408048ad843d0e7b4ab5d9f5777c6.zip
Add `RemoteAddress` to mirrors (#26952)
This PR adds a new field `RemoteAddress` to both mirror types which contains the sanitized remote address for easier (database) access to that information. Will be used in the audit PR if merged.
Diffstat (limited to 'modules')
-rw-r--r--modules/repository/repo.go5
-rw-r--r--modules/util/url.go9
2 files changed, 14 insertions, 0 deletions
diff --git a/modules/repository/repo.go b/modules/repository/repo.go
index 6bf88e7752..b50c8f75ca 100644
--- a/modules/repository/repo.go
+++ b/modules/repository/repo.go
@@ -180,12 +180,17 @@ func MigrateRepositoryGitData(ctx context.Context, u *user_model.User,
defer committer.Close()
if opts.Mirror {
+ remoteAddress, err := util.SanitizeURL(opts.CloneAddr)
+ if err != nil {
+ return repo, err
+ }
mirrorModel := repo_model.Mirror{
RepoID: repo.ID,
Interval: setting.Mirror.DefaultInterval,
EnablePrune: true,
NextUpdateUnix: timeutil.TimeStampNow().AddDuration(setting.Mirror.DefaultInterval),
LFS: opts.LFS,
+ RemoteAddress: remoteAddress,
}
if opts.LFS {
mirrorModel.LFSEndpoint = opts.LFSEndpoint
diff --git a/modules/util/url.go b/modules/util/url.go
index 75fcf634a9..62370339c8 100644
--- a/modules/util/url.go
+++ b/modules/util/url.go
@@ -39,3 +39,12 @@ func URLJoin(base string, elems ...string) string {
}
return joinedURL
}
+
+func SanitizeURL(s string) (string, error) {
+ u, err := url.Parse(s)
+ if err != nil {
+ return "", err
+ }
+ u.User = nil
+ return u.String(), nil
+}