Merge pull request #118 from microsoft/releases/4.229.0

Releases/4.229.0
This commit is contained in:
David Paquette 2023-12-07 12:49:15 -07:00 коммит произвёл GitHub
Родитель 47742664d2 6e8f9ae8c4
Коммит eef350c43b
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
7 изменённых файлов: 315 добавлений и 17 удалений

4
package-lock.json сгенерированный
Просмотреть файл

@ -1,12 +1,12 @@
{
"name": "azure-devops-extension-api",
"version": "4.228.0",
"version": "4.229.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "azure-devops-extension-api",
"version": "4.228.0",
"version": "4.229.0",
"license": "MIT",
"dependencies": {
"whatwg-fetch": "~3.0.0"

Просмотреть файл

@ -1,6 +1,6 @@
{
"name": "azure-devops-extension-api",
"version": "4.228.0",
"version": "4.229.0",
"description": "REST client libraries and contracts for Azure DevOps web extension developers.",
"repository": {
"type": "git",

Просмотреть файл

@ -106,9 +106,21 @@ export interface AlertStateUpdate {
}
export enum AlertType {
/**
* The code has an unspecified vulnerability type
*/
Unknown = 0,
/**
* The code uses a dependency with a known vulnerability.
*/
Dependency = 1,
/**
* The code contains a secret that has now been compromised and must be revoked.
*/
Secret = 2,
/**
* The code contains a weakness determined by static analysis.
*/
Code = 3
}
@ -287,27 +299,78 @@ export enum ComponentType {
Vcpkg = 16
}
/**
* Information about a vulnerable dependency
*/
export interface Dependency {
/**
* Dependency name
*/
componentName: string;
/**
* Source of the dependency
*/
componentType: ComponentType;
/**
* Version information
*/
componentVersion: string;
/**
* Unique ID for the dependency
*/
dependencyId: number;
}
/**
* An instance of a vulnerable dependency that was detected
*/
export interface DependencyResult {
/**
* Information about the vulnerable dependency that was found
*/
dependency: Dependency;
/**
* Unique ID for this dependency
*/
dependencyResultId: number;
/**
* ID for the Result that this instance belongs to
*/
resultId: number;
/**
* Heirarchal information when multiple instances are found
*/
rootDependencyId: number;
/**
* Information about where the dependency was found
*/
versionControlFilePath: VersionControlFilePath;
}
/**
* Information about an alert dismissal
*/
export interface Dismissal {
/**
* Unique ID for this dismissal
*/
dismissalId: number;
/**
* Reason for the dismissal
*/
dismissalType: DismissalType;
/**
* Informational message attached to the dismissal
*/
message: string;
requestedOn: Date;
/**
* Identity that dismissed the alert
*/
stateChangedBy: string;
/**
* Identity that dismissed the alert
*/
stateChangedByIdentity: WebApi.IdentityRef;
}
@ -338,9 +401,21 @@ export interface LogicalLocation {
kind: string;
}
/**
* Location in the source control system where the issue was found
*/
export interface PhysicalLocation {
/**
* Path of the file where the issue was found
*/
filePath: string;
/**
* Details about the location where the issue was found including a snippet
*/
region: Region;
/**
* Source control system-specific information about the location
*/
versionControl: VersionControlDetails;
}
@ -352,28 +427,76 @@ export interface Pipeline {
}
export interface Region {
/**
* The column where the code snippet ends
*/
columnEnd: number;
/**
* The column where the code snippet starts
*/
columnStart: number;
/**
* A subset of the code snippet highlighting the issue
*/
highlightSnippet: string;
/**
* The line number where the code snippet ends
*/
lineEnd: number;
/**
* The line number where the code snippet starts
*/
lineStart: number;
/**
* The full code snippet
*/
snippet: string;
}
export interface Result {
/**
* Additional information about the alert. Valid when ResultType is Dependency
*/
dependencyResult: DependencyResult;
/**
* Full fingerprint of the Result. This is used to detect duplicate instances of the same alert
*/
fingerprint: string;
/**
* Unique ID of the fingerprint of the Result
*/
fingerprintId: number;
/**
* Unique ID of the Result
*/
resultId: number;
/**
* This is the index into the SARIF Results array. If we have to do any tool specific insertions, we'll use this key to index back into the SARIF Results array.
*/
resultIndex: number;
/**
* Detailed description of the rule that triggered the alert
*/
resultMessage: string;
/**
* The type of rule that triggered the alert
*/
resultType: ResultType;
/**
* ID of the rule that the triggered the alert
*/
ruleId: number;
/**
* Short description of the rule that triggered the alert
*/
ruleShortDescription: string;
/**
* The severity of the alert
*/
severity: Severity;
/**
* Additional information about the alert. Valid when ResultType is VersionControl
*/
versionControlResult: VersionControlResult;
}
@ -381,8 +504,17 @@ export interface Result {
* This enum defines the different result types.
*/
export enum ResultType {
/**
* The result was found from an unspecified analysis type
*/
Unknown = 0,
/**
* The result was found from dependency analysis
*/
Dependency = 1,
/**
* The result was found from static code analysis
*/
VersionControl = 2
}
@ -390,14 +522,33 @@ export enum ResultType {
* The analysis rule that caused the alert.
*/
export interface Rule {
/**
* Additional properties of this rule
*/
additionalProperties: { [key: string] : any; };
/**
* Description of what this rule detects
*/
description: string;
/**
* Plain-text rule identifier
*/
friendlyName: string;
/**
* Additional information about this rule
*/
helpMessage: string;
/**
* Tool-specific rule identifier
*/
opaqueId: string;
/**
* Markdown-formatted list of resources to learn more about the Rule. In some cases, RuleInfo.AdditionalProperties.advisoryUrls is used instead.
*/
resources: string;
/**
* Classification tags for this rule
*/
tags: string[];
}
@ -419,7 +570,7 @@ export interface SearchCriteria {
*/
keywords: string;
/**
* If true, only return alerts found on the default branch of the repository. \<br /\>If there have been no runs completed on the default branch, the last run is used instead regardless of the branch used for that run. \<br /\>This option is ignored if branchName or ref are provided.
* If true, only return alerts found on the default branch of the repository. \<br /\>If there have been no runs completed on the default branch, the last run is used instead regardless of the branch used for that run. \<br /\>This option is ignored if ref is provided.
*/
onlyDefaultBranchAlerts: boolean;
/**
@ -468,54 +619,138 @@ export enum Severity {
}
export enum State {
/**
* Alert is in an indeterminate state
*/
Unknown = 0,
/**
* Alert has been detected in the code
*/
Active = 1,
/**
* Alert was dismissed by a user
*/
Dismissed = 2,
/**
* The issue is no longer detected in the code
*/
Fixed = 4,
/**
* The tool has determined that the issue is no longer a risk
*/
AutoDismissed = 8
}
/**
* An Analysis tool that can generate security alerts
*/
export interface Tool {
/**
* Name of the tool
*/
name: string;
/**
* The rules that the tool defines
*/
rules: Rule[];
}
export interface UxFilters {
/**
* Branches to display alerts for. If empty, show alerts from all branches
*/
branches: Branch[];
packages: Dependency[];
/**
* Pipelines to show alerts for. If empty, show alerts for all pipelines
*/
pipelines: Pipeline[];
progressPercentage: number;
rules: Rule[];
secretTypes: string[];
/**
* Alert severities to show. If empty show all alert servities
*/
severities: Severity[];
/**
* Alert states to show. If empty show all alert states
*/
states: State[];
}
/**
* Information for locating files in a source control system
*/
export interface VersionControlDetails {
commitHash: string;
itemUrl: string;
}
export interface VersionControlFilePath {
/**
* Path of the file in the version control system
*/
filePath: string;
/**
* Hash of the file in the version control system
*/
filePathHash: number[];
/**
* Unique ID for the file in the version control system
*/
versionControlFilePathId: number;
}
export interface VersionControlResult {
/**
* The ID to associate this structure with the cooresponding Result
*/
resultId: number;
/**
* Information about the snippet where the Result was found
*/
versionControlSnippet: VersionControlSnippet;
}
export interface VersionControlSnippet {
/**
* column in the code file where the snippet ends
*/
endColumn: number;
/**
* line in the code file where the snippet ends
*/
endLine: number;
/**
* subset of the code snippet highlighting the alert issue
*/
highlightSnippet: string;
/**
* larger code snippet
*/
snippet: string;
/**
* column in the code file where the snippet starts
*/
startColumn: number;
/**
* line in the code file where the snippet starts
*/
startLine: number;
/**
* Version control system where the code was found
*/
versionControl: string;
/**
* path of the code file in the version control system
*/
versionControlFilePath: VersionControlFilePath;
/**
* Unique Id number for the file path
*/
versionControlFilePathId: number;
/**
* Unique Id number for this snippet
*/
versionControlSnippetId: number;
}

Просмотреть файл

@ -17,9 +17,11 @@ export class AlertRestClient extends RestClientBase {
}
/**
* Get an alert.
*
* @param project - Project ID or project name
* @param alertId -
* @param repository -
* @param alertId - ID of alert to retrieve
* @param repository - Name or id of a repository that alert is part of
* @param ref -
*/
public async getAlert(
@ -88,9 +90,11 @@ export class AlertRestClient extends RestClientBase {
}
/**
* Get an alert.
*
* @param project - Project ID or project name
* @param alertId -
* @param repository -
* @param alertId - ID of alert to retrieve
* @param repository - Name or id of a repository that alert is part of
* @param ref -
*/
public async getAlertSarif(

Просмотреть файл

@ -166,6 +166,14 @@ export interface BillableCommitterDetail extends BillableCommitter {
* Time reported by the commit.
*/
commitTime: Date;
/**
* DisplayName of the Pusher.
*/
displayName: string;
/**
* MailNickName of the Pusher.
*/
mailNickName: string;
/**
* Project Id commit was pushed to.
*/
@ -178,6 +186,10 @@ export interface BillableCommitterDetail extends BillableCommitter {
* Time of the push that contained the commit.
*/
pushedTime: Date;
/**
* Pusher Id for the push.
*/
pusherId: string;
/**
* Push Id that contained the commit.
*/
@ -186,6 +198,10 @@ export interface BillableCommitterDetail extends BillableCommitter {
* Repository name commit was pushed to.
*/
repoName: string;
/**
* SamAccountName of the Pusher.
*/
samAccountName: string;
}
/**

Просмотреть файл

@ -227,7 +227,7 @@ export class GitRestClient extends RestClientBase {
*
* @param projectName -
* @param repositoryId - Repository user is trying to access
* @param permission - Permission being requestd, must be "viewAlert" "dismissAlert" or "manage"
* @param permission - Permission being requestd, must be "viewAlert" "dismissAlert" "manage" "viewEnablement" or "repoRead"
*/
public async getPermission(
projectName?: string,
@ -334,22 +334,16 @@ export class GitRestClient extends RestClientBase {
* @param project - Project ID or project name
* @param includeDetails - Return all the details on the billable committers.
* @param billingDate - UTC expected. If not specified defaults to the previous billing day.
* @param skip - Skip X rows of resultset to simulate paging.
* @param take - Return Y rows of resultset to simulate paging.
*/
public async getBillableCommittersDetail(
project: string,
includeDetails: string,
billingDate?: Date,
skip?: number,
take?: number
billingDate?: Date
): Promise<Git.BillableCommitterDetail[]> {
const queryValues: any = {
'$includeDetails': includeDetails,
'$billingDate': billingDate,
'$skip': skip,
'$take': take
'$billingDate': billingDate
};
return this.beginRequest<Git.BillableCommitterDetail[]>({
@ -3876,6 +3870,29 @@ export class GitRestClient extends RestClientBase {
});
}
/**
* @param project - Project ID or project name
* @param identityId -
*/
public async getRefFavoritesForProject(
project: string,
identityId?: string
): Promise<Git.GitRefFavorite[]> {
const queryValues: any = {
identityId: identityId
};
return this.beginRequest<Git.GitRefFavorite[]>({
apiVersion: "7.2-preview.1",
routeTemplate: "{project}/_apis/git/favorites/refsForProject",
routeValues: {
project: project
},
queryParams: queryValues
});
}
/**
* Create a git repository in a team project.
*

Просмотреть файл

@ -55,6 +55,7 @@ export interface BillingInfo {
azureSubscriptionId: string;
billingMode: BillingMode;
organizationId: string;
tenantId: string;
}
export enum BillingMode {
@ -72,12 +73,37 @@ export enum BillingMode {
MultiOrg = 2
}
/**
* Information related to billing for Advanced Security services
*/
export interface MeterUsage {
/**
* The Azure DevOps account
*/
accountId: string;
azureSubscriptionId: string;
/**
* A list of identifiers for the commiters to the repositories that have Advanced Security features enabled
*/
billedCommitters: string[];
/**
* The date this billing information pertains to
*/
billingDate: Date;
/**
* True when a bill is generated for Advanced Security feature usage in this organziation
*/
isAdvSecBillable: boolean;
/**
* True when Advanced Security features are enabled in this organization
*/
isAdvSecEnabled: boolean;
/**
* The Azure subscription
*/
tenantId: string;
/**
* The number of commiters to repositories that have Advanced Security features enabled
*/
uniqueCommitterCount: number;
}