Skip to main content
RansomLeak Security Training

Every exercise is indexed by name, CWE, OWASP, MITRE ATT&CK, CIS, NIST CSF, GDPR and EU AI Act reference.

Try

Free pipeline task

Turn Azure DevOps scan findings into secure-coding lessons

A free pipeline task reads the SARIF your scanner already writes and posts one thread on the Azure Repos pull request, with a short lesson for each type of issue found. It never fails your build and needs no RansomLeak account.

Read the Azure DevOps setup guide

Last updated November 2026

Overview

Scanners find the bug. The developer who wrote it still needs to learn the fix. This task puts that lesson on the pull request, at the moment the code is under review.

  • Reads SARIF from CodeQL, Semgrep, Trivy, Gitleaks
  • Matches each finding to a 5-10 minute lesson
  • Posts one thread on the pull request
  • Never fails the build

How it works

  1. Your scanner runs in a pull request build and writes a SARIF file. The task reads it after the scan step.

  2. Each finding is matched on its CWE. Secrets and dependency advisories match on the scanner type, so a hard-coded secret or a vulnerable package maps to the lesson that teaches the fix.

  3. The task adds one comment thread with up to five lessons, one per issue type, and updates that same thread on later runs.

  4. When someone finishes a lesson, it is ticked on the next pipeline run, or straight away if the optional app is connected.

The RansomLeak lesson thread on an Azure Repos pull request, with two lessons ticked as completed and one still open
The lesson thread on a pull request, with finished lessons ticked.

Add it to your pipeline

Install RansomLeak Secure Coding Lessons from the Visual Studio Marketplace into your organization, then add the task after the step that writes SARIF:

- task: RansomLeakLessons@1 condition: always() inputs: sarif: results.sarif

The task runs only on pull request builds, so add the pipeline as a build validation policy on the target branch. It signs in with the pipeline's own identity token, so there is no service connection and no secret.

Once per repository, give the project Build Service the Contribute to pull requests permission so it can comment.

Repository Security settings in Azure DevOps with Contribute to pull requests set to Allow for the project Build Service
Allow the Build Service to contribute to pull requests.

The optional RansomLeak app

The task is all most teams need. The app adds instant ticks and a pull request status named ransomleak/secure-coding, which is pending while lessons are open and succeeded when they are done. It never fails.

Pipeline task Task with the app
CostFreeFree, plus one Basic seat
Ticks a finished lessonOn the next runStraight away
Pull request statusNoYes, never failing
Needs a directory adminNoYes, once

A Microsoft Entra admin approves the app for your tenant. The Connect page then checks access and tells you exactly what is missing.

The RansomLeak Connect page after a successful access check, listing the three checks that passed
The Connect page after a successful access check.

Pull requests without lessons never report the status, so do not make it a required policy.

Permissions and data handling

Data How it is handled
FindingsScanner name, CWE ids, whether a rule is a CVE or GHSA advisory, and the pull request number. No source code, file paths, snippets or secrets.
The developerNo per-developer record is kept on our side.
CompletionsOne mark per pull request and lesson, holding only ids and a time. It expires after 30 days.

A tick means the lesson was completed through that pull request's link, not proof of who did it. For how RansomLeak handles data, see the privacy policy.

Frequently asked questions

Does RansomLeak integrate with Azure DevOps?

Yes. RansomLeak Secure Coding Lessons is a free pipeline task from the Visual Studio Marketplace. When your scanner flags a weakness on an Azure Repos pull request, the task posts one thread with matched secure-coding lessons of 5-10 minutes. No RansomLeak account is needed.

Which scanners does it work with?

Any scanner that writes SARIF, including CodeQL, Semgrep, Trivy and Gitleaks, and other tools whose rules carry a CWE, a CVE or a GHSA. For GitHub Advanced Security for Azure DevOps, export the scan results as SARIF and pass the file to the task.

Will it fail my build or block the merge?

No. The task never fails your build. If RansomLeak cannot be reached, the permission is missing or the SARIF file is invalid, it logs a warning and carries on. The optional app sets a pull request status that never fails either.

What does the optional RansomLeak app add?

Without it, a finished lesson is ticked on the next pipeline run. With it, the tick appears straight away and the app sets a pull request status named ransomleak/secure-coding. A Microsoft Entra admin approves the app once, and it needs a Basic seat in your organization.

What data does RansomLeak receive?

Identifiers only: the scanner name, the CWE ids of the rules that produced a result, whether a rule is a CVE or GHSA advisory, and the pull request number. No source code, file paths, snippets or secrets leave the agent, and RansomLeak keeps no per-developer record.

Is Azure DevOps Server supported?

No. The task works in any Azure DevOps Services organization. Azure DevOps Server and pull requests from forks are not supported.

Next guide The same lessons on GitHub A free GitHub App and Action turn code scanning findings into a pull request comment.

Need a hand?

Email support@ransomleak.com and we will help you connect Azure DevOps to your tenant.

See RansomLeak in Action

Try the free exercises or book a demo to see analytics, SCORM export, SSO, and custom content in your environment.