aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
* Merge pull request #2326 from python-discord/snekbox-filesfix-eval-message-limitGravatar Boris Muratov2023-03-10-244/+727
|\ | | | | Support `eval` (snekbox) file system and attachment display
| * Merge branch 'main' into snekbox-filesGravatar Ionite2023-03-09-1/+6
| |
| * Merge branch 'main' into snekbox-filesGravatar Ionite2023-03-09-2906/+3026
| |\ | |/ |/| | | | | | | | | # Conflicts: # bot/constants.py # bot/exts/utils/snekbox/_cog.py # config-default.yml
* | Merge #2459: Update nested delimiter to double underscoreGravatar Amrou Bellalouna2023-03-09-4/+4
| | | | | | | | | | | | | | * change nested delimiter to double underscore * write channel_id along with the webhook_id * make channel mandatory for webhook
* | Merge pull request #2458 from shtlrs/add-botstrap-dep-group-and-taskGravatar Amrou Bellalouna2023-03-09-1/+112
|\ \ | | | | | | Add botstrap depency group and task
| * | move httpx to the dev dependency groupGravatar shtlrs2023-03-09-6/+2
| | |
| * | relock dependenciesGravatar shtlrs2023-03-09-1/+110
| | |
| * | add a poetry task to configure botGravatar shtlrs2023-03-09-0/+1
| | |
| * | add the botstrap dependency groupGravatar shtlrs2023-03-09-0/+5
|/ /
* | Merge pull request #2457 from shtlrs/fix-env-var-mappings-in-botstrapGravatar Amrou Bellalouna2023-03-09-1/+1
|\ \ | | | | | | Replace correct separator when mapping webhook ids to .env.server
| * | replace . with _ when mapping webhook idsGravatar shtlrs2023-03-09-1/+1
|/ /
* | Make tag slash command guild only (#2452)Gravatar Amrou Bellalouna2023-03-09-0/+1
| | | | | | Co-authored-by: ChrisJL <[email protected]>
* | Merge pull request #2453 from shtlrs/update-char-rules-threshholdGravatar Amrou Bellalouna2023-03-09-2/+2
|\ \ | | | | | | Update threshold values for rules
| * | update threshold values for rulesGravatar shtlrs2023-03-09-2/+2
|/ /
* | Merge #2408: Scaffold server config via a bootstrapping scriptGravatar Amrou Bellalouna2023-03-09-1296/+863
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor configuration into a pydantic-based python constants file, and add a utility to auto-populate guild data. Squashed commits: * use basic config for demo purposes * fix guiding comments * update var names for proper context reflection * fix wront iteration var * add all roles, & channels * load categories * separate sections in env file * ignore .env.server * rename change_log to changelog This also adds a default env file to look for * remove instantiation of webhooks * add most of the default configs These will mostly be fetched from the .env.default file, which won't be bootstrapped * warn when categories/roles/channels are not found * add env file to keep server defaults * fix malformatted value in the .env.default * add default server env variables * update the sections formatting in default env file * fallback to server env when loading constants * add guild basic defaults * update change_log channel name to changelog * add the Guid settings prefix * make _Guild inherit from EnvConfig * add webhook defaults * add python_news defaults to the server env * ad missing webhooks prefix * update bootstrapper logger name * update priority of the env loaded files According to Pydantic's docs: "Later files in the list/tuple will take priority over earlier files." * warn user that default value from PyDis' config will be used * add colours default config * add antispam config * update antispam references * add redis default cfg * add Stats, Cooldowns and CleanMessages consts This also includes their default values * add Metabase to constants This also includes its default values * add URLS to constants This also includes its default values * use the Field class to provide defaults This avoids overriding & changing the `fields` of the `Config` class "dynamically" * add keys constant class * add Guild conf * replace dash with underscore in script * appease linter * transform attributes of AntiSpam to dict when needed This ensures that the application stays backwards compatible * add root_validator for the colours class This enables the conversion from hex to int easily since it's not a supported type by pydantic * reinstate the role & channels combinations * rename URLS to URLs * add emojis & icons constants * add filter constants & their default values * remove all useless spaces * instantiate the keys class * add bot prefix to default env file * fetch Bot constants from env vars instead of the prefix ones * add Miscellaneous config * instantiate poor forgotten Miscellaneous config * add final touches to the constants module This includes removing dups, adding missing channels & fixing type casts * move all default values to constants.py This is done by using the `Field` class. It allows us to 1. Set defaults, in case the variables are not configured 2. Load them from a env variable under a specific name (for backwards comp) 3. load it from any env variable file that contains the right prefix * ignore all .env files * load BOT_TOKEN & GUILD_ID from .env * allow _GUILD to read its id from the `GUILD_ID` env var * base Webhooks settings off of a Webhook model * create necessary webhooks if non existent * appease flake8 docstrings error * make the script idempotent * update type hints * uppercase all consts * make webhook channel optional * add httpx to its own dependency group This group will be optional & only related to the bootstrapper * replace requests with httpx * pass client as param * include raise_for_status as a response hook * rename get_webhook to webhook_exists * update docstring of the constants module * use "." as a separator * update script to account for already created webhooks * make ANTI_SPAM_RULES a module level constant This ensures that flake8 doesn't complain about making a function call in the function's signature * remove the manual resolving of .env paths * update usages of AntiSpam constants * remove forgotten assignment of rule_config * remove useless assignments of env file names * delete default config-default.yml * update docstrings of CodeBlockCog to reference constants.py * add a poetry task that runs the bootstrapping script * add python-dotenv to the config-bootstrap group * update hook name to _raise_for_status * construct site_api in _URLs * remove __name__ == '__main__'guard * Revert "construct site_api in _URLs" This reverts commit 1c555c4280c6a0bdd452319cbd3ffcd0370f5d48. * remove usage of the Field class * update env var keys that the bootstrapping script needs * use API_KEYS.SITE_API as env var in docker compose instead of BOT_API_KEY * use basic config for demo purposes * fix guiding comments * update var names for proper context reflection * fix wront iteration var * add all roles, & channels * load categories * separate sections in env file * ignore .env.server * rename change_log to changelog This also adds a default env file to look for * remove instantiation of webhooks * add most of the default configs These will mostly be fetched from the .env.default file, which won't be bootstrapped * warn when categories/roles/channels are not found * add env file to keep server defaults * fix malformatted value in the .env.default * add default server env variables * update the sections formatting in default env file * fallback to server env when loading constants * add guild basic defaults * update change_log channel name to changelog * add the Guid settings prefix * make _Guild inherit from EnvConfig * add webhook defaults * add python_news defaults to the server env * ad missing webhooks prefix * update bootstrapper logger name * update priority of the env loaded files According to Pydantic's docs: "Later files in the list/tuple will take priority over earlier files." * warn user that default value from PyDis' config will be used * add colours default config * add antispam config * update antispam references * add redis default cfg * add Stats, Cooldowns and CleanMessages consts This also includes their default values * add Metabase to constants This also includes its default values * add URLS to constants This also includes its default values * use the Field class to provide defaults This avoids overriding & changing the `fields` of the `Config` class "dynamically" * add keys constant class * add Guild conf * replace dash with underscore in script * appease linter * transform attributes of AntiSpam to dict when needed This ensures that the application stays backwards compatible * add root_validator for the colours class This enables the conversion from hex to int easily since it's not a supported type by pydantic * reinstate the role & channels combinations * rename URLS to URLs * add emojis & icons constants * add filter constants & their default values * remove all useless spaces * instantiate the keys class * add bot prefix to default env file * fetch Bot constants from env vars instead of the prefix ones * add Miscellaneous config * instantiate poor forgotten Miscellaneous config * add final touches to the constants module This includes removing dups, adding missing channels & fixing type casts * move all default values to constants.py This is done by using the `Field` class. It allows us to 1. Set defaults, in case the variables are not configured 2. Load them from a env variable under a specific name (for backwards comp) 3. load it from any env variable file that contains the right prefix * ignore all .env files * load BOT_TOKEN & GUILD_ID from .env * allow _GUILD to read its id from the `GUILD_ID` env var * base Webhooks settings off of a Webhook model * create necessary webhooks if non existent * appease flake8 docstrings error * make the script idempotent * update type hints * uppercase all consts * make webhook channel optional * add httpx to its own dependency group This group will be optional & only related to the bootstrapper * replace requests with httpx * pass client as param * include raise_for_status as a response hook * rename get_webhook to webhook_exists * update docstring of the constants module * use "." as a separator * update script to account for already created webhooks * make ANTI_SPAM_RULES a module level constant This ensures that flake8 doesn't complain about making a function call in the function's signature * remove the manual resolving of .env paths * update usages of AntiSpam constants * remove forgotten assignment of rule_config * remove useless assignments of env file names * delete default config-default.yml * update docstrings of CodeBlockCog to reference constants.py * add a poetry task that runs the bootstrapping script * add python-dotenv to the config-bootstrap group * update hook name to _raise_for_status * construct site_api in _URLs * remove __name__ == '__main__'guard * Revert "construct site_api in _URLs" This reverts commit 1c555c4280c6a0bdd452319cbd3ffcd0370f5d48. * remove usage of the Field class * update env var keys that the bootstrapping script needs * use API_KEYS.SITE_API as env var in docker compose instead of BOT_API_KEY * relock dependencies * update snekbox's defaults * add support for ot channels * rename help_system_forum to python_help * rename nomination_archive to nomination_voting_archive * rename appeals2 to appeals_2 * yeet sprinters role out * rename all big_brother_logs instances to big_brother The purpose is to adhere to what we have in prod * rename bootstrap_config.py to botstrap.py * update module name of the configure poetry task * update error messages to reflect the new keys needed for env variables * install dotenv as an extra with pydantic * update all prefixes to "_" (underscore) * log tuple of (channel_name, channel_id) in the config verifier * update needed default values for docker compose env var * relock dependencies * update forgotten delimiters & env prefixes
* | Merge pull request #2449 from python-discord/update-depsGravatar Hassan Abouelela2023-03-08-713/+848
|\ \
| * | Allow The Unlicense (Unlicense) in pip-licensesGravatar Chris Lovering2023-03-07-1/+2
| | |
| * | Update all dependencies to latestGravatar Chris Lovering2023-03-07-712/+846
|/ /
* | Bump markdownify from 0.6.1 to 0.11.6 (#2429)Gravatar dependabot[bot]2023-03-07-13/+40
| | | | | | | | | | Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: wookie184 <[email protected]>
* | Bump SebastiaanZ/github-status-embed-for-discord from 0.2.1 to 0.3.0 (#2448)Gravatar dependabot[bot]2023-03-07-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [SebastiaanZ/github-status-embed-for-discord](https://github.com/SebastiaanZ/github-status-embed-for-discord) from 0.2.1 to 0.3.0. - [Release notes](https://github.com/SebastiaanZ/github-status-embed-for-discord/releases) - [Commits](https://github.com/SebastiaanZ/github-status-embed-for-discord/compare/v0.2.1...v0.3.0) --- updated-dependencies: - dependency-name: SebastiaanZ/github-status-embed-for-discord dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* | Merge pull request #2447 from ↵Gravatar wookie1842023-03-07-1/+1
|\ \ | | | | | | | | | | | | python-discord/dependabot/github_actions/actions/upload-artifact-3 Bump actions/upload-artifact from 2 to 3
| * | Bump actions/upload-artifact from 2 to 3Gravatar dependabot[bot]2023-03-06-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]>
* | Make sure channel parent isn't None (#2441)Gravatar Boris Muratov2023-03-05-1/+1
| | | | | | This shouldn't happen, but the type hint says it can so but just in case.
* | Group thread stats under parent channel (#2440)Gravatar Boris Muratov2023-03-05-6/+5
| | | | | | Also makes make the stat name slightly more robust to small name changes.
* | Merge pull request #2428 from python-discord/dependabot/pip/redis-4.4.2Gravatar wookie1842023-03-03-9/+8
|\ \ | | | | | | Bump redis from 4.3.5 to 4.4.2
| * | Bump redis from 4.3.5 to 4.4.2Gravatar dependabot[bot]2023-03-03-9/+8
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [redis](https://github.com/redis/redis-py) from 4.3.5 to 4.4.2. - [Release notes](https://github.com/redis/redis-py/releases) - [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES) - [Commits](https://github.com/redis/redis-py/compare/v4.3.5...v4.4.2) --- updated-dependencies: - dependency-name: redis dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]>
* | Merge pull request #2427 from python-discord/dependabot/pip/sentry-sdk-1.16.0Gravatar wookie1842023-03-03-5/+9
|\ \ | | | | | | Bump sentry-sdk from 1.11.1 to 1.16.0
| * \ Merge branch 'main' into dependabot/pip/sentry-sdk-1.16.0Gravatar wookie1842023-03-03-1/+8
| |\ \ | |/ / |/| |
* | | Merge pull request #2422 from Ibrahim2750mi/snekbox/handling-input-error-messageGravatar wookie1842023-03-03-1/+8
|\ \ \ | | | | | | | | Add warning message when using `input` with `eval` command
| * \ \ Merge branch 'main' into snekbox/handling-input-error-messageGravatar wookie1842023-03-03-154/+194
| |\ \ \ | |/ / / |/| | |
| * | | Edit comment to match wookie's reviewGravatar Ibrahim2023-03-03-2/+3
| | | |
| * | | Wookie's reviewGravatar Mohammad Ibrahim2023-03-03-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | + Double quotes for consistency + Using results["stdout"] instead of output so the warning is still displayed if the error doesn't fit in the message. + Using endswith so we don't need to hardcode the constant. Co-authored-by: wookie184 <[email protected]>
| * | | Add warning message when using `input`Gravatar Ibrahim2023-03-01-1/+7
| | | |
| | * | Bump sentry-sdk from 1.11.1 to 1.16.0Gravatar dependabot[bot]2023-03-03-5/+9
| |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.11.1 to 1.16.0. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-python/compare/1.11.1...1.16.0) --- updated-dependencies: - dependency-name: sentry-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]>
* | | Merge pull request #2430 from python-discord/dependabot/pip/pydis-core-9.5.1Gravatar Amrou Bellalouna2023-03-03-9/+9
|\ \ \ | | | | | | | | Bump pydis-core from 9.5.0 to 9.5.1
| * \ \ Merge branch 'main' into dependabot/pip/pydis-core-9.5.1Gravatar Amrou Bellalouna2023-03-03-9/+7
| |\ \ \ | |/ / / |/| | |
* | | | Bump action versions in CI (#2433)Gravatar ChrisJL2023-03-03-9/+7
| | | |
| * | | Bump pydis-core from 9.5.0 to 9.5.1Gravatar dependabot[bot]2023-03-03-9/+9
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [pydis-core](https://github.com/python-discord/bot-core) from 9.5.0 to 9.5.1. - [Release notes](https://github.com/python-discord/bot-core/releases) - [Changelog](https://github.com/python-discord/bot-core/blob/main/docs/changelog.rst) - [Commits](https://github.com/python-discord/bot-core/compare/v9.5.0...v9.5.1) --- updated-dependencies: - dependency-name: pydis-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]>
* | | Bundle workflows into a "main" CI flow (#2425)Gravatar Amrou Bellalouna2023-03-03-84/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * bundle build & deploy into a single workflow * delete separate build & deploy wokrflows * trigger status embed on the new bundled "Build & Deploy" workflow * Call linting & build-deployment workflows from main * keep one empty line in workflow files * use v4 of k8s deploy * yeet kubectl version * use v3 of k8s-set-context * setup kubectl config using the setup-kubectl v3 action * use v2 of the checkout action * add dependabot config * add new line for dependabot.yml * update path of the sentry_release workflow * update path of the lint-test workflow * specify push branch * update the sentry_release workflow path, again * update sentry_release's trigger to workflow_call * update lint-test's trigger to workflow_call * remove extra line at the end * unify usage of quotes * update concurrency groups of reusable local workflows * appease our dear linter with a blank line * always run status embed * Revert "always run status embed" This reverts commit 2f69fd77b212337ff45bf7815783030bc6099452. * remove colons after workflow_call * remove empty line at the end * Revert "remove empty line at the end" This reverts commit 223bef4159c76f1968878fe312b5fbc16544549b. * echo event name in status embed * try running status embed on bot ci/cd wf * run ci/cd on push to main * reinstate the Lint & Test trigger for status embed * rename main wf name to "CI" This also triggers status embed on that name * add group-workflows to the list of branches * remove test step * trigger status embed on ci only * trigger main on main branch only * remove concurrency groups in lint-test & sentry-release workflows
* | | Add CI to the list of trigger workflow runs (#2426)Gravatar Amrou Bellalouna2023-03-03-0/+1
| | | | | | | | | Co-authored-by: ChrisJL <[email protected]>
* | | Merge pull request #2305 from python-discord/2301-fix-voting-conditionsGravatar Boris Muratov2023-03-03-11/+32
|\ \ \ | | | | | | | | Store time of last vote in redis to prevent vote triggering early
| * \ \ Merge branch 'main' into 2301-fix-voting-conditionsGravatar Boris Muratov2023-03-03-1386/+1628
| |\ \ \ | |/ / / |/| | |
* | | | Merge pull request #2380 from python-discord/trim-help-command-error-titleGravatar Boris Muratov2023-03-03-3/+8
|\ \ \ \ | |_|/ / |/| | | Trim query in command not found error to avoid embed limits
| * | | Merge branch 'main' into trim-help-command-error-titleGravatar Boris Muratov2023-03-03-1417/+1749
| |\ \ \ | |/ / / |/| | |
* | | | Merge pull request #2421 from shtlrs/bump-pydis-core-to-9-5-0Gravatar wookie1842023-02-28-1108/+1108
|\ \ \ \ | | | | | | | | | | Bump pydis-core to 9.5.0
| * | | | add the `flags` key to the member_data dictionaryGravatar shtlrs2023-02-28-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | The value 2 represents the `COMPLETED_ONBOARDING` flag, found here https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-flags
| * | | | bump pydis-core to 9.5.0Gravatar shtlrs2023-02-28-1107/+1107
|/ / / /
* | | | Include embed titles in all tags (#2419)Gravatar Mohammad Ibrahim2023-02-27-124/+327
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add title and remove heading + also changed any mentioning of `!tags` command * Fixed yaml scan errors + using tabs instead of spaces + enclosed title in `comparison.md` with quotes * Implement ChrisLovering reviews + changed all "Name1 vs. Name2" to "Name1 vs. name2" + changed "python discord" to "Python Discord" in titles + fix typos + reverting hunk for `dotenv.md` + changed all title cases to sentence cases * fix grammar + changed "embed" to "embeds" * remove other ot channels mentioned except ot2 * Fix mistakenly removing a blank line
* | | | Merge pull request #2403 from Ibrahim2750mi/migration/tagGravatar wookie1842023-02-27-142/+167
|\ \ \ \ | | | | | | | | | | Migrated `!tags` command to slash command `/tag`
| * \ \ \ Merge branch 'main' into migration/tagGravatar wookie1842023-02-27-9/+18
| |\ \ \ \ | |/ / / / |/| | | |