diff --git a/src/components/organizations/OrganizationsList.tsx b/src/components/organizations/OrganizationsList.tsx
index 99eca6b..2c3fd7c 100644
--- a/src/components/organizations/OrganizationsList.tsx
+++ b/src/components/organizations/OrganizationsList.tsx
@@ -281,6 +281,7 @@ export function OrganizationList({
+
) : (
@@ -300,6 +301,14 @@ export function OrganizationList({
)}
+ {org.forkRepositoryCount !== undefined && org.forkRepositoryCount > 0 && (
+
+
+
+ {org.forkRepositoryCount} {org.forkRepositoryCount === 1 ? "fork" : "forks"}
+
+
+ )}
)}
diff --git a/src/lib/github.ts b/src/lib/github.ts
index 975aa48..a1de890 100644
--- a/src/lib/github.ts
+++ b/src/lib/github.ts
@@ -52,13 +52,11 @@ export async function getGithubRepositories({
{ per_page: 100 }
);
- const includePrivate = config.githubConfig?.privateRepositories ?? false;
const skipForks = config.githubConfig?.skipForks ?? false;
const filteredRepos = repos.filter((repo) => {
- const isPrivateAllowed = includePrivate || !repo.private;
const isForkAllowed = !skipForks || !repo.fork;
- return isPrivateAllowed && isForkAllowed;
+ return isForkAllowed;
});
return filteredRepos.map((repo) => ({
diff --git a/src/pages/api/github/organizations.ts b/src/pages/api/github/organizations.ts
index 2f1cd4f..15b458d 100644
--- a/src/pages/api/github/organizations.ts
+++ b/src/pages/api/github/organizations.ts
@@ -91,29 +91,27 @@ export const GET: APIRoute = async ({ request }) => {
.from(repositories)
.where(and(...publicConditions));
- // Get private count (only if private repos are enabled in config)
- const [privateCount] = githubConfig.privateRepositories ? await db
+ // Get private count (always show actual count regardless of config)
+ const [privateCount] = await db
.select({ count: count() })
.from(repositories)
.where(
and(
...baseConditions,
- eq(repositories.isPrivate, true),
- ...(githubConfig.skipForks ? [eq(repositories.isForked, false)] : [])
+ eq(repositories.isPrivate, true)
)
- ) : [{ count: 0 }];
+ );
- // Get fork count (only if forks are enabled in config)
- const [forkCount] = !githubConfig.skipForks ? await db
+ // Get fork count (always show actual count regardless of config)
+ const [forkCount] = await db
.select({ count: count() })
.from(repositories)
.where(
and(
...baseConditions,
- eq(repositories.isForked, true),
- ...(!githubConfig.privateRepositories ? [eq(repositories.isPrivate, false)] : [])
+ eq(repositories.isForked, true)
)
- ) : [{ count: 0 }];
+ );
return {
...org,
diff --git a/src/pages/api/sync/organization.ts b/src/pages/api/sync/organization.ts
index 6d97965..1509ca4 100644
--- a/src/pages/api/sync/organization.ts
+++ b/src/pages/api/sync/organization.ts
@@ -78,7 +78,7 @@ export const POST: APIRoute = async ({ request }) => {
// Fetch repos based on config settings
const allRepos = [];
- // Always fetch public repos
+ // Fetch all repos (public, private, and member) to show in UI
const publicRepos = await octokit.paginate(octokit.repos.listForOrg, {
org,
type: "public",
@@ -86,28 +86,24 @@ export const POST: APIRoute = async ({ request }) => {
});
allRepos.push(...publicRepos);
- // Fetch private repos if enabled in config
- if (decryptedConfig.githubConfig?.includePrivate) {
- const privateRepos = await octokit.paginate(octokit.repos.listForOrg, {
- org,
- type: "private",
- per_page: 100,
- });
- allRepos.push(...privateRepos);
- }
+ // Always fetch private repos to show them in the UI
+ const privateRepos = await octokit.paginate(octokit.repos.listForOrg, {
+ org,
+ type: "private",
+ per_page: 100,
+ });
+ allRepos.push(...privateRepos);
// Also fetch member repos (includes private repos the user has access to)
- if (decryptedConfig.githubConfig?.includePrivate) {
- const memberRepos = await octokit.paginate(octokit.repos.listForOrg, {
- org,
- type: "member",
- per_page: 100,
- });
- // Filter out duplicates
- const existingIds = new Set(allRepos.map(r => r.id));
- const uniqueMemberRepos = memberRepos.filter(r => !existingIds.has(r.id));
- allRepos.push(...uniqueMemberRepos);
- }
+ const memberRepos = await octokit.paginate(octokit.repos.listForOrg, {
+ org,
+ type: "member",
+ per_page: 100,
+ });
+ // Filter out duplicates
+ const existingIds = new Set(allRepos.map(r => r.id));
+ const uniqueMemberRepos = memberRepos.filter(r => !existingIds.has(r.id));
+ allRepos.push(...uniqueMemberRepos);
// Insert repositories
const repoRecords = allRepos.map((repo) => ({