# Aportaciones open source

> Una página de jmrp.io, publicada como markdown. Índice: https://jmrp.io/llms.txt

Canonical: https://jmrp.io/es/projects/contributions/
Language: es
Alternate: https://jmrp.io/projects/contributions/index.md
Updated: 2026-09-27
License: https://jmrp.io/es/license/
Build-Date: 2026-09-27

Foto a fecha de 27 de septiembre de 2026 · 95 pull requests y merge requests y 44 issues en 52 repositorios que no son míos, en GitHub y GitLab.

- PR y MR de código y docs fusionadas: 46
- PR de listados fusionadas: 14
- PR y MR de código en revisión: 17
- respuestas aceptadas en GitHub Discussions: 17

Proyectos con código fusionado, por lenguaje principal: Go 5, TypeScript 3, Shell 2, C++ 1, HTML 1, Ruby 1, Rust 1

## Destacadas

- **TriliumNext/Trilium #11448** (TypeScript, +162 −29 · 6 ficheros, 38032★): Hizo que los códigos TOTP sean de un solo uso en el inicio de sesión, como exige el RFC 6238, y añadió tolerancia de un paso de tiempo a la deriva de reloj, con tests. (GitHub, https://github.com/TriliumNext/Trilium/pull/11448)
- **NginxProxyManager/nginx-proxy-manager #5836** (TypeScript, +85 −1 · 4 ficheros, 34250★): Los tokens emitidos antes de un cambio de contraseña ahora se rechazan, así que restablecer la contraseña cierra las sesiones abiertas con la anterior; cubierto por un test de API en Cypress. (GitHub, https://github.com/NginxProxyManager/nginx-proxy-manager/pull/5836)
- **modelcontextprotocol/go-sdk #1274** (Go, 5 PR · +663 −34 · 19 ficheros, 5160★): Cinco cambios fusionados en el SDK oficial de MCP para Go (#1255, #1268, #1269, #1273, #1274): cuatro ajustan a la especificación la negociación de versión del protocolo, la cancelación y el tratamiento de llamadas previas a initialize, y uno añade HasParams para que el middleware sepa si una petición lleva parámetros; cada uno con tests. (GitHub, https://github.com/modelcontextprotocol/go-sdk/pull/1274)
- **gitlab-org/gitlab !255300** (Ruby, +797 −3 · 11 ficheros, 6146★): Las identidades revocadas de una clave GPG ya no se listan ni se aceptan como correos verificados, así que un commit firmado con un UID revocado deja de mostrarse como Verified; cubierto por specs con fixtures nuevos de GnuPG. (GitLab, https://gitlab.com/gitlab-org/gitlab/-/merge_requests/255300)
- **henrygd/beszel #2327** (Go, +273 −0 · 3 ficheros, 25798★): Añadió TRUSTED_PROXY_IPS, una lista de IP/CIDR permitidas para que la cabecera de autenticación de confianza solo se acepte desde el proxy inverso, y la documentó. (GitHub, https://github.com/henrygd/beszel/pull/2327)
- **acmesh-official/acme.sh #7237** (Shell, +3 −0 · 1 fichero, 47735★): Corrigió que el modo DNS manual reutilizara el certificado anterior al renovar (y fallara en la primera emisión) consultando el pedido ACME creado en la ejecución actual. (GitHub, https://github.com/acmesh-official/acme.sh/pull/7237)
- **modelcontextprotocol/rust-sdk #1300** (Rust, +371 −9 · 6 ficheros, 3957★): Los campos decimales ahora se decodifican a través de serde_json::Number, así que un build que activa arbitrary_precision de serde_json (el Codex CLI de OpenAI es uno) ya no pierde resultados de herramientas, notificaciones de progreso ni peticiones de sampling con decimales; con tests. (GitHub, https://github.com/modelcontextprotocol/rust-sdk/pull/1300)

## Código y documentación

- **GitLab Go client** (GitLab): 15 fusionadas · 2 abiertas
  - gitlab-org/api/client-go !3063 feat: fix the defects and gaps recorded against the GitLab API [+9641 −1090 · 141 ficheros] (abierta, en revisión)
  - gitlab-org/api/client-go !3053 feat(snippets): add the four fields the snippet entity sends to Snippet [+32 −6 · 3 ficheros] (fusionada en 1 día)
  - gitlab-org/api/client-go !3052 feat(packages): add ConanPackageName, CreatorID and Versions to Package [+186 −0 · 3 ficheros] (fusionada en 15 días)
  - gitlab-org/api/client-go !3051 feat(namespaces): add the eight fields the namespace entity sends to Namespace [+60 −29 · 2 ficheros] (fusionada en 5 días)
  - gitlab-org/api/client-go !3050 feat(events): add Imported, ImportedFrom and WikiPage to both event structs [+169 −40 · 2 ficheros] (fusionada en 5 días)
  - gitlab-org/api/client-go !3049 feat(deploy_keys): add LastUsedAt and UsageType to both deploy key structs [+13 −1 · 2 ficheros] (fusionada en 1 día)
  - gitlab-org/api/client-go !3048 feat(system_hooks): add seven fields GitLab sends to the Hook struct [+80 −34 · 2 ficheros] (abierta, en revisión)
  - gitlab-org/api/client-go !3047 feat(group_serviceaccounts): add PublicEmail and UnconfirmedEmail to GroupServiceAccount [+40 −4 · 2 ficheros] (fusionada en 12 h)
  - gitlab-org/api/client-go !3046 fix(group_scim): correct the GroupSCIMIdentity json tag to extern_uid [+14 −3 · 2 ficheros] (fusionada en 6 h)
  - gitlab-org/api/client-go !3045 feat(secure_files): add FileExtension to SecureFile [+13 −4 · 2 ficheros] (fusionada en 16 h)
  - Se muestran las 10 más recientes. [Todas mis merge requests a gitlab-org/api/client-go en GitLab](https://gitlab.com/gitlab-org/api/client-go/-/merge_requests?author_username=jmrp&state=all)
- **MCP Rust SDK** (GitHub): 1 fusionada
  - modelcontextprotocol/rust-sdk #1300 fix(model): decode float fields through serde_json::Number [+371 −9 · 6 ficheros] (fusionada en 1 día)
- **MCP Go SDK** (GitHub): 5 fusionadas · 3 abiertas
  - modelcontextprotocol/go-sdk #1293 mcp: extend the write deadline on every write to a keep-alive stream [+112 −1 · 2 ficheros] (abierta, en revisión)
  - modelcontextprotocol/go-sdk #1274 mcp: record the negotiated protocol version on every path that records one [+167 −12 · 6 ficheros] (fusionada en 6 días)
  - modelcontextprotocol/go-sdk #1273 mcp: refuse a call on a legacy session before initialize [+166 −4 · 2 ficheros] (fusionada en 2 días)
  - modelcontextprotocol/go-sdk #1269 mcp: add HasParams so middleware can tell whether params are present [+88 −3 · 5 ficheros] (fusionada en 22 h)
  - modelcontextprotocol/go-sdk #1268 mcp: classify the per-request protocol version by membership [+140 −8 · 3 ficheros] (fusionada en 22 h)
  - modelcontextprotocol/go-sdk #1267 mcp: send no response for a request the peer cancelled [+439 −14 · 9 ficheros] (abierta, en revisión)
  - modelcontextprotocol/go-sdk #1266 mcp: choose the interaction pattern from the negotiated protocol version [+417 −10 · 4 ficheros] (abierta, en revisión)
  - modelcontextprotocol/go-sdk #1255 mcp: carry a cancelled notification's reason as the request's cancel cause [+102 −7 · 3 ficheros] (fusionada en 2 días)
- **GitLab** (GitLab): 11 fusionadas · 5 abiertas
  - gitlab-org/cells/http-router !1354 Sync routes snapshot: add the merge request cancel_auto_merge API route [+68 −38 · 2 ficheros] (fusionada en 1 h)
  - gitlab-org/gitlab !256936 Expose the instance plan in the metadata API [+203 −3 · 17 ficheros] (abierta, en revisión)
  - gitlab-org/gitlab !255704 Document and deprecate cancel_merge_when_pipeline_succeeds [+82 −154 · 5 ficheros] (abierta, en revisión)
  - gitlab-org/gitlab !255702 Add cancel_auto_merge merge request API endpoint [+325 −1 · 7 ficheros] (abierta, en revisión)
  - gitlab-org/gitlab !255300 Ignore revoked UIDs when listing the identities of a GPG key [+797 −3 · 11 ficheros] (fusionada en 9 días)
  - gitlab-org/gitlab !254699 Fix two project group listing response entity annotations [+25 −25 · 2 ficheros] (abierta, en revisión)
  - gitlab-org/gitlab !254698 Fix three job token scope response entity annotations [+24 −6 · 2 ficheros] (fusionada en 4 días)
  - gitlab-org/gitlab !254552 Document the snippet clone URLs and the public snippet import fields [+60 −20 · 2 ficheros] (fusionada en 14 días)
  - gitlab-org/gitlab !254547 Document conan_package_name and correct the package versions object [+19 −14 · 1 fichero] (fusionada en 13 días)
  - gitlab-org/gitlab !254543 Document the namespace compute minute and storage attributes [+8 −1 · 1 fichero] (fusionada en 13 días)
  - Se muestran las 10 más recientes. [Todas mis merge requests a gitlab-org/gitlab en GitLab](https://gitlab.com/gitlab-org/gitlab/-/merge_requests?author_username=jmrp&state=all)
- **Renovate** (GitHub): 1 fusionada
  - renovatebot/renovate #45901 docs(hostRules): replace the stale matchHost port warning [+5 −4 · 1 fichero] (fusionada en 1 h)
- **Beszel** (GitHub): 2 fusionadas
  - henrygd/beszel #2327 feat(hub): add TRUSTED_PROXY_IPS allowlist for TRUSTED_AUTH_HEADER [+273 −0 · 3 ficheros] (fusionada en 6 días)
  - henrygd/beszel-docs #82 docs: document TRUSTED_PROXY_IPS for the trusted auth header [+9 −0 · 1 fichero] (fusionada en 6 días)
- **Trilium Notes** (GitHub): 2 fusionadas
  - TriliumNext/Trilium #11448 TOTP: accept each code only once, and one time step of clock drift [+162 −29 · 6 ficheros] (fusionada en 12 h)
  - TriliumNext/Trilium #11368 Markdown: register slash commands as completion sources instead of a second autocompletion extension [+265 −202 · 2 ficheros] (fusionada en 11 h)
- **Podman** (GitHub): 1 fusionada
  - podman-container-tools/podman #29730 Document rootless bind-mount access through an unmapped parent [+24 −0 · 1 fichero] (fusionada en 7 días)
- **acme.sh** (GitHub): 1 fusionada
  - acmesh-official/acme.sh #7237 Poll the order this run created, not the one the previous cert came from [+3 −0 · 1 fichero] (fusionada en 4 días)
- **Nginx Proxy Manager** (GitHub): 1 fusionada
  - NginxProxyManager/nginx-proxy-manager #5836 Invalidate tokens issued before a password change [+85 −1 · 4 ficheros] (fusionada en 2 días)
- **OpenModScan** (GitHub): 1 fusionada
  - sanny32/OpenModScan #74 Wire --version and --help flags to existing display functions [+51 −3 · 6 ficheros] (fusionada en 2 días)
- **Portainer MCP** (GitHub): 1 fusionada
  - portainer/portainer-mcp #45 feat: add local (non-edge) Docker Compose stack management tools [+2450 −2 · 17 ficheros] (fusionada en 1 día)
- **al-folio** (GitHub): 3 fusionadas
  - alshedivat/al-folio #1339 CV Restyled [+350 −14 · 7 ficheros] (fusionada en 83 días)
  - alshedivat/al-folio #481 Better SEO, OpenGraph, schema.org and clean generated code [+899 −605 · 31 ficheros] (fusionada en 30 días)
  - alshedivat/al-folio #436 Update deploy.yml [+1 −1 · 1 fichero] (fusionada en 2 días)
- **YunoHost coturn** (GitHub): 1 fusionada
  - YunoHost-Apps/coturn_ynh #17 Minor bug cron_coturn [+1 −1 · 1 fichero] (fusionada en 8 h)
- **webpage** (GitHub): 1 abierta
  - probe-rs/webpage #301 Fix the Olimex udev rules: drop the 0x prefix [+4 −4 · 1 fichero] (abierta, en revisión)
- **OpenCloud** (GitHub): 1 abierta
  - opencloud-eu/web-extensions #575 docs(maps): explain where the location data comes from [+21 −0 · 1 fichero] (abierta, en revisión)
- **Kong** (GitHub): 1 abierta
  - Kong/kong #15019 fix(dns): do not cache answers with a zero TTL [+56 −2 · 3 ficheros] (abierta, en revisión)
- **webdav-client** (GitHub): 1 abierta
  - perry-mitchell/webdav-client #418 fix: keep the whole reason phrase in stat errors [+58 −2 · 3 ficheros] (abierta, en revisión)
- **Glance** (GitHub): 1 abierta
  - glanceapp/glance #1075 Fall back to the feed URL when a feed's own link is relative [+74 −18 · 2 ficheros] (abierta, en revisión)
- **Electron asar** (GitHub): 1 abierta
  - electron/asar #464 fix: extract archives with 2 GiB or more of data [+172 −56 · 3 ficheros] (abierta, en revisión)
- **go-selfupdate** (GitHub): 1 abierta
  - creativeprojects/go-selfupdate #58 fix: replace unmaintained golang.org/x/crypto/openpgp with ProtonMail fork [+19 −8 · 5 ficheros] (abierta, en revisión)

No fusionadas (14), solo se cuentan

## Distribución y listados

- **phonometry**: [conda-forge](https://github.com/conda-forge/staged-recipes) (en revisión), [awesome-python-scientific-audio](https://github.com/faroit/awesome-python-scientific-audio) (fusionada), [awesome-acoustic](https://github.com/Nitnelav/awesome-acoustic) (fusionada)
- **gitlab-mcp-server**: [Docker MCP Registry](https://github.com/docker/mcp-registry) (en revisión), [winget](https://github.com/microsoft/winget-pkgs) (8 fusionadas), [awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers) (fusionada)
- **libgen-mcp**: [Docker MCP Registry](https://github.com/docker/mcp-registry) (en revisión), [winget](https://github.com/microsoft/winget-pkgs) (en revisión)
- **mikroscope**: [awesome-mikrotik](https://github.com/jlbyh2o/awesome-mikrotik) (en revisión)
- **cs-routeros-bouncer**: [awesome-crowdsec](https://github.com/wolffcatskyy/awesome-crowdsec) (fusionada), [CrowdSec Hub](https://github.com/crowdsecurity/hub) (2 fusionadas)

## Respuestas aceptadas en GitHub Discussions (17)

- garethgeorge/backrest #1398: [Using date in backup path possible?](https://github.com/garethgeorge/backrest/discussions/1398#discussioncomment-18615649)
- haugene/docker-transmission-openvpn #3042: [I've clearly misconfigured something...](https://github.com/haugene/docker-transmission-openvpn/discussions/3042#discussioncomment-18615420)
- starship/starship #7750: [Is the COPR for Fedora having issues?](https://github.com/starship/starship/discussions/7750#discussioncomment-18614615)
- lemker/unifi-os-server #209: [does it work on hosts without systemd?](https://github.com/lemker/unifi-os-server/discussions/209#discussioncomment-18606653)
- jeffvli/feishin #2536: [Firewall Settings for DLNA Discovery](https://github.com/jeffvli/feishin/discussions/2536#discussioncomment-18605963)
- opencloud-eu/opencloud #3587: [How to use what kind of geotagged images with maps app?](https://github.com/opencloud-eu/opencloud/discussions/3587#discussioncomment-18605569)
- podman-container-tools/podman #29817: [How does Podman work with the different firewall providers? I can't access a web server migrated from Docker.](https://github.com/podman-container-tools/podman/discussions/29817#discussioncomment-18586958)
- borgbase/vorta #2561: [Share backup with 2 users](https://github.com/borgbase/vorta/discussions/2561#discussioncomment-18582580)
- fosrl/pangolin #3792: [Wildcard also routes pangolin...](https://github.com/fosrl/pangolin/discussions/3792#discussioncomment-18580425)
- chaitin/SafeLine #1319: [Bot Protect Break Phone Apps](https://github.com/chaitin/SafeLine/discussions/1319#discussioncomment-18403164)
- podman-container-tools/podman #29710: [Mounting a group-writable folder into a systemd controlled quadlet for an unprivileged user](https://github.com/podman-container-tools/podman/discussions/29710#discussioncomment-18342497)
- podman-container-tools/podman #29443: [bind mount path traversal depends on subuid mapping, not just DAC permissions](https://github.com/podman-container-tools/podman/discussions/29443#discussioncomment-18338360)
- Siteimprove/alfa #2171: [How do you handle difficult-to-reproduce accessibility rule discrepancies in Alfa?](https://github.com/Siteimprove/alfa/discussions/2171#discussioncomment-18308548)
- fosrl/pangolin #3698: [Way to bypass auth for some subdomains in wildcard resource?](https://github.com/fosrl/pangolin/discussions/3698#discussioncomment-18303155)
- forwardemail/forwardemail.net #525: [How to not forward plus addressing to an alias?](https://github.com/forwardemail/forwardemail.net/discussions/525#discussioncomment-18283966)
- 11ty/buildawesome #4284: [Removing the trailing "/" of the domain specified in metadata.js](https://github.com/11ty/buildawesome/discussions/4284#discussioncomment-18280354)
- l5yth/potato-mesh #574: ["Map tiles unavailable"](https://github.com/l5yth/potato-mesh/discussions/574#discussioncomment-15285004)

17 aceptadas de 78 discusiones respondidas en 55 repositorios. Cada una enlaza a su hilo; no se publica quién aceptó cada respuesta.

## Issues reportadas (44: 24 abiertas, 20 cerradas)

- MCP Go SDK: 8 abiertas · 5 cerradas
- potato-mesh: 2 cerradas
- meshmonitor: 2 cerradas
- MCP Rust SDK: 1 cerrada
- elasticsearch8_ynh: 1 abierta
- bats-core: 1 abierta
- mcp-marketplace: 1 abierta
- go-selfupdate: 1 abierta
- DNN-HA: 1 abierta
- rest-api-description: 1 abierta
- ecko: 1 abierta
- metatext: 1 abierta
- Kong: 1 abierta
- codex: 1 abierta
- asu: 1 abierta
- webdav-client: 1 abierta
- csv-to-md-table-action: 1 abierta
- htmlbeautifier: 1 abierta
- acoustic-toolbox: 1 cerrada
- Portainer MCP: 1 cerrada
- CrowdSec Hub: 1 cerrada
- homeassistant-edata: 1 cerrada
- pixelfed: 1 cerrada
- pixelfed_ynh: 1 cerrada
- YunoHost coturn: 1 cerrada
- repository-mirroring-action: 1 cerrada
- al-folio: 1 cerrada
- papercite: 1 cerrada
- GitLab: 1 abierta
- GitLab Go client: 1 abierta

## Logros en GitHub y GitLab

- **Pull Shark** x4 (GitHub): Oro, nivel máximo
- **Galaxy Brain** x3 (GitHub): Plata
- **Pair Extraordinaire** x3 (GitHub): Plata; 33 de 48 (estimado)
- **Starstruck** (GitHub): Base; 118 de 128 (estimado)
- **Level 3 Contributor** (GitLab): otorgado el 14 de septiembre de 2026

De GitHub solo se muestran estos. Ocultos a propósito: Quickdraw, YOLO, Arctic Code Vault Contributor y Public Sponsor.


Preguntas que responde:

**¿A qué proyectos de código abierto ha contribuido José Manuel Requena Plens?**

A proyectos que no mantiene, en GitHub y GitLab, donde se ha fusionado código o documentación suya: entre ellos GitLab y su cliente oficial de Go, los SDK oficiales de MCP para Go y Rust, Trilium Notes, Nginx Proxy Manager, Beszel, acme.sh, Podman y Renovate. La página lista cada pull request y merge request por proyecto, con su estado y su tamaño.

**¿Qué contribuciones destacan?**

Correcciones de seguridad aceptadas en el proyecto original: códigos TOTP de un solo uso en Trilium Notes, sesiones cerradas al cambiar la contraseña en Nginx Proxy Manager, identidades GPG revocadas que GitLab deja de aceptar como verificadas y una lista de proxies de confianza en Beszel. También correcciones de protocolo en los SDK oficiales de MCP para Go y Rust.

**¿De dónde salen estas cifras?**

De GitHub y GitLab directamente: la parte de GitHub la recoge ghchronicle, su propio recolector de código abierto, y la de GitLab sale de la API de GitLab. Cada fila enlaza a su pull request o merge request, así que cualquier cifra se puede comprobar en su origen, y los repositorios privados no aparecen nunca.
