{"id":21003427,"url":"https://github.com/ubclaunchpad/colony","last_synced_at":"2026-02-16T21:33:04.194Z","repository":{"id":209213948,"uuid":"719377625","full_name":"ubclaunchpad/Colony","owner":"ubclaunchpad","description":"Discord bot meets Github webhooks meets OpenAI","archived":false,"fork":false,"pushed_at":"2025-08-29T06:01:40.000Z","size":7384,"stargazers_count":0,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-09T15:32:58.794Z","etag":null,"topics":["bot","bun","discord","github","javascript","nodejs","postgresql","typescript","webhook"],"latest_commit_sha":null,"homepage":"https://colony-production.up.railway.app/","language":"TypeScript","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/ubclaunchpad.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,"zenodo":null}},"created_at":"2023-11-16T03:08:12.000Z","updated_at":"2025-02-06T09:34:28.000Z","dependencies_parsed_at":"2024-04-06T03:20:27.306Z","dependency_job_id":"3448b9cd-dc8f-4c01-85a6-949a0a3edc68","html_url":"https://github.com/ubclaunchpad/Colony","commit_stats":null,"previous_names":["ubclaunchpad/colony"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ubclaunchpad/Colony","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubclaunchpad%2FColony","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubclaunchpad%2FColony/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubclaunchpad%2FColony/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubclaunchpad%2FColony/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ubclaunchpad","download_url":"https://codeload.github.com/ubclaunchpad/Colony/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubclaunchpad%2FColony/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29519377,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T18:37:19.720Z","status":"ssl_error","status_checked_at":"2026-02-16T18:36:46.920Z","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","bun","discord","github","javascript","nodejs","postgresql","typescript","webhook"],"created_at":"2024-11-19T08:25:45.879Z","updated_at":"2026-02-16T21:33:04.187Z","avatar_url":"https://github.com/ubclaunchpad.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Colony\n\nA new bot, once again, for the UBC Launch Pad team. This time our focus is to use easily maintainable code and to make the bot as modular as possible. This will allow us to easily add new features and maintain the bot for a long time.\n\nTO make this happen we are using existing libraries like [discord.js](https://discord.js.org/#/) and the code is written primariliy in JS. We hope to minimize the learning curve for new members and make it easy for them to contribute to the bot.\n\n## About\n\nA Discord bot that helps manage the UBC Launch Pad community on Discord.\n\n## Features\n\n- [x] Welcome new members\n- [x] Assign roles based on GitHub membership status to the Launch Pad GitHub organization\n\n### Planned Features\n\n- [ ] store user GitHub usernames in a database\n- [ ] sync GitHub usernames with Discord usernames\n\n## Setup\n\n### Steps\n\n1. If you have windows then you must use WSL for Colony, No buts!\n2. The following environment variables must be set (you can set them in a `.env` file in the root directory of the project and also note that the values of the environment variables depend on whether you are using your own personal bot/discord server/github app for testing or whether you are using the official Launchpad bot/discord server/github app):\n\n   ```\n   APP_ID=\u003c\u003e # Discord app ID\n   DISCORD_TOKEN=\u003c\u003e # Discord bot token\n   GUILD_ID=\u003c\u003e # Discord server ID\n   PUBLIC_KEY=\u003c\u003e # Discord public key\n   GITHUB_TOKEN=\u003c\u003e # GitHub app access token\n   GH_APP_ID=\u003c\u003e # GitHub App ID\n   GH_PRIVATE_KEY_PATH=gkey.pem\n   LP_REPO_ID=\u003c\u003e # UBC Launch Pad GitHub repository ID\n   LP_ORG_NAME=\u003c\u003e # UBC Launch Pad GitHub organization name\n   LP_GITHUB_APP_CLIENT_ID=\u003c\u003e # UBC Launch Pad GitHub App client ID\n   ```\n\n3. If you are using your own discord bot for personal testing then make sure you add them to the Launchpad discord server with the\n   appropriate scopes and permissions before proceeding (make sure your bot atleast has the `bot` and `applications.commands` scopes, and if you dont know what general permissions the bot needs then give it the `Administrator` permission but only after you get the approval to do so from Launchpad's discord moderator(s))\n4. Run `npm install` to install dependencies\n5. Run `npm run build` to compile Typescript files to Javascript\n6. Run `npm run register` to make commands in `src/commands` usable on the bot you reference in your environment variables file\n7. Run `npm run start` to start your bot\n\n### Resources (Use these resources for general guidance rather than following them as strict guides)\n\n- Setting up WSL (https://learn.microsoft.com/en-us/windows/wsl/install)\n- Developing in WSL using VSCode (https://code.visualstudio.com/docs/remote/wsl-tutorial)\n- Setting up a discord bot (https://discord.com/developers/docs/getting-started)\n- Registering a github app (https://docs.github.com/en/apps/creating-github-apps/registering-a-github-app/registering-a-github-app)\n\n## Contributing\n\nWe welcome contributions to Colony! Please follow the steps below to get started.\n\n1. Fork this repository\n2. Create a new branch for your feature\n3. Commit your changes\n4. Push your changes to your fork\n5. Submit a pull request\n6. Woohoo! You're awesome!\n\n### Deployment commands ONLY (locally)\n```\n# Enable and start\nsudo systemctl enable colony-bot\nsudo systemctl start colony-bot\n\n# Check status\nsudo systemctl status colony-bot\n\n# View logs\nsudo journalctl -u colony-bot -f\n\n# Stop/restart\nsudo systemctl stop colony-bot\nsudo systemctl restart colony-bot\n```\n\nFor uptime kuma\n```\npm2 start server/server.js --name uptime-kuma\n```\n\nThe server will be running on port 3001 for uptime kuma, and 3000 for the bot","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fubclaunchpad%2Fcolony","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fubclaunchpad%2Fcolony","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fubclaunchpad%2Fcolony/lists"}