{"id":20679033,"url":"https://github.com/contractshark/pipeline-slither","last_synced_at":"2026-04-12T19:49:49.536Z","repository":{"id":54594699,"uuid":"332897621","full_name":"contractshark/pipeline-slither","owner":"contractshark","description":"GitHub Actions Slither Workflow","archived":false,"fork":false,"pushed_at":"2021-10-09T00:17:09.000Z","size":22,"stargazers_count":1,"open_issues_count":1,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-17T15:21:35.746Z","etag":null,"topics":["actions","ethereum","slither","smart-contracts","solidity","static-analysis","workflow"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/contractshark.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-01-25T22:08:27.000Z","updated_at":"2021-10-27T05:20:28.000Z","dependencies_parsed_at":"2022-08-13T20:40:46.646Z","dependency_job_id":null,"html_url":"https://github.com/contractshark/pipeline-slither","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contractshark%2Fpipeline-slither","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contractshark%2Fpipeline-slither/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contractshark%2Fpipeline-slither/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contractshark%2Fpipeline-slither/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/contractshark","download_url":"https://codeload.github.com/contractshark/pipeline-slither/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242911479,"owners_count":20205499,"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":["actions","ethereum","slither","smart-contracts","solidity","static-analysis","workflow"],"created_at":"2024-11-16T21:23:41.821Z","updated_at":"2025-12-31T00:54:54.775Z","avatar_url":"https://github.com/contractshark.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\ntitle: GitHub Workflow Template for Crytic Slither\ndescription: Slither CI Pipeline workflow\nversion: v.1.0.0\n---\n\n# Slither scripts | Functions by modifier\n\nDetect functions in any set of Solidity smart contract that are labeled with a given modifier, using [Slither](https://github.com/trailofbits/slither).\n\nThis script is based on [Slither's `contract-summary` printer](https://github.com/trailofbits/slither/blob/ff280c2b6f35f8df4efff92903700da7d04fb415/slither/printers/summary/contract.py#L13).\n\n## Usage\n`python modifier.py \u003ccontract.sol\u003e \u003cmodifier-name\u003e`\n\nExample:\n~~~\n$ python modifier.py test/TestContract.sol firstModifier\n== Functions with firstModifier modifier ==\n\n+ Contract ParentContract\n\n+ Contract TestContract\n  - From TestContract\n    - withTwoModifiers(address) (public)\n    - withOneModifier() (internal)\n~~~\n\n## Limitations\nCurrently, the script does not look for modifiers in internal calls.\nFor instance, in the following code snippet, `foo` will not be listed as having the `onlyOwner` modifier, even though it actually is restricted by that modifier due to the internal call to `bar()`.\n\n~~~solidity\ncontract Test {\n    modifier onlyOwner() { ... }\n\n    function foo() public {\n        bar();\n    }\n    \n    function bar() public onlyOwner { ... }\n}\n~~~\n\n\n\n\n## Slither GitHub Actions Workflow\n\n\u003e Static Analysis Tool for Ethereum Smart Contracts\n\n### Supported tags\n\n#{range $_, $v := .Versions}\n\n#### #{\\$v.Version}\n\n`#{3.6.5-3.8, $b := $v.Builds}`\n\n- `#{$b.Tag}`#{range \\$3.6.5-3.8}, `#{$t}`#{end}\n  #{end}#{end}\n\n## API\n\nNote: unlike `realpath(1)`, these functions take no options; **do not** use `--` to escape any arguments\n\n| Function                       | Description                                        |\n| ------------------------------ | -------------------------------------------------- |\n| \u003cpre\u003e{{ slither-flat }} \u003c/pre\u003e | { flatten source file: ['MostDerived' 'OneFile'] } |\n| \u003cpre\u003e slither \\$PWD\u003c/pre\u003e      | run `slither-analysis`                             |\n| \u003cpre\u003esolc-select \u003c/pre\u003e        | solidity version manager                           |\n\n### License\n\nAGPL\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontractshark%2Fpipeline-slither","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcontractshark%2Fpipeline-slither","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontractshark%2Fpipeline-slither/lists"}