{"id":15494856,"url":"https://github.com/simonkowallik/irulescan-action","last_synced_at":"2025-07-07T04:10:16.079Z","repository":{"id":65161758,"uuid":"583628393","full_name":"simonkowallik/irulescan-action","owner":"simonkowallik","description":":shield: irulescan-action is a static security analyzer for iRules for use with Github Actions","archived":false,"fork":false,"pushed_at":"2022-12-30T12:15:49.000Z","size":7,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-06T22:34:13.824Z","etag":null,"topics":["ci","cicd","devsecops","f5","f5-bigip","f5networks","irules","security","security-tools"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/simonkowallik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-12-30T11:24:30.000Z","updated_at":"2023-06-14T18:12:27.000Z","dependencies_parsed_at":"2023-01-05T05:03:39.183Z","dependency_job_id":null,"html_url":"https://github.com/simonkowallik/irulescan-action","commit_stats":{"total_commits":3,"total_committers":2,"mean_commits":1.5,"dds":"0.33333333333333337","last_synced_commit":"e39d79c4427dba06ad104a7a979573a5e4322439"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/simonkowallik/irulescan-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonkowallik%2Firulescan-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonkowallik%2Firulescan-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonkowallik%2Firulescan-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonkowallik%2Firulescan-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simonkowallik","download_url":"https://codeload.github.com/simonkowallik/irulescan-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonkowallik%2Firulescan-action/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264010960,"owners_count":23543717,"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":["ci","cicd","devsecops","f5","f5-bigip","f5networks","irules","security","security-tools"],"created_at":"2024-10-02T08:15:26.882Z","updated_at":"2025-07-07T04:10:16.062Z","avatar_url":"https://github.com/simonkowallik.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# irulescan-action\n\n[![Functional Tests](https://github.com/simonkowallik/irulescan-action/actions/workflows/functional_tests.yaml/badge.svg)](https://github.com/simonkowallik/irulescan-action/actions/workflows/functional_tests.yaml)\n\nThis action uses [irulescan](https://github.com/simonkowallik/irulescan) to scan iRules within your repository for security issues during execution of a GitHub Actions Workflow.\n\nThis action scans all irules in the repository and returns the result of findings in YAML format. __The workflow step will not fail__ by default, hence the execution of the workflow job succeeds even when security issues are found. The goal is to provide the findings to let you choose what to do with them.\n\n`irulescan-action` will scan files with `.tcl` and `.irule` extensions only.\n\n## Usage\n\nIn the simplest form the below workflow scans iRules in the whole repository. Please take a look at the provided examples for more details.\n\n```yaml\njobs:\n  irulescan-action:\n    runs-on: ubuntu-latest\n    name: \"Workflow\"\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n\n      - name: Run irulescan-action\n        uses: simonkowallik/irulescan-action@main\n```\n\nSome behavior can be modified, see *inputs* below.\n\n### `inputs`\n\nAll inputs are *optional*.\n\n- **`scandir`**: Use `scandir` to scan a custom subdirectory within the repository.\n\n- **`expected_results_file`**: Specify a relative path to a YAML file with expected results. If the actual result of irulescan does not match the expected result, a diff will be returned and __the job step will fail__.\n\n- **`cmd`**: Specify a custom command to execute within the container.\n\n### `outputs`\n\n- **`result`**: `result` will be populated with the output results. It can be accessed using `${{ steps.\u003ciruescan-action-step-id\u003e.outputs.result }}`.\n\n## Examples\n\nThe [`example/`](example/) folder contains example iRules and a [YAML file](examples/expected_results.yaml) with expected results.\n\n[`.github/workflows`](.github/workflows) contains several example workflows, click on the icons below to inspect the workflow:\n  \n  [![Demo: Successful](https://img.shields.io/github/actions/workflow/status/simonkowallik/irulescan-action/example_success.yaml?style=for-the-badge\u0026label=Demo%3A%20Successful)](.github/workflows/example_success.yaml)\n  \n  [![Demo: Failing workflow step](https://img.shields.io/github/actions/workflow/status/simonkowallik/irulescan-action/example_failure.yaml?style=for-the-badge\u0026label=Demo%3A%20Failing%20workflow%20step)](.github/workflows/example_failure.yaml)\n  \n  [![Demo: Custom CMD](https://img.shields.io/github/actions/workflow/status/simonkowallik/irulescan-action/example_custom_cmd.yaml?style=for-the-badge\u0026label=Demo%3A%20Custom%20CMD)](.github/workflows/example_custom_cmd.yaml)\n  \n  [![Demo: Advanced Usage](https://img.shields.io/github/actions/workflow/status/simonkowallik/irulescan-action/example_advanced.yaml?style=for-the-badge\u0026label=Demo%3A%20Advanced%20Usage)](.github/workflows/example_advanced.yaml)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonkowallik%2Firulescan-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimonkowallik%2Firulescan-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonkowallik%2Firulescan-action/lists"}