(no title)
agwa | 1 month ago
Great, so now GitHub can't change the structure of their IDs without breaking this person's code. The lesson is that if you're designing an API and want an ID to be opaque you have to literally encrypt it. I find it really demoralizing as an API designer that I have to treat my API's consumers as adversaries who will knowingly and intentionally ignore guidance in the documentation like this.
krisoft|1 month ago
And that is all the fault of the person who treated a documented opaque value as if it has some specific structure.
> The lesson is that if you're designing an API and want an ID to be opaque you have to literally encrypt it.
The lesson is that you should stop caring about breaking people’s code who go against the documentation this way. When it breaks you shrug. Their code was always buggy and it just happened to be working for them until then. You are not their dad. You are not responsible for their misfortune.
> I find it really demoralizing as an API designer that I have to treat my API's consumers as adversaries who will knowingly and intentionally ignore guidance in the documentation like this.
You don’t have to.
vlovich123|1 month ago
Even in OSS land, you risk alienating the community you’ve built if they’re meaningfully impact. You only do this if the impact is minimal or you don’t care about alienating anyone using your software.
halestock|1 month ago
Sure, but good luck running a business with that mindset.
maxbond|1 month ago
lelandfe|1 month ago
bigblind|1 month ago
Other than that, I agree with what others are saying. If people rely on some undocumented aspect of your IDs, it's on them if that breaks.
plorkyeran|1 month ago
Macha|1 month ago
https://docs.github.com/en/graphql/reference/objects#pullreq...
OP’s requirements changed and they hadn’t stored them during their crawl
kevin_thibedeau|1 month ago
OP can put the decoded IDs into a new column and ignore the structure in the future. The problem was presumably mass querying the Github API to get those numbers needed for functional URLs.
vlovich123|1 month ago
cush|1 month ago
haileys|1 month ago
You don't need encryption, a global_id database column with a randomly generated ID will do.
maxbond|1 month ago
nwallin|1 month ago
lijok|1 month ago
No, you would call me a moron and tell me to go pound sand.
Weird systems were never supported to begin with.
perfmode|1 month ago
whateveracct|1 month ago