google / go-github

Go library for accessing the GitHub v3 API
https://pkg.go.dev/github.com/google/go-github/v66/github
BSD 3-Clause "New" or "Revised" License
10.45k stars 2.07k forks source link

Some API calls that are defined as taking `int`s in the GitHub spec are strings in this library #3269

Open danhcole opened 2 months ago

danhcole commented 2 months ago

See https://github.com/google/go-github/pull/3265#discussion_r1761345637 for context.

Happy to take the work to fix this, filing an issue for tracking.

Question about ergonomics, though... the current library (as well as the GitHub API spec[0]) return the thread ID as a string. Changing the library to match the spec makes it a bit more annoying to do something like 'get a thread -> call an API on that thread', since this will now require converting the returned string to an int.

Given that this 'problem' is present in the API spec, I'm inclined to match the spec, but want to double check that this is the desired behavior of this project.

[0] From https://docs.github.com/en/rest/activity/notifications?apiVersion=2022-11-28#get-a-thread

{
  "title": "Thread",
  "description": "Thread",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    ...
gmlewis commented 2 months ago

OK, that's really odd. First, I would suggest contacting GitHub tech support to see if they have any recommendations. If they don't, then I'm wondering if we should leave #3265 like you originally wrote it, using a string for the thread ID?

danhcole commented 2 months ago

I opened up a case with them to see what they say. Depending on what they say, I would still lean to following their API schema, even at the expense of ease-of-use, but that's a pretty weakly held opinion, if others feel strongly.