|
|
|
@ -710,6 +710,10 @@ func MigrateRepository(doer, owner *User, opts MigrateRepoOptions) (*Repository,
|
|
|
|
|
if headBranch != nil { |
|
|
|
|
repo.DefaultBranch = headBranch.Name |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if err = repo.UpdateSize(); err != nil { |
|
|
|
|
log.Error(2, "UpdateSize [repo_id: %d]: %v", repo.ID, err) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if opts.IsMirror { |
|
|
|
@ -2233,6 +2237,8 @@ func ForkRepository(doer, owner *User, baseRepo *Repository, name, desc string)
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
repoPath := repo.repoPath(sess) |
|
|
|
|
RemoveAllWithNotice("Repository path erase before creation", repoPath) |
|
|
|
|
|
|
|
|
|
_, stderr, err := process.ExecTimeout(10*time.Minute, |
|
|
|
|
fmt.Sprintf("ForkRepository 'git clone': %s/%s", owner.Name, repo.Name), |
|
|
|
|
"git", "clone", "--bare", baseRepo.RepoPath(), repoPath) |
|
|
|
@ -2249,15 +2255,23 @@ func ForkRepository(doer, owner *User, baseRepo *Repository, name, desc string)
|
|
|
|
|
|
|
|
|
|
if err = createDelegateHooks(repoPath); err != nil { |
|
|
|
|
return nil, fmt.Errorf("createDelegateHooks: %v", err) |
|
|
|
|
} else if err = prepareWebhooks(sess, baseRepo, HOOK_EVENT_FORK, &api.ForkPayload{ |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if err = sess.Commit(); err != nil { |
|
|
|
|
return nil, fmt.Errorf("Commit: %v", err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if err = repo.UpdateSize(); err != nil { |
|
|
|
|
log.Error(2, "UpdateSize [repo_id: %d]: %v", repo.ID, err) |
|
|
|
|
} |
|
|
|
|
if err = PrepareWebhooks(baseRepo, HOOK_EVENT_FORK, &api.ForkPayload{ |
|
|
|
|
Forkee: repo.APIFormat(nil), |
|
|
|
|
Repo: baseRepo.APIFormat(nil), |
|
|
|
|
Sender: doer.APIFormat(), |
|
|
|
|
}); err != nil { |
|
|
|
|
return nil, fmt.Errorf("prepareWebhooks: %v", err) |
|
|
|
|
log.Error(2, "PrepareWebhooks [repo_id: %d]: %v", baseRepo.ID, err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return repo, sess.Commit() |
|
|
|
|
return repo, nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (repo *Repository) GetForks() ([]*Repository, error) { |
|
|
|
|