* Remove unused bot work

This removes the previous start of RNW bot work, targetting Azure Functions as a client for GitHub webhooks. GitHub Actions workflows can be triggered in response to many GH webhooks, with orchestration taken care of.

* Change files
This commit is contained in:
Nick Gerleman 2021-11-24 01:37:13 -08:00 коммит произвёл GitHub
Родитель 6b4e4649a6
Коммит 80b08e1fdd
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
22 изменённых файлов: 7 добавлений и 680 удалений

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

@ -9,10 +9,6 @@ parameters:
displayName: Skip Git Push
type: boolean
default: false
- name: skipBotDeployment
displayName: Skip Deploying Bots to Azure Functions
type: boolean
default: false
- name: stopOnNoCI
displayName: Stop if latest commit is ***NO_CI***
type: boolean
@ -98,49 +94,6 @@ jobs:
- template: templates/publish-version-vars.yml
- job: DeployBotCoordinator
displayName: Deploy @rnw-bots/coordinator
condition: eq(variables['Build.SourceBranchName'], 'main')
dependsOn: RnwNpmPublish
pool: ${{ parameters.AgentPool.Medium }}
timeoutInMinutes: 30
steps:
- template: templates/prepare-js-env.yml
# Bump in case the bot coordinator is dependent on other monorepo packages that were just published
- script: npx beachball bump --verbose
displayName: beachball bump
# Azure Functions expects a fully packagable folder with dependencies.
# Reinstall them without hoisting.
- powershell: |
Get-ChildItem "packages\@rnw-bots\coordinator" |
Where-Object{$_.Name -notin 'node_modules','package.json'} |
Copy-Item -Destination $(Build.StagingDirectory)\bot-coordinator -Recurse
Copy-Item yarn.lock $(Build.StagingDirectory)\bot-coordinator
# devDependencies add bloat and might only exist in the monorepo
Get-Content -Encoding utf8 packages\@rnw-bots\coordinator\package.json |
ConvertFrom-Json |
Select-Object -Property * -ExcludeProperty devDependencies |
ConvertTo-Json |
Out-File -Encoding utf8 $(Build.StagingDirectory)\bot-coordinator\package.json
displayName: Organizing for unhoisted dependencies
- template: templates/yarn-install.yml
parameters:
workingDirectory: $(Build.StagingDirectory)\bot-coordinator
frozenLockfile: false
- ${{ if not(parameters.skipBotDeployment) }}:
- task: AzureFunctionApp@1
inputs:
azureSubscription: cxe-rnw-azure
appType: functionApp
appName: rnw-bot-coordinator
package: $(Build.StagingDirectory)\bot-coordinator
- job: RnwNativeBuildDesktop
displayName: Build Desktop
dependsOn: RnwNpmPublish

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

@ -0,0 +1,7 @@
{
"type": "prerelease",
"comment": "Remove unused bot work",
"packageName": "react-native-windows",
"email": "ngerlem@microsoft.com",
"dependentChangeType": "patch"
}

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

@ -1,70 +0,0 @@
# React Native Windows Backport and Integration Bots
There are several processes followed in the react-native-windows repo that could benefit from automation. This document describes an overall architecture to implement two bots: a bot to automatically backport pull requests, and another bot to automatically perform daily integrations of react-native nightly builds. This architecture could be extended to future bots that can interact with GitHub actions and perform sophisticated tasks.
# Backport Bot Overview
As the number of branches we support has increased, so has the number of backport PRs. In many cases these PRs are simple cherry-picks that could be automated.
Under a newly automated flow, backporting a change could look like:
1. Label a PR to backport with "Request Backport to 0.xx"
2. A bot would then:
1. Create a PR cherry-picking the change to the specified branch
2. Comment on both PRs linking them together
3. Notify triage approvers to review the backport PR
3. Triage approvers would approve or request changes to the backport PR
4. The bot will update the labels of the original PR to point to "Backported to 0.xx" if merged
![image](https://user-images.githubusercontent.com/835219/104834402-e6a47700-5853-11eb-8966-26d4fad6a8a8.png)
_Figure 1. Automatic Backports_
Engineer intervention would still be required in cases where the change does not apply cleanly, or where silent merge conflicts exist. In the former case, the bot should notify the user through commenting.
# Integration Bot Overview
Our strategy for keeping up with react-native has shifted towards frequent integration of upstream native bits. While effects have been generally positive, more frequent integration has added a downside of additional overhead. Tooling to perform integration with upstream has become increasingly algorithmic, allowing for automation.
To reduce overhead and establish schedule, a bot can automate the creation of PRs integrating upstream changes. PRs should be created only when no other integration PR is active, and should have a maximum safe duration from last integration (e.g. one week). Integration should be ideally triggered as soon as a new package is available, or an integration PR is merged.
# Technical Requirements
A system supporting these scenarios must have a variety of capabilities:
- Perform actions in response to GitHub actions
- Label added to PR
- Backport PR is merged or closed
- Perform actions on periodic basis
- Poll for newer react-native releases to integrate
- Interact with the GitHub API
- Add/remove labels
- Add comments
- Create PRs
- Cherry-pick and push changes
- Run auto-integration script and push results
# Architecture
Technical requirements necessitate an environment with our repo tooling, such as Node and our Git history. A natural choice to automate tasks against that environment is Azure pipelines. Previous sync scripts followed this approach and ran as periodic pipelines. This setup breaks down when needing to perform actions in response to user actions on the GitHub repo however.
Apart from polling for changes, the de-facto way to respond to actions on a GitHub repo is through webhooks. In this scheme, GitHub will call a user-defined REST endpoint to notify it of an action. This requires a service which can consume these notifications. A common low-maintenance option to consume webhooks is a serverless solution such as Azure Functions. Azure functions provides too restrictive of an environment to perform some of the above tasks.
While neither option can fill all our needs, we can combine straightforward usage of Azure Functions and Azure Pipelines to meet our needs. GitHub webhooks can notify an Azure Functions "coordinator" which delegates to Azure Pipelines "workers". These workers can execute a task in a sophisticated and controlled environment, then call the coordinator with results. The coordinator triggers a worker by using the Azure Pipelines REST API to start a pipeline with defined, job specific variables.
![image](https://user-images.githubusercontent.com/835219/104834460-46028700-5854-11eb-8b30-1a081eff2be4.png)
_Figure 2. Example flow for backport bot_
Apart from allowing the usage of a configurable environment with low maintenance, this separation offers some desirable properties:
- CLI interfacing work is shown in pipeline logs for easier troubleshooting
- Functions are very short-lived (minimal spend)
- Functions can filter irrelevant notifications (e.g. non-backport labels) without spinning up a pipeline
- Functions can quickly interact with GitHub entities (e.g. adding comments) without the latency of spinning up a pipeline
# Security
This system requires storage of several secrets for access to the GitHub repo and Azure pipelines permissions. PATs will be generated for the RNBot service account and stored in the Azure keyvault for the function application, and Pipeline secrets for the pipelines needing access. Credentials for the Azure Pipelines API will be stored in the KeyVault as well (user tbd). Using secrets in the pipeline does not share the concerns of secret usage in PRs, as changes to worker pipelines would have to be signed off on before first execution.
Because endpoints are public, malicious actors could attempt to trigger or spam bot actions. GitHub allows [protecting](https://docs.github.com/en/github-ae@latest/developers/webhooks-and-events/securing-your-webhooks) against this scenario by using a pre-shared secret between GitHub and the service. All endpoints should check against this secret, to be present in calls from both GitHub and Pipelines workers.

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

@ -25,7 +25,6 @@
"packages/@office-iss/*",
"packages/@react-native-windows/*",
"packages/@react-native/*",
"packages/@rnw-bots/*",
"packages/@rnw-scripts/*",
"vnext"
]

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

@ -1,4 +0,0 @@
module.exports = {
extends: ['@rnw-scripts'],
parserOptions: {tsconfigRootDir : __dirname},
};

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

@ -1,7 +0,0 @@
*.js.map
*.ts
.git*
.vscode
local.settings.json
test
tsconfig.json

8
packages/@rnw-bots/coordinator/.gitignore поставляемый
Просмотреть файл

@ -1,8 +0,0 @@
# JS Outputs
lib-commonjs
# Azure Functions artifacts
bin
obj
appsettings.json
local.settings.json

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

@ -1,27 +0,0 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Node Functions",
"type": "node",
"request": "attach",
"port": 9229,
"preLaunchTask": "func: host start"
},
{
"name": "vscode-jest-tests",
"type": "node",
"request": "launch",
"runtimeArgs": [
"--inspect-brk",
"../../../node_modules/jest/bin/jest.js",
"--runInBand",
"--config",
"../../@rnw-scripts/jest-debug-config/jest.debug.config.js",
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"port": 9229,
},
]
}

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

@ -1,283 +0,0 @@
{
"name": "@rnw-bots/coordinator",
"entries": [
{
"date": "Thu, 18 Nov 2021 06:11:21 GMT",
"tag": "@rnw-bots/coordinator_v1.0.12",
"version": "1.0.12",
"comments": {
"patch": [
{
"author": "beachball",
"package": "@rnw-bots/coordinator",
"comment": "Bump @rnw-scripts/eslint-config to v1.1.9",
"commit": "ef32b2fea053970e32e530cea30239337f8975df"
}
]
}
},
{
"date": "Thu, 28 Oct 2021 05:06:01 GMT",
"tag": "@rnw-bots/coordinator_v1.0.11",
"version": "1.0.11",
"comments": {
"none": [
{
"author": "ngerlem@microsoft.com",
"package": "@rnw-bots/coordinator",
"commit": "not available",
"comment": "Update package.json to include the repository"
}
]
}
},
{
"date": "Thu, 28 Oct 2021 05:05:41 GMT",
"tag": "@rnw-bots/coordinator_v1.0.11",
"version": "1.0.11",
"comments": {
"none": [
{
"author": "ngerlem@microsoft.com",
"package": "@rnw-bots/coordinator",
"commit": "166bc6c0e4e1313db7385d64ac803376b3f20b22",
"comment": "Update package.json to include the repository"
}
]
}
},
{
"date": "Thu, 21 Oct 2021 05:08:01 GMT",
"tag": "@rnw-bots/coordinator_v1.0.11",
"version": "1.0.11",
"comments": {
"patch": [
{
"author": "30809111+acoates-ms@users.noreply.github.com",
"package": "@rnw-bots/coordinator",
"comment": "Update to typescript 4",
"commit": "8a0ffecdcf5e68d950f20380fdf62295edb352b6"
}
]
}
},
{
"date": "Wed, 08 Sep 2021 05:08:53 GMT",
"tag": "@rnw-bots/coordinator_v1.0.10",
"version": "1.0.10",
"comments": {
"patch": [
{
"comment": "Set consistent node requirements on our packages",
"author": "ngerlem@microsoft.com",
"commit": "2974ea0ab58b546264b8d9a4a7c12ceeb0a02851",
"package": "@rnw-bots/coordinator"
}
]
}
},
{
"date": "Sat, 24 Jul 2021 05:05:52 GMT",
"tag": "@rnw-bots/coordinator_v1.0.9",
"version": "1.0.9",
"comments": {
"none": [
{
"comment": "Bump @rnw-scripts/just-task to v2.2.0",
"author": "4123478+tido64@users.noreply.github.com",
"commit": "a311022ebc0c1d8070d7e54312197f486c470d33",
"package": "@rnw-bots/coordinator"
}
]
}
},
{
"date": "Fri, 11 Jun 2021 05:08:55 GMT",
"tag": "@rnw-bots/coordinator_v1.0.9",
"version": "1.0.9",
"comments": {
"patch": [
{
"comment": "Bump @rnw-scripts/just-task to v2.2.0",
"author": "ngerlem@microsoft.com",
"commit": "3d7c8d8fcf14a3cbda83a93c85b0bcf1e4e4f829",
"package": "@rnw-bots/coordinator"
}
]
}
},
{
"date": "Wed, 09 Jun 2021 05:10:07 GMT",
"tag": "@rnw-bots/coordinator_v1.0.8",
"version": "1.0.8",
"comments": {
"patch": [
{
"comment": "Bump @rnw-scripts/just-task to v2.1.3",
"author": "igklemen@microsoft.com",
"commit": "2ba41a4f087cc3bf16cbe799575923fc7a626009",
"package": "@rnw-bots/coordinator"
}
]
}
},
{
"date": "Thu, 03 Jun 2021 05:09:47 GMT",
"tag": "@rnw-bots/coordinator_v1.0.7",
"version": "1.0.7",
"comments": {
"patch": [
{
"comment": "Check for missing dependencies during lint",
"author": "ngerlem@microsoft.com",
"commit": "b481f0a4ea68a8100860eb061902b715fca6652e",
"package": "@rnw-bots/coordinator"
}
]
}
},
{
"date": "Fri, 21 May 2021 05:17:18 GMT",
"tag": "@rnw-bots/coordinator_v1.0.6",
"version": "1.0.6",
"comments": {
"patch": [
{
"comment": "Integrate Apr 28 (base of 0.65) Nightly RN Build",
"author": "ngerlem@microsoft.com",
"commit": "5cc9c87a48b392d287fa953d8d23a8188b689545",
"package": "@rnw-bots/coordinator"
}
]
}
},
{
"date": "Thu, 11 Feb 2021 05:08:29 GMT",
"tag": "@rnw-bots/coordinator_v1.0.5",
"version": "1.0.5",
"comments": {
"patch": [
{
"comment": "Bump @rnw-scripts/just-task to v2.1.0",
"author": "ngerlem@microsoft.com",
"commit": "ab41a9b88db59cba0eae1ff7a59c1b550cc8c2bf",
"package": "@rnw-bots/coordinator"
}
]
}
},
{
"date": "Tue, 09 Feb 2021 05:07:37 GMT",
"tag": "@rnw-bots/coordinator_v1.0.4",
"version": "1.0.4",
"comments": {
"patch": [
{
"comment": "Bump just-scripts from 1.3.2 to 1.3.3",
"author": "dannyvv@microsoft.com",
"commit": "ef4046c6a798446b6404dc26d0dd39224a0d7274",
"package": "@rnw-bots/coordinator"
}
]
}
},
{
"date": "Fri, 05 Feb 2021 05:05:05 GMT",
"tag": "@rnw-bots/coordinator_v1.0.3",
"version": "1.0.3",
"comments": {
"none": [
{
"comment": "Bump @rnw-scripts/just-task to v2.0.1",
"author": "ngerlem@microsoft.com",
"commit": "22ee9e8c47a0c794e7d509a471547ba873578e31",
"package": "@rnw-bots/coordinator"
}
]
}
},
{
"date": "Thu, 04 Feb 2021 05:05:58 GMT",
"tag": "@rnw-bots/coordinator_v1.0.3",
"version": "1.0.3",
"comments": {
"patch": [
{
"comment": "Add @rnw-bots scope",
"author": "ngerlem@microsoft.com",
"commit": "c49b38784253cbd7288f9f31398c60f8a01ced35",
"package": "@rnw-bots/coordinator"
}
]
}
},
{
"date": "Thu, 28 Jan 2021 05:06:47 GMT",
"tag": "@react-native-windows/bot-coordinator_v1.0.2",
"version": "1.0.2",
"comments": {
"patch": [
{
"comment": "Leverage default config support in Just library and factor out common tasks",
"author": "dannyvv@microsoft.com",
"commit": "54fb284afaf1b12ab51f1c29bb7ca67eddab8db1",
"package": "@react-native-windows/bot-coordinator"
}
]
}
},
{
"date": "Tue, 26 Jan 2021 05:06:39 GMT",
"tag": "@react-native-windows/bot-coordinator_v1.0.1",
"version": "1.0.1",
"comments": {
"none": [
{
"comment": "Update just-scripts to remove yargs-parser resolution",
"author": "ngerlem@microsoft.com",
"commit": "3d41c761d18cdc771a635bf9f5ef1259db9a27be",
"package": "@react-native-windows/bot-coordinator"
}
],
"patch": [
{
"comment": "Bump @rnw-scripts/just-task to v2.0.0",
"author": "ngerlem@microsoft.com",
"commit": "3d41c761d18cdc771a635bf9f5ef1259db9a27be",
"package": "@react-native-windows/bot-coordinator"
}
]
}
},
{
"date": "Thu, 21 Jan 2021 19:52:26 GMT",
"tag": "@react-native-windows/bot-coordinator_v1.0.0",
"version": "1.0.0",
"comments": {
"patch": [
{
"comment": "Publish bot coordinator package",
"author": "nick@nickgerleman.com",
"commit": "ba1264af39740e6d739252fb5f55d454da51cfad",
"package": "@react-native-windows/bot-coordinator"
}
]
}
},
{
"date": "Wed, 20 Jan 2021 01:45:54 GMT",
"tag": "@react-native-windows/bot-coordinator_v1.0.0",
"version": "1.0.0",
"comments": {
"none": [
{
"comment": "Bump @rnw-scripts/ts-config to v1.1.0",
"author": "ngerlem@microsoft.com",
"commit": "982fb19448d7c9ed3f12fa27182fa69be83478c7",
"package": "@react-native-windows/bot-coordinator"
}
]
}
}
]
}

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

@ -1,109 +0,0 @@
# Change Log - @rnw-bots/coordinator
This log was last generated on Thu, 18 Nov 2021 06:11:21 GMT and should not be manually modified.
<!-- Start content -->
## 1.0.12
Thu, 18 Nov 2021 06:11:21 GMT
### Patches
- Bump @rnw-scripts/eslint-config to v1.1.9
## 1.0.11
Thu, 21 Oct 2021 05:08:01 GMT
### Patches
- Update to typescript 4 (30809111+acoates-ms@users.noreply.github.com)
## 1.0.10
Wed, 08 Sep 2021 05:08:53 GMT
### Patches
- Set consistent node requirements on our packages (ngerlem@microsoft.com)
## 1.0.9
Fri, 11 Jun 2021 05:08:55 GMT
### Patches
- Bump @rnw-scripts/just-task to v2.2.0 (ngerlem@microsoft.com)
## 1.0.8
Wed, 09 Jun 2021 05:10:07 GMT
### Patches
- Bump @rnw-scripts/just-task to v2.1.3 (igklemen@microsoft.com)
## 1.0.7
Thu, 03 Jun 2021 05:09:47 GMT
### Patches
- Check for missing dependencies during lint (ngerlem@microsoft.com)
## 1.0.6
Fri, 21 May 2021 05:17:18 GMT
### Patches
- Integrate Apr 28 (base of 0.65) Nightly RN Build (ngerlem@microsoft.com)
## 1.0.5
Thu, 11 Feb 2021 05:08:29 GMT
### Patches
- Bump @rnw-scripts/just-task to v2.1.0 (ngerlem@microsoft.com)
## 1.0.4
Tue, 09 Feb 2021 05:07:37 GMT
### Patches
- Bump just-scripts from 1.3.2 to 1.3.3 (dannyvv@microsoft.com)
## 1.0.3
Thu, 04 Feb 2021 05:05:58 GMT
### Patches
- Add @rnw-bots scope (ngerlem@microsoft.com)
## 1.0.2
Thu, 28 Jan 2021 05:06:47 GMT
### Patches
- Leverage default config support in Just library and factor out common tasks (dannyvv@microsoft.com)
## 1.0.1
Tue, 26 Jan 2021 05:06:39 GMT
### Patches
- Bump @rnw-scripts/just-task to v2.0.0 (ngerlem@microsoft.com)
## 1.0.0
Thu, 21 Jan 2021 19:52:26 GMT
### Patches
- Publish bot coordinator package (nick@nickgerleman.com)

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

@ -1,11 +0,0 @@
{
"bindings": [
{
"name": "heartbeet",
"type": "timerTrigger",
"direction": "in",
"schedule": "0 0 * * * *"
}
],
"scriptFile": "../lib-commonjs/HeartbeatFunction/index.js"
}

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

@ -1,5 +0,0 @@
import { Context } from "@azure/functions"
export default async (context: Context) => {
context.log('Hello world');
};

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

@ -1,22 +0,0 @@
# @react-native-windows/bot-coordinator
TBD
## Running locally
1. Ensure Azure Functions Core Tools is installed (e.g. through `choco install azure-functions-core-tools-3`)
1. Copy `local.settings.example.json` to `local.settings.json` and add secrets. This file is ignored by Git.
1. Run `yarn start` in the package root
Functions can be invoked with arbitrary inputs by sending a REST request to localhost. E.g.
```
POST http://localhost:7071/admin/functions/HeartbeatFunction
Content-Type: application/json
{
"input": null
}
```
## Deployment
The Azure functions application is deployed nightly along with other artifacts published by the repo.

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

@ -1,15 +0,0 @@
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
}
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[1.*, 2.0.0)"
}
}

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

@ -1 +0,0 @@
module.exports = require('@rnw-scripts/jest-unittest-config');

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

@ -1,7 +0,0 @@
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "[Azure Storage Connection String here]",
"FUNCTIONS_WORKER_RUNTIME": "node"
}
}

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

@ -1,38 +0,0 @@
{
"name": "@rnw-bots/coordinator",
"version": "1.0.12",
"license": "MIT",
"description": "Azure functions application for coordinating react-native-windows bots",
"repository": {
"type": "git",
"url": "https://github.com/microsoft/react-native-windows.git",
"directory": "packages/@rnw-bots/coordinator"
},
"scripts": {
"build": "rnw-scripts build",
"clean": "rnw-scripts clean",
"lint": "rnw-scripts lint",
"lint:fix": "rnw-scripts lint:fix",
"start": "func start --typescript",
"test": "rnw-scripts test",
"watch": "rnw-scripts watch"
},
"dependencies": {},
"devDependencies": {
"@azure/functions": "^1.0.2-beta2",
"@rnw-scripts/eslint-config": "1.1.9",
"@rnw-scripts/jest-unittest-config": "1.2.4",
"@rnw-scripts/just-task": "2.2.1",
"@rnw-scripts/ts-config": "2.0.1",
"@types/node": "^14.14.22",
"babel-jest": "^26.3.0",
"eslint": "7.12.0",
"jest": "^26.6.3",
"just-scripts": "^1.3.3",
"prettier": "1.19.1",
"typescript": "^4.4.4"
},
"engines": {
"node": ">= 12.0.0"
}
}

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

@ -1,4 +0,0 @@
{
"$schema": "http://json.schemastore.org/proxies",
"proxies": {}
}

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

@ -1,7 +0,0 @@
{
"extends": "@rnw-scripts/ts-config",
"compilerOptions": {
"rootDir": "."
},
"exclude": ["lib-commonjs", "node_modules"]
}

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

@ -7,7 +7,6 @@ Several packages are organized into specific package scopes:
- `@office-iss`: Office internal packages
- `@react-native`: Copies of private upstream packages already using the `@react-native` scope. E.g. `@react-native/tester` for the RNTester package.
- `@react-native-windows`: Internal packages used by react-native-windows itself. Versioned and published alongside RNW.
- `@rnw-bots`: Bot infrastructure for the react-native-windows repo. Published as part of the main branch.
- `@rnw-scripts`: Scripts for repository tooling. Published as part of the main branch.
## Unscoped packages

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

@ -275,14 +275,6 @@ $requirements = @(
Valid = { try { (Get-Command yarn -ErrorAction Stop) -ne $null } catch { $false }; }
Install = { choco install -y yarn };
},
@{
Id=[CheckId]::AzureFunctions;
Name = 'Azure Functions Core Tools';
Tags = @('rnwDev');
Valid = { try { (Get-Command func -ErrorAction Stop) -ne $null } catch { $false }; }
Install = { choco install -y azure-functions-core-tools-3 };
Optional = $true;
},
@{
Id=[CheckId]::WinAppDriver;
Name = 'WinAppDriver';

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

@ -117,11 +117,6 @@
"@opentelemetry/api" "^0.10.2"
tslib "^2.0.0"
"@azure/functions@^1.0.2-beta2":
version "1.2.3"
resolved "https://registry.yarnpkg.com/@azure/functions/-/functions-1.2.3.tgz#65765837e7319eedffbf8a971cb2f78d4e043d54"
integrity sha512-dZITbYPNg6ay6ngcCOjRUh1wDhlFITS0zIkqplyH5KfKEAVPooaoaye5mUFnR+WP9WdGRjlNXyl/y2tgWKHcRg==
"@azure/logger@^1.0.0", "@azure/logger@^1.0.1":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.0.3.tgz#6e36704aa51be7d4a1bae24731ea580836293c96"