{"id":21045157,"url":"https://github.com/fullpipe/trigon","last_synced_at":"2026-04-27T09:31:31.997Z","repository":{"id":57574909,"uuid":"331928975","full_name":"fullpipe/trigon","owner":"fullpipe","description":"Trigon connects to MySQL bin-log stream and processes it with different pipes","archived":false,"fork":false,"pushed_at":"2021-04-04T10:35:00.000Z","size":27,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-30T17:35:48.075Z","etag":null,"topics":["mysql","mysql-triggers","pipes","triggers"],"latest_commit_sha":null,"homepage":"","language":"Go","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/fullpipe.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":"2021-01-22T11:41:43.000Z","updated_at":"2021-04-27T13:26:07.000Z","dependencies_parsed_at":"2022-09-18T06:34:15.469Z","dependency_job_id":null,"html_url":"https://github.com/fullpipe/trigon","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/fullpipe/trigon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fullpipe%2Ftrigon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fullpipe%2Ftrigon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fullpipe%2Ftrigon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fullpipe%2Ftrigon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fullpipe","download_url":"https://codeload.github.com/fullpipe/trigon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fullpipe%2Ftrigon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32331305,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["mysql","mysql-triggers","pipes","triggers"],"created_at":"2024-11-19T14:20:17.706Z","updated_at":"2026-04-27T09:31:31.970Z","avatar_url":"https://github.com/fullpipe.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# trigon\n\nTrigon connects to MySQL bin-log stream and processes it with different pipes\n\n## Install\n\n```bash\ngo get -u github.com/fullpipe/trigon\n```\n\n## Usage\n\n```bash\ntrigon -config=trigon.yaml\n```\n\n## Configuration with examples\n\n```yaml\n# trigon.yaml\ninput:\n  host: 127.0.0.1:3320 # mysql host\n  user: root\n  password: root\ntriggers:\n  - name: \"Post webhook after 1000 user creations\"\n    pipes:\n      - [\"table_filter\", [\"user\"]]\n      - [\"action_filter\", [\"insert\"]]\n      - [\"every\", 1000]\n      - [\"debounce\", 5000]\n      - [\"webhook\", { url: https://hookb.in/mZaZlXYLpjueqq710Ypk, method: POST }]\n\n  - name: \"Start data aggregation on leads updates\"\n    pipes:\n      - [\"table_filter\", [\"lead\"]]\n      - [\"action_filter\", [\"insert\", \"update\"]]\n      - [\"every\", 10000]\n      - [\"debounce\", 3600000] # debounce for one hour\n      - [\"log\", { prefix: \"Calculate leads aggregation\" }]\n      - [\"amqp\", { dsn: \"amqp://guest:guest@localhost:5672/\", exchange: \"lead\", routing_key: \"lead.aggregate\" }]\n\n  - name: \"Try every pipe on transactions\"\n    pipes:\n      - [\"log\", { prefix: \"All in one start: \", output: \"file\", \"path\": \"./log.log\" }]\n      - [\"table_filter\", [\"transaction\"]]\n      - [\"action_filter\", [\"insert\", \"update\", \"delete\"]]\n      - [\"every\", 2]\n      - [\"debounce\", 5000]\n      - [\"webhook\", { url: https://hookb.in/mZaZlXYLpjueqq710Ypk, method: POST }]\n      - [\"amqp\", { dsn: \"amqp://guest:guest@localhost:5672/\", exchange: \"test1\", routing_key: \"order\" }]\n      - [\"log\", { prefix: \"All in one end: \" }]\n```\n\n\n\n## TODO\n- [x] yaml config\n    - [x] input\n    - [x] triggers\n        - [x] pipes\n        - [x] output\n- [ ] tests\n- [ ] pipes\n    - [x] log\n      - [ ] formats\n    - [x] action filter\n    - [x] table filter\n    - [x] every nth\n    - [x] debounce\n    - [x] amqp\n    - [x] webhook\n      - [ ] auth\n    - [ ] expr filter, use https://github.com/antonmedv/expr for filtering\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffullpipe%2Ftrigon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffullpipe%2Ftrigon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffullpipe%2Ftrigon/lists"}