Make the workflow for Secret Detection findings clear and adapted to their nature

Proposal

Secrets detection findings have a special behaviour: for example, if they are detected in a Merge Request, they will be "sticky" and still appear even though the last commit did not contain these secrets. For everything else, they behave like any other vulnerability, and the classic workflow can be described as (auto remediated/no longer detected is omitted on purpose, for simplicity):

graph LR
    detected[Needs triage] -->T{Triage}
    T -->|True positive| confirmed[Confirmed]
    T -->|False positive| dismissed[Dismissed]
    T -->|Remediated| resolved[Resolved]
    confirmed -->|Remediated| resolved
    resolved -->|Detected again| detected

This brings another issue specific to secrets: Once revoked, a token is harmless, and the issue is considered resolved. If the vulnerability state is set to resolved, it will be brought back to Needs triage (detected), according to the workflow above.

In the case of Secret detection, the workflow should be instead:

graph LR
    detected[Needs triage] -->T{Triage}
    T -->|True positive| confirmed[Confirmed]
    T -->|False positive| dismissed[Dismissed]
    T -->|Remediated| resolved[Resolved]
    confirmed -->|Remediated| resolved

Where a secret, once resolved, will keep this state until someone changes it manually (in the UI or via the API).

Edited by Philippe Lafoucrière