Skip to main content

Assessing code scanning alerts for your repository

From the security view, you can explore and evaluate alerts for potential vulnerabilities or errors in your project's code.

Who can use this feature?

Users with write access

Anyone with read permission for a repository can see code scanning annotations on pull requests. For more information, see "Triaging code scanning alerts in pull requests."

Viewing the alerts for a repository

You need write permission to view a summary of all the alerts for a repository on the Security tab.

By default, the code scanning alerts page is filtered to show alerts for the default branch of the repository only.

  1. On GitHub, navigate to the main page of the repository.

  2. Under the repository name, click Security. If you cannot see the "Security" tab, select the dropdown menu, and then click Security.

    Screenshot of a repository header showing the tabs. The "Security" tab is highlighted by a dark orange outline.

  3. In the left sidebar, click Code scanning.

  4. Optionally, use the free text search box or the dropdown menus to filter alerts. For example, you can filter by the tool that was used to identify alerts.

    Screenshot of code scanning alerts page. The search box and filter dropdown menus are outlined in dark orange.

  5. Under "Code scanning," click the alert you'd like to explore to display the detailed alert page. The status and details on the alert page only reflect the state of the alert on the default branch of the repository, even if the alert exists in other branches. You can see the status of the alert on non-default branches in the Affected branches section on the right-hand side of the alert page. If an alert doesn't exist in the default branch, the status of the alert will display as "in pull request" or "in branch" and will be colored grey.

  6. Optionally, if the alert highlights a problem with data flow, click Show paths to display the path from the data source to the sink where it's used.

    Screenshot of a code scanning alert. The "Show paths" and "Show more" links are outlined in dark orange.

  7. Alerts from CodeQL analysis include a description of the problem. Click Show more for guidance on how to fix your code.

For more information, see "About code scanning alerts."

Note

You can see information about when code scanning analysis last ran on the tool status page. For more information, see "About the tool status page for code scanning."

Asking GitHub Copilot Chat about code scanning alerts

With a GitHub Copilot Enterprise license, you can ask Copilot Chat for help to better understand security alerts, including code scanning alerts, in repositories in your organization. For more information, see "Asking GitHub Copilot questions in GitHub."

Viewing metrics for CodeQL pull request alerts for an organization

For code scanning alerts from CodeQL analysis, you can use security overview to see how CodeQL is performing in pull requests in repositories where you have write access across your organization, and to identify repositories where you may need to take action. For more information, see "Viewing metrics for pull request alerts."

Filtering code scanning alerts

You can filter the alerts shown in the code scanning alerts view. This is useful if there are many alerts as you can focus on a particular type of alert. There are some predefined filters and a range of keywords that you can use to refine the list of alerts displayed.

When you select a keyword from either a drop-down list, or as you enter a keyword in the search field, only values with results are shown. This makes it easier to avoid setting filters that find no results.

Screenshot of search field in alerts view. The field has "branch:dependabot" and all valid branches with a matching name are shown.

If you enter multiple filters, the view will show alerts matching all these filters. For example, is:closed severity:high branch:main will only display closed high-severity alerts that are present on the main branch. The exception is filters relating to refs (ref, branch and pr): is:open branch:main branch:next will show you open alerts from both the main branch and the next branch.

Please note that if you have filtered for alerts on a non-default branch, but the same alerts exist on the default branch, the alert page for any given alert will still only reflect the alert's status on the default branch, even if that status conflicts with the status on a non-default branch. For example, an alert that appears in the "Open" list in the summary of alerts for branch-x could show a status of "Fixed" on the alert page, if the alert is already fixed on the default branch. You can view the status of the alert for the branch you filtered on in the Affected branches section on the right side of the alert page.

You can prefix the tag filter with - to exclude results with that tag. For example, -tag:style only shows alerts that do not have the style tag.

Restricting results to application code only

You can use the "Only alerts in application code" filter or autofilter:true keyword and value to restrict results to alerts in application code. For more information about the types of code that are automatically labeled as not application code, see "About code scanning alerts."

Searching code scanning alerts

You can search the list of alerts. This is useful if there is a large number of alerts in your repository, or if you don't know the exact name for an alert for example. GitHub Enterprise Cloud performs the free text search across:

  • The name of the alert
  • The alert details (this also includes the information hidden from view by default in the Show more collapsible section)
Supported searchSyntax exampleResults
Single word searchinjectionReturns all the alerts containing the word injection
Multiple word searchsql injectionReturns all the alerts containing sql or injection
Exact match search
(use double quotes)
"sql injection"Returns all the alerts containing the exact phrase sql injection
OR searchsql OR injectionReturns all the alerts containing sql or injection
AND searchsql AND injectionReturns all the alerts containing both words sql and injection

Tip

  • The multiple word search is equivalent to an OR search.
  • The AND search will return results where the search terms are found anywhere, in any order in the alert name or details.
  1. On GitHub, navigate to the main page of the repository.
  2. Under the repository name, click Security. If you cannot see the "Security" tab, select the dropdown menu, and then click Security.
    Screenshot of a repository header showing the tabs. The "Security" tab is highlighted by a dark orange outline.
  3. In the left sidebar, click Code scanning.
  4. To the right of the Filters drop-down menus, type the keywords to search for in the free text search box.
    Screenshot of search field in alerts view. The field has pre-defined filters "is: open branch:main" and free text of "sql or injection" highlighted.
  5. Press return. The alert listing will contain the open code scanning alerts matching your search criteria.

Tracking code scanning alerts in issues

Note: The tracking of code scanning alerts in issues is in public preview and subject to change.

This feature supports running analysis natively using GitHub Actions or externally using existing CI/CD infrastructure, as well as third-party code scanning tools, but not third-party tracking tools.

To quickly create an issue to track the status of a specific code scanning alert, on the code scanning alerts page, click the alert you would like to track. On the detailed page for that alert, click Create issue. Customize the autogenerated issue as desired, then click Submit new issue.

Alternatively, to track a code scanning alert in an existing issue, add the URL for the alert as a task list item in the issue. For more information about task lists, see "About task lists."

For more information about creating issues to track code scanning alerts, see "Tracking code scanning alerts in issues using task lists."

Auditing responses to code scanning alerts

You can audit the actions taken in response to code scanning alerts using GitHub tools. For more information, see "Auditing security alerts."

Further reading