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

***

[@s4ai/core Documentation](../../../modules.md) / [autonomous/autonomous-pr](../README.md) / default

# Class: default

Defined in: autonomous/autonomous-pr.js:116

## Extends

- [`Revenue`](../../../@s4ai/core/business/variables/Revenue.md)

## Constructors

### Constructor

> **new default**(`config?`): `AutonomousPRManager`

Defined in: autonomous/autonomous-pr.js:117

#### Parameters

##### config?

#### Returns

`AutonomousPRManager`

#### Overrides

`EventEmitter.constructor`

## Properties

### config

> **config**: `object`

Defined in: autonomous/autonomous-pr.js:119

#### autoApproveThreshold

> **autoApproveThreshold**: `any`

#### autoMergeThreshold

> **autoMergeThreshold**: `any`

#### maxPRsPerDay

> **maxPRsPerDay**: `any`

***

### prHistory

> **prHistory**: `any`[]

Defined in: autonomous/autonomous-pr.js:129

***

### prsApproved

> **prsApproved**: `number`

Defined in: autonomous/autonomous-pr.js:127

***

### prsCreated

> **prsCreated**: `number`

Defined in: autonomous/autonomous-pr.js:126

***

### prsMerged

> **prsMerged**: `number`

Defined in: autonomous/autonomous-pr.js:128

***

### scorer

> **scorer**: [`PRConfidenceScorer`](PRConfidenceScorer.md)

Defined in: autonomous/autonomous-pr.js:125

## Methods

### analyzeCode()

> **analyzeCode**(`files`): `object`

Defined in: autonomous/autonomous-pr.js:237

#### Parameters

##### files

`any`

#### Returns

`object`

##### complexity

> **complexity**: `number`

##### lintIssues

> **lintIssues**: `number`

##### maintainability

> **maintainability**: `number`

***

### analyzePR()

> **analyzePR**(`changes`): `object`

Defined in: autonomous/autonomous-pr.js:192

#### Parameters

##### changes

`any`

#### Returns

`object`

##### analysis

> **analysis**: `object`

###### analysis.complexity

> **complexity**: `number`

###### analysis.lintIssues

> **lintIssues**: `number`

###### analysis.maintainability

> **maintainability**: `number`

##### author

> **author**: `object`

###### author.avgReviewTime

> **avgReviewTime**: `number` = `24`

###### author.mergeSuccessRate

> **mergeSuccessRate**: `number` = `0.85`

##### breaksBackwardCompat

> **breaksBackwardCompat**: `boolean` = `false`

##### files

> **files**: `any` = `changes.files`

##### modifiesCI

> **modifiesCI**: `any`

##### modifiesCore

> **modifiesCore**: `any`

##### modifiesDB

> **modifiesDB**: `any`

##### reviews

> **reviews**: `never`[] = `[]`

##### stats

> **stats**: `object`

###### stats.additions

> **additions**: `number` = `0`

###### stats.deletions

> **deletions**: `number` = `0`

##### tests

> **tests**: `object`

###### tests.coverage

> **coverage**: `number` = `85`

###### tests.passed

> **passed**: `number` = `100`

###### tests.total

> **total**: `number` = `100`

***

### approvePR()

> **approvePR**(`pr`): `Promise`\<`void`\>

Defined in: autonomous/autonomous-pr.js:257

#### Parameters

##### pr

`any`

#### Returns

`Promise`\<`void`\>

***

### createPR()

> **createPR**(`changes`): `Promise`\<\{ `branch`: `string`; `changes`: `any`; `confidence`: \{ `breakdown`: \{ `codeQuality`: `number`; `communityFeedback`: `number`; `deploymentRisk`: `number`; `impactAnalysis`: `number`; `reviewHistory`: `number`; `testCoverage`: `number`; \}; `overall`: `number`; `recommendation`: \{ `action`: `string`; `reason`: `string`; \}; \}; `created`: `number`; `description`: `any`; `id`: `number`; `prData`: \{ `analysis`: \{ `complexity`: `number`; `lintIssues`: `number`; `maintainability`: `number`; \}; `author`: \{ `avgReviewTime`: `number`; `mergeSuccessRate`: `number`; \}; `breaksBackwardCompat`: `boolean`; `files`: `any`; `modifiesCI`: `any`; `modifiesCore`: `any`; `modifiesDB`: `any`; `reviews`: `never`[]; `stats`: \{ `additions`: `number`; `deletions`: `number`; \}; `tests`: \{ `coverage`: `number`; `passed`: `number`; `total`: `number`; \}; \}; `status`: `string`; `title`: `any`; \}\>

Defined in: autonomous/autonomous-pr.js:132

#### Parameters

##### changes

`any`

#### Returns

`Promise`\<\{ `branch`: `string`; `changes`: `any`; `confidence`: \{ `breakdown`: \{ `codeQuality`: `number`; `communityFeedback`: `number`; `deploymentRisk`: `number`; `impactAnalysis`: `number`; `reviewHistory`: `number`; `testCoverage`: `number`; \}; `overall`: `number`; `recommendation`: \{ `action`: `string`; `reason`: `string`; \}; \}; `created`: `number`; `description`: `any`; `id`: `number`; `prData`: \{ `analysis`: \{ `complexity`: `number`; `lintIssues`: `number`; `maintainability`: `number`; \}; `author`: \{ `avgReviewTime`: `number`; `mergeSuccessRate`: `number`; \}; `breaksBackwardCompat`: `boolean`; `files`: `any`; `modifiesCI`: `any`; `modifiesCore`: `any`; `modifiesDB`: `any`; `reviews`: `never`[]; `stats`: \{ `additions`: `number`; `deletions`: `number`; \}; `tests`: \{ `coverage`: `number`; `passed`: `number`; `total`: `number`; \}; \}; `status`: `string`; `title`: `any`; \}\>

***

### getMetrics()

> **getMetrics**(): `object`

Defined in: autonomous/autonomous-pr.js:305

#### Returns

`object`

##### autoMergeRate

> **autoMergeRate**: `number`

##### avgConfidence

> **avgConfidence**: `number`

##### openPRs

> **openPRs**: `number`

##### prsApproved

> **prsApproved**: `number`

##### prsCreated

> **prsCreated**: `number`

##### prsMerged

> **prsMerged**: `number`

##### recentPRs

> **recentPRs**: `any`[]

***

### getPRsByStatus()

> **getPRsByStatus**(`status`): `any`[]

Defined in: autonomous/autonomous-pr.js:319

#### Parameters

##### status

`any`

#### Returns

`any`[]

***

### mergePR()

> **mergePR**(`pr`): `Promise`\<`void`\>

Defined in: autonomous/autonomous-pr.js:264

#### Parameters

##### pr

`any`

#### Returns

`Promise`\<`void`\>

***

### reviewPR()

> **reviewPR**(`prId`, `feedback`): `Promise`\<`any`\>

Defined in: autonomous/autonomous-pr.js:286

#### Parameters

##### prId

`any`

##### feedback

`any`

#### Returns

`Promise`\<`any`\>

***

### runTests()

> **runTests**(): `object`

Defined in: autonomous/autonomous-pr.js:220

#### Returns

`object`

##### coverage

> **coverage**: `number` = `85`

##### passed

> **passed**: `number` = `100`

##### total

> **total**: `number` = `100`
