@@ -26,43 +26,23 @@ type RepositoryRestorer struct {
26
26
}
27
27
28
28
// NewRepositoryRestorer creates a repository restorer which could restore repository from a dumped folder
29
- func NewRepositoryRestorer (ctx context.Context , baseDir string , owner , repoName string ) * RepositoryRestorer {
29
+ func NewRepositoryRestorer (ctx context.Context , baseDir string , owner , repoName string ) (* RepositoryRestorer , error ) {
30
+ baseDir , err := filepath .Abs (baseDir )
31
+ if err != nil {
32
+ return nil , err
33
+ }
30
34
return & RepositoryRestorer {
31
35
ctx : ctx ,
32
36
baseDir : baseDir ,
33
37
repoOwner : owner ,
34
38
repoName : repoName ,
35
- }
36
- }
37
-
38
- func (r * RepositoryRestorer ) topicDir () string {
39
- return filepath .Join (r .baseDir )
40
- }
41
-
42
- func (r * RepositoryRestorer ) milestoneDir () string {
43
- return filepath .Join (r .baseDir )
44
- }
45
-
46
- func (r * RepositoryRestorer ) labelDir () string {
47
- return filepath .Join (r .baseDir )
48
- }
49
-
50
- func (r * RepositoryRestorer ) releaseDir () string {
51
- return filepath .Join (r .baseDir )
52
- }
53
-
54
- func (r * RepositoryRestorer ) issueDir () string {
55
- return filepath .Join (r .baseDir )
39
+ }, nil
56
40
}
57
41
58
42
func (r * RepositoryRestorer ) commentDir () string {
59
43
return filepath .Join (r .baseDir , "comments" )
60
44
}
61
45
62
- func (r * RepositoryRestorer ) pullrequestDir () string {
63
- return filepath .Join (r .baseDir )
64
- }
65
-
66
46
func (r * RepositoryRestorer ) reviewDir () string {
67
47
return filepath .Join (r .baseDir , "reviews" )
68
48
}
@@ -101,7 +81,7 @@ func (r *RepositoryRestorer) GetRepoInfo() (*base.Repository, error) {
101
81
102
82
// GetTopics return github topics
103
83
func (r * RepositoryRestorer ) GetTopics () ([]string , error ) {
104
- p := filepath .Join (r .topicDir () , "topic.yml" )
84
+ p := filepath .Join (r .baseDir , "topic.yml" )
105
85
106
86
var topics = struct {
107
87
Topics []string `yaml:"topics"`
@@ -122,7 +102,7 @@ func (r *RepositoryRestorer) GetTopics() ([]string, error) {
122
102
// GetMilestones returns milestones
123
103
func (r * RepositoryRestorer ) GetMilestones () ([]* base.Milestone , error ) {
124
104
var milestones = make ([]* base.Milestone , 0 , 10 )
125
- p := filepath .Join (r .milestoneDir () , "milestone.yml" )
105
+ p := filepath .Join (r .baseDir , "milestone.yml" )
126
106
_ , err := os .Stat (p )
127
107
if err != nil {
128
108
if os .IsNotExist (err ) {
@@ -146,7 +126,7 @@ func (r *RepositoryRestorer) GetMilestones() ([]*base.Milestone, error) {
146
126
// GetReleases returns releases
147
127
func (r * RepositoryRestorer ) GetReleases () ([]* base.Release , error ) {
148
128
var releases = make ([]* base.Release , 0 , 10 )
149
- p := filepath .Join (r .releaseDir () , "release.yml" )
129
+ p := filepath .Join (r .baseDir , "release.yml" )
150
130
_ , err := os .Stat (p )
151
131
if err != nil {
152
132
if os .IsNotExist (err ) {
@@ -175,7 +155,7 @@ func (r *RepositoryRestorer) GetReleases() ([]*base.Release, error) {
175
155
// GetLabels returns labels
176
156
func (r * RepositoryRestorer ) GetLabels () ([]* base.Label , error ) {
177
157
var labels = make ([]* base.Label , 0 , 10 )
178
- p := filepath .Join (r .labelDir () , "label.yml" )
158
+ p := filepath .Join (r .baseDir , "label.yml" )
179
159
_ , err := os .Stat (p )
180
160
if err != nil {
181
161
if os .IsNotExist (err ) {
@@ -199,7 +179,7 @@ func (r *RepositoryRestorer) GetLabels() ([]*base.Label, error) {
199
179
// GetIssues returns issues according start and limit
200
180
func (r * RepositoryRestorer ) GetIssues (page , perPage int ) ([]* base.Issue , bool , error ) {
201
181
var issues = make ([]* base.Issue , 0 , 10 )
202
- p := filepath .Join (r .issueDir () , "issue.yml" )
182
+ p := filepath .Join (r .baseDir , "issue.yml" )
203
183
_ , err := os .Stat (p )
204
184
if err != nil {
205
185
if os .IsNotExist (err ) {
@@ -247,7 +227,7 @@ func (r *RepositoryRestorer) GetComments(issueNumber int64) ([]*base.Comment, er
247
227
// GetPullRequests returns pull requests according page and perPage
248
228
func (r * RepositoryRestorer ) GetPullRequests (page , perPage int ) ([]* base.PullRequest , bool , error ) {
249
229
var pulls = make ([]* base.PullRequest , 0 , 10 )
250
- p := filepath .Join (r .pullrequestDir () , "pull_request.yml" )
230
+ p := filepath .Join (r .baseDir , "pull_request.yml" )
251
231
_ , err := os .Stat (p )
252
232
if err != nil {
253
233
if os .IsNotExist (err ) {
@@ -266,7 +246,7 @@ func (r *RepositoryRestorer) GetPullRequests(page, perPage int) ([]*base.PullReq
266
246
return nil , false , err
267
247
}
268
248
for _ , pr := range pulls {
269
- pr .PatchURL = filepath .Join (r .baseDir , pr .PatchURL )
249
+ pr .PatchURL = "file://" + filepath .Join (r .baseDir , pr .PatchURL )
270
250
}
271
251
return pulls , true , nil
272
252
}
0 commit comments