1package repository
2
3import (
4 "io/ioutil"
5 "log"
6)
7
8// This is intended for testing only
9
10func CreateGoGitTestRepo(bare bool) TestedRepo {
11 dir, err := ioutil.TempDir("", "")
12 if err != nil {
13 log.Fatal(err)
14 }
15
16 var creator func(string) (*GoGitRepo, error)
17
18 if bare {
19 creator = InitBareGoGitRepo
20 } else {
21 creator = InitGoGitRepo
22 }
23
24 repo, err := creator(dir)
25 if err != nil {
26 log.Fatal(err)
27 }
28
29 config := repo.LocalConfig()
30 if err := config.StoreString("user.name", "testuser"); err != nil {
31 log.Fatal("failed to set user.name for test repository: ", err)
32 }
33 if err := config.StoreString("user.email", "testuser@example.com"); err != nil {
34 log.Fatal("failed to set user.email for test repository: ", err)
35 }
36
37 return repo
38}
39
40func SetupGoGitReposAndRemote() (repoA, repoB, remote TestedRepo) {
41 repoA = CreateGoGitTestRepo(false)
42 repoB = CreateGoGitTestRepo(false)
43 remote = CreateGoGitTestRepo(true)
44
45 remoteAddr := "file://" + remote.GetPath()
46
47 err := repoA.AddRemote("origin", remoteAddr)
48 if err != nil {
49 log.Fatal(err)
50 }
51
52 err = repoB.AddRemote("origin", remoteAddr)
53 if err != nil {
54 log.Fatal(err)
55 }
56
57 return repoA, repoB, remote
58}