Skip to content

Commit a62335c

Browse files
authored
fix: tag fetch problem for release_v2 (Azure#17734)
1 parent 268f4ca commit a62335c

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

eng/tools/generator/cmd/v2/common/changlogProcessor.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,14 @@ import (
1515

1616
"github.com/Azure/azure-sdk-for-go/eng/tools/generator/repo"
1717
"github.com/Azure/azure-sdk-for-go/eng/tools/internal/exports"
18+
"github.com/go-git/go-git/v5"
19+
"github.com/go-git/go-git/v5/config"
1820
"github.com/go-git/go-git/v5/plumbing"
1921
)
2022

2123
const (
2224
sdk_tag_fetch_url = "https://api.github.com/repos/Azure/azure-sdk-for-go/git/refs/tags"
25+
sdk_remote_url = "https://github.com/Azure/azure-sdk-for-go.git"
2326
)
2427

2528
func GetAllVersionTags(rpName, namespaceName string) ([]string, error) {
@@ -110,6 +113,23 @@ func GetExportsFromTag(sdkRepo repo.SDKRepository, packagePath, tag string) (*ex
110113
return nil, err
111114
}
112115

116+
// create remote with center sdk repo
117+
remoteName := "release_remote"
118+
_, err = sdkRepo.CreateRemote(&config.RemoteConfig{Name: remoteName, URLs: []string{sdk_remote_url}})
119+
if err != nil {
120+
if err != git.ErrRemoteExists {
121+
return nil, err
122+
}
123+
}
124+
125+
// fetch tag from remote
126+
err = sdkRepo.Fetch(&git.FetchOptions{RemoteName: remoteName, RefSpecs: []config.RefSpec{config.RefSpec(tag + ":" + tag)}})
127+
if err != nil {
128+
if err.Error() != "already up-to-date" {
129+
return nil, err
130+
}
131+
}
132+
113133
// checkout to the specific tag
114134
err = sdkRepo.CheckoutTag(strings.TrimPrefix(tag, "ref/tags/"))
115135
if err != nil {
@@ -130,6 +150,12 @@ func GetExportsFromTag(sdkRepo repo.SDKRepository, packagePath, tag string) (*ex
130150
return nil, err
131151
}
132152

153+
// remove remote
154+
err = sdkRepo.DeleteRemote(remoteName)
155+
if err != nil {
156+
return nil, err
157+
}
158+
133159
// restore current change
134160
err = sdkRepo.StashPop()
135161
if err != nil {

eng/tools/generator/repo/workTree.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ type WorkTree interface {
2727
StashPop() error
2828
Head() (*plumbing.Reference, error)
2929
Tags() (storer.ReferenceIter, error)
30+
Remotes() ([]*git.Remote, error)
31+
DeleteRemote(name string) error
32+
CreateRemote(c *config.RemoteConfig) (*git.Remote, error)
33+
Fetch(o *git.FetchOptions) error
3034
}
3135

3236
type CheckoutOptions git.CheckoutOptions

0 commit comments

Comments
 (0)