Skip to content
This repository was archived by the owner on Feb 21, 2024. It is now read-only.

Commit 67445fa

Browse files
manual git add
1 parent d894b50 commit 67445fa

File tree

2 files changed

+74
-1
lines changed

2 files changed

+74
-1
lines changed

internal/git/git.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ func (g *Git) CommitAndPush(openAPIDocVersion, speakeasyVersion, doc string, act
301301

302302
logging.Info("Commit and pushing changes to git")
303303

304-
if _, err := w.Add("."); err != nil {
304+
if err := g.Add("."); err != nil {
305305
return "", fmt.Errorf("error adding changes: %w", err)
306306
}
307307

@@ -332,6 +332,22 @@ func (g *Git) CommitAndPush(openAPIDocVersion, speakeasyVersion, doc string, act
332332
return commitHash.String(), nil
333333
}
334334

335+
func (g *Git) Add(arg string) error {
336+
baseDir := environment.GetBaseDir()
337+
338+
cmdPath := filepath.Join(baseDir, "bin", "git")
339+
340+
cmd := exec.Command(cmdPath, "add", arg)
341+
cmd.Dir = filepath.Join(environment.GetWorkspace(), "repo", environment.GetWorkingDirectory())
342+
cmd.Env = os.Environ()
343+
output, err := cmd.CombinedOutput()
344+
if err != nil {
345+
return fmt.Errorf("error running `git add %s`: %w %s", arg, err, string(output))
346+
}
347+
348+
return nil
349+
}
350+
335351
func (g *Git) CreateOrUpdatePR(branchName string, releaseInfo releases.ReleasesInfo, previousGenVersion string, pr *github.PullRequest) error {
336352
var changelog string
337353
var err error

test.go

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"github.com/go-git/go-billy/v5/memfs"
6+
"github.com/go-git/go-git/v5"
7+
"github.com/go-git/go-git/v5/storage/memory"
8+
"os"
9+
)
10+
11+
func main() {
12+
fs := memfs.New()
13+
r, err := git.Clone(memory.NewStorage(), fs, &git.CloneOptions{
14+
URL: "https://github.com/speakeasy-api/speakeasy-client-sdk-java",
15+
})
16+
if err != nil {
17+
fmt.Printf("error getting worktree: %s", err)
18+
os.Exit(0)
19+
}
20+
21+
w, err := r.Worktree()
22+
if err != nil {
23+
fmt.Printf("error getting worktree: %s", err)
24+
os.Exit(0)
25+
}
26+
27+
status, err := w.Status()
28+
if err != nil {
29+
fmt.Printf("error getting status: %s", err)
30+
os.Exit(0)
31+
}
32+
fmt.Printf("status clean before rename: %t\n", status.IsClean())
33+
34+
err = fs.Rename("build/pom.xml", "build/pom.xml.old")
35+
if err != nil {
36+
fmt.Printf("error renaming: %s", err)
37+
os.Exit(0)
38+
}
39+
40+
for _, e := range w.Excludes {
41+
fmt.Printf("exclude: %s\n", e)
42+
}
43+
44+
err = w.AddGlob("*")
45+
if err != nil {
46+
fmt.Printf("error renaming: %s", err)
47+
os.Exit(0)
48+
}
49+
50+
status, err = w.Status()
51+
if err != nil {
52+
fmt.Printf("error getting status: %s", err)
53+
os.Exit(0)
54+
}
55+
56+
fmt.Printf("status clean after rename: %t", status.IsClean())
57+
}

0 commit comments

Comments
 (0)