Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
9dd700b
Update workflow (#352)
Mar 15, 2023
a3eb8f1
Update azure devops pipeline and fix tests (#357)
Jun 27, 2023
cef4b0d
Add publish stage to pipeline (#358)
Jun 28, 2023
4e7fd28
Add pool to Publish_package job (#359)
Jun 28, 2023
5d14692
Fix condition (#360)
Jun 28, 2023
ddca2d9
Add release notes automatization (#365)
DmitriiBobreshev Nov 30, 2023
7375ce1
Update github workflows to avoid issues with GITHUB_TOKEN (#366)
DmitriiBobreshev Jan 26, 2024
ed71272
1ES Pipelines Template Adoption (#367)
DmitriiBobreshev Feb 12, 2024
4c0c060
1ES Migration (#369)
DmitriiBobreshev Mar 8, 2024
593335a
Fix CG for typed-rest-client (#370)
DmitriiBobreshev Jun 4, 2024
1815244
Bump the qs version to fix vulnerability issue. (#371)
DenisNikulin5 Jun 26, 2024
7ad2a7a
add EHOSTUNREACH to NetworkRetryErrors (#373)
rumyax Jul 8, 2024
7654878
Migration to CFS (#377)
ivanduplenskikh Sep 9, 2024
92f407b
Add ability to pass global agent options for `HttpClient` (#378)
aleksandrlevochkin Sep 19, 2024
f717982
Updating CODEOWNERS ad fixing build (#383)
tarunramsinghani Jan 17, 2025
b357295
Override elliptic version to 6.6.1 (#386)
rajmishra1997 Jul 2, 2025
7a95f6b
Updating the vmimage versions (#387)
surajitshil-03 Dec 23, 2025
64911c8
update qs package version to 6.14.1 to fix vulnerability (#390)
sanjays-ms Jan 5, 2026
fc383fe
Update underscore package to fix vulnerability (#392)
sanjays-ms Mar 10, 2026
fde5d96
Switch npm publish to use shared npm-tokens variable group (#393)
tarunramsinghani Mar 10, 2026
9bcf1ee
Fix EPERM on npm publish by restoring Npm@1 task (#394)
sanjuyadav24 Mar 25, 2026
1e8daa6
Fix npm publish EPERM by redirecting cache to Agent.TempDirectory (#395)
sanjuyadav24 Mar 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# Global rule:
* @microsoft/akvelon-build-task-team @microsoft/azure-pipelines-platform
* @microsoft/azure-pipelines-tasks-and-agent @microsoft/azure-pipelines-platform
14 changes: 8 additions & 6 deletions .github/workflows/autoAssignABTT.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@ name: Auto Assign ABTT to Project Board

on:
issues:
types: [opened]
env:
MY_GITHUB_TOKEN: ${{ secrets.ABTT_TOKEN }}
types:
- opened

jobs:
assign_one_project:
runs-on: ubuntu-latest
permissions:
issues: write
name: Assign to ABTT Project
steps:
- name: "Add triage and area labels"
Expand All @@ -18,8 +19,9 @@ jobs:
labels: |
Area: RestClient
triage

- name: "Assign issues with 'Area: ABTT' label to project board"
uses: srggrs/assign-one-project-github-action@1.2.0
uses: actions/add-to-project@v0.4.1
with:
project: 'https://github.com/orgs/microsoft/projects/48'
column_name: 'Backlog'
project-url: https://github.com/orgs/microsoft/projects/755
github-token: ${{ secrets.ABTT_TOKEN }}
3 changes: 2 additions & 1 deletion .github/workflows/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ jobs:
stale:

runs-on: ubuntu-latest

permissions:
issues: write
steps:
- uses: actions/stale@v1
with:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
typings
node_modules
_build
.vscode
lib/*.js
samples/*.js
samples/*.txt
Expand Down
3 changes: 3 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
registry=https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/

always-auth=true
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,8 @@ set NODE_DEBUG=http

## Node support

The typed-rest-client is built using the latest LTS version of Node 8. We also support the latest LTS for Node 6 and newer.
v2 - [current, maintained] - Supports node 16 and above
v1 - End Of Life, for Node < 16, contains security vulnerabilities, use at your own risk

## Contributing

Expand Down
173 changes: 128 additions & 45 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
@@ -1,47 +1,130 @@
pool:
vmImage: ubuntu-20.04
# This Yaml Document has been converted by ESAI Yaml Pipeline Conversion Tool.
# This pipeline will be extended to the OneESPT template

trigger:
- master
- releases/*
variables:
- name: isMaster
value: $[eq(variables['Build.SourceBranch'], 'refs/heads/master')]
- name: isRelease
value: $[startsWith(variables['Build.SourceBranch'], 'refs/heads/releases')]
- group: npm-tokens
parameters:
- name: versionSpec
type: object
default:
- '6.x'
- '8.x'
- '10.x'
- '12.x'
- '14.x'
- '16.x'

jobs:
- job: build_test_and_publish
displayName: Build, test and publish
steps:
#build on node 8.x
- task: NodeTool@0
inputs:
versionSpec: '8.x'
displayName: Install node

- script: npm install
displayName: npm install

- script: npm run build
displayName: npm run build
#run unit tests on different node versions
- ${{ each version in parameters.versionSpec }}:
- task: NodeTool@0
inputs:
versionSpec: ${{ version }}
displayName: Install node
- script: npm run units
displayName: npm run units
- script: npm run test
displayName: npm run test
#publish if needed
- task: PublishBuildArtifacts@1
condition: and(succeeded(), in(variables['publishBuild'], 'true'))
inputs:
PathtoPublish: "_build"
ArtifactName: "drop"
ArtifactType: "Container"
displayName: Publish build artifacts
- name: nodeVersionList
type: object
default: [16, 18, 20]
- name: imageList
type: object
default:
windows: 'abtt-windows-2025'
linux: 'abtt-ubuntu-2404'
resources:
repositories:
- repository: 1ESPipelineTemplates
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release
extends:
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
parameters:
sdl:
sbom:
enabled: false
sourceAnalysisPool:
name: 1ES-ABTT-Shared-Pool
image: abtt-windows-2025
os: windows
customBuildTags:
- ES365AIMigrationTooling
stages:
- stage: Build
displayName: Build typed-rest-client
jobs:
- job: Build_and_Publish
displayName: Build and Publish artifact
pool:
name: 1ES-ABTT-Shared-Pool
image: abtt-ubuntu-2404
os: linux
templateContext:
outputs:
- output: pipelineArtifact
displayName: 'Publish _build artifact'
targetPath: _build
artifactType: pipeline
artifactName: _build
steps:
- task: NodeTool@0
inputs:
versionSpec: '20.x'
displayName: Install node 20.x
- task: NpmAuthenticate@0
inputs:
workingFile: .npmrc
- script: npm install
displayName: npm install
- script: npm run build
displayName: npm run build
- stage: Test
displayName: Test typed-rest-client
jobs:
- ${{ each image in parameters.imageList }}:
- ${{ each nodeVersion in parameters.nodeVersionList }}:
- job: Node_os_${{ nodeVersion }}_${{ image.key }}
displayName: Node.js ${{ nodeVersion }} on ${{ image.key }}
pool:
name: 1ES-ABTT-Shared-Pool
image: ${{ image.value }}
os: ${{ image.key }}
steps:
- task: DownloadPipelineArtifact@2
displayName: Download built typed-rest-client package
inputs:
artifact: _build
path: $(Build.SourcesDirectory)/_build
patterns: '!package-lock.json'
- script: npm install
displayName: npm install
- task: NodeTool@0
inputs:
versionSpec: ${{ nodeVersion }}.x
displayName: Install node ${{ nodeVersion }}
- script: npm run units
displayName: npm run units
- script: npm run test
displayName: npm run test
- stage: Publish
condition: and(succeeded(), eq(variables.isMaster, true), in(variables['build.reason'], 'IndividualCI', 'BatchedCI', 'Manual'))
jobs:
- job: Publish_package
displayName: Publish npm package
pool:
name: 1ES-ABTT-Shared-Pool
image: abtt-ubuntu-2404
os: linux
steps:
- task: DownloadPipelineArtifact@2
displayName: Download built typed-rest-client package
inputs:
artifact: _build
path: $(Build.SourcesDirectory)/_build
- bash: |
echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc
npm publish --registry https://registry.npmjs.org/ --cache $(Agent.TempDirectory)/.npm-cache
displayName: Publish typed-rest-client to npm
workingDirectory: '_build'
env:
NPM_TOKEN: $(npm-automation.token)
continueOnError: true
- script: npm install
displayName: npm install
continueOnError: true
condition: and(succeeded(), eq(variables.isMaster, true))
- script: node ./ci/create-release-notes.js
continueOnError: true
condition: and(succeeded(), eq(variables.isMaster, true))
env:
GH_TOKEN: $(gh-automation.token)
branch: $(Build.SourceBranchName)
displayName: Create Release
Loading