@@ -13,6 +13,12 @@ import (
1313 "github.com/google/go-github/v67/github"
1414)
1515
16+ const (
17+ exitOk int = 0
18+ exitError int = 1
19+ exitNoNewFiles int = 10
20+ )
21+
1622func getGitPorcelain (dirPath string ) (git.Status , error ) {
1723 repo , err := git .PlainOpen (dirPath )
1824 if err != nil {
@@ -183,19 +189,19 @@ func UploadToRepo(
183189 message string ,
184190 createEmpty * bool ,
185191 allowEmpty * bool ,
186- ) (* github.Reference , * github.Response , error ) {
192+ ) (* github.Reference , * github.Response , error , int ) {
187193
188194 // Get the current currentCommit
189195 currentCommit , err := getCurrentCommit (ctx , client , repo , baseBranch )
190196 if err != nil {
191- return nil , nil , err
197+ return nil , nil , err , exitError
192198 }
193199
194200 fileStatuses , err := getGitPorcelain (path )
195201
196202 addedFiles , updatedFiles , deletedFiles , err := getGroupedFiles (fileStatuses )
197203 if err != nil {
198- return nil , nil , err
204+ return nil , nil , err , exitError
199205 }
200206 addedAndUpdatedFiles := append (updatedFiles , addedFiles ... )
201207
@@ -207,13 +213,13 @@ func UploadToRepo(
207213 ))
208214 dummy , err := os .Create (fileName )
209215 if err != nil {
210- return nil , nil , err
216+ return nil , nil , err , exitError
211217 }
212218 defer dummy .Close ()
213219
214220 blob , _ , err := createBlobForFile (ctx , client , repo , fileName )
215221 if err != nil {
216- return nil , nil , err
222+ return nil , nil , err , exitError
217223 }
218224 tree , _ , err := createNewTree (
219225 ctx ,
@@ -224,15 +230,15 @@ func UploadToRepo(
224230 currentCommit .GetSHA (),
225231 )
226232 if err != nil {
227- return nil , nil , err
233+ return nil , nil , err , exitError
228234 }
229235
230236 commit , _ , err := createNewCommit (
231237 ctx , client , repo , tree ,
232238 currentCommit , message ,
233239 )
234240 if err != nil {
235- return nil , nil , err
241+ return nil , nil , err , exitError
236242 }
237243
238244 // Then we delete it and set that commit as the new head commit
@@ -247,25 +253,28 @@ func UploadToRepo(
247253 commit .GetSHA (),
248254 )
249255 if err != nil {
250- return nil , nil , err
256+ return nil , nil , err , exitError
251257 }
252258
253259 emptyCommit , _ , err := createNewCommit (
254260 ctx , client , repo , emptyTree ,
255261 currentCommit , message ,
256262 )
257263 if err != nil {
258- return nil , nil , err
264+ return nil , nil , err , exitError
259265 }
260266
261267 ref , resp , respErr := setBranchToCommit (ctx , client , repo , branch , emptyCommit )
268+ if respErr != nil {
269+ return nil , nil , respErr , exitError
270+ }
262271
263272 err = os .Remove (fileName )
264273 if err != nil {
265- return nil , nil , err
274+ return nil , nil , err , exitError
266275 }
267276
268- return ref , resp , respErr
277+ return ref , resp , respErr , exitOk
269278 } else {
270279 if len (addedAndUpdatedFiles ) > 0 || len (deletedFiles ) > 0 {
271280 // Create a blob for each file
@@ -297,25 +306,30 @@ func UploadToRepo(
297306 blobs = append (blobs , blob )
298307
299308 if err != nil {
300- return nil , nil , err
309+ return nil , nil , err , exitError
301310 }
302311
303312 filePaths = append (filePaths , file )
304313 }
305314
306315 tree , _ , err := createNewTree (ctx , client , repo , blobs , filePaths , currentCommit .GetSHA ())
307316 if err != nil {
308- return nil , nil , err
317+ return nil , nil , err , exitError
309318 }
310319
311320 commit , _ , err := createNewCommit (ctx , client , repo , tree , currentCommit , message )
312321 if err != nil {
313- return nil , nil , err
322+ return nil , nil , err , exitError
323+ }
324+
325+ ref , resp , err := setBranchToCommit (ctx , client , repo , branch , commit )
326+ if err != nil {
327+ return nil , nil , err , exitError
314328 }
315329
316- return setBranchToCommit ( ctx , client , repo , branch , commit )
330+ return ref , resp , err , exitOk
317331 } else {
318- return nil , nil , errors .New ("no new files to commit" )
332+ return nil , nil , errors .New ("no new files to commit" ), exitNoNewFiles
319333 }
320334 }
321335}
0 commit comments