On set/get of repo make sure forge_id is set and on fetch respected (#5717)

This commit is contained in:
6543
2025-11-27 09:39:41 +01:00
committed by GitHub
parent 9c10f740b9
commit 21ef4cac53
24 changed files with 131 additions and 96 deletions

View File

@@ -63,8 +63,9 @@ type Opts struct {
// New returns a Forge implementation that integrates with a GitHub Cloud or
// GitHub Enterprise version control hosting provider.
func New(opts Opts) (forge.Forge, error) {
func New(id int64, opts Opts) (forge.Forge, error) {
r := &client{
id: id,
API: defaultAPI,
url: defaultURL,
Client: opts.OAuthClientID,
@@ -83,6 +84,7 @@ func New(opts Opts) (forge.Forge, error) {
}
type client struct {
id int64
url string
API string
Client string
@@ -659,7 +661,7 @@ func (c *client) loadChangedFilesFromPullRequest(ctx context.Context, pull *gith
return pipeline, nil
}
repo, err := _store.GetRepoNameFallback(tmpRepo.ForgeRemoteID, tmpRepo.FullName)
repo, err := _store.GetRepoNameFallback(c.id, tmpRepo.ForgeRemoteID, tmpRepo.FullName)
if err != nil {
return nil, err
}
@@ -697,7 +699,7 @@ func (c *client) getTagCommitSHA(ctx context.Context, repo *model.Repo, tagName
return "", nil
}
repo, err := _store.GetRepoNameFallback(repo.ForgeRemoteID, repo.FullName)
repo, err := _store.GetRepoNameFallback(c.id, repo.ForgeRemoteID, repo.FullName)
if err != nil {
return "", err
}
@@ -752,7 +754,7 @@ func (c *client) loadChangedFilesFromCommits(ctx context.Context, tmpRepo *model
log.Trace().Msg("GitHub tag event, fetching changed files using current commit")
}
repo, err := _store.GetRepoNameFallback(tmpRepo.ForgeRemoteID, tmpRepo.FullName)
repo, err := _store.GetRepoNameFallback(c.id, tmpRepo.ForgeRemoteID, tmpRepo.FullName)
if err != nil {
return nil, err
}

View File

@@ -34,7 +34,7 @@ import (
)
func TestNew(t *testing.T) {
forge, _ := New(Opts{
forge, _ := New(0, Opts{
URL: "http://localhost:8080/",
OAuthClientID: "0ZXh0IjoiI",
OAuthClientSecret: "I1NiIsInR5",
@@ -52,7 +52,7 @@ func Test_github(t *testing.T) {
gin.SetMode(gin.TestMode)
s := httptest.NewServer(fixtures.Handler())
c, _ := New(Opts{
c, _ := New(0, Opts{
URL: s.URL,
SkipVerify: true,
})
@@ -62,7 +62,7 @@ func Test_github(t *testing.T) {
ctx := t.Context()
t.Run("netrc with user token", func(t *testing.T) {
forge, _ := New(Opts{})
forge, _ := New(0, Opts{})
netrc, _ := forge.Netrc(fakeUser, fakeRepo)
assert.Equal(t, "github.com", netrc.Machine)
assert.Equal(t, fakeUser.AccessToken, netrc.Login)
@@ -70,7 +70,7 @@ func Test_github(t *testing.T) {
assert.Equal(t, model.ForgeTypeGithub, netrc.Type)
})
t.Run("netrc with machine account", func(t *testing.T) {
forge, _ := New(Opts{})
forge, _ := New(0, Opts{})
netrc, _ := forge.Netrc(nil, fakeRepo)
assert.Equal(t, "github.com", netrc.Machine)
assert.Empty(t, netrc.Login)
@@ -160,7 +160,7 @@ func TestHook(t *testing.T) {
Login: "6543",
AccessToken: "token",
}, nil)
mockStore.On("GetRepoNameFallback", mock.Anything, mock.Anything).Return(&model.Repo{
mockStore.On("GetRepoNameFallback", mock.Anything, mock.Anything, mock.Anything).Return(&model.Repo{
ID: 1,
ForgeRemoteID: "1",
Owner: "6543",