{"id":13523132,"url":"https://github.com/projectdiscovery/nuclei-action","last_synced_at":"2025-04-08T02:39:55.450Z","repository":{"id":37782835,"uuid":"291144536","full_name":"projectdiscovery/nuclei-action","owner":"projectdiscovery","description":"Vulnerability Scan with Nuclei","archived":false,"fork":false,"pushed_at":"2024-11-18T11:17:37.000Z","size":153,"stargazers_count":251,"open_issues_count":2,"forks_count":72,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-04-02T21:39:00.828Z","etag":null,"topics":["security-automation"],"latest_commit_sha":null,"homepage":"https://projectdiscovery.io/nuclei","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/projectdiscovery.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-28T20:57:11.000Z","updated_at":"2025-03-28T23:40:09.000Z","dependencies_parsed_at":"2023-02-16T06:15:54.697Z","dependency_job_id":"68c6cb43-7da3-4253-b7bc-5a1f80ed193e","html_url":"https://github.com/projectdiscovery/nuclei-action","commit_stats":{"total_commits":60,"total_committers":24,"mean_commits":2.5,"dds":0.75,"last_synced_commit":"e62115193e68fa4596eb7956acff233fa7160029"},"previous_names":["secopslab/nuclei-action"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectdiscovery%2Fnuclei-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectdiscovery%2Fnuclei-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectdiscovery%2Fnuclei-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectdiscovery%2Fnuclei-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/projectdiscovery","download_url":"https://codeload.github.com/projectdiscovery/nuclei-action/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247767232,"owners_count":20992538,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["security-automation"],"created_at":"2024-08-01T06:00:55.863Z","updated_at":"2025-04-08T02:39:55.414Z","avatar_url":"https://github.com/projectdiscovery.png","language":"JavaScript","funding_links":[],"categories":["📦 Resources","JavaScript"],"sub_categories":["4. Test"],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/projectdiscovery/nuclei/blob/main/static/nuclei-logo.png\" alt=\"nuclei\" width=\"200px\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\n\u003c/h1\u003e\n\nThis Nuclei Action makes it easy to orchestrate [Nuclei](https://github.com/projectdiscovery/nuclei) with [GitHub Action](https://github.com/features/actions).\nIntegrate all of your [Nuclei Templates](https://github.com/projectdiscovery/nuclei-templates) into powerful continuous security workflows and make it part of your secure software development life cycle.\n\nExample Usage\n-----\n\n**Workflow** - `.github/workflows/nuclei.yml`\n\n```yaml\nname: Nuclei - Vulnerability Scan\n\non:\n    schedule:\n      - cron: '0 0 * * *'\n    workflow_dispatch:\n\njobs:\n  nuclei-scan:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n\n      - name: Nuclei - Vulnerability Scan\n        id: nuclei_scan\n        uses: projectdiscovery/nuclei-action@main\n        with:\n          target: https://example.com\n\n      - name: GitHub Workflow artifacts\n        uses: actions/upload-artifact@v4\n        with:\n          name: nuclei.log\n          path: nuclei.log\n\n      - name: GitHub Security Dashboard Alerts update\n        uses: github/codeql-action/upload-sarif@v3\n        if: steps.nuclei_scan.outputs.sarif_exists == 'true'\n        with:\n          sarif_file: nuclei.sarif\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n```\n\n**GitHub Action running Nuclei on single URL**\n\n```yaml\n      - name: Nuclei - Vulnerability Scan\n        uses: projectdiscovery/nuclei-action@main\n        with:\n          target: https://example.com\n```\n\n**GitHub Action running Nuclei with custom templates**\n\n```yaml\n      - name: Nuclei - Vulnerability Scan\n        uses: projectdiscovery/nuclei-action@main\n        with:\n          target: https://example.com\n          templates: custom_template_path\n```\n\n\u003cins\u003eAs default, all the default [nuclei-templates](https://github.com/projectdiscovery/nuclei-templates) are used for scan.\u003c/ins\u003e\n\n**GitHub Action running Nuclei with custom workflows**\n\n```yaml\n      - name: Nuclei - Vulnerability Scan\n        uses: projectdiscovery/nuclei-action@main\n        with:\n          target: https://example.com\n          workflows: custom_workflow_path\n```\n\n**GitHub Action running Nuclei on multiple URLs**\n\n```yaml\n      - name: Nuclei - Vulnerability Scan\n        uses: projectdiscovery/nuclei-action@main\n        with:\n          urls: urls.txt\n```\n\n**GitHub Action running Nuclei with CLI flags**\n\n```yaml\n      - name: Nuclei - Vulnerability Scan\n        uses: projectdiscovery/nuclei-action@main\n        with:\n          urls: urls.txt\n          flags: \"-severity critical,high,medium,low -stats\"\n```\n\n**GitHub Action running Nuclei with Custom UA**\n\n```yaml\n      - name: Nuclei - Vulnerability Scan\n        uses: projectdiscovery/nuclei-action@main\n        with:\n          urls: urls.txt\n          user-agent: \"User-Agent:'Nuclei - Vulnerability Scan (Have a nice day)'\"\n```\n\n**GitHub Action running Nuclei with Config files**\n\n```yaml\n      - name: Nuclei - Vulnerability Scan\n        uses: projectdiscovery/nuclei-action@main\n        with:\n          urls: urls.txt\n          config: config.yaml\n          report-config: issues.yaml\n```\n\n\n\n**GitHub Example Action running Nuclei with GitHub Issue reporting**\n\nSetting permissions for `GITHUB_TOKEN`, according to the [github actions docs](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token).\n```yaml\npermissions:\n  issues: write\n```\n\n```yaml\n      - name: Nuclei - Vulnerability Scan\n        uses: projectdiscovery/nuclei-action@main\n        with:\n          target: https://example.com\n          github-report: true\n          github-token: ${{ secrets.GITHUB_TOKEN }}\n```\n\nUsing the `github-report` creates a default configuration to enable reporting to Github Issues\n\n\n**GitHub Example Action running Nuclei with custom GitHub Issue reporting**\n\n```yaml\n      - name: Nuclei - Vulnerability Scan\n        uses: projectdiscovery/nuclei-action@main\n        with:\n          target: https://example.com\n          report-config: github-issue-config.yaml\n          github-token: ${{ secrets.GITHUB_TOKEN }}\n```\n\nCreate a `yaml` file to define the nuclei github issue reporting behavior:\n\n```yaml\ngithub:\n  duplicate-issue-check: true\n  severity-as-label: true\n  issue-label: '\u003cNuclei Scan Vulnerability\u003e'\n```\n\nThe `nuclie-action` will fill in the repository settings into the custom configuration. The file don't need to be augmented with these information manually.\n\n```yaml\ngithub:\n  username: GITHUB_ACTOR,\n  owner: GITHUB_REPOSITORY_OWNER,\n  token,\n  \"project-name\": GITHUB_REPOSITORY,\n```\n\n\n\n\n**GitHub Example Action running Nuclei with GitHub Security Dashboard reporting**\n\n```yaml\n      - name: Nuclei - Vulnerability Scan\n        id: nuclei_scan\n        uses: projectdiscovery/nuclei-action@main\n        with:\n          target: https://example.com\n\n      - name: GitHub Security Dashboard Alerts update\n        uses: github/codeql-action/upload-sarif@v3\n        if: steps.nuclei_scan.outputs.sarif_exists == 'true'\n        with:\n          sarif_file: nuclei.sarif\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n```\n\nAvailable Inputs\n------\n\n| Key               | Description                                                      | Required |\n| ----------------- |------------------------------------------------------------------| -------- |\n| `target`          | Target URL to run nuclei scan                                    | true     |\n| `urls`            | List of urls to run nuclei scan                                  | false    |\n| `templates`       | Custom templates directory/file to run nuclei scan               | false    |\n| `workflows`       | Custom workflows file/files to check across hosts                | false    |\n| `output`          | File to save output result (default - nuclei.log)                | false    |\n| `json`            | Write results in JSON format                                     | false    |\n| `include-rr`      | Include request/response in results [DEPRECATED use `-omit-raw`] | true     |\n| `omit-raw`        | Exclude request/response in results                              | false    |\n| `config`          | Set custom nuclei config file to use                             | false    |\n| `user-agent`      | Set custom user-agent header                                     | false    |\n| `report-config`   | Issue reporting configuration file                               | false    |\n| `github-report`   | Set `true` to generate Github issue with the report              | false    |\n| `github-token`    | Set the Github Token                                             | false    |\n| `sarif-export`    | File to export result (default - nuclei.sarif)                   | false    |\n| `markdown-export` | Directory to export markdown results                             | false    |\n| `flags`           | More Nuclei CLI flags to use                                     | false    |\n| `nuclei-version`  | Use this specific nucleai version, by default latest is used     | false    |\n\n\n## Contributing\n\nThis action uses Javascript [github actions toolkit](https://github.com/actions/toolkit). Code using the `src` directory, and before submitting your PR, check and run a `npm run build`, otherwise your changes will not be applied to the final action which resides in the `dist` directory.\n\nWe use this way to avoid jobs having to install npm modules and create a final version without dependencies on our code.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprojectdiscovery%2Fnuclei-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprojectdiscovery%2Fnuclei-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprojectdiscovery%2Fnuclei-action/lists"}