{"id":22509794,"url":"https://github.com/anthonylangsworth/catherder","last_synced_at":"2026-04-20T10:32:15.479Z","repository":{"id":150894029,"uuid":"438274330","full_name":"anthonylangsworth/CatHerder","owner":"anthonylangsworth","description":"A Discord bot to help administer the EDA Kunti League Discord server.","archived":false,"fork":false,"pushed_at":"2025-01-20T07:56:02.000Z","size":74,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T00:28:47.043Z","etag":null,"topics":["csharp","discord","discord-bot","discord-net","dotnet","dotnet-core"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anthonylangsworth.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-14T14:01:11.000Z","updated_at":"2025-01-20T07:56:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"c04bff7c-7d40-4205-93a1-7037445ca31e","html_url":"https://github.com/anthonylangsworth/CatHerder","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anthonylangsworth/CatHerder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthonylangsworth%2FCatHerder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthonylangsworth%2FCatHerder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthonylangsworth%2FCatHerder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthonylangsworth%2FCatHerder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anthonylangsworth","download_url":"https://codeload.github.com/anthonylangsworth/CatHerder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthonylangsworth%2FCatHerder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32043010,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T00:18:06.643Z","status":"online","status_checked_at":"2026-04-20T02:00:06.527Z","response_time":94,"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":["csharp","discord","discord-bot","discord-net","dotnet","dotnet-core"],"created_at":"2024-12-07T01:33:05.696Z","updated_at":"2026-04-20T10:32:15.462Z","avatar_url":"https://github.com/anthonylangsworth.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build and Test](https://github.com/anthonylangsworth/CatHerder/actions/workflows/main.yml/badge.svg)](https://github.com/anthonylangsworth/CatHerder/actions/workflows/main.yml)\n\n# Cat Herder\n\nCat Herder is a simple Discord bot to help administer the EDA Kunti League Discord server. \n\nEnter the slash command `/permssions-report` to generate a CSV. This lists each user in a row and each role in a column, showing their memberships. This command is only available to users with both the \"Manage Channels\" and \"Manage Roles\" permissions.\n\n## Overview\n\nRun the action \"Deploy\" to deploy to Azure.\n\nTo install and run manually:\n1. Create a Discord application and turn it into a bot at https://discord.com/developers/applications.\n2. Add the new bot to the Discord server using https://discordapp.com/oauth2/authorize?client_id=Bot_Client_ID\u0026scope=bot\u0026permissions=268435456, replacing \"Bot_Client_ID\" with the bot's OAuth2 client ID. The bot needs at least the \"Manage Roles\" permission.\n3. Authorize the bot for application commands by visiting https://discord.com/api/oauth2/authorize?client_id=Bot_Client_ID\u0026scope=applications.commands, replacing \"Bot_Client_ID\" with the bot's OAuth2 client ID.\n4. Place the API key for the bot in the DISCORD_APIKEY environment variable. You can find this on the \"Bot\" page under \"Settings\".\n5. Ensure the \"SERVER MEMBERS INTENT\" intent is activated in the bot configuration. Otherwise, the code to process the command will hang.\n6. Download, build then run the CatHerder project.\n\nLog messages are written to the console. Press Escape to stop the bot.\n\nThe structure is simple and based off the examples in the Discord documentation. Key points:\n1. Execution starts in Program.cs.\n2. The Microsoft Dependency Injection framework initializes types. I may add configuration in the future.\n3. The Bot class contains most of the logic.\n4. Commands are implented in SlashCommandsModule, likely to be one command per class in the future.\n\n## References\n\n1. Discord API reference: https://discord.com/developers/docs/intro\n2. Discord.Net API reference: https://docs.stillu.cc/api/index.html\n\n## License\n\nSee [LICENSE](LICENSE) for the license (GPL v3).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanthonylangsworth%2Fcatherder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanthonylangsworth%2Fcatherder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanthonylangsworth%2Fcatherder/lists"}