{"id":4035,"url":"https://github.com/Wechaty/wechaty","last_synced_at":"2026-06-13T00:20:40.581Z","repository":{"id":37584496,"uuid":"57602001","full_name":"wechaty/wechaty","owner":"wechaty","description":"Conversational RPA SDK for Chatbot Makers. Join our Discord: https://discord.gg/7q8NBZbQzt","archived":false,"fork":false,"pushed_at":"2025-06-17T07:37:50.000Z","size":9024,"stargazers_count":21991,"open_issues_count":189,"forks_count":2734,"subscribers_count":380,"default_branch":"main","last_synced_at":"2025-10-10T03:43:47.117Z","etag":null,"topics":["bot","chatbot","conversational-ai","framework","qq","robotics","wechat","wechaty","whatsapp"],"latest_commit_sha":null,"homepage":"https://wechaty.js.org","language":"TypeScript","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/wechaty.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"open_collective":"wechaty"}},"created_at":"2016-05-01T14:36:45.000Z","updated_at":"2025-10-10T02:03:30.000Z","dependencies_parsed_at":"2023-02-11T23:00:20.972Z","dependency_job_id":"65e2737f-0205-4db5-93bb-0f4ad5856f4e","html_url":"https://github.com/wechaty/wechaty","commit_stats":{"total_commits":6564,"total_committers":67,"mean_commits":97.97014925373135,"dds":"0.12081048141377204","last_synced_commit":"3dba2be9317a9a57d058cc79bbe9bfd3435864ae"},"previous_names":["chatie/wechaty","zixia/wechaty"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/wechaty/wechaty","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Fwechaty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Fwechaty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Fwechaty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Fwechaty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wechaty","download_url":"https://codeload.github.com/wechaty/wechaty/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Fwechaty/sbom","scorecard":{"id":274920,"data":{"date":"2025-07-07","repo":{"name":"github.com/wechaty/wechaty","commit":"bde0e9fb62266008646994809844454ab25c60be"},"scorecard":{"version":"v5.2.1-18-gbb9c347d","commit":"bb9c347dff6349d986baab6578a46d68a5524c62"},"score":5,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":2,"reason":"Found 6/30 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"3 commit(s) and 22 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/coverage.yml:1","Warn: no topLevel permission defined: .github/workflows/docker.yml:1","Warn: no topLevel permission defined: .github/workflows/node.js.yml:1","Warn: no topLevel permission defined: .github/workflows/npm.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#token-permissions"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#security-policy"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/wechaty/wechaty/docker.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/wechaty/wechaty/docker.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/wechaty/wechaty/docker.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/wechaty/wechaty/docker.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/wechaty/wechaty/docker.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node.js.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/wechaty/wechaty/node.js.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node.js.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/wechaty/wechaty/node.js.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/npm.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/wechaty/wechaty/npm.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/npm.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/wechaty/wechaty/npm.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/npm.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/wechaty/wechaty/npm.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/npm.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/wechaty/wechaty/npm.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/npm.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/wechaty/wechaty/npm.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/npm.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/wechaty/wechaty/npm.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating debian:bullseye to debian:bullseye@sha256:6d4f6b40afca63b59a44ffcedbb2e457e83b645710916d7f094b79c6c591ac28","Warn: containerImage not pinned by hash: Dockerfile.alpine:10: pin your Docker image by updating mhart/alpine-node:7 to mhart/alpine-node:7@sha256:d334920c966d440676ce9d1e6162ab544349e4a4359c517300391c877bcffb8c","Warn: containerImage not pinned by hash: Dockerfile.onbuild:1: pin your Docker image by updating wechaty/wechaty:next to wechaty/wechaty:next@sha256:64292e2aba3893aa58e00d178ff6ca1676f72122cbfc154c6736c24292a57793","Warn: downloadThenRun not pinned by hash: Dockerfile:41-44","Warn: npmCommand not pinned by hash: Dockerfile:49-50","Warn: npmCommand not pinned by hash: Dockerfile.alpine:38-40","Warn: npmCommand not pinned by hash: scripts/npm-pack-testing.sh:25","Warn: npmCommand not pinned by hash: .github/workflows/node.js.yml:33","Warn: npmCommand not pinned by hash: .github/workflows/npm.yml:26","Warn: npmCommand not pinned by hash: .github/workflows/npm.yml:44","Warn: npmCommand not pinned by hash: .github/workflows/npm.yml:64","Info:   0 out of  10 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   3 containerImage dependencies pinned","Info:   0 out of   1 downloadThenRun dependencies pinned","Info:   0 out of   7 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 8 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T14:11:45.134Z","repository_id":37584496,"created_at":"2025-08-17T14:11:45.134Z","updated_at":"2025-08-17T14:11:45.134Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279007153,"owners_count":26084247,"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","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"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":["bot","chatbot","conversational-ai","framework","qq","robotics","wechat","wechaty","whatsapp"],"created_at":"2024-01-11T16:49:06.120Z","updated_at":"2025-10-11T12:23:43.185Z","avatar_url":"https://github.com/wechaty.png","language":"TypeScript","project_url":"https://opencollective.ecosyste.ms/api/v1/projects/4035","html_url":"https://opencollective.ecosyste.ms/projects/4035","collective":{"id":2642,"uuid":"7ywz9j4a-vgod8pgw-0j96mr35-nxklb0e7","slug":"wechaty","name":"Wechaty","description":"Conversational RPA SDK for Chatbot Makers, Powered by 💖","website":"https://wechaty.js.org/","github":"Wechaty/wechaty","twitter":"ChatieIO","repository_url":null,"social_links":[{"type":"WEBSITE","url":"https://wechaty.js.org/"},{"type":"TWITTER","url":"https://twitter.com/ChatieIO"},{"type":"GITHUB","url":"https://github.com/Wechaty/wechaty"}],"currency":"USD","projects_count":1,"last_synced_at":"2026-06-25T12:15:20.513Z","created_at":"2024-01-10T13:17:52.644Z","updated_at":"2026-06-25T12:15:20.747Z","transactions_count":554,"balance":8669.579999999916,"account_type":"COLLECTIVE","owner":{"login":"wechaty","name":"Wechaty","uuid":"21285357","kind":"organization","description":"Conversational RPA SDK for Chatbot Makers","email":"wechaty@googlegroups.com","website":"https://wechaty.js.org","location":"San Francisco Bay Area","twitter":"chatieio","company":null,"icon_url":"https://avatars.githubusercontent.com/u/21285357?v=4","repositories_count":111,"last_synced_at":"2024-05-01T09:33:05.802Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/wechaty","funding_links":["https://github.com/sponsors/wechaty"],"total_stars":25921,"followers":451,"following":0,"created_at":"2022-11-14T03:06:12.570Z","updated_at":"2024-05-01T09:33:26.647Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wechaty","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wechaty/repositories"},"last_project_activity_at":"2025-06-17T07:37:50.000Z","archived":false,"no_funding":false,"no_license":false,"host":"opensource","collective_created_at":"2019-04-20T02:23:38.920Z","collective_updated_at":"2025-05-25T22:02:55.021Z","html_url":"https://opencollective.com/wechaty","icon_url":"https://images.opencollective.com/wechaty/logo/40.png","total_donations":73616.84000000014,"total_expenses":-68309.1199999999,"current_balance":8669.579999999916,"api_url":"https://opencollective.ecosyste.ms/api/v1/collectives/wechaty","url":"https://opencollective.ecosyste.ms/collectives/wechaty","projects_url":"https://opencollective.ecosyste.ms/api/v1/collectives/wechaty/projects"}}