Open mjuez-ubu opened 6 years ago
He estado haciendo pruebas con la librería @octokit/rest.js
, y resulta que sigo obteniendo el error 500, así que el motivo no es que la antigua librería se hubiese quedado obsoleta.
Me he puesto a probar la librería de forma aislada, y he podido observar que funciona correctamente si NO se utiliza autenticación, en el momento en el que utilizo autenticación (permite aumentar el límite de peticiones, recordemos #20), obtengo error 500 de nuevo.
Voy a probar a crear unas claves de aplicación nuevas a ver, y también voy a revisar si hay algun tipo de log asociado a las credenciales que uso actualmente, por si se estuviese aplicando algun tipo de restricción a mi cuenta por parte de GitHub.
Tras revisar la configuración de mis aplicaciones OAuth, crear nuevas credenciales, etc. El problema seguía ocurriendo, por lo que empecé a pensar que podría no se problema mío o de la librería, sino directamente de la API REST de GitHub, así que decidí enviar un correo electrónico al grupo de soporte. Me han contestado que efectivamente parece ser un error de su lado y que van a crear una incidencia interna para investigarlo y solucionarlo, aunque no me dan fecha estimada. Cito lo que me ha contestado Ivan Žužak:
Thanks so much for reporting this, Mario -- that looks like a bug on our end so I've opened an internal issue so that the team can investigate. I can't promise an ETA, but we'll followup as soon as there's any news.
Best, Ivan
Por el momento, mantengo esta incidencia abierta hasta tener nuevas noticias, aunque que todo parece indicar que el problema no es de nuestra aplicación. Aun así, esto ha servido para hacer un pequeño mantenimiento y actualizar a la nueva librería @octokit/rest, también para ver la constante evolución de tecnologías como por ejemplo TypeScript, ya que actualmente el editor de código es capaz de resaltar algunos pequeños defectos o malas prácticas que pasaron desapercibidas en el momento de desarrollo del proyecto.
Cito también el correo que les envié para tenerlo aquí por si puede ser de interés en el futuro:
Hello, I am trying to retrieve all reviews from a pull request using the REST API. If I call the API without any authentication method, it works fine, for example (using a pull request from elasticsearch repository):
curl "https://api.github.com/repos/elastic/elasticsearch/pulls/29229/reviews"
returns the reviews of that pull request (as expected):
[{ "id": 106648787, "user": { "login": "javanna", "id": 832460, "avatar_url": "https://avatars1.githubusercontent.com/u/832460?v=4", "gravatar_id": "", "url": "https://api.github.com/users/javanna", "html_url": "https://github.com/javanna", "followers_url": "https://api.github.com/users/javanna/followers", "following_url": "https://api.github.com/users/javanna/following{/other_user}", "gists_url": "https://api.github.com/users/javanna/gists{/gist_id}", "starred_url": "https://api.github.com/users/javanna/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/javanna/subscriptions", "organizations_url": "https://api.github.com/users/javanna/orgs", "repos_url": "https://api.github.com/users/javanna/repos", "events_url": "https://api.github.com/users/javanna/events{/privacy}", "received_events_url": "https://api.github.com/users/javanna/received_events", "type": "User", "site_admin": false }, "body": "I did a first pass and left some comments, thanks @tomcallahan !", "state": "CHANGES_REQUESTED", "html_url": "https://github.com/elastic/elasticsearch/pull/29229#pullrequestreview-106648787", "pull_request_url": "https://api.github.com/repos/elastic/elasticsearch/pulls/29229", "author_association": "MEMBER", "_links": { "html": { "href": "https://github.com/elastic/elasticsearch/pull/29229#pullrequestreview-106648787" }, "pull_request": { "href": "https://api.github.com/repos/elastic/elasticsearch/pulls/29229" } }, "submitted_at": "2018-03-23T21:36:35Z", "commit_id": "418225f05fcd58e122b8079fcda1dba70802a21f" }]
The problem comes when I try to retrieve the same information but using OAuth app credentials (Client ID + Client Secret):
curl "https://api.github.com/repos/elastic/elasticsearch/pulls/29229/reviews?client_id=MY_OAUTH_APP_CID&client_secret=MY_OAUTH_APP_CSECRET"
it always returns the following:
{ "message": "Server Error", "documentation_url": "https://developer.github.com/v3/pulls/reviews/#list-reviews-on-a-pull-request" }
Retrieving other resources like review comments using authentication credentials works without any problem, so, what am I doing wrong? Is this the expected behaviour?
Thank you in advance for your help. Mario.
La librería nodejs que ofrecía GitHub para hacer uso de su API (node-github) ya no se llama así, ahora es @octokit/rest.js. Por ello, la librería que utilizamos ha dejado de desarrollarse y se ha quedado desactualizada.
Al parecer la forma en la que obtenía las revisiones de una pull request la antigua librería ya no funciona bien, y si una pull request tiene revisiones, en lugar de obtenerlas, viene un error 500:
Voy a intentar cambiar la librería por la nueva, espero que funcione de forma similar y conserve las interfaces.