Skip to content

Commit 80acdc5

Browse files
committed
Merge remote-tracking branch 'origin/main' into use-cp-nx-plugin
2 parents 655a94f + 3137af7 commit 80acdc5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+592
-284
lines changed

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
## 0.113.0 (2026-02-04)
2+
3+
### 🚀 Features
4+
5+
- support URL sources upload to portal ([#1235](https://github.com/code-pushup/cli/pull/1235))
6+
7+
### ❤️ Thank You
8+
9+
- Hanna Skryl @hanna-skryl
10+
111
## 0.112.0 (2026-01-29)
212

313
### 🚀 Features

e2e/plugin-axe-e2e/tests/__snapshots__/collect.e2e.test.ts.snap

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,7 @@ exports[`PLUGIN collect report with axe-plugin NPM package > should run plugin o
497497
"details": {
498498
"issues": [
499499
{
500-
"message": "[\`body > button\`] Fix any of the following: Element does not have inner text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attribute Element does not have an implicit (wrapped) <label> Element does not have an explicit <label> Element's default semantics were not overridden with role="none" or role="presentation"",
500+
"message": "Element does not have inner text that is visible to screen readers",
501501
"severity": "error",
502502
"source": {
503503
"selector": "body > button",
@@ -528,7 +528,7 @@ exports[`PLUGIN collect report with axe-plugin NPM package > should run plugin o
528528
"details": {
529529
"issues": [
530530
{
531-
"message": "[\`.low-contrast\`] Fix any of the following: Element has insufficient color contrast of 1.57 (foreground color: #777777, background color: #999999, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1",
531+
"message": "Element has insufficient color contrast of 1.57 (foreground color: #777777, background color: #999999, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1",
532532
"severity": "error",
533533
"source": {
534534
"selector": ".low-contrast",
@@ -624,7 +624,7 @@ exports[`PLUGIN collect report with axe-plugin NPM package > should run plugin o
624624
"details": {
625625
"issues": [
626626
{
627-
"message": "[\`div[role="button"]\`] Fix any of the following: Invalid ARIA attribute name: aria-invalid-attribute",
627+
"message": "Invalid ARIA attribute name: aria-invalid-attribute",
628628
"severity": "error",
629629
"source": {
630630
"selector": "div[role=\"button\"]",
@@ -648,7 +648,7 @@ exports[`PLUGIN collect report with axe-plugin NPM package > should run plugin o
648648
"details": {
649649
"issues": [
650650
{
651-
"message": "[\`img\`] Fix any of the following: Element does not have an alt attribute aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attribute Element's default semantics were not overridden with role="none" or role="presentation"",
651+
"message": "Element does not have an alt attribute",
652652
"severity": "error",
653653
"source": {
654654
"selector": "img",
@@ -670,7 +670,7 @@ exports[`PLUGIN collect report with axe-plugin NPM package > should run plugin o
670670
"details": {
671671
"issues": [
672672
{
673-
"message": "[\`a\`] Fix all of the following: Element is in tab order and does not have accessible text Fix any of the following: Element does not have text that is visible to screen readers aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attribute",
673+
"message": "Element is in tab order and does not have accessible text",
674674
"severity": "error",
675675
"source": {
676676
"selector": "a",

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"private": true,
2121
"dependencies": {
2222
"@axe-core/playwright": "^4.11.0",
23-
"@code-pushup/portal-client": "^0.16.0",
23+
"@code-pushup/portal-client": "^0.17.0",
2424
"@nx/devkit": "22.3.3",
2525
"@swc/helpers": "0.5.18",
2626
"ansis": "^3.3.2",

packages/ci/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@code-pushup/ci",
3-
"version": "0.112.0",
3+
"version": "0.113.0",
44
"description": "CI automation logic for Code PushUp (provider-agnostic)",
55
"license": "MIT",
66
"homepage": "https://github.com/code-pushup/cli/tree/main/packages/ci#readme",
@@ -26,9 +26,9 @@
2626
},
2727
"type": "module",
2828
"dependencies": {
29-
"@code-pushup/models": "0.112.0",
30-
"@code-pushup/portal-client": "^0.16.0",
31-
"@code-pushup/utils": "0.112.0",
29+
"@code-pushup/models": "0.113.0",
30+
"@code-pushup/portal-client": "^0.17.0",
31+
"@code-pushup/utils": "0.113.0",
3232
"ansis": "^3.3.2",
3333
"glob": "^11.0.1",
3434
"simple-git": "^3.20.0",

packages/ci/src/lib/portal/__snapshots__/transform.unit.test.ts.snap

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,36 @@ exports[`transformGQLReport > should convert full GraphQL report to valid report
197197
"slug": "bundle-stats",
198198
"title": "Bundle stats",
199199
},
200+
{
201+
"audits": [
202+
{
203+
"details": {
204+
"issues": [
205+
{
206+
"message": "Element has insufficient color contrast of 4.33",
207+
"severity": "error",
208+
"source": {
209+
"selector": ".hero > span:nth-child(2)",
210+
"snippet": "<span style="color: #aaa">Low contrast</span>",
211+
"url": "https://example.com/",
212+
},
213+
},
214+
],
215+
},
216+
"displayValue": "1 error",
217+
"score": 0,
218+
"slug": "color-contrast",
219+
"title": "Elements must meet minimum color contrast ratio thresholds",
220+
"value": 1,
221+
},
222+
],
223+
"date": "2025-08-01T00:10:25.000Z",
224+
"duration": 5000,
225+
"groups": [],
226+
"icon": "folder-syntax",
227+
"slug": "axe",
228+
"title": "Axe accessibility",
229+
},
200230
],
201231
"version": "0.42.0",
202232
}

packages/ci/src/lib/portal/transform.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,17 @@ function transformGQLIssue(issue: IssueFragment): Issue {
166166
}),
167167
},
168168
}),
169+
...(issue.source?.__typename === 'SourceUrlLocation' && {
170+
source: {
171+
url: issue.source.url,
172+
...(issue.source.snippet != null && {
173+
snippet: issue.source.snippet,
174+
}),
175+
...(issue.source.selector != null && {
176+
selector: issue.source.selector,
177+
}),
178+
},
179+
}),
169180
};
170181
}
171182

packages/ci/src/lib/portal/transform.unit.test.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,29 @@ describe('transformGQLReport', () => {
207207
},
208208
groups: [],
209209
},
210+
{
211+
slug: 'axe',
212+
title: 'Axe accessibility',
213+
icon: 'folder-syntax',
214+
runnerStartDate: '2025-08-01T00:10:25.000Z',
215+
runnerDuration: 5000,
216+
audits: {
217+
edges: [
218+
{
219+
node: {
220+
slug: 'color-contrast',
221+
title:
222+
'Elements must meet minimum color contrast ratio thresholds',
223+
score: 0,
224+
value: 1,
225+
formattedValue: '1 error',
226+
details: { enabled: true, trees: [], tables: [] },
227+
},
228+
},
229+
],
230+
},
231+
groups: [],
232+
},
210233
],
211234
issues: {
212235
edges: [
@@ -231,6 +254,19 @@ describe('transformGQLReport', () => {
231254
severity: IssueSeverity.Warning,
232255
},
233256
},
257+
{
258+
node: {
259+
audit: { plugin: { slug: 'axe' }, slug: 'color-contrast' },
260+
message: 'Element has insufficient color contrast of 4.33',
261+
severity: IssueSeverity.Error,
262+
source: {
263+
__typename: 'SourceUrlLocation',
264+
url: 'https://example.com/',
265+
snippet: '<span style="color: #aaa">Low contrast</span>',
266+
selector: '.hero > span:nth-child(2)',
267+
},
268+
},
269+
},
234270
],
235271
},
236272
};

testing/test-fixtures/src/lib/fixtures/configs/code-pushup.config.ts renamed to packages/cli/mocks/configs/code-pushup.config.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { type CoreConfig } from '@code-pushup/models';
2-
31
export default {
42
upload: {
53
organization: 'code-pushup',
@@ -42,4 +40,4 @@ export default {
4240
icon: 'javascript',
4341
},
4442
],
45-
} satisfies CoreConfig;
43+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// the point is to test runtime import which requires tsconfig for path aliases
2+
3+
/* eslint-disable import/no-unresolved */
4+
// @ts-expect-error - test tsconfig paths missing in config
5+
import customPlugin from '@example/custom-plugin';
6+
7+
/* eslint-enable import/no-unresolved */
8+
const config = {
9+
plugins: [customPlugin],
10+
};
11+
12+
export default config;

0 commit comments

Comments
 (0)