curl
Introduction
An introduction to curl using GitHub's API
The Basics
Makes a basic GET request to the specifed URI
Includes HTTP-Header information in the output
Pass user credential to basic auth to access protected resources like a users starred gists, or private info associated with their profile
Passing just the username without the colon (:
) will cause you to be prompted for your account password. This avoids having your password in your command line history
POST
Use the --request
(-X
) flag along with --data
(-d
) to POST data
Of course --data
implies POST so you don't have to also specify the --request
flag
Here is an example that uses the old GitHub API (v2). You can use multiple --data
flags
The post data gets combined into one so you can also just combine them yourself into a single --data
flag
You can tell curl to read from a file (@
) to POST data
Or it can read from STDIN (@-
)
Headers
Often when POSTing data you'll need to add headers for things like auth tokens or setting the content type. You can set a header using -H
.
Dealing with HTTPS
If an API doens't have an SSL cert but is using HTTPS you can tell curl to ignore the security by using --insecure
. Be warned this is a very "insecure" thing to do and is only listed here for "educational purposes".
For my own reference mostly, here is where I first learned about using --insecure
https://github.com/wayneeseguin/rvm/issues/1684
OAuth
The first thing to know is that your API Token (found in https://github.com/settings/admin) is not the same token used by OAuth. They are different tokens and you will need to generate an OAuth token to be authorized.
Follow the API's instructions at http://developer.github.com/v3/oauth/ under the sections "Non-Web Application Flow" and "Create a new authorization" to become authorized.
Note: Use Basic Auth once to create an OAuth2 token http://developer.github.com/v3/oauth/#oauth-authorizations-api
This will prompt you for your GitHub password and return your OAuth token in the response. It will also create a new Authorized application in your account settings https://github.com/settings/applications
Now that you have the OAuth token there are two ways to use the token to make requests that require authentication (replace "OAUTH-TOKEN" with your actual token)
List the authorizations you already have
Resources
HTTParty - Ruby library that makes it easy to create HTTP requests https://github.com/jnunemaker/httparty
Hurl IT - An open source web application to play with curl options http://hurl.it
Last updated