> For the complete documentation index, see [llms.txt](https://docs.sec1.io/user-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sec1.io/user-docs/2-integration-with-sec1/6-ci-cd-integrations/2-github-actions-integration.md).

# Github Actions

## Overview

This GitHub Actions workflow integrates [Sec1](https://sec1.io/) to conduct vulnerability scans on your GitHub projects. Sec1 is a powerful tool that helps identify security vulnerabilities within your codebase.

## Obtaining your Sec1 API Key

To use Sec1 in your workflow, you need to obtain an API key. Follow these steps:

1. **Navigate to Sec1 Website:**
   * Visit [Sec1 portal](https://scopy.sec1.io/) and log in using your GitHub credentials.
2. **Generate API Key:**
   * In the "Settings" section, locate the "API key" and click on "Generate API key."
3. **Copy the API Token:**
   * Copy the generated API token.
4. **Add API Key to GitHub Repository Secrets:**
   * Add the copied API key to your GitHub repository secrets. Refer to [GitHub's documentation](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository) for creating secrets at the repository level.
   * If you are working at the organization level, follow the instructions [here](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-an-organization) to create secrets for your organization.
5. **Set API Key Variable in GitHub Actions:**
   * In your GitHub Actions workflow file (e.g., `.github/workflows/main.yml`), set the `apikey` variable using the secret you created:

     ```yaml
     env:
       apikey: ${{ secrets.SEC1_API_KEY }}
     ```

## Examples

### Sec1 Security Scan

Below is an example of using the Sec1 Security Action in your GitHub Actions workflow. This example runs the Sec1 scan on each push to the repository.

In your repository, create .github folder & within .github folder create main.yaml. Copy below code in main.yaml file to add Sec1 Security.

```yaml
name: Example workflow using Sec1 Security 
on: push
jobs:
  sec1-security:
    runs-on: ubuntu-latest
    name: Sec1 Security
    steps:
      - uses: actions/checkout@master
      - name: Run Sec1 Scan to check for vulnerabilities
        uses: sec0ne/actions/security@main
        with:
          apikey: ${{ secrets.SEC1_API_KEY }}
```

### Customizing Scan Thresholds

Sec1 scan supports setting up threshold values. If the scan reports vulnerabilities exceeding the specified thresholds, Sec1 Security will mark the build as failed. You can set threshold values for different severities such as critical, high, medium, and low.

```yaml
name: Example workflow using Sec1 Security 
on: push
jobs:
  sec1-security:
    runs-on: ubuntu-latest
    name: Sec1 Security
    steps:
      - uses: actions/checkout@master
      - name: Run Sec1 Scan to check for vulnerabilities and with threshold values
        uses: sec0ne/actions/security@main
        with:
          apikey: ${{ secrets.SEC1_API_KEY }}
          scanThreshold: critical=1 high=1
```

Now, your GitHub Actions workflow is set up to leverage Sec1 for continuous security checks in your projects.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.sec1.io/user-docs/2-integration-with-sec1/6-ci-cd-integrations/2-github-actions-integration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
