Add ACTIONS_ORCHESTRATION_ID support to http-client user-agent

Co-authored-by: TingluoHuang <1750815+TingluoHuang@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-01-06 15:32:55 +00:00
parent 09cb71a033
commit 4e1c194b34
23 changed files with 93648 additions and 6 deletions
+1180
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
12463729879319616318
+21435
View File
File diff suppressed because it is too large Load Diff
+22019
View File
File diff suppressed because it is too large Load Diff
+18
View File
@@ -0,0 +1,18 @@
> @actions/io@2.0.0 tsc
> tsc
src/io-util.ts(1,21): error TS2307: Cannot find module 'fs' or its corresponding type declarations.
src/io-util.ts(2,23): error TS2307: Cannot find module 'path' or its corresponding type declarations.
src/io-util.ts(19,27): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/io-util.ts(194,7): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/io-util.ts(195,21): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/io-util.ts(197,7): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/io-util.ts(198,21): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/io-util.ts(204,10): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/io.ts(1,18): error TS2307: Cannot find module 'assert' or its corresponding type declarations.
src/io.ts(2,23): error TS2307: Cannot find module 'path' or its corresponding type declarations.
src/io.ts(200,28): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/io.ts(201,29): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/io.ts(232,7): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/io.ts(233,21): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
+43
View File
@@ -0,0 +1,43 @@
> @actions/http-client@3.0.0 tsc
> tsc
src/auth.ts(1,23): error TS2307: Cannot find module 'http' or its corresponding type declarations.
src/auth.ts(18,49): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/auth.ts(74,49): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/index.ts(3,23): error TS2307: Cannot find module 'http' or its corresponding type declarations.
src/index.ts(4,24): error TS2307: Cannot find module 'https' or its corresponding type declarations.
src/index.ts(6,22): error TS2307: Cannot find module 'net' or its corresponding type declarations.
src/index.ts(8,25): error TS2307: Cannot find module 'tunnel' or its corresponding type declarations.
src/index.ts(9,26): error TS2307: Cannot find module 'undici' or its corresponding type declarations.
src/index.ts(95,20): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/index.ts(97,39): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/index.ts(98,18): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/index.ts(107,36): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/index.ts(108,24): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/index.ts(109,21): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/index.ts(111,39): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/index.ts(116,17): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/index.ts(241,13): error TS2503: Cannot find namespace 'NodeJS'.
src/index.ts(347,20): error TS2503: Cannot find namespace 'NodeJS'.
src/index.ts(359,48): error TS2550: Property 'includes' does not exist on type 'string[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2016' or later.
src/index.ts(395,27): error TS2550: Property 'includes' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2016' or later.
src/index.ts(438,33): error TS2550: Property 'includes' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2016' or later.
src/index.ts(473,20): error TS2503: Cannot find namespace 'NodeJS'.
src/index.ts(499,20): error TS2503: Cannot find namespace 'NodeJS'.
src/index.ts(506,48): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/index.ts(800,25): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/index.ts(820,20): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/interfaces.ts(1,23): error TS2307: Cannot find module 'http' or its corresponding type declarations.
src/interfaces.ts(2,24): error TS2307: Cannot find module 'https' or its corresponding type declarations.
src/interfaces.ts(36,13): error TS2503: Cannot find namespace 'NodeJS'.
src/interfaces.ts(42,20): error TS2503: Cannot find namespace 'NodeJS'.
src/interfaces.ts(47,20): error TS2503: Cannot find namespace 'NodeJS'.
src/interfaces.ts(51,20): error TS2503: Cannot find namespace 'NodeJS'.
src/interfaces.ts(62,20): error TS2503: Cannot find namespace 'NodeJS'.
src/proxy.ts(10,14): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/proxy.ts(10,44): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/proxy.ts(12,14): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/proxy.ts(12,43): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/proxy.ts(38,19): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/proxy.ts(38,46): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
+36
View File
@@ -0,0 +1,36 @@
> @actions/github@6.0.1 tsc
> tsc
src/context.ts(3,40): error TS2307: Cannot find module 'fs' or its corresponding type declarations.
src/context.ts(4,19): error TS2307: Cannot find module 'os' or its corresponding type declarations.
src/context.ts(31,9): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(32,22): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(34,24): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(37,22): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(38,9): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(41,22): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(42,16): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(43,16): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(44,21): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(45,19): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(46,18): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(47,16): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(48,32): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(49,31): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(50,27): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(51,19): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(52,22): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(54,7): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(67,9): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/context.ts(68,29): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/github.ts(5,45): error TS2307: Cannot find module '@octokit/core/dist-types/types' or its corresponding type declarations.
src/internal/utils.ts(1,23): error TS2307: Cannot find module 'http' or its corresponding type declarations.
src/internal/utils.ts(2,29): error TS2307: Cannot find module '@actions/http-client' or its corresponding type declarations.
src/internal/utils.ts(3,30): error TS2307: Cannot find module '@octokit/core/dist-types/types' or its corresponding type declarations.
src/internal/utils.ts(4,33): error TS2307: Cannot find module 'undici' or its corresponding type declarations.
src/internal/utils.ts(43,10): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
src/utils.ts(5,23): error TS2307: Cannot find module '@octokit/core' or its corresponding type declarations.
src/utils.ts(6,30): error TS2307: Cannot find module '@octokit/core/dist-types/types' or its corresponding type declarations.
src/utils.ts(7,35): error TS2307: Cannot find module '@octokit/plugin-rest-endpoint-methods' or its corresponding type declarations.
src/utils.ts(8,28): error TS2307: Cannot find module '@octokit/plugin-paginate-rest' or its corresponding type declarations.
File diff suppressed because it is too large Load Diff
@@ -0,0 +1 @@
4457673479152766597
+1
View File
@@ -0,0 +1 @@
4457673479152766597
Binary file not shown.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+2 -3
View File
@@ -1,12 +1,12 @@
{
"name": "@actions/artifact",
"version": "5.0.0",
"version": "5.0.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@actions/artifact",
"version": "5.0.0",
"version": "5.0.1",
"license": "MIT",
"dependencies": {
"@actions/core": "^2.0.0",
@@ -1986,7 +1986,6 @@
"version": "5.9.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz",
"integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==",
"dev": true,
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "@actions/cache",
"version": "5.0.0",
"version": "5.0.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@actions/cache",
"version": "5.0.0",
"version": "5.0.1",
"license": "MIT",
"dependencies": {
"@actions/core": "^2.0.0",
@@ -374,4 +374,35 @@ describe('basics', () => {
httpm.MediaTypes.ApplicationJson
)
})
it('appends orchestration ID to user-agent when ACTIONS_ORCHESTRATION_ID is set', async () => {
const orchId = 'test-orch-id-12345'
process.env['ACTIONS_ORCHESTRATION_ID'] = orchId
const http: httpm.HttpClient = new httpm.HttpClient('http-client-tests')
const res: httpm.HttpClientResponse = await http.get(
'https://postman-echo.com/get'
)
expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody()
const obj = JSON.parse(body)
expect(obj.headers['user-agent']).toBe(
`http-client-tests (gh_orch_id:${orchId})`
)
delete process.env['ACTIONS_ORCHESTRATION_ID']
})
it('does not modify user-agent when ACTIONS_ORCHESTRATION_ID is not set', async () => {
delete process.env['ACTIONS_ORCHESTRATION_ID']
const http: httpm.HttpClient = new httpm.HttpClient('http-client-tests')
const res: httpm.HttpClientResponse = await http.get(
'https://postman-echo.com/get'
)
expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody()
const obj = JSON.parse(body)
expect(obj.headers['user-agent']).toBe('http-client-tests')
})
})
+9 -1
View File
@@ -599,7 +599,7 @@ export class HttpClient {
info.options.method = method
info.options.headers = this._mergeHeaders(headers)
if (this.userAgent != null) {
info.options.headers['user-agent'] = this.userAgent
info.options.headers['user-agent'] = this._getUserAgentWithOrchestrationId(this.userAgent)
}
info.options.agent = this._getAgent(info.parsedUrl)
@@ -816,6 +816,14 @@ export class HttpClient {
return proxyAgent
}
private _getUserAgentWithOrchestrationId(userAgent: string): string {
const orchId = process.env['ACTIONS_ORCHESTRATION_ID']
if (orchId) {
return `${userAgent} (gh_orch_id:${orchId})`
}
return userAgent
}
private async _performExponentialBackoff(retryNumber: number): Promise<void> {
retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber)
const ms: number = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber)