[**@s4ai/core Documentation v0.3.23**](../../../README.md)

***

[@s4ai/core Documentation](../../../modules.md) / [intelligence/cross-repo-learner](../README.md) / RepositoryAnalyzer

# Class: RepositoryAnalyzer

Defined in: intelligence/cross-repo-learner.js:8

## Constructors

### Constructor

> **new RepositoryAnalyzer**(`apiKey`): `RepositoryAnalyzer`

Defined in: intelligence/cross-repo-learner.js:9

#### Parameters

##### apiKey

`any`

#### Returns

`RepositoryAnalyzer`

## Properties

### apiKey

> **apiKey**: `any`

Defined in: intelligence/cross-repo-learner.js:10

***

### baseUrl

> **baseUrl**: `string`

Defined in: intelligence/cross-repo-learner.js:11

***

### bestPractices

> **bestPractices**: `Map`\<`any`, `any`\>

Defined in: intelligence/cross-repo-learner.js:13

***

### learnedPatterns

> **learnedPatterns**: `any`[]

Defined in: intelligence/cross-repo-learner.js:12

## Methods

### analyzeArchitecture()

> **analyzeArchitecture**(`owner`, `repo`): `object`

Defined in: intelligence/cross-repo-learner.js:68

#### Parameters

##### owner

`any`

##### repo

`any`

#### Returns

`object`

##### complexity

> **complexity**: `string` = `'medium'`

##### layers

> **layers**: `string`[]

##### separationOfConcerns

> **separationOfConcerns**: `number` = `0.85`

##### style

> **style**: `string` = `'modular'`

***

### analyzeRepository()

> **analyzeRepository**(`owner`, `repo`): `Promise`\<\{ `analyzedAt`: `number`; `bestPractices`: \{ `ci_cd`: \{ `automationLevel`: `string`; `platform`: `string`; `stages`: `string`[]; \}; `codeQuality`: \{ `linters`: `string`[]; `staticAnalysis`: `boolean`; `typeChecking`: `boolean`; \}; `documentation`: \{ `api`: `boolean`; `examples`: `boolean`; `readme`: `boolean`; `videoTutorials`: `boolean`; \}; `security`: \{ `codeScanning`: `boolean`; `dependencyScanning`: `boolean`; `secretScanning`: `boolean`; \}; `testing`: \{ `coverage`: `string`; `frameworks`: `string`[]; `strategy`: `string`; \}; \}; `language`: `any`; `patterns`: \{ `architecture`: \{ `complexity`: `string`; `layers`: `string`[]; `separationOfConcerns`: `number`; `style`: `string`; \}; `codeReuse`: `never`[]; `documentationQuality`: `number`; `modularity`: `number`; `namingConventions`: `never`[]; `testCoverage`: `number`; \}; `repo`: `string`; `stars`: `any`; `trends`: \{ `activityLevel`: `string`; `adoptionTrend`: `string`; `communitySize`: `any`; `maintenanceStatus`: `string`; `popularity`: `string`; \}; \} \| `null`\>

Defined in: intelligence/cross-repo-learner.js:16

#### Parameters

##### owner

`any`

##### repo

`any`

#### Returns

`Promise`\<\{ `analyzedAt`: `number`; `bestPractices`: \{ `ci_cd`: \{ `automationLevel`: `string`; `platform`: `string`; `stages`: `string`[]; \}; `codeQuality`: \{ `linters`: `string`[]; `staticAnalysis`: `boolean`; `typeChecking`: `boolean`; \}; `documentation`: \{ `api`: `boolean`; `examples`: `boolean`; `readme`: `boolean`; `videoTutorials`: `boolean`; \}; `security`: \{ `codeScanning`: `boolean`; `dependencyScanning`: `boolean`; `secretScanning`: `boolean`; \}; `testing`: \{ `coverage`: `string`; `frameworks`: `string`[]; `strategy`: `string`; \}; \}; `language`: `any`; `patterns`: \{ `architecture`: \{ `complexity`: `string`; `layers`: `string`[]; `separationOfConcerns`: `number`; `style`: `string`; \}; `codeReuse`: `never`[]; `documentationQuality`: `number`; `modularity`: `number`; `namingConventions`: `never`[]; `testCoverage`: `number`; \}; `repo`: `string`; `stars`: `any`; `trends`: \{ `activityLevel`: `string`; `adoptionTrend`: `string`; `communitySize`: `any`; `maintenanceStatus`: `string`; `popularity`: `string`; \}; \} \| `null`\>

***

### extractBestPractices()

> **extractBestPractices**(`owner`, `repo`): `Promise`\<\{ `ci_cd`: \{ `automationLevel`: `string`; `platform`: `string`; `stages`: `string`[]; \}; `codeQuality`: \{ `linters`: `string`[]; `staticAnalysis`: `boolean`; `typeChecking`: `boolean`; \}; `documentation`: \{ `api`: `boolean`; `examples`: `boolean`; `readme`: `boolean`; `videoTutorials`: `boolean`; \}; `security`: \{ `codeScanning`: `boolean`; `dependencyScanning`: `boolean`; `secretScanning`: `boolean`; \}; `testing`: \{ `coverage`: `string`; `frameworks`: `string`[]; `strategy`: `string`; \}; \}\>

Defined in: intelligence/cross-repo-learner.js:77

#### Parameters

##### owner

`any`

##### repo

`any`

#### Returns

`Promise`\<\{ `ci_cd`: \{ `automationLevel`: `string`; `platform`: `string`; `stages`: `string`[]; \}; `codeQuality`: \{ `linters`: `string`[]; `staticAnalysis`: `boolean`; `typeChecking`: `boolean`; \}; `documentation`: \{ `api`: `boolean`; `examples`: `boolean`; `readme`: `boolean`; `videoTutorials`: `boolean`; \}; `security`: \{ `codeScanning`: `boolean`; `dependencyScanning`: `boolean`; `secretScanning`: `boolean`; \}; `testing`: \{ `coverage`: `string`; `frameworks`: `string`[]; `strategy`: `string`; \}; \}\>

***

### extractPatterns()

> **extractPatterns**(`owner`, `repo`): `Promise`\<\{ `architecture`: \{ `complexity`: `string`; `layers`: `string`[]; `separationOfConcerns`: `number`; `style`: `string`; \}; `codeReuse`: `never`[]; `documentationQuality`: `number`; `modularity`: `number`; `namingConventions`: `never`[]; `testCoverage`: `number`; \}\>

Defined in: intelligence/cross-repo-learner.js:54

#### Parameters

##### owner

`any`

##### repo

`any`

#### Returns

`Promise`\<\{ `architecture`: \{ `complexity`: `string`; `layers`: `string`[]; `separationOfConcerns`: `number`; `style`: `string`; \}; `codeReuse`: `never`[]; `documentationQuality`: `number`; `modularity`: `number`; `namingConventions`: `never`[]; `testCoverage`: `number`; \}\>

***

### fetchRepoMetadata()

> **fetchRepoMetadata**(`owner`, `repo`): `Promise`\<`any`\>

Defined in: intelligence/cross-repo-learner.js:47

#### Parameters

##### owner

`any`

##### repo

`any`

#### Returns

`Promise`\<`any`\>

***

### getLearnedInsights()

> **getLearnedInsights**(): `object`

Defined in: intelligence/cross-repo-learner.js:128

#### Returns

`object`

##### bestPractices

> **bestPractices**: `any`

##### commonPatterns

> **commonPatterns**: `object`

###### commonPatterns.documentationBestPractices

> **documentationBestPractices**: `string`[]

###### commonPatterns.essentialSecurityMeasures

> **essentialSecurityMeasures**: `string`[]

###### commonPatterns.mostPopularArchitecture

> **mostPopularArchitecture**: `string` = `'modular'`

###### commonPatterns.recommendedCICDPlatform

> **recommendedCICDPlatform**: `string` = `'github-actions'`

###### commonPatterns.recommendedTestingStrategy

> **recommendedTestingStrategy**: `string` = `'unit + integration + e2e'`

##### patterns

> **patterns**: `object`[]

##### totalReposAnalyzed

> **totalReposAnalyzed**: `number`

***

### identifyCommonPatterns()

> **identifyCommonPatterns**(): `object`

Defined in: intelligence/cross-repo-learner.js:141

#### Returns

`object`

##### documentationBestPractices

> **documentationBestPractices**: `string`[]

##### essentialSecurityMeasures

> **essentialSecurityMeasures**: `string`[]

##### mostPopularArchitecture

> **mostPopularArchitecture**: `string` = `'modular'`

##### recommendedCICDPlatform

> **recommendedCICDPlatform**: `string` = `'github-actions'`

##### recommendedTestingStrategy

> **recommendedTestingStrategy**: `string` = `'unit + integration + e2e'`

***

### identifyTrends()

> **identifyTrends**(`repoData`, `patterns`): `object`

Defined in: intelligence/cross-repo-learner.js:108

#### Parameters

##### repoData

`any`

##### patterns

`any`

#### Returns

`object`

##### activityLevel

> **activityLevel**: `string`

##### adoptionTrend

> **adoptionTrend**: `string` = `'trending'`

##### communitySize

> **communitySize**: `any` = `repoData.watchers_count`

##### maintenanceStatus

> **maintenanceStatus**: `string`

##### popularity

> **popularity**: `string`

***

### recordLearning()

> **recordLearning**(`analysis`): `void`

Defined in: intelligence/cross-repo-learner.js:118

#### Parameters

##### analysis

`any`

#### Returns

`void`
