forcedotcom / forcedotcom/code-analyzer

[Feature Request] Filename-based suppression per engine or file

Ouverte
#2,028 6 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
TypeScript
Étoiles
240
Forks
52
Merge moyen
1 j 23 h
PR mergées (30 j)
5

Description

### Product Area

The "code-analyzer" CLI

### Your Need or Problem

I like the
```yaml
ignores:
files:
- "**/utils.js"
```
feature.

Currently, it exists at the top level, meaning we can only exclude filenames for all engines. I would like to exclude at the engine or file level.

The background: Salesforce provides some stock/standard files (JavaScript, Visualforce, Aura, LWC) that have rule violations in them. Instead of having to fix them all when importing starter metadata, I want to exclude them... but I would like to do that from the config file.

IDEALLY, I could do a suppression PER RULE, but I fear that is too much to ask.

This is resulting in a LOT of false-positives and noise, and is stopping our pipeline every time we create a new kind of Experience Cloud site.

### Your Desired Solution

```yaml
engines:
pmd:
ignores:
- "selfRegister.cmp"
- "CommunityTemplate.page"
```
or

```yaml
rules:
pmd:
"LoadCSSApexStylesheet":
severity: 2
ignores:
- "CommunityTemplate.page"
tags:
- AppExchange
- Security
- Visualforce
```

My vision for using Code Analyzer is that I have a standard config file I use for all my projects as a starting point, and that one would include suppressing checks on those files. I could load that as a default in each of my repos/projects.

### Alternatives Considered

PMD doesn't have a robust "ignore this rule for this filepath" from the ruleset feature, so I know I'm asking for a lot here.

I can exclude files in my custom ruleset, but that only applies to pmd rules.

I can override the specific rule and make a very long XPath exception property, which works, and might be good for some files, but isn't ideal.

### Additional Context (Screenshots, Files, etc)

_No response_

### Workaround

I have been able to suppress for most files (not JavaScript) by editing the file. But I don't want to have to edit each default file as Salesforce creates them.

### Urgency

Moderate

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Le point d’entrée est la configuration de la CLI de code-analyzer ; commencez par suivre la manière dont le paramètre YAML de niveau supérieur `ignores.files` est analysé et appliqué. Comparez les formes demandées au niveau du moteur et par règle, puis définissez une couverture montrant que la suppression des noms de fichiers peut être limitée sans affecter les autres moteurs ou règles.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
typescript, yaml
Domaine
cli, tooling
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.