Issues sections should link to local file in your IDE at given commit with highlighted line(s)
User story
As a user of the CLI I want to have click through experience for all actionable feedback a get from the audit issues.
At the moment the provided issues often show exactly where the error needs to get fixed, but a manual navigation to the line of code is required.
Example:
| Severity | Message | Source file | Line(s) |
|---|---|---|---|
| ⚠️ warning | Lines 1-18 are not covered in any test case. | src/lib/index.ts |
1-18 |
| ⚠️ warning | Line 104 is not covered in any test case. | src/lib/index.ts |
104 |
| Severity | Message | Source file | Line(s) |
|---|---|---|---|
| 🚨 error | 1st branch is not taken in any test case. | src/lib/index.ts |
101 |
| 🚨 error | 1st branch is not taken in any test case. | src/lib/index.ts |
1 |
Acceptance criteria
- [ ] The report contains links to the IDE
- [ ] When the link is clicked it opens the source file in the IDE
- Webstorm - only file is linkable over relative path (
../src/lib/index.ts) - Code - file and line are linkable over relative path (
../src/lib/index.ts#L9) - GitHub - file and line rang is linkable over a relative path (
../src/lib/index.ts#L4-L8)
- Webstorm - only file is linkable over relative path (
- [ ] When no location of the report is present (location of report file unknown) the static file path is displayed. No link is used.
Folder:
/
├── .code-pushup
│ └── report.json
└── src
└── lib
└── index.ts
Link in report:
[src/lib/index.ts](../src/lib/index.ts)
Example Report:
| Severity | Message | Source file | Line(s) |
|---|---|---|---|
| ⚠️ warning | Lines 1-18 are not covered in any test case. | src/lib/index.ts |
1-18 |
| ⚠️ warning | Line 104 is not covered in any test case. | src/lib/index.ts |
104 |
| Severity | Message | Source file | Line(s) |
|---|---|---|---|
| 🚨 error | 1st branch is not taken in any test case. | src/lib/index.ts |
101 |
| 🚨 error | 1st branch is not taken in any test case. | src/lib/index.ts |
1 |
Implementation details
Essential logic and tests are present in the following PR, the over all configuration handling is not fully thought through.
https://github.com/code-pushup/cli/tree/add-link-to-local-filesystem-in-reports
Related Issues:
https://github.com/code-pushup/cli/issues/149
Should we close https://github.com/code-pushup/cli/issues/722? What happens in CI? Should the CVS server get considered in the desinge decision?
We don't print issues in the CLI output (it would be way too much info), so I don't see that there's anything to consider about CI.
CI jobs may produce the Markdown artifacts, but artifacts' content isn't viewable online anyway, you have to download the file and open it - probably in your IDE :grin: So local path links should still cover most use cases, I think.
The thought was driven by the fact that ppl could store the report in the repo or add it to a pr.
I started to elaborate it here #748