Skip to content

Commit 02dfd9d

Browse files
committed
Fix merge
1 parent 1ac8483 commit 02dfd9d

File tree

3 files changed

+30
-46
lines changed

3 files changed

+30
-46
lines changed

backend/controllers/github.go

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -92,20 +92,6 @@ func (d DiggerController) GithubAppWebHook(c *gin.Context) {
9292
c.String(http.StatusAccepted, "Failed to handle webhook event.")
9393
return
9494
}
95-
case *github.InstallationRepositoriesEvent:
96-
slog.Info("Processing InstallationRepositoriesEvent",
97-
"action", *event.Action,
98-
"installationId", *event.Installation.ID,
99-
"repositoriesAdded", len(event.RepositoriesAdded),
100-
"repositoriesRemoved", len(event.RepositoriesRemoved),
101-
)
102-
103-
err := handleInstallationRepositoriesEvent(event, appId64)
104-
if err != nil {
105-
slog.Error("Failed to handle installation repositories event", "error", err)
106-
c.String(http.StatusAccepted, "Failed to handle webhook event.")
107-
return
108-
}
10995
case *github.PushEvent:
11096
slog.Info("Processing PushEvent",
11197
"repo", *event.Repo.FullName,

backend/controllers/github_installation.go

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ import (
44
"context"
55
"fmt"
66
"log/slog"
7+
"strings"
78

89
"github.com/diggerhq/digger/backend/models"
910
"github.com/diggerhq/digger/backend/utils"
11+
ci_github "github.com/diggerhq/digger/libs/ci/github"
1012
"github.com/google/go-github/v61/github"
1113
)
1214

@@ -27,6 +29,19 @@ func fetchRepoIdentifiers(ctx context.Context, client *github.Client, repo *gith
2729
defaultBranch = repo.GetDefaultBranch()
2830
cloneURL = repo.GetCloneURL()
2931

32+
if owner == "" || name == "" {
33+
if repoFullName != "" {
34+
if parts := strings.Split(repoFullName, "/"); len(parts) == 2 {
35+
if owner == "" {
36+
owner = parts[0]
37+
}
38+
if name == "" {
39+
name = parts[1]
40+
}
41+
}
42+
}
43+
}
44+
3045
if repoFullName == "" && owner != "" && name != "" {
3146
repoFullName = fmt.Sprintf("%s/%s", owner, name)
3247
}
@@ -180,7 +195,21 @@ func handleInstallationUpsertEvent(ctx context.Context, gh utils.GithubClientPro
180195

181196
repoList := installation.Repositories
182197
if len(repoList) == 0 {
183-
slog.Warn("No repositories found to sync for installation", "installationId", installationId)
198+
client, _, err := gh.Get(appIdFromPayload, installationId)
199+
if err != nil {
200+
slog.Error("Error creating GitHub client to list repos for upsert", "installationId", installationId, "error", err)
201+
return err
202+
}
203+
repos, err := ci_github.ListGithubRepos(client)
204+
if err != nil {
205+
slog.Error("Error listing repos for upsert fallback", "installationId", installationId, "error", err)
206+
return err
207+
}
208+
repoList = repos
209+
}
210+
211+
if len(repoList) == 0 {
212+
slog.Warn("No repositories found to sync for installation after fallback", "installationId", installationId)
184213
return nil
185214
}
186215

backend/controllers/github_test.go

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -866,34 +866,3 @@ func TestJobsTreeWithThreeLevels(t *testing.T) {
866866
assert.NoError(t, err)
867867
assert.Equal(t, result["333"].DiggerJobID, parentLinks[0].ParentDiggerJobId)
868868
}
869-
870-
func TestHandleInstallationRepositoriesEvent(t *testing.T) {
871-
teardownSuite, database := setupSuite(t)
872-
defer teardownSuite(t)
873-
874-
// Test repositories added event
875-
var addedEvent github.InstallationRepositoriesEvent
876-
err := json.Unmarshal([]byte(installationRepositoriesAddedPayload), &addedEvent)
877-
assert.NoError(t, err)
878-
879-
err = handleInstallationRepositoriesEvent(&addedEvent, 360162)
880-
assert.NoError(t, err)
881-
882-
// Verify repo was added
883-
installation, err := database.GetGithubAppInstallationByIdAndRepo(41584295, "diggerhq/test-github-action")
884-
assert.NoError(t, err)
885-
assert.NotNil(t, installation)
886-
assert.Equal(t, "diggerhq/test-github-action", installation.Repo)
887-
888-
// Test repositories removed event
889-
var removedEvent github.InstallationRepositoriesEvent
890-
err = json.Unmarshal([]byte(installationRepositoriesDeletedPayload), &removedEvent)
891-
assert.NoError(t, err)
892-
893-
err = handleInstallationRepositoriesEvent(&removedEvent, 360162)
894-
assert.NoError(t, err)
895-
896-
// Verify repo was removed (soft deleted)
897-
installation, err = database.GetGithubAppInstallationByIdAndRepo(41584295, "diggerhq/test-github-action")
898-
assert.Error(t, err) // Should error because repo is deleted
899-
}

0 commit comments

Comments
 (0)