{"id":13462999,"url":"https://github.com/cinchrb/cinch","last_synced_at":"2025-09-27T08:30:32.413Z","repository":{"id":880575,"uuid":"625346","full_name":"cinchrb/cinch","owner":"cinchrb","description":"The IRC Bot Building Framework","archived":true,"fork":false,"pushed_at":"2019-04-13T16:11:08.000Z","size":1449,"stargazers_count":1002,"open_issues_count":33,"forks_count":181,"subscribers_count":39,"default_branch":"master","last_synced_at":"2025-08-28T07:19:42.089Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.rubydoc.info/gems/cinch","language":"Ruby","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/cinchrb.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","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":"2010-04-23T13:40:53.000Z","updated_at":"2025-07-02T11:34:48.000Z","dependencies_parsed_at":"2022-07-18T14:47:33.374Z","dependency_job_id":null,"html_url":"https://github.com/cinchrb/cinch","commit_stats":null,"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"purl":"pkg:github/cinchrb/cinch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinchrb%2Fcinch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinchrb%2Fcinch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinchrb%2Fcinch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinchrb%2Fcinch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cinchrb","download_url":"https://codeload.github.com/cinchrb/cinch/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinchrb%2Fcinch/sbom","scorecard":{"id":282871,"data":{"date":"2025-08-11","repo":{"name":"github.com/cinchrb/cinch","commit":"2e149ffcf94d0f4eb6c1566a8e39d7e6d8be4ee0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":5,"reason":"Found 7/14 approved changesets -- score normalized to 5","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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/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: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 24 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T16:22:16.083Z","repository_id":880575,"created_at":"2025-08-17T16:22:16.083Z","updated_at":"2025-08-17T16:22:16.083Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273573058,"owners_count":25129867,"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-09-04T02:00:08.968Z","response_time":61,"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":[],"created_at":"2024-07-31T13:00:43.702Z","updated_at":"2025-09-27T08:30:31.884Z","avatar_url":"https://github.com/cinchrb.png","language":"Ruby","readme":"Cinch - The IRC Bot Building Framework\n=====================================\n\n**The Cinch project is no longer maintained. No new features will be\nadded, and no bugs will be fixed. The repository has been archived. If\nyou wish to continue developing Cinch, please fork the project. I am\nnot accepting new maintainers for this project.**\n\nDescription\n-----------\n\nCinch is an IRC Bot Building Framework for quickly creating IRC bots in\nRuby with minimal effort. It provides a simple interface based on plugins and\nrules. It's as easy as creating a plugin, defining a rule, and watching your\nprofits flourish.\n\nCinch will do all of the hard work for you, so you can spend time creating cool\nplugins and extensions to wow your internet peers.\n\nFor general support, join #cinch channel on Freenode server (irc://irc.freenode.org/cinch) – but\nplease don't bring any bots.\n\nInstallation\n------------\n\n### RubyGems\n\nYou can install the latest Cinch gem using RubyGems\n\n```\ngem install cinch\n```\n\n### GitHub\n\nAlternatively you can check out the latest code directly from Github\n\n```\ngit clone http://github.com/cinchrb/cinch.git\n```\n\nExample\n-------\n\nYour typical Hello, World application in Cinch would go something like this:\n\n```ruby\nrequire 'cinch'\n\nbot = Cinch::Bot.new do\n  configure do |c|\n    c.server = \"irc.freenode.org\"\n    c.channels = [\"#cinch-bots\"]\n  end\n\n  on :message, \"hello\" do |m|\n    m.reply \"Hello, #{m.user.nick}\"\n  end\nend\n\nbot.start\n```\n\nMore examples can be found in the `examples` directory.\n\nFeatures\n--------\n\n### Documentation\n\nCinch provides a documented API, which is online for your viewing pleasure\n[here](http://rubydoc.info/gems/cinch/frames).\n\n### Object Oriented\n\nMany IRC bots (and there are, **so** many) are great, but we see so little of\nthem take advantage of the awesome Object Oriented Interface which most Ruby\nprogrammers will have become accustomed to and grown to love.\n\nWell, Cinch uses this functionality to its advantage. Rather than having to\npass around a reference to a channel or a user, to another method, which then\npasses it to another method (by which time you're confused about what's\ngoing on) -- Cinch provides an OOP interface for even the simpliest of tasks,\nmaking your code simple and easy to comprehend.\n\n### Threaded\n\nUnlike a lot of popular IRC frameworks, Cinch is threaded. But wait, don't let\nthat scare you. It's totally easy to grasp.\n\nEach of Cinch's plugins and handlers are executed in their own personal thread.\nThis means the main thread can stay focused on what it does best, providing\nnon-blocking reading and writing to an IRC server. This will prevent your bot\nfrom locking up when one of your plugins starts doing some intense operations.\nDamn that's handy.\n\n### Plugins\n\nThat's right folks, Cinch provides a modular based plugin system. This is a\nfeature many people have bugged us about for a long time. It's finally here,\nand it's as awesome as you had hoped!\n\nThis system allows you to create feature packed plugins without interfering with\nany of the Cinch internals. Everything in your plugin is self contained, meaning\nyou can share your favorite plugins among your friends and release a ton of\nyour own plugins for others to use\n\nWant to see the same Hello, World application in plugin form? Sure you do!\n\n```ruby\nrequire 'cinch'\n\nclass Hello\n  include Cinch::Plugin\n\n  match \"hello\"\n\n  def execute(m)\n    m.reply \"Hello, #{m.user.nick}\"\n  end\nend\n\nbot = Cinch::Bot.new do\n  configure do |c|\n    c.server = \"irc.freenode.org\"\n    c.channels = [\"#cinch-bots\"]\n    c.plugins.plugins = [Hello]\n  end\nend\n\nbot.start\n```\n\nNote: Plugins take a default prefix of `/^!/` which means the actual match is `!hello`.\n\nMore information can be found in the {Cinch::Plugin} documentation.\n\n### Numeric Replies\n\nDo you know what IRC code 401 represents? How about 376? or perhaps 502?\nSure you don't (and if you do, you're as geeky as us!). Cinch doesn't expect you\nto store the entire IRC RFC code set in your head, and rightfully so!\n\nThat's exactly why Cinch has a ton of constants representing these numbers\nso you don't have to remember them. We're so nice.\n\n### Pretty Output\n\nEver get fed up of watching those boring, frankly unreadable lines\nflicker down your terminal screen whilst your bot is online? Help is\nat hand! By default, Cinch will colorize all text it sends to a\nterminal, meaning you get some pretty damn awesome readable coloured\ntext. Cinch also provides a way for your plugins to log custom\nmessages:\n\n```ruby\non :message, /hello/ do |m|\n  debug \"Someone said hello\"\nend\n```\n\nContribute\n----------\n\nLove Cinch? Love Ruby? Love helping? Of course you do! If you feel like Cinch\nis missing that awesome jaw-dropping feature and you want to be the one to\nmake this magic happen, you can!\n\nPlease note that although we very much appreciate all of your efforts, Cinch\nwill not accept patches in aid of Ruby 1.8 compatibility. We have no intention\nof supporting Ruby versions below 1.9.1.\n\nFork the project, implement your awesome feature in its own branch, and send\na pull request to one of the Cinch collaborators. We'll be more than happy\nto check it out.\n","funding_links":[],"categories":["Communication","Frameworks and libraries","Ruby","Uncategorized","WebSocket"],"sub_categories":["IRC Bots","IRC","Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcinchrb%2Fcinch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcinchrb%2Fcinch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcinchrb%2Fcinch/lists"}