<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Chainguard Checks on</title><link>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/tags/chainguard-checks</link><description>Recent content in Chainguard Checks on</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><copyright>Copyright (c) 2023 Chainguard</copyright><lastBuildDate>Thu, 12 Nov 2026 15:30:50 +0000</lastBuildDate><atom:link href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/tags/chainguard-checks/index.xml" rel="self" type="application/rss+xml"/><item><title>Set up Chainguard Checks and Chainguard Workspaces</title><link>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/get-started/checks-and-workspaces/set-up</link><pubDate>Tue, 13 Oct 2026 00:00:00 +0000</pubDate><guid>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/get-started/checks-and-workspaces/set-up</guid><description>&lt;p&gt;&lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks"&gt;Chainguard Checks&lt;/a&gt; runs your repository&amp;rsquo;s CI on every GitHub pull request, with each check in its own microVM. &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/workspaces"&gt;Chainguard Workspaces&lt;/a&gt; runs your development work, and the coding agents that do it, in a remote microVM session that holds none of your long-lived credentials. You can use either product on its own, but they&amp;rsquo;re built to work together, and you set them up together: one command, &lt;code&gt;chainctl develop init&lt;/code&gt;, turns on both. This page explains what the products share, then walks you through signing up and giving teammates access. For how the two products isolate your code, refer to &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/get-started/checks-and-workspaces/how-it-works"&gt;How Chainguard Checks and Chainguard Workspaces isolate your code&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Chainguard Checks overview</title><link>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/overview</link><pubDate>Thu, 08 Oct 2026 00:00:00 +0000</pubDate><guid>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/overview</guid><description>&lt;p&gt;Chainguard Checks runs your pull requests&amp;rsquo; checks, such as linting and tests, on Chainguard&amp;rsquo;s infrastructure, and reports the results on the pull request&amp;rsquo;s &lt;strong&gt;Checks&lt;/strong&gt; tab on GitHub, beside any other checks the repository runs. You define the checks in a &lt;code&gt;.chainguard/ci.yaml&lt;/code&gt; file in your repository, in Chainguard Checks&amp;rsquo; own format. Chainguard Checks doesn&amp;rsquo;t run GitHub Actions workflows, so moving a workflow&amp;rsquo;s jobs to it means writing that file, as described in &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/migrate-from-github-actions"&gt;Migrate from GitHub Actions&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Tutorial: Fix a failing check with Claude Code in a Chainguard Workspaces session</title><link>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/get-started/checks-and-workspaces/tutorial</link><pubDate>Thu, 12 Nov 2026 15:30:50 +0000</pubDate><guid>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/get-started/checks-and-workspaces/tutorial</guid><description>&lt;p&gt;Chainguard Checks and Chainguard Workspaces are built to work together: a coding agent changes your code in a Workspaces session, &lt;code&gt;run-ci&lt;/code&gt; runs your checks against the change before you push, and Chainguard Checks runs the same checks on the pull request. When a check fails, the agent reads why from the session and fixes it.&lt;/p&gt;
&lt;p&gt;In this tutorial, you walk that loop once with a small Go project. You open a session, let Claude Code add a function, check the change with &lt;code&gt;run-ci&lt;/code&gt;, and open a pull request whose checks pass. Then you break a test on purpose, push without running &lt;code&gt;run-ci&lt;/code&gt;, read the failure from the session with &lt;code&gt;chainctl checks failures&lt;/code&gt;, and let Claude Code fix it.&lt;/p&gt;</description></item><item><title>How Chainguard Checks and Chainguard Workspaces isolate your code</title><link>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/get-started/checks-and-workspaces/how-it-works</link><pubDate>Thu, 15 Oct 2026 12:09:53 +0000</pubDate><guid>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/get-started/checks-and-workspaces/how-it-works</guid><description>&lt;p&gt;Chainguard Checks runs your pull request checks, and Chainguard Workspaces runs your development sessions and coding agents, in microVMs that hold none of your long-lived credentials. This page collects the security model of both products in one place, for security reviewers who need to decide whether to allow them and for coding agents that need the rules. It describes how each product isolates code, where credentials come from, what code can reach on the network, who decides what a pull request gets, and how runs and sessions move through their lifecycles. A &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/get-started/checks-and-workspaces/how-it-works#glossary"&gt;glossary&lt;/a&gt; at the end defines the terms both products use.&lt;/p&gt;</description></item><item><title>Get started with Chainguard Checks</title><link>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/getting-started</link><pubDate>Thu, 08 Oct 2026 00:00:00 +0000</pubDate><guid>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/getting-started</guid><description>&lt;p&gt;Get a first check passing with the &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/getting-started#quick-start"&gt;quick start&lt;/a&gt;, or learn each part in the &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/getting-started#step-by-step-guide"&gt;step-by-step guide&lt;/a&gt;.&lt;/p&gt;
&lt;div class="quick-start"&gt;
&lt;h2 id="quick-start" class="heading-2" data-heading-level="2"&gt;
&lt;span class="heading-text"&gt;Quick start&lt;/span&gt;
&lt;a href="#quick-start" class="anchor" aria-label="Link to Quick start" title="Link to this section"&gt;
&lt;svg width="16" height="9" viewBox="0 0 16 9" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"&gt;
&lt;path d="M6.833 8.125H4C3 8.125 2.146 7.77067 1.438 7.062C0.729333 6.354 0.375 5.5 0.375 4.5C0.375 3.5 0.729333 2.646 1.438 1.938C2.146 1.22933 3 0.875 4 0.875H6.833V1.958H4C3.30533 1.958 2.708 2.208 2.208 2.708C1.708 3.208 1.458 3.80533 1.458 4.5C1.458 5.19467 1.708 5.792 2.208 6.292C2.708 6.792 3.30533 7.042 4 7.042H6.833V8.125ZM5.208 5.042V3.958H10.792V5.042H5.208ZM9.167 8.125V7.042H12C12.6947 7.042 13.292 6.792 13.792 6.292C14.292 5.792 14.542 5.19467 14.542 4.5C14.542 3.80533 14.292 3.208 13.792 2.708C13.292 2.208 12.6947 1.958 12 1.958H9.167V0.875H12C13 0.875 13.854 1.22933 14.562 1.938C15.2707 2.646 15.625 3.5 15.625 4.5C15.625 5.5 15.2707 6.354 14.562 7.062C13.854 7.77067 13 8.125 12 8.125H9.167Z" fill="currentColor"/&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Install chainctl&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To install &lt;code&gt;chainctl&lt;/code&gt; with Homebrew, run the following command:&lt;/p&gt;
&lt;pre class="highlight" data-language="shell"&gt;&lt;code class="language-shell" data-lang="shell"&gt;brew install chainguard-dev/tap/chainctl&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Or, to install it with curl on macOS or Linux, run the following commands:&lt;/p&gt;
&lt;pre class="highlight" data-language="shell"&gt;&lt;code class="language-shell" data-lang="shell"&gt;curl -fL -o chainctl &amp;#34;https://dl.enforce.dev/chainctl/latest/chainctl_$(uname -s | tr &amp;#39;[:upper:]&amp;#39; &amp;#39;[:lower:]&amp;#39;)_$(uname -m | sed &amp;#39;s/aarch64/arm64/&amp;#39;)&amp;#34;
sudo install -o $UID -g $(id -g) -m 0755 chainctl /usr/local/bin/&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you already have &lt;code&gt;chainctl&lt;/code&gt;, you need 0.2.386 or later. Update it with &lt;code&gt;sudo chainctl update&lt;/code&gt;, or with &lt;code&gt;brew upgrade chainctl&lt;/code&gt; if you installed it with Homebrew.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sign up&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In the root of a local clone of a GitHub repository that you can push to, run the following command:&lt;/p&gt;
&lt;pre class="highlight" data-language="shell"&gt;&lt;code class="language-shell" data-lang="shell"&gt;chainctl develop init&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The command creates your Chainguard organization, if you don&amp;rsquo;t have one, and turns on Chainguard Checks. When it asks which GitHub account to link, choose the one that owns your repository: press &lt;code&gt;Enter&lt;/code&gt; for your own user, or enter the organization&amp;rsquo;s name. If the Chainguard App isn&amp;rsquo;t installed on that account, the command offers to open its installation page. Give the App access to your repository. If you installed it earlier and GitHub shows that it&amp;rsquo;s asking for more permissions, accept them. To sign in with an email address and password, first run &lt;code&gt;chainctl config set default.social-login email&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add a first check&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Create a branch and a &lt;code&gt;.chainguard/ci.yaml&lt;/code&gt; file with one check:&lt;/p&gt;
&lt;pre class="highlight" data-language="shell"&gt;&lt;code class="language-shell" data-lang="shell"&gt;git checkout -b add-chainguard-checks
mkdir -p .chainguard
cat &amp;gt; .chainguard/ci.yaml &amp;lt;&amp;lt;&amp;#39;EOF&amp;#39;
version: 1
environment: {}
checks:
hello:
cmd: ls -la
EOF&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The check lists the files in its working directory and needs no packages or network access, so it passes on any repository.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Open a pull request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Commit the file and push the branch:&lt;/p&gt;
&lt;pre class="highlight" data-language="shell"&gt;&lt;code class="language-shell" data-lang="shell"&gt;git add .chainguard/ci.yaml
git commit -m &amp;#34;Add Chainguard Checks&amp;#34;
git push -u origin add-chainguard-checks&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then open a pull request, from the link that &lt;code&gt;git push&lt;/code&gt; prints or on github.com.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Read the result&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;On the pull request&amp;rsquo;s &lt;strong&gt;Checks&lt;/strong&gt; tab, wait for &lt;strong&gt;Chainguard Checks (presubmit)&lt;/strong&gt; to appear and pass, which usually takes less than a minute. It&amp;rsquo;s the only check that Chainguard Checks adds for this file, because a check that passes without reporting anything gets no GitHub check of its own. Select it to see the run&amp;rsquo;s summary: its title reads &lt;strong&gt;All 1 check(s) passed&lt;/strong&gt;, and its table lists &lt;code&gt;hello&lt;/code&gt; as passed. If no check appears, refer to &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/troubleshooting#a-pull-request-gets-no-checks"&gt;A pull request gets no checks&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="quick-start-done"&gt;To replace the first check with your own, refer to &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/getting-started#replace-the-first-check-with-your-own"&gt;Replace the first check with your own&lt;/a&gt;. To move checks from your GitHub Actions workflows, refer to &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/migrate-from-github-actions"&gt;Migrate from GitHub Actions&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Chainguard Checks configuration reference</title><link>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/configuration</link><pubDate>Thu, 08 Oct 2026 00:00:00 +0000</pubDate><guid>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/configuration</guid><description>&lt;p&gt;You define your checks in YAML configuration files in your repository&amp;rsquo;s &lt;code&gt;.chainguard/&lt;/code&gt; directory. This page describes the file format: where the files go, the packages and commands each check gets, and the options that control when and how checks run. For variations, inputs and outputs, services, and caches, refer to &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/variations-services-caches"&gt;Variations, inputs, services, and caches&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The same files also set up &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/workspaces"&gt;Chainguard Workspaces&lt;/a&gt; sessions, and &lt;code&gt;run-ci&lt;/code&gt; in a session runs the checks they define.&lt;/p&gt;</description></item><item><title>Variations, inputs, services, and caches in Chainguard Checks</title><link>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/variations-services-caches</link><pubDate>Mon, 12 Oct 2026 00:00:00 +0000</pubDate><guid>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/variations-services-caches</guid><description>&lt;p&gt;Most checks need only the keys that the &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/configuration"&gt;Chainguard Checks configuration reference&lt;/a&gt; describes. This page describes the keys for checks that need more: running a check once for each of several variations, passing files between checks, starting services such as a database or Docker, running as an unprivileged account, and reusing build output from earlier runs.&lt;/p&gt;
&lt;h2 id="run-a-check-once-per-variation" class="heading-2" data-heading-level="2"&gt;
&lt;span class="heading-text"&gt;Run a check once per variation&lt;/span&gt;
&lt;a href="#run-a-check-once-per-variation" class="anchor" aria-label="Link to Run a check once per variation" title="Link to this section"&gt;
&lt;svg width="16" height="9" viewBox="0 0 16 9" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"&gt;
&lt;path d="M6.833 8.125H4C3 8.125 2.146 7.77067 1.438 7.062C0.729333 6.354 0.375 5.5 0.375 4.5C0.375 3.5 0.729333 2.646 1.438 1.938C2.146 1.22933 3 0.875 4 0.875H6.833V1.958H4C3.30533 1.958 2.708 2.208 2.208 2.708C1.708 3.208 1.458 3.80533 1.458 4.5C1.458 5.19467 1.708 5.792 2.208 6.292C2.708 6.792 3.30533 7.042 4 7.042H6.833V8.125ZM5.208 5.042V3.958H10.792V5.042H5.208ZM9.167 8.125V7.042H12C12.6947 7.042 13.292 6.792 13.792 6.292C14.292 5.792 14.542 5.19467 14.542 4.5C14.542 3.80533 14.292 3.208 13.792 2.708C13.292 2.208 12.6947 1.958 12 1.958H9.167V0.875H12C13 0.875 13.854 1.22933 14.562 1.938C15.2707 2.646 15.625 3.5 15.625 4.5C15.625 5.5 15.2707 6.354 14.562 7.062C13.854 7.77067 13 8.125 12 8.125H9.167Z" fill="currentColor"/&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The &lt;code&gt;foreach&lt;/code&gt; key runs a check once for each entry in a list, each in its own VM. All of a check&amp;rsquo;s variations report as one GitHub check. For example, this check runs three variations, two at a time:&lt;/p&gt;</description></item><item><title>Chainguard Checks examples</title><link>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/examples</link><pubDate>Thu, 12 Nov 2026 14:46:46 +0000</pubDate><guid>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/examples</guid><description>&lt;p&gt;This page gives complete Chainguard Checks configurations for common kinds of projects. Copy the one closest to your project, then change its packages, commands, and network access to match. Each example passes &lt;code&gt;chainctl checks validate&lt;/code&gt;. For what each key does, refer to the &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/configuration"&gt;Chainguard Checks configuration reference&lt;/a&gt;, and for services and caches, refer to &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/variations-services-caches"&gt;Variations, inputs, services, and caches&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Keep the following in mind when you adapt an example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A check reaches only the hosts in its &lt;code&gt;network.egress&lt;/code&gt; list. If your build downloads from somewhere else, such as a private package registry, add that host. Refer to &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/migrate-from-github-actions#find-the-hosts-a-check-needs"&gt;Find the hosts a check needs&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;A cache does nothing until your default branch&amp;rsquo;s &lt;code&gt;.chainguard/ci/identities.yaml&lt;/code&gt; file defines cache pools, as described in &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/variations-services-caches#set-up-cache-pools"&gt;Set up cache pools&lt;/a&gt;. The examples that use caches also run after merging, with &lt;code&gt;trigger: [presubmit, postsubmit]&lt;/code&gt;, so that runs on your default branch fill the cache that pull requests start from.&lt;/li&gt;
&lt;li&gt;Chainguard Workspaces sessions can use these files for their packages, but they don&amp;rsquo;t start services or mount caches other than &lt;code&gt;gobuild&lt;/code&gt;. Refer to &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/workspaces/session-environment"&gt;Configure a Chainguard Workspaces session&amp;rsquo;s environment&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="java-with-maven" class="heading-2" data-heading-level="2"&gt;
&lt;span class="heading-text"&gt;Java with Maven&lt;/span&gt;
&lt;a href="#java-with-maven" class="anchor" aria-label="Link to Java with Maven" title="Link to this section"&gt;
&lt;svg width="16" height="9" viewBox="0 0 16 9" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"&gt;
&lt;path d="M6.833 8.125H4C3 8.125 2.146 7.77067 1.438 7.062C0.729333 6.354 0.375 5.5 0.375 4.5C0.375 3.5 0.729333 2.646 1.438 1.938C2.146 1.22933 3 0.875 4 0.875H6.833V1.958H4C3.30533 1.958 2.708 2.208 2.208 2.708C1.708 3.208 1.458 3.80533 1.458 4.5C1.458 5.19467 1.708 5.792 2.208 6.292C2.708 6.792 3.30533 7.042 4 7.042H6.833V8.125ZM5.208 5.042V3.958H10.792V5.042H5.208ZM9.167 8.125V7.042H12C12.6947 7.042 13.292 6.792 13.792 6.292C14.292 5.792 14.542 5.19467 14.542 4.5C14.542 3.80533 14.292 3.208 13.792 2.708C13.292 2.208 12.6947 1.958 12 1.958H9.167V0.875H12C13 0.875 13.854 1.22933 14.562 1.938C15.2707 2.646 15.625 3.5 15.625 4.5C15.625 5.5 15.2707 6.354 14.562 7.062C13.854 7.77067 13 8.125 12 8.125H9.167Z" fill="currentColor"/&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;This file installs a JDK and Maven, and runs the build&amp;rsquo;s tests with &lt;code&gt;mvn verify&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Workload identities and trust in Chainguard Checks</title><link>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/identity-and-trust</link><pubDate>Mon, 12 Oct 2026 00:00:00 +0000</pubDate><guid>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/identity-and-trust</guid><description>&lt;p&gt;A check that must authenticate to Google Cloud, AWS, Azure, or Chainguard, such as to read a Cloud Storage bucket or to pull private images from &lt;code&gt;cgr.dev&lt;/code&gt;, can use a &lt;em&gt;workload identity&lt;/em&gt;: short-lived credentials that Chainguard Checks gives the check while it runs. This page explains how workload identities work, how to declare and set one up, how to limit which pull requests get one, and how to revoke access.&lt;/p&gt;</description></item><item><title>Use Chainguard Checks on GitHub</title><link>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/github</link><pubDate>Thu, 08 Oct 2026 00:00:00 +0000</pubDate><guid>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/github</guid><description>&lt;p&gt;Chainguard Checks runs on your GitHub repositories through the Chainguard App and reports its results as GitHub checks. This page explains when Chainguard Checks runs, how its results appear on GitHub, how to read them with the GitHub API, and how to use them to protect your branches. To watch a pull request&amp;rsquo;s checks pass, fail, and pass again after a fix, follow the tutorial &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/get-started/checks-and-workspaces/tutorial"&gt;Fix a failing check with Claude Code&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Run checks before you push with Chainguard Workspaces</title><link>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/run-checks</link><pubDate>Thu, 08 Oct 2026 00:00:00 +0000</pubDate><guid>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/run-checks</guid><description>&lt;p&gt;Waiting for a pull request&amp;rsquo;s checks to find a mistake is slow, especially for a coding agent that has to push, wait, and read the results before it can try again. With &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/workspaces"&gt;Chainguard Workspaces&lt;/a&gt;, you can run your repository&amp;rsquo;s checks against your working tree, uncommitted changes included, before you push. This page explains how, and how to find mistakes in your configuration without running anything. To run checks on a pushed commit without a pull request, or to read results and your checks&amp;rsquo; history from your terminal, refer to &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/inspect-and-run-checks"&gt;Inspect and run checks with chainctl&lt;/a&gt;. For &lt;code&gt;run-ci&lt;/code&gt; in the whole loop, from a change through a failing pull request and its fix, follow the tutorial &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/get-started/checks-and-workspaces/tutorial"&gt;Fix a failing check with Claude Code&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Inspect and run checks with chainctl</title><link>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/inspect-and-run-checks</link><pubDate>Mon, 12 Oct 2026 00:00:00 +0000</pubDate><guid>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/inspect-and-run-checks</guid><description>&lt;p&gt;The &lt;code&gt;chainctl checks&lt;/code&gt; commands read your checks&amp;rsquo; results from your terminal, so you or a coding agent can find out why a check failed without opening GitHub. This page explains how to inspect a pull request&amp;rsquo;s runs, how to run checks on a pushed commit without opening a pull request, and how to find the checks that take the most time or fail most often. For every command and flag, refer to the &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/chainctl-checks-reference"&gt;&lt;code&gt;chainctl checks&lt;/code&gt; command reference&lt;/a&gt;. To see &lt;code&gt;chainctl checks failures&lt;/code&gt; in use, with Claude Code fixing the failure it reports, follow the tutorial &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/get-started/checks-and-workspaces/tutorial"&gt;Fix a failing check with Claude Code&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Migrate from GitHub Actions to Chainguard Checks</title><link>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/migrate-from-github-actions</link><pubDate>Thu, 08 Oct 2026 00:00:00 +0000</pubDate><guid>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/migrate-from-github-actions</guid><description>&lt;p&gt;If your repository runs its pull request checks with GitHub Actions, you can move them to Chainguard Checks one workflow at a time. Chainguard Checks and GitHub Actions can run on the same pull requests, so you can compare their results before you remove a workflow.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;d rather keep your workflows on GitHub Actions, &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/actions"&gt;Chainguard Actions&lt;/a&gt; replaces the actions they use with hardened equivalents, and Guardener&amp;rsquo;s &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/guardener/github/actions-security"&gt;Hardened Actions&lt;/a&gt; feature can migrate them for you.&lt;/p&gt;</description></item><item><title>chainctl checks command reference</title><link>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/chainctl-checks-reference</link><pubDate>Mon, 12 Oct 2026 00:00:00 +0000</pubDate><guid>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/chainctl-checks-reference</guid><description>&lt;p&gt;The &lt;code&gt;chainctl checks&lt;/code&gt; commands read your pull requests&amp;rsquo; results from your terminal, start and rerun checks, summarize your checks&amp;rsquo; history, and validate your configuration. This page lists each command&amp;rsquo;s arguments, flags, exit codes, and JSON output. For examples of the commands in use, refer to &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/inspect-and-run-checks"&gt;Inspect and run checks with chainctl&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The generated &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/platform/chainctl/chainctl-docs/chainctl_checks"&gt;&lt;code&gt;chainctl checks&lt;/code&gt; reference&lt;/a&gt; has the help text of the latest &lt;code&gt;chainctl&lt;/code&gt; release. If this page and the generated reference disagree about a command&amp;rsquo;s flags, the generated reference is right. To read the help for the version you have installed, add &lt;code&gt;--help&lt;/code&gt; to any command, such as &lt;code&gt;chainctl checks status --help&lt;/code&gt;. You can also type &lt;code&gt;chainctl ci&lt;/code&gt; instead of &lt;code&gt;chainctl checks&lt;/code&gt;. If your installation of &lt;code&gt;chainctl&lt;/code&gt; doesn&amp;rsquo;t recognize a command or flag on this page, &lt;a href="https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/platform/chainctl-usage/how-to-install-chainctl#updating-chainctl"&gt;update chainctl&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Troubleshoot Chainguard Checks</title><link>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/troubleshooting</link><pubDate>Thu, 08 Oct 2026 00:00:00 +0000</pubDate><guid>https://chainguard-docs-preview-git-entra-scim-updates.chainguard.app/docs/chainguard/checks/troubleshooting</guid><description>&lt;p&gt;This page describes common problems with Chainguard Checks and how to fix them. If your problem isn&amp;rsquo;t listed here, ask in the #checks-questions channel in the &lt;a href="https://join.slack.com/t/chainguardcommunity/shared_invite/zt-3nttdr807-V9BJHayWvsB0KbHsfZO5Rw"&gt;Chainguard community Slack&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="a-pull-request-gets-no-checks" class="heading-2" data-heading-level="2"&gt;
&lt;span class="heading-text"&gt;A pull request gets no checks&lt;/span&gt;
&lt;a href="#a-pull-request-gets-no-checks" class="anchor" aria-label="Link to A pull request gets no checks" title="Link to this section"&gt;
&lt;svg width="16" height="9" viewBox="0 0 16 9" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"&gt;
&lt;path d="M6.833 8.125H4C3 8.125 2.146 7.77067 1.438 7.062C0.729333 6.354 0.375 5.5 0.375 4.5C0.375 3.5 0.729333 2.646 1.438 1.938C2.146 1.22933 3 0.875 4 0.875H6.833V1.958H4C3.30533 1.958 2.708 2.208 2.208 2.708C1.708 3.208 1.458 3.80533 1.458 4.5C1.458 5.19467 1.708 5.792 2.208 6.292C2.708 6.792 3.30533 7.042 4 7.042H6.833V8.125ZM5.208 5.042V3.958H10.792V5.042H5.208ZM9.167 8.125V7.042H12C12.6947 7.042 13.292 6.792 13.792 6.292C14.292 5.792 14.542 5.19467 14.542 4.5C14.542 3.80533 14.292 3.208 13.792 2.708C13.292 2.208 12.6947 1.958 12 1.958H9.167V0.875H12C13 0.875 13.854 1.22933 14.562 1.938C15.2707 2.646 15.625 3.5 15.625 4.5C15.625 5.5 15.2707 6.354 14.562 7.062C13.854 7.77067 13 8.125 12 8.125H9.167Z" fill="currentColor"/&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;If a pull request shows no &lt;strong&gt;Chainguard Checks (presubmit)&lt;/strong&gt; check at all, Chainguard Checks didn&amp;rsquo;t start a run for it. Confirm the following:&lt;/p&gt;</description></item></channel></rss>