{"id":29023005,"url":"https://github.com/bamlab/taiichi","last_synced_at":"2025-06-26T03:04:57.132Z","repository":{"id":44843244,"uuid":"116399141","full_name":"bamlab/taiichi","owner":"bamlab","description":"Poka Yoke (on fire)","archived":false,"fork":false,"pushed_at":"2023-01-03T21:46:50.000Z","size":5462,"stargazers_count":15,"open_issues_count":41,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-15T11:03:07.327Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/bamlab.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":"2018-01-05T15:29:23.000Z","updated_at":"2024-09-14T08:02:58.000Z","dependencies_parsed_at":"2023-02-01T10:46:21.461Z","dependency_job_id":null,"html_url":"https://github.com/bamlab/taiichi","commit_stats":null,"previous_names":["tychota/taiichi"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/bamlab/taiichi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bamlab%2Ftaiichi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bamlab%2Ftaiichi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bamlab%2Ftaiichi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bamlab%2Ftaiichi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bamlab","download_url":"https://codeload.github.com/bamlab/taiichi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bamlab%2Ftaiichi/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261990349,"owners_count":23241188,"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":[],"created_at":"2025-06-26T03:04:56.380Z","updated_at":"2025-06-26T03:04:57.117Z","avatar_url":"https://github.com/bamlab.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Taiichi\n\n\u003cimg src=\"./docs/taiichi.jpg\" width=\"500\" /\u003e\n\nTaiichi is a collection of danger plugins used at BAM.\n\n## Danger in one paragraph\n\nDanger is a tools created by @orta and living on [danger/danger-js](https://github.com/danger/danger-js) github.\n\nIt is sucessfully used by big companies to provides quality by helping the reviewer find nasty errors and thus making able to focus more on the content of the PR.\n\n\u003cimg src=\"./docs/danger.png\" width=\"750\" /\u003e\n\nWhen you will use it on your repository, you will get a comment by danger:\n\n\u003cimg src=\"./docs/results.png\" width=\"750\" /\u003e\n\n## How is it structured\n\n### Plugins\n\nTaiichi is nothing more that a collection of node packages:\n\n* [@bam.tech/danger-plugin-eslint](https://www.npmjs.com/package/@bam.tech/danger-plugin-eslint)\n* [@bam.tech/danger-plugin-flow](https://www.npmjs.com/package/@bam.tech/danger-plugin-flow)\n* [@bam.tech/danger-plugin-todo](https://www.npmjs.com/package/@bam.tech/danger-plugin-todo)\n\nYou can use like this:\n\n```js\n// dangerfile.js\nimport { schedule } from \"danger\";\nimport todo from \"@bam.tech/danger-plugin-todo\";\n\nschedule(todo());\n```\n\n### Config\n\nIn the near future, a centralised config will exist that will provide sane default to plugins and allow you to upgrade the config without upgrading each plugins and adding new plugins.\n\n## How to contribute\n\nDanger is deployed with semantic release under @bam.tech organisation. So, once added to bam organisation, deployement is just:\n\n```bash\ncd \u003cROOT_OF_THE_PROJECT\u003e\nyarn install\ngit add -p\ngit cz\nyarn run semantic-release\n```\n\nThe code itself is organized into lerna package in packages file.\n\nFor instance, we take eslint package into example.\n\n\u003cimg src=\"./docs/structure.png\" width=\"750\" /\u003e\n\nThe structure can be generated by using `generator-danger-plugin` yoman generator.\n\n\u003cimg src=\"./docs/code.png\" width=\"750\" /\u003e\n\nThe key points is:\n\n* only provide relevant information (so for instance filter by modified/ created files)\n* be short in the information that appears in summary\n* provide details in spoiler\n* try to give at least:\n  * the why: why the error is important ?\n  * the what: what files have what error ?\n  * the how: a link to a standard\n  * the who: who is responsible of this ? If I don't agree, who shall I go to complain.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbamlab%2Ftaiichi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbamlab%2Ftaiichi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbamlab%2Ftaiichi/lists"}