diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml
new file mode 100644
index 0000000..06ac7ef
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug-report.yml
@@ -0,0 +1,74 @@
+name: Reporte de bugs
+description: Reporta un bug para ayudar a mejorar el bot
+title: "[BUG]"
+labels: ["bug :bug:"]
+
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Gracias por reportar problemas en BOTSI!
+
+ Por favor, rellena la siguiente plantilla para ayudarnos a identificar y resolver el problema.
+
+ Para hacerlo más fácil, por favor, introduce la información detallada a continuación.
+
+ - type: textarea
+ id: steps-to-reproduce
+ attributes:
+ label: Pasos para reproducir el problema
+ value: |
+ 1.
+ 2.
+ 3.
+ validations:
+ required: true
+
+ - type: textarea
+ id: expected-behaviour
+ attributes:
+ label: Comportamiento esperado
+ description: ¿Qué esperabas que sucediera?
+ validations:
+ required: true
+
+ - type: textarea
+ id: actual-behaviour
+ attributes:
+ label: Comportamiento actual
+ description: ¿Qué sucedió en realidad?
+ validations:
+ required: true
+
+ - type: markdown
+ attributes:
+ value: "### Configuración"
+
+ - type: input
+ id: operating-system
+ attributes:
+ label: Sistema operativo
+ validations:
+ required: true
+
+ - type: textarea
+ id: versions
+ attributes:
+ label: Versión de Python y de los paquetes
+ description: Copia la salida del comando `$ python -m telegram` y pégala aquí. Se formateará automáticamente en código, por lo que no es necesario que uses comillas invertidas.
+ render: Shell
+ validations:
+ required: true
+
+ - type: textarea
+ id: logs
+ attributes:
+ label: Logs
+ description: Copia los logs del bot y pégalos aquí. Se formateará automáticamente en código, por lo que no es necesario que uses comillas invertidas.
+ render: Python
+
+ - type: textarea
+ id: additional-context
+ attributes:
+ label: Contenido adicional
+ description: ¿Hay algo más que debamos saber?
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000..a49eab2
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1 @@
+blank_issues_enabled: true
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml
new file mode 100644
index 0000000..3517c22
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature-request.yml
@@ -0,0 +1,37 @@
+name: Feature Request
+description: Sugiérenos una nueva característica para el bot
+title: "[FEATURE]"
+labels: ["enhancement"]
+
+body:
+ - type: textarea
+ id: related-problem
+ attributes:
+ label: "Qué tipo de característica te gustaría que se añadiera? ¿Qué problema quieres resolver?"
+ description: "Una descripción clara y concisa de lo que te gustaría que sucediera."
+ placeholder: "Ejemplo: Me gustaría que el bot pudiera hacer X porque no hay ninguna forma de hacerlo."
+ validations:
+ required: true
+
+ - type: textarea
+ id: solution
+ attributes:
+ label: "Describe la solución que te gustaría que se implementara"
+ description: "Una descripción clara y concisa de lo que quieres que suceda."
+ placeholder: "Ejemplo: Creo que sería bueno si se añade la función Y para poder hacer X."
+ validations:
+ required: true
+
+ - type: textarea
+ id: alternatives
+ attributes:
+ label: "Describe las alternativas que has considerado"
+ description: "Una descripción clara y concisa de cualquier solución o característica alternativa que hayas considerado."
+ placeholder: "Ejemplo: Considero que Z podría dar con la solución, pero no es tan buena como Y porque..."
+
+ - type: textarea
+ id: additional-context
+ attributes:
+ label: "Contenido adicional"
+ description: "Agregue cualquier otro contenido o capturas de pantalla sobre la solicitud de función aquí."
+ placeholder: "Ejemplo: Aquí hay una captura de pantalla de mi oso de peluche."
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/question.yml b/.github/ISSUE_TEMPLATE/question.yml
new file mode 100644
index 0000000..c380b75
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/question.yml
@@ -0,0 +1,64 @@
+name: Dudas
+description: Obtén ayuda con el bot
+title: "[DUDA]"
+labels: ["question"]
+
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Hola, ¿tienes alguna duda? Estaré encantado de ayudarte. Por favor, asegúrate de que no se haya abierto ya una pregunta similar.
+
+ - type: textarea
+ id: issue-faced
+ attributes:
+ label: "Problema que estás teniendo"
+ description: "Describe el problema que estás teniendo. Por favor, sé lo más específico posible."
+ validations:
+ required: true
+
+ - type: textarea
+ id: traceback
+ attributes:
+ label: "Trazas de error"
+ description: "Si hay algún error, pégalo aquí. Se formateará automáticamente en código (python), por lo que no es necesario que uses comillas invertidas."
+ placeholder: |
+ Traceback (most recent call last):
+ File "/home/bot.py", line 1, in main
+ foo = bar()
+ ...
+ telegram.error.BadRequest: Traceback not found
+ render: Python
+
+ - type: textarea
+ id: related-code
+ attributes:
+ label: "Código relacionado"
+ description: "Si el problema está relacionado con el código, pégalo aquí. Se formateará automáticamente en código (python), por lo que no es necesario que uses comillas invertidas."
+ placeholder: |
+ logging.basicConfig(
+ format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", level=logging.INFO
+ )
+
+ logger = logging.getLogger(__name__)
+ render: Python
+
+ - type: markdown
+ attributes:
+ value: "### Configuración"
+
+ - type: input
+ id: operating-system
+ attributes:
+ label: Sistema operativo
+ validations:
+ required: true
+
+ - type: textarea
+ id: versions
+ attributes:
+ label: Versión de Python, python-telegram-bot y del resto de dependencias
+ description: Pega la salida del comando `$ python -m telegram`. Esto se formateará automáticamente en código, por lo que no es necesario que uses comillas invertidas.
+ render: Shell
+ validations:
+ required: true
\ No newline at end of file
diff --git a/.github/workflows/auto-prerelease.yml b/.github/workflows/auto-prerelease.yml
new file mode 100644
index 0000000..773589e
--- /dev/null
+++ b/.github/workflows/auto-prerelease.yml
@@ -0,0 +1,31 @@
+name: "pre-release"
+
+on:
+ push:
+ branches:
+ - "main"
+ - "master"
+ - "develop"
+
+permissions:
+ id-token: "write"
+ contents: "write"
+ packages: "write"
+ pull-requests: "read"
+
+jobs:
+ pre-release:
+ name: "Pre Release"
+ runs-on: "ubuntu-latest"
+
+ steps:
+ - name: "Build & test"
+ run: |
+ echo "done!"
+
+ - uses: "marvinpinto/action-automatic-releases@latest"
+ with:
+ repo_token: "${{ secrets.GITHUB_TOKEN }}"
+ automatic_release_tag: "latest"
+ prerelease: true
+ title: "Development Build"
\ No newline at end of file
diff --git a/.github/workflows/auto-release.yml b/.github/workflows/auto-release.yml
new file mode 100644
index 0000000..100b172
--- /dev/null
+++ b/.github/workflows/auto-release.yml
@@ -0,0 +1,46 @@
+name: "auto-release"
+
+on:
+ push:
+ tags:
+ - "v*"
+
+permissions:
+ id-token: "write"
+ contents: "write"
+ packages: "write"
+ pull-requests: "read"
+
+jobs:
+ tagged-release:
+ name: "Tagged Release"
+ runs-on: "ubuntu-latest"
+
+ steps:
+ - name: "Build & test"
+ run: |
+ echo "done!"
+
+ - uses: "marvinpinto/action-automatic-releases@latest"
+ with:
+ repo_token: "${{ secrets.GITHUB_TOKEN }}"
+ prerelease: false
+
+ notify_on_telegram:
+ name: "Notify on Telegram"
+ runs-on: "ubuntu-latest"
+ needs: "tagged-release"
+ steps:
+ - name: "Send Telegram message"
+ uses: "appleboy/telegram-action@master"
+ with:
+ to: "${{ secrets.TELEGRAM_TO }}"
+ token: "${{ secrets.TELEGRAM_TOKEN }}"
+ format: "html"
+ disable_web_page_preview: true
+ message: |
+ "¡Actualizaciones en ${{ github.event.repository.name }}!
+
+ Se ha publicado una nueva versión: ${{ github.ref_name }}
"
+
+ Puedes ver los cambios en el changeLog y consultar la documentación."
\ No newline at end of file
diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml
new file mode 100644
index 0000000..7155c37
--- /dev/null
+++ b/.github/workflows/deploy-docs.yml
@@ -0,0 +1,46 @@
+# Simple workflow for deploying static content to GitHub Pages
+name: deploy-docs
+
+on:
+ # Runs on pushes targeting the default branch
+ #push:
+ # branches: ["main"]
+
+ # Runs when the workflow auto-release.yml has completed
+ workflow_run:
+ workflows: ["auto-release"]
+ types:
+ - completed
+
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+jobs:
+ # Single deploy job since we're just deploying
+ create-docs:
+ environment: Deploy docs
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.9
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install -r mkdocs-requirements.txt
+ - name: Build docs
+ run: mkdocs build
+ - name: Setup Pages
+ uses: actions/configure-pages@v2
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v1
+ with:
+ path: './site'
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v1
\ No newline at end of file
diff --git a/.github/workflows/telegram-notify-issues.yml b/.github/workflows/telegram-notify-issues.yml
new file mode 100644
index 0000000..cc9b806
--- /dev/null
+++ b/.github/workflows/telegram-notify-issues.yml
@@ -0,0 +1,80 @@
+name: Telegram Message on Issues
+on:
+ issues:
+ types:
+ - opened
+ - closed
+ - reopened
+
+jobs:
+ build:
+ name: Notify Issues
+ runs-on: ubuntu-latest
+ steps:
+ - name: send telegram message on issue opened
+ uses: appleboy/telegram-action@master
+ if: ${{ github.event.action == 'opened' }}
+ with:
+ to: ${{ secrets.TELEGRAM_TO_GROUP }}
+ token: ${{ secrets.TELEGRAM_TOKEN }}
+ format: markdown
+ message: |
+ *¡Actualizaciones desde GitHub!*
+
+ *${{ github.actor }}* ha creado una nueva issue:
+
+ Issue: `${{ github.event.issue.title }}`
+ Repositorio: `${{ github.repository }}`
+
+ Puedes ver los cambios [aquí](${{ github.event.issue.html_url }})
+
+ - name: send telegram message on issue closed
+ uses: appleboy/telegram-action@master
+ if: ${{ github.event.action == 'closed' }}
+ with:
+ to: ${{ secrets.TELEGRAM_TO_GROUP }}
+ token: ${{ secrets.TELEGRAM_TOKEN }}
+ format: markdown
+ message: |
+ *¡Actualizaciones desde GitHub!*
+
+ *${{ github.actor }}* ha cerrado una issue:
+
+ Issue: `${{ github.event.issue.title }}`
+ Repositorio: `${{ github.repository }}`
+
+ Puedes ver los cambios [aquí](${{ github.event.issue.html_url }})
+
+ - name: send telegram message on issue reopened
+ uses: appleboy/telegram-action@master
+ if: ${{ github.event.action == 'reopened' }}
+ with:
+ to: ${{ secrets.TELEGRAM_TO_GROUP }}
+ token: ${{ secrets.TELEGRAM_TOKEN }}
+ format: markdown
+ message: |
+ *¡Actualizaciones desde GitHub!*
+
+ *${{ github.actor }}* ha reabierto una issue:
+
+ Issue: `${{ github.event.issue.title }}`
+ Repositorio: `${{ github.repository }}`
+
+ Puedes ver los cambios [aquí](${{ github.event.issue.html_url }})
+
+ - name: send telegram message when issue have new comments
+ uses: appleboy/telegram-action@master
+ if: ${{ github.event.action == 'commented' }}
+ with:
+ to: ${{ secrets.TELEGRAM_TO_GROUP }}
+ token: ${{ secrets.TELEGRAM_TOKEN }}
+ format: markdown
+ message: |
+ *¡Actualizaciones desde GitHub!*
+
+ *${{ github.actor }}* ha comentado en una issue:
+
+ Issue: `${{ github.event.issue.title }}`
+ Repositorio: `${{ github.repository }}`
+
+ Puedes ver los cambios [aquí](${{ github.event.issue.html_url }})
\ No newline at end of file
diff --git a/README.md b/README.md
index 6716587..27c88e8 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,60 @@
# Template RITSI
Repositorio plantilla para nuevos proyectos y repositorios RITSI.
+
+Utiliza este repositorio como plantilla para crear nuevos repositorios RITSI con la estructura y configuración básica, o bien, para realizar tus propios proyectos aprovechando las Github Actions que tenemos configuradas!
+
+Podemos encontrar la documentación de muestra de este repositorio en [este enlace](https://ritsi.github.io/Template-RITSI/)
+
+## Estructura
+
+La estructura de este repositorio es la siguiente:
+
+```
+.
+├── .github
+│ ├── workflows
+│ │ ├── auto-prerelease.yml
+│ │ ├── auto-release.yml
+│ │ ├── deploy-docs.yml
+│ │ └── telegram-notify-issues.yml
+│ ├── ISSUE_TEMPLATE
+│ │ ├── bug_report.yml
+│ │ ├── config.yml
+│ │ ├── feature-request.yml
+│ │ └── question.yml
+```
+
+## Configuración
+
+### Github Actions
+
+Para configurar las Github Actions, debes tener en cuenta que se van a utilizar las siguientes variables:
+
+- `TELEGRAM_TOKEN`: Token de Telegram para el bot que enviará los mensajes. En la organización de RITSI está configurada como variable global, pero hay que habilitarla para el repositorio en cuestión.
+- `TELEGRAM_TO`: ID de Telegram del usuario, canal o grupo al que se enviarán los mensajes. En la organización de RITSI está configurada como variable global, pero hay que habilitarla para el repositorio en cuestión. Cabe matizar que está puesto el identificador del canal de la Comisión.
+- `TELEGRAM_TO_GROUP`: ID de Telegram del grupo al que se enviarán los mensajes. Esta variable se tiene que configurar en el repositorio en cuestión. Cabe matizar que se refiere al grupo de trabajo del repositorio en cuestión.
+
+### Github Pages
+
+Las Github Pages se tienen que configurar para que se desplieguen mediante las Github Actions. Para ello, hay que ir a la sección de `Settings` del repositorio, y en la sección de `Github Pages` seleccionar la opción de construir el sitio desde las Github Actions:
+
+
+
+ +
+ +### MkDocs + +Para configurar MkDocs, se tiene que editar el archivo `mkdocs.yml` y cambiar el valor de la variable `site_name` por el nombre del repositorio. + + + +### Templates de issues + +Las templates de las _issues_ se tendrán que revisar y configurar por cada repositorio para que se ajusten a las necesidades del mismo. Entre las necesidades más básicas podría estar el lengüaje de programación que se va a utilizar. + +## Cómo usar esta plantilla + +Para usar esta plantilla, simplemente hay que hacer clic en el botón `Use this template` que aparece en la parte superior de este repositorio. Una vez hecho esto, se abrirá una ventana en la que se podrá configurar el nuevo repositorio. Una vez configurado, se creará el nuevo repositorio con la estructura y configuración básica. + diff --git a/docs/images/1710_Isotipo_Blanco.png b/docs/images/1710_Isotipo_Blanco.png new file mode 100644 index 0000000..2190404 Binary files /dev/null and b/docs/images/1710_Isotipo_Blanco.png differ diff --git a/docs/images/1710_Isotipo_Degradado.png b/docs/images/1710_Isotipo_Degradado.png new file mode 100644 index 0000000..fc4cf75 Binary files /dev/null and b/docs/images/1710_Isotipo_Degradado.png differ diff --git a/docs/images/1710_Isotipo_Negro.png b/docs/images/1710_Isotipo_Negro.png new file mode 100644 index 0000000..1dbe1e0 Binary files /dev/null and b/docs/images/1710_Isotipo_Negro.png differ diff --git a/docs/images/gh_pages_config.png b/docs/images/gh_pages_config.png new file mode 100644 index 0000000..d1932d0 Binary files /dev/null and b/docs/images/gh_pages_config.png differ diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..6c617e1 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,57 @@ +# Template RITSI + +Repositorio plantilla para nuevos proyectos y repositorios RITSI. + +Utiliza este repositorio como plantilla para crear nuevos repositorios RITSI con la estructura y configuración básica, o bien, para realizar tus propios proyectos aprovechando las Github Actions que tenemos configuradas! + +## Estructura + +La estructura de este repositorio es la siguiente: + +``` +. +├── .github +│ ├── workflows +│ │ ├── auto-prerelease.yml +│ │ ├── auto-release.yml +│ │ ├── deploy-docs.yml +│ │ └── telegram-notify-issues.yml +│ ├── ISSUE_TEMPLATE +│ │ ├── bug_report.yml +│ │ ├── config.yml +│ │ ├── feature-request.yml +│ │ └── question.yml +``` + +## Configuración + +### Github Actions + +Para configurar las Github Actions, debes tener en cuenta que se van a utilizar las siguientes variables: + +- `TELEGRAM_TOKEN`: Token de Telegram para el bot que enviará los mensajes. En la organización de RITSI está configurada como variable global, pero hay que habilitarla para el repositorio en cuestión. +- `TELEGRAM_TO`: ID de Telegram del usuario, canal o grupo al que se enviarán los mensajes. En la organización de RITSI está configurada como variable global, pero hay que habilitarla para el repositorio en cuestión. Cabe matizar que está puesto el identificador del canal de la Comisión. +- `TELEGRAM_TO_GROUP`: ID de Telegram del grupo al que se enviarán los mensajes. Esta variable se tiene que configurar en el repositorio en cuestión. Cabe matizar que se refiere al grupo de trabajo del repositorio en cuestión. + +### Github Pages + +Las Github Pages se tienen que configurar para que se desplieguen mediante las Github Actions. Para ello, hay que ir a la sección de `Settings` del repositorio, y en la sección de `Github Pages` seleccionar la opción de construir el sitio desde las Github Actions: + + ++ +
+ +### MkDocs + +Para configurar MkDocs, se tiene que editar el archivo `mkdocs.yml` y cambiar el valor de la variable `site_name` por el nombre del repositorio. + + + +### Templates de issues + +Las templates de las _issues_ se tendrán que revisar y configurar por cada repositorio para que se ajusten a las necesidades del mismo. Entre las necesidades más básicas podría estar el lengüaje de programación que se va a utilizar. + +## Cómo usar esta plantilla + +Para usar esta plantilla, simplemente hay que hacer clic en el botón `Use this template` que aparece en la parte superior de este repositorio. Una vez hecho esto, se abrirá una ventana en la que se podrá configurar el nuevo repositorio. Una vez configurado, se creará el nuevo repositorio con la estructura y configuración básica. \ No newline at end of file diff --git a/mkdocs-requirements.txt b/mkdocs-requirements.txt new file mode 100644 index 0000000..2e68d2a --- /dev/null +++ b/mkdocs-requirements.txt @@ -0,0 +1,4 @@ +mkdocs +mkdocs-material +mkdocstrings +mkdocstrings-python \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..336c8d2 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,49 @@ +# mkdocs.yml - https://realpython.com/python-project-documentation-with-mkdocs +# Colors - https://squidfunk.github.io/mkdocs-material/setup/changing-the-colors/ +site_name: Template RITSI - Documentación +theme: + name: material + features: + - content.code.annotate + palette: + primary: red + accent: red + font: + text: Exo 2 + code: Hack + language: es + favicon: images/1710_Isotipo_Degradado.png + logo: images/1710_Isotipo_Blanco.png + +plugins: + - mkdocstrings: + handlers: + python: + options: + show_source: false + show_root_heading: true + heading_level: 2 + +markdown_extensions: + - pymdownx.highlight: + anchor_linenums: + true + - pymdownx.superfences + - pymdownx.inlinehilite + - pymdownx.snippets + - toc: + permalink: true + toc_depth: 8 + baselevel: 2 + - tables + - attr_list + - pymdownx.emoji: + emoji_index: !!python/name:materialx.emoji.twemoji + emoji_generator: !!python/name:materialx.emoji.to_svg + + +nav: + - Home: index.md + +extra: + generator: false \ No newline at end of file