Automate CircleCI Integration Tasks from PowerShell

Jerod Johnson
Jerod Johnson
Director, Technology Evangelism
Are you in search of a quick and easy way to access CircleCI data from PowerShell? This article demonstrates how to utilize the CircleCI Cmdlets for tasks like connecting to CircleCI data, automating operations, downloading data, and more.

The CData API Driver for ADO.NET is a standard ADO.NET Provider that make it easy to accomplish data cleansing, normalization, backup, and other integration tasks by enabling real-time access to CircleCI.

ADO.NET Provider

The ADO.NET Provider provides a SQL interface for CircleCI; this tutorial shows how to use the Provider to retrieve CircleCI data.

Once you have acquired the necessary connection properties, accessing CircleCI data in PowerShell can be enabled in three steps.

Using API Key Authentication

CircleCI uses personal API tokens to authenticate API requests. To generate a personal API token, log in to your CircleCI account, navigate to User Settings > Personal API Tokens, and click Create New Token. Copy the token value immediately as it is only shown once.

After setting the following connection properties, you are ready to connect:

  • AuthScheme: Set this to APIKey.
  • APIKey: Set this to your CircleCI personal API token.

Example connection string:

Profile=C:\profiles\CircleCI.apip;AuthScheme=APIKey;ProfileSettings='APIKey=your_personal_api_token';
  1. Load the provider's assembly:

    [Reflection.Assembly]::LoadFile("C:\Program Files\CData\CData API Driver for ADO.NET\lib\System.Data.CData.API.dll")
        
  2. Connect to CircleCI:

     
    $conn= New-Object System.Data.CData.API.APIConnection("Profile=C:\profiles\CircleCI.apip;AuthScheme=APIKey;ProfileSettings='APIKey=your_personal_api_token';")
    $conn.Open()
    
  3. Instantiate the APIDataAdapter, execute an SQL query, and output the results:

    $sql="SELECT ,  from Artifacts"
    
    $da= New-Object System.Data.CData.API.APIDataAdapter($sql, $conn)
    $dt= New-Object System.Data.DataTable
    $da.Fill($dt)
    
    $dt.Rows | foreach {
    	Write-Host $_. $_.
    }
      

Ready to get started?

Connect to live data from CircleCI with the API Driver

Connect to CircleCI