diff --git a/README.md b/README.md index 12eab8f..3ac5be9 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,14 @@ A middleman webhook between Gitlab and Discord, in order to have fancy messages. +[Traducción en Castellano más abajo] +[English version below] + # GitScord webhook (Français) GitScord est un webhook intermédiaire entre Gitlab et Discord, pour avoir des messages plus agréable à lire que ceux fournit nativement par Gitlab. -## Fonctionnalité +## Fonctionnalités GitScord utilise un maximum de possibilités de mise en forme de Discord pour rendre les messages assez complets et lisibles à la fois. Fonctionnalités existantes : @@ -29,7 +32,7 @@ Le serveur sur lequel est placé le script doit être accessible en HTTP(S) depu Dans un premier temps, créez un webhook dans les paramètres de votre serveur Discord (se référer à l'aide sur le site officiel de Discord si besoin). L'étape suivante consiste à créé un fichier de configuration *gitscord_webhook_config.json*. -Vous pouvez vous aider des fichiers *gitscord_webhook_config.json.exemple.full* et *gitscord_webhook_config.json.exemple.minimal*, qui contiennent respectivement la liste exaustive des paramètres et la liste des paramètres obligatoirement requis. +Vous pouvez vous aider des fichiers *gitscord_webhook_config.json.exemple.full* et *gitscord_webhook_config.json.exemple.minimal*, qui contiennent respectivement la liste exhaustive des paramètres et la liste des paramètres obligatoirement requis. Définition des paramètres : * discord_url : adresse du webhook fourni par Discord * language : langue des messages envoyés par le bot, choisir entre en, es et fr @@ -45,3 +48,48 @@ Pour aider à développer ce projet, vous pouvez notamment ouvrir des issues sur * les éventuels bugs que vous constatez à l'utilisation * les failles de sécurité que vous trouvez (avec le label *Security*) * des idées de nouvelles fonctionnalités (avec le label *Feature*) + + +# GitScord webhook (Castellano) + +GitScord es un webhook intermediario entre Gitlab y Discord, para tener mensajes más agradable para leer que los mensajes enviados por Gitlab naturalmente. + +## Funcionalidades +GitScord usa lo máximo posible los formatos de Discord para obtener mensajes a la vez completos y comprensible. + +Funcionalidades actuales : + * soporte de los commits, tags, issues, notes, merge requests + * plurilingüe + * dominio de los aspectos del bot en Discord + * 100% PHP, instalación sencilla con muy poco de dependencias + +Funcionalidades en desarrollo : + * suporte de los job, pipeline, wikipage + * modo menos verboso + +## Instalación +### Prérequis +GitScord es escrito totalmente en PHP. Dado que el módulo *JSON* hace parte del PHPcore, el único prerrequisito es tener configurado PHP >= 5.2.0 o PHP >= 7, compilado con el módulo *curl*. + +Le servidor que aloja el script tiene que ser accesible en HTTP(S) desde su Gitlab, y este servidor tiene que poder enviar solicitudes HTTP(S) hacia *discordapp.com*. + +### Configuración +Para empezar, crea un webhook en los parámetros de su servidor Discord (leer la ayuda en la pagina oficial de Discord si es necesario). + +Después, crea un archivo de configuración *gitscord_webhook_config.json*. +Ayudase de los archivos *gitscord_webhook_config.json.exemple.full* y *gitscord_webhook_config.json.exemple.minimal*, que presentan respectivamente la lista exhaustiva de los parámetros y la lista de los parámetros obligatorios. +Definición de los parámetros : + * discord_url : localización del webhook dado por Discord + * language : idioma de los mensajes enviados por el bot, elegir entre en, es y fr + * bot_name : nombre del bot en Discord (remplaza el nombre definido en Discord) + * bot_avatar : imagen de perfil del bot en Discord (remplaza la imagen definida en Discord), poner una URL absoluta. + +Enseguida, solo poner el archivo PHP (*gitscord_webhook.php*, pero puede renombrar lo como quiere) en una de las carpetas de su servidor HTTP(S), con el archivo *gitscord_webhook_config.json* justo a su lado (no renombrar, o cambiar el nombre también en el script PHP). + +Al fin en Gitlab, menús "Settings" luego "Integrations" de un proyecto, indicar la URL del archivo PHP y elige las noticias que enviar en Discord. + +## Contribuciones +Para soportar el desarrollo de este proyecto, puede particularmente abrir issues en Gitlab para : + * los bugs que encuentra usando GitScord + * los fallos de seguridad que nota (con el label *Security*) + * ideas de nuevas funcionalidades (con el label *Feature*) diff --git a/gitscord_webhook.php b/gitscord_webhook.php index fe94c66..bac150e 100644 --- a/gitscord_webhook.php +++ b/gitscord_webhook.php @@ -89,11 +89,11 @@ function send_error($url,$message="") { // showning an error on Discord chan // _layout functions : markdown and JSON encapsulation for Discord function push_layout($messageJSON,$JSON,$lang) { - $txt_ligne_push=["fr"=>'nouveau(x) commits',"es"=>' ',"en"=>' ',]; - $txt_title_push=["fr"=>'a push dans',"es"=>' ',"en"=>' ',]; - $txt_add_push=["fr"=>'Ajoutés',"es"=>' ',"en"=>' ',]; - $txt_mod_push=["fr"=>'Modifiés',"es"=>' ',"en"=>' ',]; - $txt_suppr_push=["fr"=>'Supprimés',"es"=>' ',"en"=>' ',]; + $txt_ligne_push=["fr"=>'nouveau(x) commit(s)',"es"=>'nuevo(s) commit(s)',"en"=>' ',]; + $txt_title_push=["fr"=>'a push dans',"es"=>'hizo un push en',"en"=>' ',]; + $txt_add_push=["fr"=>'Ajoutés',"es"=>'Añadidos',"en"=>' ',]; + $txt_mod_push=["fr"=>'Modifiés',"es"=>'Modificados',"en"=>' ',]; + $txt_suppr_push=["fr"=>'Supprimés',"es"=>'Suprimidos',"en"=>' ',]; $messageJSON['content'] = $JSON['total_commits_count'].' '.$txt_ligne_push[$lang] ; $messageJSON['embeds'] = array(); for ($numCommit=$JSON['total_commits_count']-1; $numCommit>=0; $numCommit--) { @@ -123,8 +123,8 @@ function push_layout($messageJSON,$JSON,$lang) { } function tag_layout($messageJSON,$JSON,$lang) { - $txt_ligne_tag=["fr"=>'Nouveau tag',"es"=>' ',"en"=>' ',]; - $txt_title_tag=["fr"=>'a tagué un commit dans',"es"=>' ',"en"=>' ',]; + $txt_ligne_tag=["fr"=>'Nouveau tag',"es"=>'Nuevo tag',"en"=>' ',]; + $txt_title_tag=["fr"=>'a tagué un commit dans',"es"=>'hizo un tag en',"en"=>' ',]; $messageJSON['content'] = $txt_ligne_tag[$lang] ; $messageJSON['embeds'] = array(array('title'=> $txt_title_tag[$lang].' *'.$JSON['project']['name'].'*', 'description'=> $JSON['message'], @@ -135,10 +135,10 @@ function tag_layout($messageJSON,$JSON,$lang) { } function issue_layout($messageJSON,$JSON,$lang) { - $txt_ligne_issue=["fr"=>'Nouveau problème',"es"=>' ',"en"=>' ',]; - $txt_title_open_issue=["fr"=>'a ouvert une issue dans',"es"=>' ',"en"=>' ',]; - $txt_title_update_issue=["fr"=>'a mis à jour une issue dans',"es"=>' ',"en"=>' ',]; - $txt_title_close_issue=["fr"=>'a fermé une issue dans',"es"=>' ',"en"=>' ',]; + $txt_ligne_issue=["fr"=>'Nouveau problème',"es"=>'Nuevo problema',"en"=>' ',]; + $txt_title_open_issue=["fr"=>'a ouvert une issue dans',"es"=>'abrió un asunto en',"en"=>' ',]; + $txt_title_update_issue=["fr"=>'a mis à jour une issue dans',"es"=>'actualizó un asunto en',"en"=>' ',]; + $txt_title_close_issue=["fr"=>'a fermé une issue dans',"es"=>'cierró un asunto en',"en"=>' ',]; if ($JSON['object_attributes']['action'] == "open") { $txt_title_issue=$txt_title_open_issue[$lang]; } @@ -158,8 +158,8 @@ function issue_layout($messageJSON,$JSON,$lang) { } function note_layout($messageJSON,$JSON,$lang) { - $txt_ligne_note=["fr"=>'Nouvelle note',"es"=>' ',"en"=>' ',]; - $txt_title_note=["fr"=>'a noté un quelque chose dans',"es"=>' ',"en"=>' ',]; + $txt_ligne_note=["fr"=>'Nouvelle note',"es"=>'Nueva note',"en"=>' ',]; + $txt_title_note=["fr"=>'a noté quelque chose dans',"es"=>'marcó algo en',"en"=>' ',]; $txt_object_name=""; if ($JSON['object_attributes']['noteable_type'] == "Issue") { $txt_object_name=$JSON['issue']['title']; @@ -180,10 +180,10 @@ function note_layout($messageJSON,$JSON,$lang) { } function MR_layout($messageJSON,$JSON,$lang) { - $txt_ligne_MR=["fr"=>'Nouvelle merge request',"es"=>' ',"en"=>' ',]; - $txt_open_action=["fr"=>'a ouvert une MR dans',"es"=>' ',"en"=>' ',]; - $txt_merge_action=["fr"=>'a mergé une MR dans',"es"=>' ',"en"=>' ',]; - $txt_unknown_action=["fr"=>'a modifié une MR dans',"es"=>' ',"en"=>' ',]; + $txt_ligne_MR=["fr"=>'Nouvelle merge request',"es"=>'Nueva merge request',"en"=>' ',]; + $txt_open_action=["fr"=>'a ouvert une MR dans',"es"=>'abrió una MR en',"en"=>' ',]; + $txt_merge_action=["fr"=>'a mergé une MR dans',"es"=>'ejecutó una MR en',"en"=>' ',]; + $txt_unknown_action=["fr"=>'a modifié une MR dans',"es"=>'cambió una MR en',"en"=>' ',]; if ($JSON['object_attributes']['action'] == "open") { $txt_action=$txt_open_action[$lang]; $txt_action_description=$JSON['object_attributes']['description'];