Steampunk Spotter

Integrating Steampunk Spotter with Azure DevOps Pipelines

July 29, 2025 - Words by  Maja Franko, Tit Sober - 2 min read

Card image caption

Want to catch deprecated code, security issues, or compliance problems before they hit your main branch? With native support for Azure Pipelines, Steampunk Spotter brings automation and actionable feedback directly into your CI/CD workflows—now with seamless integration into Azure DevOps.

In this blog post, we’ll walk you through how to utilize Steampunk Spotter from your Azure DevOps project and scan your Ansible content automatically with every pipeline run.


Step 1: Set Up Your Azure DevOps Project

Start by creating a new project in Azure DevOps. Once created, navigate to the Repos section in the sidebar to push your initial code.



To test the integration, add an intentionally deprecated Ansible playbook to your repository. This will help you see Spotter in action when the pipeline runs. Here’s an example of a playbook with outdated syntax and practices:

 - name: Playbook for rewriting 
   hosts: localhost 
   tasks: 
     - action: file mode=0644 state=present 
       delegate_to: localhost 
  
    - action: 
         module: file 
         mode: '0644' 
         state: present 
       delegate_to: localhost 
  
    - ansible.builtin.debug: 
         var: something 
       always_run: true 
       when: true 
  
    - name: Test input 
       openssl_certificate: 
       vars: 
         a: b 
  
    - name: include task with vars unordered - changed from 2.7 
       include_tasks: a=b my_test_tasks.yml c=d 
       when: true 
  
    - include_tasks: a=b my_test_tasks.yml c=d 
       when: true 
  
    - local_action: mode=0644 state=present file 
  
    - local_action: 
         module: file 
         mode: '0644' 
         state: present

After you commit the code to your repository, you can start with the creation of your first pipeline.


Step 2: Create the Pipeline

Next, go to the Pipelines section in the Azure DevOps menu and click Create Pipeline.

Choose Azure Repos Git as your code source, select the repository we’ve just set up, and then go with the Starter pipeline option.



You’ll be presented with a basic YAML pipeline configuration. You can go ahead and paste the following configuration into the generated code.



This is the example configuration for the pipeline to run a Spotter scan on a push.

trigger: 
   branches: 
     include: 
       - main 
  
variables: 
 - group: tokens 
  
  
steps: 
 - script: | 
     python3 -m venv .venv 
     source .venv/bin/activate 
     echo "Starting the install" 
     pip install steampunk-spotter 
     echo "Finished the install" 
     echo "Starting the scan" 
     spotter scan . \ 
       --junit-xml spotter-report.xml  
        

   env: 

     SPOTTER_TOKEN: $(SPOTTER_API_TOKEN) 

   continueOnError: true 
   displayName: 'Run Spotter Scan' 
  
- task: PublishTestResults@2 
   inputs: 
     testResultsFiles: 'spotter-report.xml' 
   displayName: 'Publish Test Results' 

Next, you save the configuration and go to setup our tokens.


Step 3: Set up API token

To start off go to the Steampunk Spotter web interface at https://spotter.steampunk.si/my-profile/api-tokens and create a new token. Add the name and the expiration date of the token.



After that you go to the Pipelines and click on the Library option. Create a new group and add your token. Name it SPOTTER_TOKEN and paste in the token you generated in the step before.



After that you can simply run your CI pipeline and see what results you get.



This configuration will run Spotter against the Ansible content in your repository and provide real-time feedback on any deprecated modules, compliance violations, or best practice issues.


What You Get Out of the Box

With Spotter integrated into Azure DevOps, your team benefits from:

  • Automated quality checks on every commit.

  • Early detection of deprecated or insecure Ansible code.

  • Actionable recommendations directly in your pipeline output.

  • No additional setup needed once integrated—Spotter works out of the box.

Found this post useful?

Get our monthly newsletter.

Thank you for subscribing!

Please wait

Processing, please wait...

Keep up with what we do on our social media.