<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: SpecialBroccoli</title>
    <description>The latest articles on DEV Community by SpecialBroccoli (@specialbroccoli).</description>
    <link>https://dev.to/specialbroccoli</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F420172%2Fc6db6aa8-a2f3-49ee-9997-f51c1c7e6c04.png</url>
      <title>DEV Community: SpecialBroccoli</title>
      <link>https://dev.to/specialbroccoli</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/specialbroccoli"/>
    <language>en</language>
    <item>
      <title>Build Dynamic Markdown Summaries for GitHub Actions</title>
      <dc:creator>SpecialBroccoli</dc:creator>
      <pubDate>Wed, 06 Nov 2024 20:48:53 +0000</pubDate>
      <link>https://dev.to/specialbroccoli/build-dynamic-markdown-summaries-for-github-actions-20jb</link>
      <guid>https://dev.to/specialbroccoli/build-dynamic-markdown-summaries-for-github-actions-20jb</guid>
      <description>&lt;p&gt;Introducing &lt;strong&gt;Markdown Builder&lt;/strong&gt; – a GitHub Action that enables developers to generate rich markdown summaries directly from Handlebars templates with custom data. Whether you're posting updates to GitHub Actions summaries or adding comments on pull requests, Markdown Builder simplifies the process by allowing you to dynamically inject data into templates.&lt;/p&gt;

&lt;p&gt;Check out the &lt;a href="https://github.com/Ma11hewThomas/github-markdown-builder" rel="noopener noreferrer"&gt;GitHub Markdown Builder on GitHub&lt;/a&gt;! &lt;/p&gt;

&lt;h2&gt;
  
  
  🌟 Why Markdown Builder?
&lt;/h2&gt;

&lt;p&gt;Static markdown often doesn’t capture the full picture. For CI/CD workflows, test reporting, and documentation, dynamic markdown summaries that adapt to context and data are powerful. Markdown Builder allows you to create these adaptable summaries without extensive scripting by combining Handlebars templates with optional JSON data. Inspired by the &lt;a href="https://github.com/ctrf-io/github-test-reporter" rel="noopener noreferrer"&gt;GitHub Test Reporter&lt;/a&gt;, which allows users to build dynamic test reports, Markdown Builder brings similar flexibility to markdown any type of markdown summaries.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔑 Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Easy Template Integration&lt;/strong&gt;: Provide a Handlebars template, and Markdown Builder will render it for you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic Data&lt;/strong&gt;: Pass JSON data to your template, enabling custom summaries tailored to your specific use case.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexible Posting Options&lt;/strong&gt;: Choose where you want your markdown displayed:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Action Summary&lt;/strong&gt;: Perfect for summarizing key information within the workflow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pull Request Comment&lt;/strong&gt;: Great for adding context or test results directly on your PRs.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  🛠 How It Works
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Setup the Action
&lt;/h3&gt;

&lt;p&gt;In your GitHub Actions workflow file, add a step for Markdown Builder. Here’s an example configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Generate Markdown Summary&lt;/span&gt;
  &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Ma11hewThomas/markdown-builder@v1&lt;/span&gt;
  &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;template-file-path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;./path/to/your/template.hbs'&lt;/span&gt;
    &lt;span class="na"&gt;json-file-path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;./path/to/data.json'&lt;/span&gt;  &lt;span class="c1"&gt;# Optional&lt;/span&gt;
    &lt;span class="na"&gt;summary&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;  &lt;span class="c1"&gt;# Set to true to post on GitHub Actions summary&lt;/span&gt;
    &lt;span class="na"&gt;pull-request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;  &lt;span class="c1"&gt;# Set to true if you want it commented on the PR&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Configure Your Inputs
&lt;/h3&gt;

&lt;p&gt;Markdown Builder requires a template file, and you can optionally provide JSON data to fill in the template’s placeholders. Here’s what each input does:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;template-file-path:&lt;/strong&gt; Path to your Handlebars template file. This file will define the structure and layout of your markdown.&lt;br&gt;
json-file-path (optional): Path to a JSON file that provides data to your template.&lt;br&gt;
&lt;strong&gt;summary:&lt;/strong&gt; If set to true, posts the rendered markdown to the GitHub Action summary.&lt;br&gt;
&lt;strong&gt;pull-request:&lt;/strong&gt; If set to true, comments the markdown on the associated pull request.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Customizing the Template with Handlebars
&lt;/h3&gt;

&lt;p&gt;You can use any Handlebars syntax in your template to include data fields, loops, or conditional formatting. This makes Markdown Builder adaptable for a variety of scenarios, from summarizing test results to generating release notes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight handlebars"&gt;&lt;code&gt;# Build Summary
- Status: &lt;span class="k"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;status&lt;/span&gt;&lt;span class="k"&gt;}}&lt;/span&gt;
- Date: &lt;span class="k"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;date&lt;/span&gt;&lt;span class="k"&gt;}}&lt;/span&gt;
&lt;span class="k"&gt;{{#&lt;/span&gt;&lt;span class="nn"&gt;each&lt;/span&gt; &lt;span class="nv"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;tests&lt;/span&gt;&lt;span class="k"&gt;}}&lt;/span&gt;
  - Test: &lt;span class="k"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="k"&gt;}}&lt;/span&gt; - Result: &lt;span class="k"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt;result&lt;/span&gt;&lt;span class="k"&gt;}}&lt;/span&gt;
&lt;span class="k"&gt;{{/&lt;/span&gt;&lt;span class="nn"&gt;each&lt;/span&gt;&lt;span class="k"&gt;}}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. See It in Action
&lt;/h3&gt;

&lt;p&gt;After setting up the Action, you'll get instant, visually rich markdown output in your GitHub workflow summary or PR comments. No more manual updates or formatting struggles – Markdown Builder handles it all.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq0gj2yf3br9pvpk85jq3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq0gj2yf3br9pvpk85jq3.png" alt="Image description" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  💡 Real-World Use Cases
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Test Reporting:&lt;/strong&gt; Automatically post test results as markdown on PRs to keep the team informed.&lt;br&gt;
&lt;strong&gt;Build Summaries:&lt;/strong&gt; Capture key build metrics or error logs right in the workflow summary.&lt;br&gt;
&lt;strong&gt;Release Notes:&lt;/strong&gt; Generate release summaries for stakeholders without manually formatting each item.&lt;/p&gt;

&lt;h3&gt;
  
  
  💬 Share Your Templates!
&lt;/h3&gt;

&lt;p&gt;One of the great aspects of Markdown Builder is its flexibility with Handlebars templates. Whether you’re using it for test summaries, build metrics, or custom release notes, we’d love to see how you’re leveraging Markdown Builder in your workflows!&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Share
&lt;/h3&gt;

&lt;p&gt;If you’ve created a template that others might find useful, consider contributing it to the &lt;a href="https://github.com/Ma11hewThomas/github-markdown-builder" rel="noopener noreferrer"&gt;community templates&lt;/a&gt; section.&lt;/p&gt;

&lt;h3&gt;
  
  
  🤝 Support and Feedback
&lt;/h3&gt;

&lt;p&gt;If you try Markdown Builder, we’d love to hear from you! Feel free to leave a GitHub star if you find it helpful, and don’t hesitate to reach out with feedback or ideas for enhancements.&lt;/p&gt;

&lt;p&gt;Happy building! ✨&lt;/p&gt;

</description>
      <category>githubactions</category>
      <category>markdown</category>
      <category>cicd</category>
      <category>devops</category>
    </item>
    <item>
      <title>AI Test Report - Summarize Failed Tests</title>
      <dc:creator>SpecialBroccoli</dc:creator>
      <pubDate>Tue, 05 Nov 2024 19:10:56 +0000</pubDate>
      <link>https://dev.to/specialbroccoli/ai-test-report-summarize-failed-tests-geo</link>
      <guid>https://dev.to/specialbroccoli/ai-test-report-summarize-failed-tests-geo</guid>
      <description>&lt;p&gt;The AI Test Reporter is a powerful tool that works with any test framework and leverages your existing accounts with AI language models like OpenAI GPT, Azure and Anthropic Claude to create concise, human-readable summaries of test results, highlighting likely causes and suggesting possible solutions to help your team resolve issues faster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TL:DR&lt;/strong&gt; — Check out the &lt;a href="https://github.com/ctrf-io/ai-test-reporter" rel="noopener noreferrer"&gt;AI Test Reporter&lt;/a&gt; to generate an AI test report with any testing framework!&lt;/p&gt;

&lt;h2&gt;
  
  
  Can You Help Us Grow? 🙏
&lt;/h2&gt;

&lt;p&gt;Before diving into how this works, we really need your help to grow! Please consider giving our &lt;a href="https://github.com/ctrf-io" rel="noopener noreferrer"&gt;GitHub organization&lt;/a&gt; a follow and support our mission to enhance test reporting with AI. 🙌&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Immediate Insights:&lt;/strong&gt; Print summaries directly to the stdout after running your tests.&lt;br&gt;
&lt;strong&gt;Seamless Integration:&lt;/strong&gt; Integrate with developer tools like GitHub, Slack and more for effortless collaboration.&lt;br&gt;
&lt;strong&gt;Universal Compatibility:&lt;/strong&gt; Works with all major testing frameworks via standardized CTRF reports.&lt;br&gt;
&lt;strong&gt;AI Summary JSON Report:&lt;/strong&gt; Add an AI summary to your CTRF JSON report, enabling further processing and integration with other tools and workflows.&lt;/p&gt;

&lt;p&gt;Here is an example of the stdout:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8nnjps3k7qmfi7vkviqa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8nnjps3k7qmfi7vkviqa.png" alt="Image description" width="800" height="522"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this blog post, we’ll walk you through how to set up and use the AI Test Reporter&lt;/p&gt;
&lt;h2&gt;
  
  
  OK, Let’s Go!!
&lt;/h2&gt;

&lt;p&gt;To begin using the AI Test Reporter, you’ll need a funded API account with OpenAI, Anthropic, or another leading AI provider that offers API access. Ensure your account allows you to generate an API access token, as this token is essential for integrating the AI capabilities into your testing workflow.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 1: Install the CTRF Reporter
&lt;/h3&gt;

&lt;p&gt;First, you need to generate a CTRF test report. CTRF reporters are available for most modern test frameworks, and you can also convert a JUnit report.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 2: Generate an AI Summary
&lt;/h3&gt;

&lt;p&gt;Now that you have your CTRF test report, you can use the AI Test Reporter to generate AI-powered summaries for any failed tests. While the tool supports multiple AI providers, we’ll use OpenAI in this example.&lt;/p&gt;

&lt;p&gt;Execute the following command in your terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx ai-ctrf openai &amp;lt;path-to-ctrf-report&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace  with the path to your CTRF report file, typically ctrf-report.json.&lt;/p&gt;

&lt;p&gt;Since the package interacts with the OpenAI API, you will need to set the OPENAI_API_KEY environment variable. For further details on configuration options, check out the AI Test Reporter documentation.&lt;/p&gt;

&lt;p&gt;After running the command, the AI Test Reporter will analyze your CTRF report and summarise any failed tests. The summary will be printed directly to your console, highlighting likely causes and suggesting possible solutions to help you debug more efficiently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Seamless Integration with CI/CD Tools
&lt;/h2&gt;

&lt;p&gt;One of the standout features of AI Test Reporter is that the AI-generated summary becomes a part of your CTRF JSON report. This opens up limitless opportunities for integrating the report into various stages of your CI/CD pipelines and developer workflows. With a standardized data exchange format, you have access to all the relevant test information, including the AI summary, which you can easily share across your toolchain. Whether it’s posting the summary to pull requests, tickets, or communication platforms, the possibilities are vast.&lt;/p&gt;

&lt;p&gt;CTRF comes with built-in support for many platforms. In this post, I’ll focus on two: GitHub and Slack.&lt;/p&gt;

&lt;p&gt;We’d love to hear how you’re using your CTRF JSON report in your workflows — share your experience in the comments!&lt;/p&gt;

&lt;h2&gt;
  
  
  Publish AI Test Summary to GitHub Actions
&lt;/h2&gt;

&lt;p&gt;You can display the AI-generated test summary in your GitHub Actions workflow by using the &lt;a href="https://github.com/ctrf-io/github-test-reporter" rel="noopener noreferrer"&gt;GitHub Test Reporter.&lt;/a&gt; Add the following to your workflow YAML file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Publish CTRF AI Test Summary Results&lt;/span&gt;
  &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;npx github-actions-ctrf ai &amp;lt;path-to-ctrf-report&amp;gt;&lt;/span&gt;
  &lt;span class="na"&gt;if&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;always()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You will have an AI-generated failed test summary, seamlessly integrated into your GitHub Actions workflow summary&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw25gcec7es73908onkf0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw25gcec7es73908onkf0.png" alt="Image description" width="800" height="226"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’d like to add a comment with your AI summary to an associated pull request, simply use the &lt;code&gt;--pr&lt;/code&gt; argument:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Publish CTRF AI Test Summary Results&lt;/span&gt;
  &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;npx github-actions-ctrf ai &amp;lt;path-to-ctrf-report&amp;gt; --pr&lt;/span&gt;
  &lt;span class="na"&gt;if&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;always()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’ll see an AI summary as a comment on the related pull request — ensuring the insights are visible where they’re most needed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwayikdlmvamb49xeztas.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwayikdlmvamb49xeztas.png" alt="Image description" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Send AI test summary to your Slack Channel
&lt;/h2&gt;

&lt;p&gt;Use the &lt;a href="https://github.com/ctrf-io/slack-test-reporter" rel="noopener noreferrer"&gt;Slack Test Reporter&lt;/a&gt; to send AI generated test summaries directly to your Slack channel. This integration allows team members to see failed test details quickly and suggested solutions without leaving their communication platform.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx slack-ctrf ai &amp;lt;path-to-ctrf-report&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foljn82xnebzs6lboa9my.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foljn82xnebzs6lboa9my.png" alt="Image description" width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More CI/CD integrations are being built, checkout the AI Test Reporter documentation for all integrations&lt;/p&gt;

&lt;h2&gt;
  
  
  How Does This Work?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.ctrf.io/" rel="noopener noreferrer"&gt;CTRF (Common Test Report Format)&lt;/a&gt; is a standardized test report schema that serves as a bridge between various testing frameworks and developer tools. It includes a collection of tooling to integrate with platforms like GitHub Actions and more. Among its various properties, the CTRF schema supports an ai property for AI-generated summaries.&lt;/p&gt;

&lt;p&gt;Here’s an example of what a CTRF report test object looks like with the AI property&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"should display title"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"failed"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"duration"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"message"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"error message"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"trace"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"error trace"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"ai"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"AI generated test summary"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this schema:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;name:&lt;/strong&gt; The name of the test.&lt;br&gt;
&lt;strong&gt;status:&lt;/strong&gt; The result of the test (e.g., failed).&lt;br&gt;
&lt;strong&gt;duration:&lt;/strong&gt; The time the test took to run (in milliseconds).&lt;br&gt;
&lt;strong&gt;message:&lt;/strong&gt; The error message from the failed test.&lt;br&gt;
&lt;strong&gt;trace:&lt;/strong&gt; The stack trace of the error.&lt;br&gt;
&lt;strong&gt;ai:&lt;/strong&gt; The AI-generated test summary, provides a concise explanation of the likely cause of failure and possible solutions.&lt;/p&gt;

&lt;p&gt;By using CTRF, you can easily integrate AI-generated test summaries into your workflow. The ai property is filled with the summary provided by AI models such as OpenAI or Anthropic, which can then be displayed in your GitHub Actions summary or added as a comment to a pull request.&lt;/p&gt;

&lt;p&gt;You can do so much with CTRF, and the tooling is constantly evolving to better support your testing and development workflows.&lt;/p&gt;

&lt;p&gt;If you found this useful, remember to follow the organization and give a star to the repositories you find useful.&lt;/p&gt;

&lt;p&gt;🧡 Your support helps the library grow and is truly appreciated!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>testing</category>
      <category>cicd</category>
      <category>testautomation</category>
    </item>
  </channel>
</rss>
