Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Première programme corrigé #66

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open

Première programme corrigé #66

wants to merge 7 commits into from

Conversation

S2P-KB
Copy link
Contributor

@S2P-KB S2P-KB commented Jun 26, 2024

Correction du premier programme (UR-Bot.py) selon les règles de codacy. Cela inclut la correction des problèmes suivants :

  • "trailing whitespace". Il s'agit d'un caractère d'espace vide, là où il n'y a pas lieu d'être. Par exemple : finir une ligne de code avec un espace est considére comme telle.

  • "trailing new lines". Cela signale une ligne vide de trop dans le code. Par exemple : trois lignes au lieu de deux, entre deux fonctions.

  • "missing [...] docstring". Cela souligne l'oublie d'un commentaire sous forme de """[commentaire à la ligne]""", sous le nom du bloc. Voir un screen.
    docstring

  • "Exactly one space required after comma". Traduit : il faut un espace, ni plus, ni moins, après une virgule.

  • "No value for argument '[paramètre]' in function call". L'erreur indique que le paramètre peut être manquant lors de l'appel d'une commande du bot.

  • "[Partie du code] name "[…]" doesn't conform to [convention de code] naming style". L'erreur indique le besoin de respecter la casse de police pour la partie du code cité. Par exemple : "Constant name "bot" doesn't conform to UPPER_CASE naming style" --> la constante "bot" doit être renommée selon la convention UPPER_CASE, soit tout en majuscule.

  • "standard import "[…]" should be placed before "[...]"". Il s'agit de respecter la priorité entre les imports, soit ici : la ligne "import os" doit être placée avant "import discord".

@S2P-KB S2P-KB linked an issue Jun 26, 2024 that may be closed by this pull request
@S2P-KB S2P-KB self-assigned this Jun 27, 2024
@S2P-KB S2P-KB added this to the V2.0 Docker update milestone Jun 27, 2024
@S2P-KB
Copy link
Contributor Author

S2P-KB commented Jun 28, 2024

Seconde correction et explication des nouvelles alertes rencontrées :

  • "Final newline missing". Il doit y avoir une ligne vide à la fin du programme.
  • "Line too long". Un retour à la ligne est nécessaire.
  • "Unused import [...]". Afin d'accroître les performances et la sécurité du programme, il vaut mieux supprimer ces imports qui ne sont pas utilisés.

@S2P-KB
Copy link
Contributor Author

S2P-KB commented Jul 12, 2024

Voici une liste de tous les fichiers corrigés jusqu'à présent :

├─ /Discord-Bot-main
→    ├─ /Bot
→→        ├─ /ur_bot.py

├─ /src
→    ├─ /bot
→→        ├─ /__init__.py
→→        ├─ /cog_about.py
→→        ├─ /cog_general.py
→→        ├─ /settings.py
→→        ├─ /strings.py
→→        ├─ /urbot.py
→    ├─ /urpy
→→        ├─ /localization.py
→    ├─ /start.py

├─ /bot
→    ├─ /extends
→→        ├─ /base
→→→            ├─ /base.py

Explication des nouvelles alertes rencontrées :

  • "Shadows built-in name [...]" : le nom donné à l'objet (fonction, variable, etc.) est le même qu'un autre objet déjà intégré à l'installation de python. Par exemple, il est interdit de donner à une variable le nom 'credits', car il s'agit d'une fonction dite "built-in", dont aucun import n'est nécessaire pour y accéder. C'est pourquoi il faut renommer cette variable.è
  • "Shadows name [...] from outer scope" : le principe est le même qu'au-dessus, à la différence que le nom donné à l'objet interfère avec un autre objet dont nous avons nous même défini ou importé. C'est pourquoi il faut renommer le premier objet.
  • "Method [...] may be 'static' " : c'est une erreur indiquant que la méthode [...] pourrait être définie comme une méthode statique. Cela signifie que la méthode ne fait pas référence aux attributs de l'instance de la classe (via le paramètre 'self') et peut donc être rendue plus flexible en étant définie comme '@staticmethod'.
  • "Module name [...] doesn't conform to snake_case naming style". Le nom du fichier doit être changé pour respecter la convention 'snake_case'. Par exemple : 'UR-BOT' devient 'ur_bot'.

Post-scriptum : Au dernier commit, il est écrit qu'un fichier a été crée et qu'un autre a été supprimé. En fait, les deux sont exactement les mêmes. Il n'y a donc que le nom du fichier qui a changé. Par extension, ses exportations ont repris le nouveau nom, qui respecte les normes codacy.

Copy link

gitguardian bot commented Jul 23, 2024

⚠️ GitGuardian has uncovered 2 secrets following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secrets in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
8004069 Triggered Discord Webhook URL 58e9a6d Discord-Bot-main/Bot/event.py View secret
8004069 Triggered Discord Webhook URL 58e9a6d Discord-Bot-main/Bot/event.py View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secrets safely. Learn here the best practices.
  3. Revoke and rotate these secrets.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

@S2P-KB
Copy link
Contributor Author

S2P-KB commented Jul 23, 2024

À noter :

  • Les erreurs rencontrées par GitGuardian concernent la présence d'URL de Webhooks Discord, inclues directement dans le code de 'Discord-Bot-main/Bot/event.py'.
  • Ce ticket permet de corriger le code du projet. Sans ce travail, certains imports ne seraient pas fonctionnels ; des variables ne seraient jamais utilisés ; et d'autres choses réduiraient la qualité du code, voire l'arrêteraient sur un message d'erreur. Par exemple, en appelant une fonction provenant d'un autre programme, il faut spécifier le bon chemin (ou le chemin en entier) vers cette dernière pour l'importer de manière correcte. Dans le cas contraire, l'appel de la fonction ne fonctionnerait pas et le bot ne répond pas aux exigences désirées.

Voici une liste de tous les fichiers corrigés jusqu'à présent ; en gras, sont les nouveaux fichiers corrigés et en italique, ceux ajoutés à l'arborescence car ils ne possèdent pas d'erreur :

├─ /.github
→ ├─ /workflows
→→ ├─ /Add-issue-to-project.yml
→→ ├─ /codacy.yml
→→ ├─ /codeql.yml
→→ ├─ /dependency-review.yml

├─ /archives
→ ├─ /functions.py

├─ /bot/

├─ /Discord-Bot-main
→ ├─ /Bot
→→ ├─ /debug_bot.py
→→ ├─ /event.py
→→ ├─ /requirements.py
→→ ├─ /ur_bot.py
→ ├─ /Install/
→ ├─ /README.md

├─ /src
→ ├─ /bot
→→ ├─ /init.py
→→ ├─ /cog_about.py
→→ ├─ /cog_general.py
→→ ├─ /settings.py
→→ ├─ /strings.py
→→ ├─ /urbot.py
→ ├─ /urpy
→→ ├─ /localization.py
→ ├─ /start.py

├─ /bot
→ ├─ /extends
→→ ├─ /base
→→→ ├─ /base.py


Explication des nouvelles alertes rencontrées :

  • "Wrong hanging indentation (remove [...] space[s])". L'erreur se produit lorsque l'indentation d'une ligne de continuation n'est pas alignée correctement avec la ligne précédente.
  • "Remove redundant parentheses". Cela signale des parenthèses inutiles à un endroit du code, réduisant logiquement les performances du code.
  • "Parameter '[paramètre]' value is not used". Le paramètre n'est jamais utilisé, et retire des performances au programme.
  • "Usages of [...] Nothing found in 'Project Files'". Le fichier, la fonction ou la variable (etc.) n'est jamais utilisé dans le projet. Dans tous les cas, avant de manipuler quoi que ce soit, il faut toujours vérifier si le code n'est pas utilisé ailleurs. Par exemple : 'Discord-Bot-main/Bot/requirements.txt' est utilisé par docker-compose. Pourtant, cette manipulation n'est pas affichée par l'IDE quand on cherche les utilisations du fichier.
  • "Cannot resolve file '[...]'". Ce problème a été identifié dans le fichier 'Discord-Bot-main/README.md', dont la ligne > **Télécharger** ![Docker](docker.com) est invalide, car il ne faut pas mettre de point d'exclamation. En effet, ce dernier indique au code d'aller chercher une image au chemin spécifié ; soit ici, sur le web. Pourtant, le développeur cherchait à indiquer un hyperlien. Pour ce faire, il suffit d'écrire la même ligne, sans point d'exclamation. Ainsi, elle devient : > **Télécharger** [Docker](docker.com)

@S2P-KB
Copy link
Contributor Author

S2P-KB commented Jul 27, 2024

Tout le programme du répertoire Bot_Base a été corrigé. Il ne s'agissait pas de créer de nouveaux codes. En revanche, modifier celui existant pour que ces derniers fonctionnent comme désirés. Donc, soyez assurez que la manière dont les programmes agissent ne changent pas.

Voici une liste de tous les fichiers corrigés jusqu'à présent ; en gras, sont les nouveaux fichiers corrigés et en italique, ceux ajoutés à l'arborescence car ils ne possèdent pas d'erreur :

├─ /.github
→ ├─ /workflows/

├─ /archives/

├─ /bot/

├─ /Discord-Bot-main/

├─ /img

├─ /src
→ ├─ /bot/
→ ├─ /locale/
→ ├─ /urpy
→→ ├─ /templates/
→→ ├─ /init.py
→→ ├─ /get_ressources.py
→→ ├─ /help.py
→→ ├─ /localization.py
→→ ├─ /requirements.txt
→→ ├─ /utils.py
→→ ├─ */xml.py
→ ├─ /Bot_Base.service
→ ├─ /start.py

├─ /.gitignore
├─ /add_repo.sh
├─ /changelog.txt
├─ /credits.md
├─ /install.sh
├─ /README.md
├─ /SECURITY.md
├─ /start.sh
├─ /updateBot.sh


Explication des nouvelles alertes rencontrées :

  • "Invalid escape sequence" : Il suffit donc de rajouter un deuxième slash inversé ('').
  • "Single character alternation in RegExp". C'est pourquoi nous retirons l'espace en trop. Le code précité devient *(?:\n|)
  • "Using an f-string that does not have any interpolated variables (f-string-without-interpolation)". Un 'f-string' correspond à une chaîne de caractères précédées par un préfixe 'f' (pour 'format'). C'est ce dernier qui permet à la chaîne d'accueillir des variables prédéfinies, par exemple :
a = 3
b = 9
print(f"{a} * {b} = {a*b}")
>>> 27

L'erreur ci-dessus indique l'utilisation d'une telle chaîne de caractères, qui n'appelle pourtant pas de variable. C'est pourquoi il vaut mieux supprimer le préfixe et ainsi optimiser le code.

@S2P-KB S2P-KB marked this pull request as ready for review July 27, 2024 12:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Qualité du code
1 participant