{"id":36867331,"url":"https://github.com/elliotwms/pinbot","last_synced_at":"2026-02-16T04:05:17.531Z","repository":{"id":45252701,"uuid":"434958095","full_name":"elliotwms/pinbot","owner":"elliotwms","description":"Discord bot for better pins","archived":false,"fork":false,"pushed_at":"2026-02-09T02:05:50.000Z","size":338,"stargazers_count":4,"open_issues_count":13,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-09T08:11:00.241Z","etag":null,"topics":["bot","discord","discord-bot"],"latest_commit_sha":null,"homepage":"","language":"Go","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/elliotwms.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,"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":"2021-12-04T16:54:48.000Z","updated_at":"2026-02-09T02:04:56.000Z","dependencies_parsed_at":"2023-12-25T03:19:48.903Z","dependency_job_id":"35784494-73a4-451e-bd30-f677014fbbf7","html_url":"https://github.com/elliotwms/pinbot","commit_stats":{"total_commits":191,"total_committers":3,"mean_commits":"63.666666666666664","dds":0.549738219895288,"last_synced_commit":"438d3a9e9c87173dc6b0182a0daf0555edded232"},"previous_names":[],"tags_count":190,"template":false,"template_full_name":null,"purl":"pkg:github/elliotwms/pinbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elliotwms%2Fpinbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elliotwms%2Fpinbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elliotwms%2Fpinbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elliotwms%2Fpinbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elliotwms","download_url":"https://codeload.github.com/elliotwms/pinbot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elliotwms%2Fpinbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29499815,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T03:57:51.541Z","status":"ssl_error","status_checked_at":"2026-02-16T03:55:59.854Z","response_time":115,"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":["bot","discord","discord-bot"],"created_at":"2026-01-12T14:55:30.606Z","updated_at":"2026-02-16T04:05:17.512Z","avatar_url":"https://github.com/elliotwms.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pinbot\n\n\u003e [!TIP]\n\u003e Looking for a more lightweight Pinbot which runs as a Lambda function? check out [elliotwms/pinbot-lambda](https://github.com/elliotwms/pinbot-lambda)\n\n[Install 📌](https://discord.com/discovery/applications/921554139740254209)\n\n[Need help? Join the Pinbot Discord Server](https://discord.gg/a3u2PZ6V28)\n\nPinbot provides a single message command, Pin, which posts a copy of your message to your server's pins channel.\n\n![Example of a Pinbot message](https://user-images.githubusercontent.com/4396779/147515477-850ab41a-6a89-4746-9f65-e27c259f7602.png)\n\nPinbot is designed as an extension to Discord's channel pins system. Use Pinbot to:\n* Bypass Discord's 50-pin limit and create a historic stream of all your pins\n* Collect all your server's pins into one place (with optional overrides)\n* Give your server's pins a more permanent home\n\n### Why does this exist?\n\nDiscord guilds use pins for a lot more than just highlighting important information. In fact, many guilds use the pin system as a form of memorialising a good joke, a savage putdown, or other memorable moments. As a result, the 50 pin per channel limit means that in order to keep something, you will eventually have to get rid of something else.\n\n### How does it work?\n\nPinbot uses the channel name of the pinned message to decide where it will post. In order of priority it will pin in:\n1. `#{channel}-pins`, where `channel` is the name of the channel the message was pinned in\n2. `#pins`, a general pins channel\n3. `#{channel}`, the channel the pin was posted in, so that if you don't want a separate pins channel you can instead search for pins by @pinbot in the channel\n\nDon't forget that pinbot needs [permission](#permissions) to see and post in these channels, otherwise it won't be able to do its job.\n\n⚠️ Note that this bot is currently in [_beta_](https://github.com/elliotwms/pinbot/milestone/2). There may be bugs, please [report them](https://github.com/elliotwms/pinbot/issues/new?labels=bug\u0026template=bug_report.md) ⚠️\n\n#### Permissions\n\nPinbot is designed to be run with as few permissions as possible, however as part of its core functionality it needs to be able to read the contents of messages in your server. If you're not cool with this then you're welcome to audit the code yourself, or [host and run your own Pinbot](#run).\n\nPinbot requires the following permissions to function in any channels you intend to use it:\n* Read messages (`VIEW_CHANNEL`)\n* Send messages (`SEND_MESSAGES`)\n* Add reactions (`ADD_REACTIONS`)\n\n## Run\n\nPinbot is designed to be run as the managed application above, but if you prefer (or if you don't trust a bot with permission to read and relay your messages) you can run your own. You will need to [create a new bot](https://discord.com/developers/applications), obtain the token and application ID, and install the bot to your own server.\n\nPart of the build pipeline includes building a Docker image which is [pushed to ghcr](https://github.com/elliotwms/pinbot/pkgs/container/pinbot).\n\n```shell\nexport TOKEN {bot_token}\nexport APPLICATION_ID {bot_application_id}\ndocker run -e TOKEN -e APPLICATION_ID ghcr.io/elliotwms/pinbot:{version}\n```\n\n### Configuration\n\n| Variable            | Description                                                                                                                   | Required |\n|---------------------|-------------------------------------------------------------------------------------------------------------------------------|----------|\n| `TOKEN`             | Bot token ID                                                                                                                  | `true`   |\n| `APPLICATION_ID`    | Bot application ID                                                                                                            | `true`   |\n| `GUILD_ID`          | When specified, the bot should only migrate commands within this guild. Useful for testing or running your own solo-guild bot | `false`  |\n| `HEALTH_CHECK_ADDR` | Address to serve the `/v1/health/` endpoint on (e.g. `:8080`)                                                                 | `false`  |\n| `LOG_LEVEL`         | [Log level](https://pkg.go.dev/log/slog#hdr-Levels). `debug` enables discord-go debug logs                                    | `false`  |\n\n## Testing\n\n`/tests` contains a suite of integration tests which run against fakediscord\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felliotwms%2Fpinbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felliotwms%2Fpinbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felliotwms%2Fpinbot/lists"}