diff options
Diffstat (limited to 'models/repo.go')
-rw-r--r-- | models/repo.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/models/repo.go b/models/repo.go index 59ce18fa88..9bedeba952 100644 --- a/models/repo.go +++ b/models/repo.go @@ -136,6 +136,7 @@ type Repository struct { Name string `xorm:"INDEX NOT NULL"` Description string Website string + OriginalURL string DefaultBranch string NumWatches int @@ -847,6 +848,7 @@ func (repo *Repository) CloneLink() (cl *CloneLink) { type MigrateRepoOptions struct { Name string Description string + OriginalURL string IsPrivate bool IsMirror bool RemoteAddr string @@ -878,6 +880,7 @@ func MigrateRepository(doer, u *User, opts MigrateRepoOptions) (*Repository, err repo, err := CreateRepository(doer, u, CreateRepoOptions{ Name: opts.Name, Description: opts.Description, + OriginalURL: opts.OriginalURL, IsPrivate: opts.IsPrivate, IsMirror: opts.IsMirror, }) @@ -1092,6 +1095,7 @@ func initRepoCommit(tmpPath string, sig *git.Signature) (err error) { type CreateRepoOptions struct { Name string Description string + OriginalURL string Gitignores string License string Readme string @@ -1358,6 +1362,7 @@ func CreateRepository(doer, u *User, opts CreateRepoOptions) (_ *Repository, err Name: opts.Name, LowerName: strings.ToLower(opts.Name), Description: opts.Description, + OriginalURL: opts.OriginalURL, IsPrivate: opts.IsPrivate, IsFsckEnabled: !opts.IsMirror, CloseIssuesViaCommitInAnyBranch: setting.Repository.DefaultCloseIssuesViaCommitsInAnyBranch, @@ -2678,3 +2683,13 @@ func (repo *Repository) DeleteAvatar() error { } return sess.Commit() } + +// GetOriginalURLHostname returns the hostname of a URL or the URL +func (repo *Repository) GetOriginalURLHostname() string { + u, err := url.Parse(repo.OriginalURL) + if err != nil { + return repo.OriginalURL + } + + return u.Host +} |