Authenticated Conditional Requests For Search Queries

I am building an app that searches for specific project names and then reports back the most prolific users, repos submitters, most forked etc.  I have bee using a setTimeout() promisified function to stay under the unauthenticated rate limiting of 10/min but am ready to go to next step and attempt scale.  I am searching for a definitive answer on:
1.) What is current reccommened authentication protocol?  I see basic, client id/secret, OAuth and personal access token.  I have access to all but am unsure what the current best practice is.

2.) Is there an example anywhere on conditional requests so as not to trigger catch errors?

3.) I would like to search by repo name, users and code by users.  

Thanks in advance