{"id":27042546,"url":"https://github.com/chaostoolkit-incubator/chaostoolkit-lueur","last_synced_at":"2026-02-26T18:36:50.592Z","repository":{"id":283363219,"uuid":"951446997","full_name":"chaostoolkit-incubator/chaostoolkit-lueur","owner":"chaostoolkit-incubator","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-28T14:20:16.000Z","size":80,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-05T01:16:31.434Z","etag":null,"topics":["chaos-engineering","chaostoolkit","chaostoolkit-extension"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chaostoolkit-incubator.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-19T17:34:39.000Z","updated_at":"2025-03-28T14:19:03.000Z","dependencies_parsed_at":"2025-03-19T21:38:21.319Z","dependency_job_id":"d124acfb-d05f-43af-b76a-d1428eb3ae4f","html_url":"https://github.com/chaostoolkit-incubator/chaostoolkit-lueur","commit_stats":null,"previous_names":["chaostoolkit-incubator/chaostoolkit-lueur"],"tags_count":23,"template":false,"template_full_name":"chaostoolkit/chaostoolkit-extension-template","purl":"pkg:github/chaostoolkit-incubator/chaostoolkit-lueur","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaostoolkit-incubator%2Fchaostoolkit-lueur","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaostoolkit-incubator%2Fchaostoolkit-lueur/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaostoolkit-incubator%2Fchaostoolkit-lueur/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaostoolkit-incubator%2Fchaostoolkit-lueur/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chaostoolkit-incubator","download_url":"https://codeload.github.com/chaostoolkit-incubator/chaostoolkit-lueur/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaostoolkit-incubator%2Fchaostoolkit-lueur/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29867561,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T18:27:06.972Z","status":"ssl_error","status_checked_at":"2026-02-26T18:26:57.848Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["chaos-engineering","chaostoolkit","chaostoolkit-extension"],"created_at":"2025-04-05T04:28:57.834Z","updated_at":"2026-02-26T18:36:50.577Z","avatar_url":"https://github.com/chaostoolkit-incubator.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chaos Toolkit Extension Template\n\n[![Version](https://img.shields.io/pypi/v/chaostoolkit-lueur.svg)](https://img.shields.io/pypi/v/chaostoolkit-lueur.svg)\n[![License](https://img.shields.io/pypi/l/chaostoolkit-lueur.svg)](https://img.shields.io/pypi/l/chaostoolkit-lueur.svg)\n\n[![Build, Test, and Lint](https://github.com/chaostoolkit-incubator/chaostoolkit-lueur/actions/workflows/build.yaml/badge.svg)](https://github.com/chaostoolkit-incubator/chaostoolkit-lueur/actions/workflows/build.yaml)\n[![Python versions](https://img.shields.io/pypi/pyversions/chaostoolkit-lueur.svg)](https://www.python.org/)\n\nChaos Toolkit extension to manage [lueur](https://lueur.dev/) network proxy.\n\n## Install\n\nThis package requires Python 3.9+\n\nTo be used from your experiment, this package must be installed in the Python\nenvironment where [chaostoolkit][] already lives.\n\n[chaostoolkit]: https://github.com/chaostoolkit/chaostoolkit\n\n```console\npip install chaostoolkit-lueur\n```\n\n## Usage\n\n```json\n{\n    \"title\": \"Increase latency by 150ms\",\n    \"description\": \"n/a\",\n    \"method\": [\n        {\n            \"type\": \"action\",\n            \"name\": \"run lueur proxy with a normal distribution latency\",\n            \"provider\": {\n                \"type\": \"python\",\n                \"module\": \"chaoslueur.actions\",\n                \"func\": \"run_proxy\",\n                \"arguments\": {\n                    \"proxy_args\": \"--with-latency --latency-mean 300 --latency-stddev 50 --upstream '*'\"\n                }\n            },\n            \"background\": true\n        },\n        {\n            \"type\": \"action\",\n            \"name\": \"query remote upstream\",\n            \"provider\": {\n                \"type\": \"process\",\n                \"path\": \"curl\",\n                \"arguments\": \"-I -o /dev/null -s -w \\\"Connected IP: %{remote_ip}\\nTotal time: %{time_total}s\\\" -x http://localhost:8080 https://www.google.com\"\n            }\n        },\n        {\n            \"type\": \"action\",\n            \"name\": \"stop proxy\",\n            \"provider\": {\n                \"type\": \"python\",\n                \"module\": \"chaoslueur.actions\",\n                \"func\": \"stop_proxy\"\n            }\n       }\n    ]\n}\n```\n\nThat's it!\n\nPlease explore the code to see existing actions.\n\n## Test\n\nTo run the tests for the project execute the following:\n\n```console\npdm run test\n```\n\n### Formatting and Linting\n\nWe use [`ruff`][ruff] to both lint and format this repositories code.\n\n[ruff]: https://github.com/astral-sh/ruff\n\nBefore raising a Pull Request, we recommend you run formatting against your\ncode with:\n\n```console\npdm run format\n```\n\nThis will automatically format any code that doesn't adhere to the formatting\nstandards.\n\nAs some things are not picked up by the formatting, we also recommend you run:\n\n```console\npdm run lint\n```\n\nTo ensure that any unused import statements/strings that are too long, etc.\nare also picked up.\n\n## Contribute\n\nIf you wish to contribute more functions to this package, you are more than\nwelcome to do so. Please, fork this project, make your changes following the\nusual code style, sprinkling with tests and submit a PR for\nreview.\n\nTo contribute to this project, you will also need to install [pdm][].\n\n[pdm]: https://pdm-project.org/en/latest/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchaostoolkit-incubator%2Fchaostoolkit-lueur","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchaostoolkit-incubator%2Fchaostoolkit-lueur","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchaostoolkit-incubator%2Fchaostoolkit-lueur/lists"}