diff --git a/pkg/cargo/bump.go b/pkg/cargo/bump.go index e76c6977..aff36209 100644 --- a/pkg/cargo/bump.go +++ b/pkg/cargo/bump.go @@ -189,13 +189,14 @@ func ReleaseNotes(ctx context.Context, kf Kilnfile, list BumpList) (BumpList, er } func getGithubRepositoryClientForRelease(kf Kilnfile) func(ctx context.Context, _ Kilnfile, lock BOSHReleaseTarballLock) (repositoryReleaseLister, error) { + // todo: []repositoryReleaseLister return func(ctx context.Context, kilnfile Kilnfile, lock BOSHReleaseTarballLock) (repositoryReleaseLister, error) { spec, err := kf.BOSHReleaseTarballSpecification(lock.Name) if err != nil { return nil, err } - _, owner, _, err := gh.RepositoryHostOwnerAndNameFromPath(spec.GitHubRepository) + host, owner, _, err := gh.RepositoryHostOwnerAndNameFromPath(spec.GitHubRepository) if err != nil { return nil, err } @@ -207,7 +208,8 @@ func getGithubRepositoryClientForRelease(kf Kilnfile) func(ctx context.Context, return nil, fmt.Errorf("release source with id %s not found", lock.RemoteSource) } source := kf.ReleaseSources[i] - client, err := source.GitHubClient(ctx) + + client, err := source.GitHubClient(ctx, host) if err != nil { return nil, err } diff --git a/pkg/cargo/kilnfile.go b/pkg/cargo/kilnfile.go index c3d6ad3b..fea2d37f 100644 --- a/pkg/cargo/kilnfile.go +++ b/pkg/cargo/kilnfile.go @@ -4,11 +4,10 @@ import ( "context" "errors" "fmt" + "github.com/pivotal-cf/kiln/internal/gh" "strings" "github.com/google/go-github/v50/github" - "golang.org/x/oauth2" - "gopkg.in/yaml.v3" "github.com/Masterminds/semver/v3" @@ -173,18 +172,20 @@ type ReleaseSourceConfig struct { Password string `yaml:"password,omitempty"` } -func (c ReleaseSourceConfig) GitHubClient(ctx context.Context) (*github.Client, error) { +func (c ReleaseSourceConfig) GitHubClient(ctx context.Context, githubHost string) (*github.Client, error) { if c.GithubToken == "" { return nil, errors.New("no token passed for github release source") } - tokenSource := oauth2.StaticTokenSource(&oauth2.Token{AccessToken: c.GithubToken}) - tokenClient := oauth2.NewClient(ctx, tokenSource) - var githubClient *github.Client - if c.Endpoint != "" { - return github.NewEnterpriseClient(c.Endpoint, c.Endpoint, tokenClient) - } - githubClient = github.NewClient(tokenClient) - return githubClient, nil + //tokenSource := oauth2.StaticTokenSource(&oauth2.Token{AccessToken: c.GithubToken}) + //tokenClient := oauth2.NewClient(ctx, tokenSource) + //var githubClient *github.Client + //gh.Client(ctx) todo use gh.Client not github.NewClient or github.NewEnterpriseClient + return gh.Client(ctx, host, c.GithubToken, c.GithubEnterpriseToken) + //if strings.HasSuffix(githubHost, "broadcom.net") { + // return github.NewEnterpriseClient(c.Endpoint, c.Endpoint, tokenClient) + //} + //githubClient = github.NewClient(tokenClient) + //return githubClient, nil } // BOSHReleaseTarballLock represents an exact build of a bosh release diff --git a/pkg/notes/notes_data.go b/pkg/notes/notes_data.go index 906d091d..f5fa8f05 100644 --- a/pkg/notes/notes_data.go +++ b/pkg/notes/notes_data.go @@ -135,34 +135,6 @@ func FetchData(ctx context.Context, repo *git.Repository, client *github.Client, return f.fetch(ctx) } -// FetchDataWithoutRepo can be used to generate release notes from tile metadata -func FetchDataWithoutRepo(ctx context.Context, client *github.Client, tileRepoOwner, tileRepoName string, kilnfile cargo.Kilnfile, kilnfileLockInitial, kilnfileLockFinal cargo.KilnfileLock, issuesQuery IssuesQuery) (Data, error) { - r := fetchNotesData{ - repoOwner: tileRepoOwner, - repoName: tileRepoName, - issuesQuery: issuesQuery, - issuesService: client.Issues, - } - data := Data{ - Bumps: cargo.CalculateBumps(kilnfileLockFinal.Releases, kilnfileLockInitial.Releases), - Stemcell: kilnfileLockFinal.Stemcell, - } - var err error - data.Issues, data.Bumps, err = r.fetchIssuesAndReleaseNotes(ctx, kilnfile, kilnfile, data.Bumps, issuesQuery) - if err != nil { - return Data{}, err - } - - for _, c := range kilnfileLockFinal.Releases { - data.Components = append(data.Components, BOSHReleaseData{ - BOSHReleaseTarballLock: c, - Releases: data.Bumps.ForLock(c).Releases, - }) - } - - return data, nil -} - 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) { if repo == nil { return fetchNotesData{}, errors.New("git repository required to generate release notes")