Skip to content

Commit be572bb

Browse files
notrepo05rizwanreza
authored andcommitted
wip: ideas for refactoring to create github client per release
1 parent e3d2f8e commit be572bb

File tree

3 files changed

+16
-41
lines changed

3 files changed

+16
-41
lines changed

pkg/cargo/bump.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,13 +189,14 @@ func ReleaseNotes(ctx context.Context, kf Kilnfile, list BumpList) (BumpList, er
189189
}
190190

191191
func getGithubRepositoryClientForRelease(kf Kilnfile) func(ctx context.Context, _ Kilnfile, lock BOSHReleaseTarballLock) (repositoryReleaseLister, error) {
192+
// todo: []repositoryReleaseLister
192193
return func(ctx context.Context, kilnfile Kilnfile, lock BOSHReleaseTarballLock) (repositoryReleaseLister, error) {
193194
spec, err := kf.BOSHReleaseTarballSpecification(lock.Name)
194195
if err != nil {
195196
return nil, err
196197
}
197198

198-
_, owner, _, err := gh.RepositoryHostOwnerAndNameFromPath(spec.GitHubRepository)
199+
host, owner, _, err := gh.RepositoryHostOwnerAndNameFromPath(spec.GitHubRepository)
199200
if err != nil {
200201
return nil, err
201202
}
@@ -207,7 +208,8 @@ func getGithubRepositoryClientForRelease(kf Kilnfile) func(ctx context.Context,
207208
return nil, fmt.Errorf("release source with id %s not found", lock.RemoteSource)
208209
}
209210
source := kf.ReleaseSources[i]
210-
client, err := source.GitHubClient(ctx)
211+
212+
client, err := source.GitHubClient(ctx, host)
211213
if err != nil {
212214
return nil, err
213215
}

pkg/cargo/kilnfile.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ import (
44
"context"
55
"errors"
66
"fmt"
7+
"github.com/pivotal-cf/kiln/internal/gh"
78
"strings"
89

910
"github.com/google/go-github/v50/github"
10-
"golang.org/x/oauth2"
11-
1211
"gopkg.in/yaml.v3"
1312

1413
"github.com/Masterminds/semver/v3"
@@ -173,18 +172,20 @@ type ReleaseSourceConfig struct {
173172
Password string `yaml:"password,omitempty"`
174173
}
175174

176-
func (c ReleaseSourceConfig) GitHubClient(ctx context.Context) (*github.Client, error) {
175+
func (c ReleaseSourceConfig) GitHubClient(ctx context.Context, githubHost string) (*github.Client, error) {
177176
if c.GithubToken == "" {
178177
return nil, errors.New("no token passed for github release source")
179178
}
180-
tokenSource := oauth2.StaticTokenSource(&oauth2.Token{AccessToken: c.GithubToken})
181-
tokenClient := oauth2.NewClient(ctx, tokenSource)
182-
var githubClient *github.Client
183-
if c.Endpoint != "" {
184-
return github.NewEnterpriseClient(c.Endpoint, c.Endpoint, tokenClient)
185-
}
186-
githubClient = github.NewClient(tokenClient)
187-
return githubClient, nil
179+
//tokenSource := oauth2.StaticTokenSource(&oauth2.Token{AccessToken: c.GithubToken})
180+
//tokenClient := oauth2.NewClient(ctx, tokenSource)
181+
//var githubClient *github.Client
182+
//gh.Client(ctx) todo use gh.Client not github.NewClient or github.NewEnterpriseClient
183+
return gh.Client(ctx, host, c.GithubToken, c.GithubEnterpriseToken)
184+
//if strings.HasSuffix(githubHost, "broadcom.net") {
185+
// return github.NewEnterpriseClient(c.Endpoint, c.Endpoint, tokenClient)
186+
//}
187+
//githubClient = github.NewClient(tokenClient)
188+
//return githubClient, nil
188189
}
189190

190191
// BOSHReleaseTarballLock represents an exact build of a bosh release

pkg/notes/notes_data.go

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -135,34 +135,6 @@ func FetchData(ctx context.Context, repo *git.Repository, client *github.Client,
135135
return f.fetch(ctx)
136136
}
137137

138-
// FetchDataWithoutRepo can be used to generate release notes from tile metadata
139-
func FetchDataWithoutRepo(ctx context.Context, client *github.Client, tileRepoOwner, tileRepoName string, kilnfile cargo.Kilnfile, kilnfileLockInitial, kilnfileLockFinal cargo.KilnfileLock, issuesQuery IssuesQuery) (Data, error) {
140-
r := fetchNotesData{
141-
repoOwner: tileRepoOwner,
142-
repoName: tileRepoName,
143-
issuesQuery: issuesQuery,
144-
issuesService: client.Issues,
145-
}
146-
data := Data{
147-
Bumps: cargo.CalculateBumps(kilnfileLockFinal.Releases, kilnfileLockInitial.Releases),
148-
Stemcell: kilnfileLockFinal.Stemcell,
149-
}
150-
var err error
151-
data.Issues, data.Bumps, err = r.fetchIssuesAndReleaseNotes(ctx, kilnfile, kilnfile, data.Bumps, issuesQuery)
152-
if err != nil {
153-
return Data{}, err
154-
}
155-
156-
for _, c := range kilnfileLockFinal.Releases {
157-
data.Components = append(data.Components, BOSHReleaseData{
158-
BOSHReleaseTarballLock: c,
159-
Releases: data.Bumps.ForLock(c).Releases,
160-
})
161-
}
162-
163-
return data, nil
164-
}
165-
166138
func newFetchNotesData(repo *git.Repository, tileRepoOwner string, tileRepoName string, kilnfilePath string, initialRevision string, finalRevision string, client *github.Client, issuesQuery IssuesQuery, trainstatClient TrainstatNotesFetcher, variables map[string]any) (fetchNotesData, error) {
167139
if repo == nil {
168140
return fetchNotesData{}, errors.New("git repository required to generate release notes")

0 commit comments

Comments
 (0)