@@ -41,6 +41,7 @@ import { DiagnosticsResponse } from '../../types/diagnostics.types';
4141 <li>Validating that all installation accounts have proper data</li>
4242 <li>Testing Octokit authentication for each installation</li>
4343 <li>Listing all organization names (account.login) available</li>
44+ <li>Counting repositories for each GitHub App installation</li>
4445 <li>Verifying account types and permissions</li>
4546 <li>Providing detailed error information for troubleshooting</li>
4647 </ul>
@@ -84,13 +85,19 @@ import { DiagnosticsResponse } from '../../types/diagnostics.types';
8485 <div class="stat-value">{{ getSuccessRate() }}%</div>
8586 <div class="stat-label">Success Rate</div>
8687 </div>
88+ <div class="stat">
89+ <div class="stat-value" [class.success]="lastResult.summary.totalRepositories > 0">
90+ {{ lastResult.summary.totalRepositories }}
91+ </div>
92+ <div class="stat-label">Total Repositories</div>
93+ </div>
8794 </div>
8895
8996 <div class="organizations" *ngIf="lastResult.summary.organizationNames.length > 0">
9097 <h4>Organizations Found:</h4>
9198 <div class="org-list">
9299 <span class="org-chip" *ngFor="let org of lastResult.summary.organizationNames">
93- {{ org }}
100+ {{ org }} ({{ getRepositoryCount(org) }})
94101 </span>
95102 </div>
96103 </div>
@@ -232,6 +239,11 @@ export class MainDiagnosticsComponent {
232239 return Math . round ( ( this . lastResult . summary . validInstallations / this . lastResult . totalInstallations ) * 100 ) ;
233240 }
234241
242+ getRepositoryCount ( orgName : string ) : number {
243+ if ( ! this . lastResult || ! this . lastResult . summary . repositoryCounts ) return 0 ;
244+ return this . lastResult . summary . repositoryCounts [ orgName ] || 0 ;
245+ }
246+
235247 showFullDetails ( ) : void {
236248 this . dialog . open ( InstallationDiagnosticsDialogComponent , {
237249 width : '90vw' ,
@@ -282,6 +294,7 @@ export class MainDiagnosticsComponent {
282294 <p><strong>Valid:</strong> {{ data.summary.validInstallations }}</p>
283295 <p><strong>Invalid:</strong> {{ data.summary.invalidInstallations }}</p>
284296 <p><strong>Success Rate:</strong> {{ getSuccessRate() }}%</p>
297+ <p><strong>Total Repositories:</strong> {{ data.summary.totalRepositories }}</p>
285298 </mat-card-content>
286299 </mat-card>
287300 </div>
@@ -304,7 +317,7 @@ export class MainDiagnosticsComponent {
304317 </mat-card-header>
305318 <mat-card-content>
306319 <mat-chip-set>
307- <mat-chip *ngFor="let org of data.summary.organizationNames">{{ org }}</mat-chip>
320+ <mat-chip *ngFor="let org of data.summary.organizationNames">{{ org }} ({{ getRepositoryCount(org) }} repos) </mat-chip>
308321 </mat-chip-set>
309322 </mat-card-content>
310323 </mat-card>
@@ -361,6 +374,9 @@ export class MainDiagnosticsComponent {
361374 <div class="detail-item">
362375 <strong>Has Octokit:</strong> {{ installation.hasOctokit ? 'Yes' : 'No' }}
363376 </div>
377+ <div class="detail-item">
378+ <strong>Repository Count:</strong> {{ installation.repositoryCount }}
379+ </div>
364380 <div class="detail-item">
365381 <strong>Created:</strong> {{ installation.createdAt | date:'medium' }}
366382 </div>
@@ -469,6 +485,11 @@ export class InstallationDiagnosticsDialogComponent {
469485 return Math . round ( ( this . data . summary . validInstallations / this . data . totalInstallations ) * 100 ) ;
470486 }
471487
488+ getRepositoryCount ( orgName : string ) : number {
489+ if ( ! this . data . summary . repositoryCounts ) return 0 ;
490+ return this . data . summary . repositoryCounts [ orgName ] || 0 ;
491+ }
492+
472493 downloadDiagnostics ( ) : void {
473494 const dataStr = JSON . stringify ( this . data , null , 2 ) ;
474495 const dataBlob = new Blob ( [ dataStr ] , { type : 'application/json' } ) ;
0 commit comments