diff --git a/apps/dashboard/src/lib/github.functions.ts b/apps/dashboard/src/lib/github.functions.ts index a14750d..1fdac3c 100644 --- a/apps/dashboard/src/lib/github.functions.ts +++ b/apps/dashboard/src/lib/github.functions.ts @@ -4258,7 +4258,10 @@ async function getMyPullsResult({ resource: "pulls.mine.graphql.v2", params: { username }, freshForMs: githubCachePolicy.list.staleTimeMs, - signalKeys: [githubRevalidationSignalKeys.pullsMine], + signalKeys: [ + githubRevalidationSignalKeys.pullsMine, + githubRevalidationSignalKeys.installationAccess, + ], namespaceKeys: [githubRevalidationSignalKeys.pullsMine], cacheMode: "split", merge: (existing, fresh) => mergeMyPullsResults([existing, fresh]), @@ -4446,7 +4449,10 @@ async function getMyIssuesResult({ resource: "issues.mine.graphql.v2", params: { username }, freshForMs: githubCachePolicy.list.staleTimeMs, - signalKeys: [githubRevalidationSignalKeys.issuesMine], + signalKeys: [ + githubRevalidationSignalKeys.issuesMine, + githubRevalidationSignalKeys.installationAccess, + ], namespaceKeys: [githubRevalidationSignalKeys.issuesMine], cacheMode: "split", merge: (existing, fresh) => mergeMyIssuesResults([existing, fresh]), @@ -4742,12 +4748,18 @@ export const getInstallationAccess = createServerFn({ export const refreshInstallationAccess = createServerFn({ method: "POST", }).handler(async () => { + const context = await getGitHubContext(); + if (!context) { + return { ok: false as const }; + } + await markGitHubRevalidationSignals([ githubRevalidationSignalKeys.installationAccess, ]); + await bustGitHubCache(context.session.user.id, "installationAccess", null); debug( "refreshInstallationAccess", - "marked installationAccess for revalidation", + "marked installationAccess for revalidation and busted cache row", ); return { ok: true }; }); @@ -4765,6 +4777,7 @@ export const getUserRepos = createServerFn({ method: "GET" }).handler( resource: "repos.list", params: { sort: "updated", perPage: 10 }, freshForMs: githubCachePolicy.reposList.staleTimeMs, + signalKeys: [githubRevalidationSignalKeys.installationAccess], namespaceKeys: ["repos.list"], cacheMode: "split", request: (headers) =>