Skip to content

Instantly share code, notes, and snippets.

GitHub OAuth Busy Developer's Guide

This is a quick guide to OAuth2 support in GitHub for developers. This is still experimental and could change at any moment. This Gist will serve as a living document until it becomes finalized at Develop.GitHub.com.

OAuth2 is a protocol that lets external apps request authorization to private details in your GitHub account without getting your password. All developers need to register their application before getting started.

Web Application Flow

  • Redirect to this link to request GitHub access:
/ swap algorithm example
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
class CRectangle {
int x, y;
public:
void set_values (int,int);
@aaronblohowiak
aaronblohowiak / gist:1848613
Created February 16, 2012 23:06
microbenchmarks are dumb
require 'rubygems'
require 'tach'
Tach.meter(1_000_000) do
tach('double') do
"path"
end
tach('single') do
'path'
end
@aaronblohowiak
aaronblohowiak / gist:1227358
Created September 19, 2011 19:36
suggested api for auto_sha
var redis = require("redis"),
client = redis.createClient();
client.auto_sha = true; /* enable transparent sha1 cache and retry of all calls to eval */
client.eval("return 1;", 0, function(err, num){..});
/* checks client.auto_sha and will then look up sha in redis.sha1cache,
failing that will sha1 the script and cache it.
Perform the evalsha with an auto-fallback to eval if redis returns sha1 not found.
//Various settings.
var Client = require('mysql').Client;
client = new Client();
TEST_DATABASE = 't_voice';
TEST_TABLE = 't_calls';
client.host = 'database.domain.com';
client.user = 'auser';
client.password = 'apassword';
client.connect();
client.query('USE '+TEST_DATABASE);
@aaronblohowiak
aaronblohowiak / gist:945332
Created April 27, 2011 22:04 — forked from chrismatthieu/gist:945280
Tropo Node.JS Transcription Example
/**
* Showing with the Express framwork http://expressjs.com/
* Express must be installed for this sample to work
* npm install express
* npm install tropo-webapi
*/
var tropoapi = require('tropo-webapi');
var express = require('express');
var app = express.createServer();
%a{href:"##{controller}"}= controller
:if action && action !== 'index'
&gt;
var NodeSession = function(id, params, channels) {
sys.puts(sys.inspect([id, params, channels]));
this.session_id = id;
this.creationParams = params;
this.channels = channels;
this.outboundQueue = [];
var self = this;
this.receiveMessage = function(channel, data) {
self.receiveMessageUnbound(channel, data);
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Test</title>
</head>
<body id="test">
<script>
function jaredsCreate(){
HOST = null; // localhost
PORT = 80; //run it as root, numb-nuts!!!
sys = require("sys");
createServer = require("http").createServer;
readFile = require("fs").readFile;
url = require("url");
function Connection(request, response){