Is it OK to use API to recommend repositories to my users?

I’m trying to figure out what is and isn’t OK in terms of using data from the API.

Specifically, could I recommend a repo to my user that says something like this, using the title and description of the repo that I get from the API? (Assuming this would link to GitHub)
“You might like this repo:
facebook/react
A declarative, efficient, and flexible JavaScript library for building user interfaces.”

Thanks for your help!

I can’t provide you with a definitive nor official answer, but I can share some thoughts about this.

Bu itself, the act of using the API to extract info about your account activity and projects doesn’t seem to violate other’s privacy in any way.

The real questions is the general context by which you inform your users. If it’s via emails that are autogenerated via script automation, then you’re dealing with bulk mailing, and possibly unsolicited mails too, which is the core definition of SPAM, regardless of quantities.

Other factors to keep into consideration are cross-service communications, which add more questions to the whole endeavor. Also, many of these services might not allow posting auto-generated message, according to EULA.

Also, scale matters in this. E.g. if I’m making an announcement in a repository Issue of Discussion and decide to buzz (i.e. mention via @) some close collaborators, that’s usually considered normal. But if I were to add a list of 10.000 users mentions, that would be a far fetch use (or abuse) of the feature.

Guidelines are there to do exactly what they promise, show you how features were intended to use, what is deemed as abuse, and so on. Usually, good judgement is a good enough to know how these apply to use cases, but sometimes is better to take into consideration all factors, especially when planning to do cross-service communications, like in this case.

1 Like

Thanks!! That all generally makes sense. I also found https://up-for-grabs.net/, which is maintained by someone from Github, and this clears things up for me. My use case in mind is similar.