Update dependency js-yaml to v4.1.1 [SECURITY] - autoclosed #112
Community-TC Integration / taskcluster-lib-urls go test
succeeded
Jan 9, 2026 in 2m 50s
Community-TC (pull_request)
Run library test suite - golang 1.23
Details
View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster
Task Status
Started: 2026-01-09T14:29:12.369Z
Resolved: 2026-01-09T14:29:32.854Z
Task Execution Time: 20 seconds, 485 milliseconds
Task Status: completed
Reason Resolved: completed
RunId: 0
Artifacts
- public/logs/live_backing.log
- public/logs/live.log
[taskcluster 2026-01-09T14:29:12.424Z] Worker Type (proj-taskcluster/ci) settings:
[taskcluster 2026-01-09T14:29:12.424Z] {
[taskcluster 2026-01-09T14:29:12.424Z] "config": {
[taskcluster 2026-01-09T14:29:12.424Z] "deploymentId": "23d3331eb921b8d5"
[taskcluster 2026-01-09T14:29:12.424Z] },
[taskcluster 2026-01-09T14:29:12.424Z] "generic-worker": {
[taskcluster 2026-01-09T14:29:12.424Z] "config": {
[taskcluster 2026-01-09T14:29:12.424Z] "headlessTasks": true
[taskcluster 2026-01-09T14:29:12.424Z] },
[taskcluster 2026-01-09T14:29:12.424Z] "engine": "multiuser",
[taskcluster 2026-01-09T14:29:12.424Z] "go-arch": "amd64",
[taskcluster 2026-01-09T14:29:12.424Z] "go-os": "linux",
[taskcluster 2026-01-09T14:29:12.424Z] "go-version": "go1.25.5",
[taskcluster 2026-01-09T14:29:12.424Z] "release": "https://github.com/taskcluster/taskcluster/releases/tag/v95.0.2",
[taskcluster 2026-01-09T14:29:12.424Z] "revision": "1323d556b9fedc5394d5c83036147ee983cac54d",
[taskcluster 2026-01-09T14:29:12.424Z] "source": "https://github.com/taskcluster/taskcluster/commits/1323d556b9fedc5394d5c83036147ee983cac54d",
[taskcluster 2026-01-09T14:29:12.424Z] "version": "95.0.2"
[taskcluster 2026-01-09T14:29:12.424Z] },
[taskcluster 2026-01-09T14:29:12.424Z] "image": "projects/community-tc-workers/global/images/generic-worker-ubuntu-24-04-nobheorrncouiwgbtyfq",
[taskcluster 2026-01-09T14:29:12.424Z] "instance-id": "8532388849430343966",
[taskcluster 2026-01-09T14:29:12.424Z] "instance-type": "projects/757942385826/machineTypes/n2-standard-4",
[taskcluster 2026-01-09T14:29:12.424Z] "local-ipv4": "10.128.0.82",
[taskcluster 2026-01-09T14:29:12.424Z] "machine-setup": {
[taskcluster 2026-01-09T14:29:12.424Z] "maintainer": "taskcluster-notifications+workers@mozilla.com",
[taskcluster 2026-01-09T14:29:12.424Z] "script": "https://raw.githubusercontent.com/taskcluster/community-tc-config/b5b7c2ad856c144a6759e6e72280c4a958f8a930/imagesets/generic-worker-ubuntu-24-04/bootstrap.sh"
[taskcluster 2026-01-09T14:29:12.424Z] },
[taskcluster 2026-01-09T14:29:12.424Z] "project-id": "community-tc-workers",
[taskcluster 2026-01-09T14:29:12.424Z] "public-hostname": "proj-taskcluster-ci-xeyzqbust0ukpysr60wmaq.c.community-tc-workers.internal",
[taskcluster 2026-01-09T14:29:12.424Z] "public-ipv4": "34.30.47.83",
[taskcluster 2026-01-09T14:29:12.424Z] "region": "us-central1",
[taskcluster 2026-01-09T14:29:12.424Z] "zone": "us-central1-a"
[taskcluster 2026-01-09T14:29:12.424Z] }
[taskcluster 2026-01-09T14:29:12.424Z] Task ID: bQZaw3I1T9-bkzzjGXXpLg
[taskcluster 2026-01-09T14:29:12.424Z] === Task Starting ===
[taskcluster 2026-01-09T14:29:12.813Z] [d2g] Loading docker image
[taskcluster 2026-01-09T14:29:13.236Z] [d2g] Loaded docker image "docker.io/library/golang:1.23"
[taskcluster 2026-01-09T14:29:13.236Z] Executing command 0: docker run -t --name taskcontainer_WYSeI4PmQsy5vM4IdYPNRw --memory-swap -1 --pids-limit -1 '--add-host=localhost.localdomain:127.0.0.1' --env-file 'env.list' 'golang:1.23' /bin/bash -c 'curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.61.0 &&
[taskcluster 2026-01-09T14:29:13.236Z] git clone https://github.com/taskcluster/taskcluster-lib-urls.git repo
[taskcluster 2026-01-09T14:29:13.236Z] cd repo
[taskcluster 2026-01-09T14:29:13.236Z] git config advice.detachedHead false
[taskcluster 2026-01-09T14:29:13.236Z] git checkout 188f63abe79bb1872a7049ff0dfb7f97f5496f85
[taskcluster 2026-01-09T14:29:13.236Z] go test -v -race ./...
[taskcluster 2026-01-09T14:29:13.236Z] golangci-lint run
[taskcluster 2026-01-09T14:29:13.236Z] '
golangci/golangci-lint info checking GitHub for tag 'v1.61.0'
golangci/golangci-lint info found version: 1.61.0 for v1.61.0/linux/amd64
golangci/golangci-lint info installed /go/bin/golangci-lint
Cloning into 'repo'...
remote: Enumerating objects: 818, done.
remote: Counting objects: 3% (1/31)
remote: Counting objects: 6% (2/31)
remote: Counting objects: 9% (3/31)
remote: Counting objects: 12% (4/31)
remote: Counting objects: 16% (5/31)
remote: Counting objects: 19% (6/31)
remote: Counting objects: 22% (7/31)
remote: Counting objects: 25% (8/31)
remote: Counting objects: 29% (9/31)
remote: Counting objects: 32% (10/31)
remote: Counting objects: 35% (11/31)
remote: Counting objects: 38% (12/31)
remote: Counting objects: 41% (13/31)
remote: Counting objects: 45% (14/31)
remote: Counting objects: 48% (15/31)
remote: Counting objects: 51% (16/31)
remote: Counting objects: 54% (17/31)
remote: Counting objects: 58% (18/31)
remote: Counting objects: 61% (19/31)
remote: Counting objects: 64% (20/31)
remote: Counting objects: 67% (21/31)
remote: Counting objects: 70% (22/31)
remote: Counting objects: 74% (23/31)
remote: Counting objects: 77% (24/31)
remote: Counting objects: 80% (25/31)
remote: Counting objects: 83% (26/31)
remote: Counting objects: 87% (27/31)
remote: Counting objects: 90% (28/31)
remote: Counting objects: 93% (29/31)
remote: Counting objects: 96% (30/31)
remote: Counting objects: 100% (31/31)
remote: Counting objects: 100% (31/31), done.
remote: Compressing objects: 3% (1/27)
remote: Compressing objects: 7% (2/27)
remote: Compressing objects: 11% (3/27)
remote: Compressing objects: 14% (4/27)
remote: Compressing objects: 18% (5/27)
remote: Compressing objects: 22% (6/27)
remote: Compressing objects: 25% (7/27)
remote: Compressing objects: 29% (8/27)
remote: Compressing objects: 33% (9/27)
remote: Compressing objects: 37% (10/27)
remote: Compressing objects: 40% (11/27)
remote: Compressing objects: 44% (12/27)
remote: Compressing objects: 48% (13/27)
remote: Compressing objects: 51% (14/27)
remote: Compressing objects: 55% (15/27)
remote: Compressing objects: 59% (16/27)
remote: Compressing objects: 62% (17/27)
remote: Compressing objects: 66% (18/27)
remote: Compressing objects: 70% (19/27)
remote: Compressing objects: 74% (20/27)
remote: Compressing objects: 77% (21/27)
remote: Compressing objects: 81% (22/27)
remote: Compressing objects: 85% (23/27)
remote: Compressing objects: 88% (24/27)
remote: Compressing objects: 92% (25/27)
remote: Compressing objects: 96% (26/27)
remote: Compressing objects: 100% (27/27)
remote: Compressing objects: 100% (27/27), done.
Receiving objects: 0% (1/818)
Receiving objects: 1% (9/818)
Receiving objects: 2% (17/818)
Receiving objects: 3% (25/818)
Receiving objects: 4% (33/818)
Receiving objects: 5% (41/818)
Receiving objects: 6% (50/818)
Receiving objects: 7% (58/818)
Receiving objects: 8% (66/818)
Receiving objects: 9% (74/818)
Receiving objects: 10% (82/818)
Receiving objects: 11% (90/818)
Receiving objects: 12% (99/818)
Receiving objects: 13% (107/818)
Receiving objects: 14% (115/818)
Receiving objects: 15% (123/818)
Receiving objects: 16% (131/818)
Receiving objects: 17% (140/818)
Receiving objects: 18% (148/818)
Receiving objects: 19% (156/818)
Receiving objects: 20% (164/818)
Receiving objects: 21% (172/818)
Receiving objects: 22% (180/818)
Receiving objects: 23% (189/818)
Receiving objects: 24% (197/818)
Receiving objects: 25% (205/818)
Receiving objects: 26% (213/818)
Receiving objects: 27% (221/818)
Receiving objects: 28% (230/818)
Receiving objects: 29% (238/818)
Receiving objects: 30% (246/818)
Receiving objects: 31% (254/818)
Receiving objects: 32% (262/818)
Receiving objects: 33% (270/818)
Receiving objects: 34% (279/818)
Receiving objects: 35% (287/818)
Receiving objects: 36% (295/818)
Receiving objects: 37% (303/818)
Receiving objects: 38% (311/818)
Receiving objects: 39% (320/818)
Receiving objects: 40% (328/818)
Receiving objects: 41% (336/818)
Receiving objects: 42% (344/818)
Receiving objects: 43% (352/818)
Receiving objects: 44% (360/818)
Receiving objects: 45% (369/818)
Receiving objects: 46% (377/818)
Receiving objects: 47% (385/818)
Receiving objects: 48% (393/818)
Receiving objects: 49% (401/818)
Receiving objects: 50% (409/818)
Receiving objects: 51% (418/818)
Receiving objects: 52% (426/818)
Receiving objects: 53% (434/818)
Receiving objects: 54% (442/818)
Receiving objects: 55% (450/818)
Receiving objects: 56% (459/818)
Receiving objects: 57% (467/818)
Receiving objects: 58% (475/818)
Receiving objects: 59% (483/818)
Receiving objects: 60% (491/818)
Receiving objects: 61% (499/818)
Receiving objects: 62% (508/818)
Receiving objects: 63% (516/818)
Receiving objects: 64% (524/818)
Receiving objects: 65% (532/818)
Receiving objects: 66% (540/818)
Receiving objects: 67% (549/818)
Receiving objects: 68% (557/818)
Receiving objects: 69% (565/818)
Receiving objects: 70% (573/818)
Receiving objects: 71% (581/818)
Receiving objects: 72% (589/818)
Receiving objects: 73% (598/818)
Receiving objects: 74% (606/818)
Receiving objects: 75% (614/818)
Receiving objects: 76% (622/818)
Receiving objects: 77% (630/818)
Receiving objects: 78% (639/818)
Receiving objects: 79% (647/818)
Receiving objects: 80% (655/818)
Receiving objects: 81% (663/818)
Receiving objects: 82% (671/818)
Receiving objects: 83% (679/818)
Receiving objects: 84% (688/818)
Receiving objects: 85% (696/818)
Receiving objects: 86% (704/818)
Receiving objects: 87% (712/818)
Receiving objects: 88% (720/818)
remote: Total 818 (delta 10), reused 9 (delta 4), pack-reused 787 (from 2)
Receiving objects: 89% (729/818)
Receiving objects: 90% (737/818)
Receiving objects: 91% (745/818)
Receiving objects: 92% (753/818)
Receiving objects: 93% (761/818)
Receiving objects: 94% (769/818)
Receiving objects: 95% (778/818)
Receiving objects: 96% (786/818)
Receiving objects: 97% (794/818)
Receiving objects: 98% (802/818)
Receiving objects: 99% (810/818)
Receiving objects: 100% (818/818)
Receiving objects: 100% (818/818), 570.55 KiB | 6.71 MiB/s, done.
Resolving deltas: 0% (0/377)
Resolving deltas: 1% (4/377)
Resolving deltas: 2% (8/377)
Resolving deltas: 3% (12/377)
Resolving deltas: 4% (16/377)
Resolving deltas: 5% (19/377)
Resolving deltas: 6% (23/377)
Resolving deltas: 7% (27/377)
Resolving deltas: 8% (31/377)
Resolving deltas: 9% (34/377)
Resolving deltas: 10% (38/377)
Resolving deltas: 11% (42/377)
Resolving deltas: 12% (46/377)
Resolving deltas: 13% (50/377)
Resolving deltas: 14% (53/377)
Resolving deltas: 15% (58/377)
Resolving deltas: 16% (61/377)
Resolving deltas: 17% (65/377)
Resolving deltas: 18% (68/377)
Resolving deltas: 19% (72/377)
Resolving deltas: 20% (76/377)
Resolving deltas: 21% (80/377)
Resolving deltas: 22% (83/377)
Resolving deltas: 23% (87/377)
Resolving deltas: 24% (92/377)
Resolving deltas: 25% (95/377)
Resolving deltas: 26% (99/377)
Resolving deltas: 27% (102/377)
Resolving deltas: 28% (106/377)
Resolving deltas: 29% (110/377)
Resolving deltas: 30% (114/377)
Resolving deltas: 31% (117/377)
Resolving deltas: 32% (121/377)
Resolving deltas: 33% (126/377)
Resolving deltas: 34% (129/377)
Resolving deltas: 35% (132/377)
Resolving deltas: 36% (136/377)
Resolving deltas: 37% (140/377)
Resolving deltas: 38% (144/377)
Resolving deltas: 39% (148/377)
Resolving deltas: 40% (151/377)
Resolving deltas: 41% (155/377)
Resolving deltas: 42% (159/377)
Resolving deltas: 43% (163/377)
Resolving deltas: 44% (166/377)
Resolving deltas: 45% (170/377)
Resolving deltas: 46% (174/377)
Resolving deltas: 47% (178/377)
Resolving deltas: 48% (181/377)
Resolving deltas: 49% (185/377)
Resolving deltas: 50% (189/377)
Resolving deltas: 51% (193/377)
Resolving deltas: 52% (197/377)
Resolving deltas: 53% (200/377)
Resolving deltas: 54% (204/377)
Resolving deltas: 55% (208/377)
Resolving deltas: 56% (212/377)
Resolving deltas: 57% (215/377)
Resolving deltas: 58% (219/377)
Resolving deltas: 59% (223/377)
Resolving deltas: 60% (227/377)
Resolving deltas: 61% (230/377)
Resolving deltas: 62% (234/377)
Resolving deltas: 63% (238/377)
Resolving deltas: 64% (242/377)
Resolving deltas: 65% (246/377)
Resolving deltas: 66% (249/377)
Resolving deltas: 67% (253/377)
Resolving deltas: 68% (257/377)
Resolving deltas: 69% (261/377)
Resolving deltas: 70% (264/377)
Resolving deltas: 71% (268/377)
Resolving deltas: 72% (272/377)
Resolving deltas: 73% (276/377)
Resolving deltas: 74% (279/377)
Resolving deltas: 75% (283/377)
Resolving deltas: 76% (287/377)
Resolving deltas: 77% (291/377)
Resolving deltas: 78% (296/377)
Resolving deltas: 79% (298/377)
Resolving deltas: 80% (302/377)
Resolving deltas: 81% (306/377)
Resolving deltas: 82% (310/377)
Resolving deltas: 83% (313/377)
Resolving deltas: 84% (317/377)
Resolving deltas: 85% (321/377)
Resolving deltas: 86% (326/377)
Resolving deltas: 87% (328/377)
Resolving deltas: 88% (332/377)
Resolving deltas: 89% (336/377)
Resolving deltas: 90% (340/377)
Resolving deltas: 91% (344/377)
Resolving deltas: 92% (347/377)
Resolving deltas: 93% (351/377)
Resolving deltas: 94% (355/377)
Resolving deltas: 95% (359/377)
Resolving deltas: 96% (362/377)
Resolving deltas: 97% (366/377)
Resolving deltas: 98% (370/377)
Resolving deltas: 99% (374/377)
Resolving deltas: 100% (377/377)
Resolving deltas: 100% (377/377), done.
HEAD is now at 188f63a Update dependency js-yaml to v4.1.1 [SECURITY]
go: downloading gopkg.in/yaml.v2 v2.4.0
=== RUN TestURLs
tcurls_test.go:69: β api(`https://taskcluster.example.com`, `auth`, `v1`, `ping`) = `https://taskcluster.example.com/api/auth/v1/ping`
tcurls_test.go:69: β api(`https://taskcluster.example.com/`, `auth`, `v1`, `ping`) = `https://taskcluster.example.com/api/auth/v1/ping`
tcurls_test.go:69: β api(`https://taskcluster.example.com//`, `auth`, `v1`, `ping`) = `https://taskcluster.example.com/api/auth/v1/ping`
tcurls_test.go:69: β api(`12345`, `auth`, `v1`, `ping`) = `12345/api/auth/v1/ping`
tcurls_test.go:69: β api(``, `auth`, `v1`, `ping`) = `/api/auth/v1/ping`
tcurls_test.go:69: β api(`https://taskcluster.example.com`, `auth`, `v1`, `/ping`) = `https://taskcluster.example.com/api/auth/v1/ping`
tcurls_test.go:69: β api(`https://taskcluster.example.com/`, `auth`, `v1`, `/ping`) = `https://taskcluster.example.com/api/auth/v1/ping`
tcurls_test.go:69: β api(`https://taskcluster.example.com//`, `auth`, `v1`, `/ping`) = `https://taskcluster.example.com/api/auth/v1/ping`
tcurls_test.go:69: β api(`12345`, `auth`, `v1`, `/ping`) = `12345/api/auth/v1/ping`
tcurls_test.go:69: β api(``, `auth`, `v1`, `/ping`) = `/api/auth/v1/ping`
tcurls_test.go:69: β api(`https://taskcluster.example.com`, `auth`, `v1`, `//ping`) = `https://taskcluster.example.com/api/auth/v1/ping`
tcurls_test.go:69: β api(`https://taskcluster.example.com/`, `auth`, `v1`, `//ping`) = `https://taskcluster.example.com/api/auth/v1/ping`
tcurls_test.go:69: β api(`https://taskcluster.example.com//`, `auth`, `v1`, `//ping`) = `https://taskcluster.example.com/api/auth/v1/ping`
tcurls_test.go:69: β api(`12345`, `auth`, `v1`, `//ping`) = `12345/api/auth/v1/ping`
tcurls_test.go:69: β api(``, `auth`, `v1`, `//ping`) = `/api/auth/v1/ping`
tcurls_test.go:69: β api(`https://taskcluster.example.com`, `auth`, `v1`, `foo/ping`) = `https://taskcluster.example.com/api/auth/v1/foo/ping`
tcurls_test.go:69: β api(`https://taskcluster.example.com/`, `auth`, `v1`, `foo/ping`) = `https://taskcluster.example.com/api/auth/v1/foo/ping`
tcurls_test.go:69: β api(`https://taskcluster.example.com//`, `auth`, `v1`, `foo/ping`) = `https://taskcluster.example.com/api/auth/v1/foo/ping`
tcurls_test.go:69: β api(`12345`, `auth`, `v1`, `foo/ping`) = `12345/api/auth/v1/foo/ping`
tcurls_test.go:69: β api(``, `auth`, `v1`, `foo/ping`) = `/api/auth/v1/foo/ping`
tcurls_test.go:69: β api(`https://taskcluster.example.com`, `auth`, `v1`, `/foo/ping`) = `https://taskcluster.example.com/api/auth/v1/foo/ping`
tcurls_test.go:69: β api(`https://taskcluster.example.com/`, `auth`, `v1`, `/foo/ping`) = `https://taskcluster.example.com/api/auth/v1/foo/ping`
tcurls_test.go:69: β api(`https://taskcluster.example.com//`, `auth`, `v1`, `/foo/ping`) = `https://taskcluster.example.com/api/auth/v1/foo/ping`
tcurls_test.go:69: β api(`12345`, `auth`, `v1`, `/foo/ping`) = `12345/api/auth/v1/foo/ping`
tcurls_test.go:69: β api(``, `auth`, `v1`, `/foo/ping`) = `/api/auth/v1/foo/ping`
tcurls_test.go:69: β api(`https://taskcluster.example.com`, `auth`, `v1`, `//foo/ping`) = `https://taskcluster.example.com/api/auth/v1/foo/ping`
tcurls_test.go:69: β api(`https://taskcluster.example.com/`, `auth`, `v1`, `//foo/ping`) = `https://taskcluster.example.com/api/auth/v1/foo/ping`
tcurls_test.go:69: β api(`https://taskcluster.example.com//`, `auth`, `v1`, `//foo/ping`) = `https://taskcluster.example.com/api/auth/v1/foo/ping`
tcurls_test.go:69: β api(`12345`, `auth`, `v1`, `//foo/ping`) = `12345/api/auth/v1/foo/ping`
tcurls_test.go:69: β api(``, `auth`, `v1`, `//foo/ping`) = `/api/auth/v1/foo/ping`
tcurls_test.go:69: β docs(`12345`, `something/in/docs`) = `12345/docs/something/in/docs`
tcurls_test.go:69: β docs(``, `something/in/docs`) = `/docs/something/in/docs`
tcurls_test.go:69: β docs(`https://taskcluster.example.com`, `something/in/docs`) = `https://taskcluster.example.com/docs/something/in/docs`
tcurls_test.go:69: β docs(`https://taskcluster.example.com/`, `something/in/docs`) = `https://taskcluster.example.com/docs/something/in/docs`
tcurls_test.go:69: β docs(`https://taskcluster.example.com//`, `something/in/docs`) = `https://taskcluster.example.com/docs/something/in/docs`
tcurls_test.go:69: β docs(`https://taskcluster.example.com`, `/something/in/docs`) = `https://taskcluster.example.com/docs/something/in/docs`
tcurls_test.go:69: β docs(`https://taskcluster.example.com/`, `/something/in/docs`) = `https://taskcluster.example.com/docs/something/in/docs`
tcurls_test.go:69: β docs(`https://taskcluster.example.com//`, `/something/in/docs`) = `https://taskcluster.example.com/docs/something/in/docs`
tcurls_test.go:69: β docs(`12345`, `/something/in/docs`) = `12345/docs/something/in/docs`
tcurls_test.go:69: β docs(``, `/something/in/docs`) = `/docs/something/in/docs`
tcurls_test.go:69: β docs(`12345`, `//something/in/docs`) = `12345/docs/something/in/docs`
tcurls_test.go:69: β docs(``, `//something/in/docs`) = `/docs/something/in/docs`
tcurls_test.go:69: β docs(`https://taskcluster.example.com`, `//something/in/docs`) = `https://taskcluster.example.com/docs/something/in/docs`
tcurls_test.go:69: β docs(`https://taskcluster.example.com/`, `//something/in/docs`) = `https://taskcluster.example.com/docs/something/in/docs`
tcurls_test.go:69: β docs(`https://taskcluster.example.com//`, `//something/in/docs`) = `https://taskcluster.example.com/docs/something/in/docs`
tcurls_test.go:69: β schema(`12345`, `auth`, `v1/something.json`) = `12345/schemas/auth/v1/something.json`
tcurls_test.go:69: β schema(``, `auth`, `v1/something.json`) = `/schemas/auth/v1/something.json`
tcurls_test.go:69: β schema(`https://taskcluster.example.com`, `auth`, `v1/something.json`) = `https://taskcluster.example.com/schemas/auth/v1/something.json`
tcurls_test.go:69: β schema(`https://taskcluster.example.com/`, `auth`, `v1/something.json`) = `https://taskcluster.example.com/schemas/auth/v1/something.json`
tcurls_test.go:69: β schema(`https://taskcluster.example.com//`, `auth`, `v1/something.json`) = `https://taskcluster.example.com/schemas/auth/v1/something.json`
tcurls_test.go:69: β schema(`https://taskcluster.example.com`, `auth`, `/v1/something.json`) = `https://taskcluster.example.com/schemas/auth/v1/something.json`
tcurls_test.go:69: β schema(`https://taskcluster.example.com/`, `auth`, `/v1/something.json`) = `https://taskcluster.example.com/schemas/auth/v1/something.json`
tcurls_test.go:69: β schema(`https://taskcluster.example.com//`, `auth`, `/v1/something.json`) = `https://taskcluster.example.com/schemas/auth/v1/something.json`
tcurls_test.go:69: β schema(`12345`, `auth`, `/v1/something.json`) = `12345/schemas/auth/v1/something.json`
tcurls_test.go:69: β schema(``, `auth`, `/v1/something.json`) = `/schemas/auth/v1/something.json`
tcurls_test.go:69: β schema(`https://taskcluster.example.com`, `auth`, `//v1/something.json`) = `https://taskcluster.example.com/schemas/auth/v1/something.json`
tcurls_test.go:69: β schema(`https://taskcluster.example.com/`, `auth`, `//v1/something.json`) = `https://taskcluster.example.com/schemas/auth/v1/something.json`
tcurls_test.go:69: β schema(`https://taskcluster.example.com//`, `auth`, `//v1/something.json`) = `https://taskcluster.example.com/schemas/auth/v1/something.json`
tcurls_test.go:69: β schema(`12345`, `auth`, `//v1/something.json`) = `12345/schemas/auth/v1/something.json`
tcurls_test.go:69: β schema(``, `auth`, `//v1/something.json`) = `/schemas/auth/v1/something.json`
tcurls_test.go:69: β schema(`https://taskcluster.example.com`, `auth`, `v2/something.json`) = `https://taskcluster.example.com/schemas/auth/v2/something.json`
tcurls_test.go:69: β schema(`https://taskcluster.example.com/`, `auth`, `v2/something.json`) = `https://taskcluster.example.com/schemas/auth/v2/something.json`
tcurls_test.go:69: β schema(`https://taskcluster.example.com//`, `auth`, `v2/something.json`) = `https://taskcluster.example.com/schemas/auth/v2/something.json`
tcurls_test.go:69: β schema(`12345`, `auth`, `v2/something.json`) = `12345/schemas/auth/v2/something.json`
tcurls_test.go:69: β schema(``, `auth`, `v2/something.json`) = `/schemas/auth/v2/something.json`
tcurls_test.go:69: β schema(``, `auth`, `/v2/something.json`) = `/schemas/auth/v2/something.json`
tcurls_test.go:69: β schema(`https://taskcluster.example.com`, `auth`, `/v2/something.json`) = `https://taskcluster.example.com/schemas/auth/v2/something.json`
tcurls_test.go:69: β schema(`https://taskcluster.example.com/`, `auth`, `/v2/something.json`) = `https://taskcluster.example.com/schemas/auth/v2/something.json`
tcurls_test.go:69: β schema(`https://taskcluster.example.com//`, `auth`, `/v2/something.json`) = `https://taskcluster.example.com/schemas/auth/v2/something.json`
tcurls_test.go:69: β schema(`12345`, `auth`, `/v2/something.json`) = `12345/schemas/auth/v2/something.json`
tcurls_test.go:69: β schema(`https://taskcluster.example.com`, `auth`, `//v2/something.json`) = `https://taskcluster.example.com/schemas/auth/v2/something.json`
tcurls_test.go:69: β schema(`https://taskcluster.example.com/`, `auth`, `//v2/something.json`) = `https://taskcluster.example.com/schemas/auth/v2/something.json`
tcurls_test.go:69: β schema(`https://taskcluster.example.com//`, `auth`, `//v2/something.json`) = `https://taskcluster.example.com/schemas/auth/v2/something.json`
tcurls_test.go:69: β schema(`12345`, `auth`, `//v2/something.json`) = `12345/schemas/auth/v2/something.json`
tcurls_test.go:69: β schema(``, `auth`, `//v2/something.json`) = `/schemas/auth/v2/something.json`
tcurls_test.go:69: β apiReferenceSchema(`12345`, `v1`) = `12345/schemas/common/api-reference-v1.json`
tcurls_test.go:69: β apiReferenceSchema(``, `v1`) = `/schemas/common/api-reference-v1.json`
tcurls_test.go:69: β apiReferenceSchema(`https://taskcluster.example.com`, `v1`) = `https://taskcluster.example.com/schemas/common/api-reference-v1.json`
tcurls_test.go:69: β apiReferenceSchema(`https://taskcluster.example.com/`, `v1`) = `https://taskcluster.example.com/schemas/common/api-reference-v1.json`
tcurls_test.go:69: β apiReferenceSchema(`https://taskcluster.example.com//`, `v1`) = `https://taskcluster.example.com/schemas/common/api-reference-v1.json`
tcurls_test.go:69: β exchangesReferenceSchema(`https://taskcluster.example.com`, `v1`) = `https://taskcluster.example.com/schemas/common/exchanges-reference-v1.json`
tcurls_test.go:69: β exchangesReferenceSchema(`https://taskcluster.example.com/`, `v1`) = `https://taskcluster.example.com/schemas/common/exchanges-reference-v1.json`
tcurls_test.go:69: β exchangesReferenceSchema(`https://taskcluster.example.com//`, `v1`) = `https://taskcluster.example.com/schemas/common/exchanges-reference-v1.json`
tcurls_test.go:69: β exchangesReferenceSchema(`12345`, `v1`) = `12345/schemas/common/exchanges-reference-v1.json`
tcurls_test.go:69: β exchangesReferenceSchema(``, `v1`) = `/schemas/common/exchanges-reference-v1.json`
tcurls_test.go:69: β apiManifestSchema(`https://taskcluster.example.com`, `v1`) = `https://taskcluster.example.com/schemas/common/manifest-v1.json`
tcurls_test.go:69: β apiManifestSchema(`https://taskcluster.example.com/`, `v1`) = `https://taskcluster.example.com/schemas/common/manifest-v1.json`
tcurls_test.go:69: β apiManifestSchema(`https://taskcluster.example.com//`, `v1`) = `https://taskcluster.example.com/schemas/common/manifest-v1.json`
tcurls_test.go:69: β apiManifestSchema(`12345`, `v1`) = `12345/schemas/common/manifest-v1.json`
tcurls_test.go:69: β apiManifestSchema(``, `v1`) = `/schemas/common/manifest-v1.json`
tcurls_test.go:69: β metadataMetaschema(`https://taskcluster.example.com`, `v1`) = `https://taskcluster.example.com/schemas/common/metadata-metaschema.json`
tcurls_test.go:69: β metadataMetaschema(`https://taskcluster.example.com/`, `v1`) = `https://taskcluster.example.com/schemas/common/metadata-metaschema.json`
tcurls_test.go:69: β metadataMetaschema(`https://taskcluster.example.com//`, `v1`) = `https://taskcluster.example.com/schemas/common/metadata-metaschema.json`
tcurls_test.go:69: β metadataMetaschema(`12345`, `v1`) = `12345/schemas/common/metadata-metaschema.json`
tcurls_test.go:69: β metadataMetaschema(``, `v1`) = `/schemas/common/metadata-metaschema.json`
tcurls_test.go:69: β apiReference(`https://taskcluster.example.com`, `auth`, `v1`) = `https://taskcluster.example.com/references/auth/v1/api.json`
tcurls_test.go:69: β apiReference(`https://taskcluster.example.com/`, `auth`, `v1`) = `https://taskcluster.example.com/references/auth/v1/api.json`
tcurls_test.go:69: β apiReference(`https://taskcluster.example.com//`, `auth`, `v1`) = `https://taskcluster.example.com/references/auth/v1/api.json`
tcurls_test.go:69: β apiReference(`12345`, `auth`, `v1`) = `12345/references/auth/v1/api.json`
tcurls_test.go:69: β apiReference(``, `auth`, `v1`) = `/references/auth/v1/api.json`
tcurls_test.go:69: β exchangeReference(`https://taskcluster.example.com`, `auth`, `v1`) = `https://taskcluster.example.com/references/auth/v1/exchanges.json`
tcurls_test.go:69: β exchangeReference(`https://taskcluster.example.com/`, `auth`, `v1`) = `https://taskcluster.example.com/references/auth/v1/exchanges.json`
tcurls_test.go:69: β exchangeReference(`https://taskcluster.example.com//`, `auth`, `v1`) = `https://taskcluster.example.com/references/auth/v1/exchanges.json`
tcurls_test.go:69: β exchangeReference(`12345`, `auth`, `v1`) = `12345/references/auth/v1/exchanges.json`
tcurls_test.go:69: β exchangeReference(``, `auth`, `v1`) = `/references/auth/v1/exchanges.json`
tcurls_test.go:69: β ui(`https://taskcluster.example.com`, `something`) = `https://taskcluster.example.com/something`
tcurls_test.go:69: β ui(`https://taskcluster.example.com/`, `something`) = `https://taskcluster.example.com/something`
tcurls_test.go:69: β ui(`https://taskcluster.example.com//`, `something`) = `https://taskcluster.example.com/something`
tcurls_test.go:69: β ui(`12345`, `something`) = `12345/something`
tcurls_test.go:69: β ui(``, `something`) = `/something`
tcurls_test.go:69: β ui(`https://taskcluster.example.com`, `/something`) = `https://taskcluster.example.com/something`
tcurls_test.go:69: β ui(`https://taskcluster.example.com/`, `/something`) = `https://taskcluster.example.com/something`
tcurls_test.go:69: β ui(`https://taskcluster.example.com//`, `/something`) = `https://taskcluster.example.com/something`
tcurls_test.go:69: β ui(`12345`, `/something`) = `12345/something`
tcurls_test.go:69: β ui(``, `/something`) = `/something`
tcurls_test.go:69: β ui(`https://taskcluster.example.com`, `//something`) = `https://taskcluster.example.com/something`
tcurls_test.go:69: β ui(`https://taskcluster.example.com/`, `//something`) = `https://taskcluster.example.com/something`
tcurls_test.go:69: β ui(`https://taskcluster.example.com//`, `//something`) = `https://taskcluster.example.com/something`
tcurls_test.go:69: β ui(`12345`, `//something`) = `12345/something`
tcurls_test.go:69: β ui(``, `//something`) = `/something`
tcurls_test.go:69: β ui(`https://taskcluster.example.com`, ``) = `https://taskcluster.example.com/`
tcurls_test.go:69: β ui(`https://taskcluster.example.com/`, ``) = `https://taskcluster.example.com/`
tcurls_test.go:69: β ui(`https://taskcluster.example.com//`, ``) = `https://taskcluster.example.com/`
tcurls_test.go:69: β ui(`12345`, ``) = `12345/`
tcurls_test.go:69: β ui(``, ``) = `/`
tcurls_test.go:69: β ui(`https://taskcluster.example.com`, `/`) = `https://taskcluster.example.com/`
tcurls_test.go:69: β ui(`https://taskcluster.example.com/`, `/`) = `https://taskcluster.example.com/`
tcurls_test.go:69: β ui(`https://taskcluster.example.com//`, `/`) = `https://taskcluster.example.com/`
tcurls_test.go:69: β ui(`12345`, `/`) = `12345/`
tcurls_test.go:69: β ui(``, `/`) = `/`
tcurls_test.go:69: β ui(`https://taskcluster.example.com`, `//`) = `https://taskcluster.example.com/`
tcurls_test.go:69: β ui(`https://taskcluster.example.com/`, `//`) = `https://taskcluster.example.com/`
tcurls_test.go:69: β ui(`https://taskcluster.example.com//`, `//`) = `https://taskcluster.example.com/`
tcurls_test.go:69: β ui(`12345`, `//`) = `12345/`
tcurls_test.go:69: β ui(``, `//`) = `/`
tcurls_test.go:69: β apiManifest(`12345`) = `12345/references/manifest.json`
tcurls_test.go:69: β apiManifest(``) = `/references/manifest.json`
tcurls_test.go:69: β apiManifest(`https://taskcluster.example.com`) = `https://taskcluster.example.com/references/manifest.json`
tcurls_test.go:69: β apiManifest(`https://taskcluster.example.com/`) = `https://taskcluster.example.com/references/manifest.json`
tcurls_test.go:69: β apiManifest(`https://taskcluster.example.com//`) = `https://taskcluster.example.com/references/manifest.json`
--- PASS: TestURLs (0.01s)
=== RUN TestNormalize
tcurls_test.go:100: β NormalizeRootURL(https://taskcluster.example.com) = `https://taskcluster.example.com`
tcurls_test.go:100: β NormalizeRootURL(https://taskcluster.example.com/) = `https://taskcluster.example.com`
tcurls_test.go:100: β NormalizeRootURL(https://taskcluster.example.com//) = `https://taskcluster.example.com`
--- PASS: TestNormalize (0.00s)
PASS
ok github.com/taskcluster/taskcluster-lib-urls 1.022s
[taskcluster 2026-01-09T14:29:32.309Z] Exit Code: 0
[taskcluster 2026-01-09T14:29:32.309Z] User Time: 9.172ms
[taskcluster 2026-01-09T14:29:32.309Z] Kernel Time: 20.637ms
[taskcluster 2026-01-09T14:29:32.309Z] Wall Time: 19.072938745s
[taskcluster 2026-01-09T14:29:32.309Z] Average Available System Memory: 14.17 GiB
[taskcluster 2026-01-09T14:29:32.309Z] Average System Memory Used: 1.45 GiB
[taskcluster 2026-01-09T14:29:32.309Z] Peak System Memory Used: 1.59 GiB
[taskcluster 2026-01-09T14:29:32.309Z] Total System Memory: 15.62 GiB
[taskcluster 2026-01-09T14:29:32.309Z] Result: SUCCEEDED
[taskcluster 2026-01-09T14:29:32.309Z] === Task Finished ===
[taskcluster 2026-01-09T14:29:32.309Z] Task Duration: 19.073565906s
Loading