Comparing version 0.4.0 to 0.4.2
{ | ||
"name": "octokat", | ||
"version": "0.4.0", | ||
"version": "0.4.2", | ||
"description": "Javascript GitHub client for NodeJS or a browser using promises or callbacks", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
201
README.md
@@ -13,6 +13,7 @@ # Octokat.js [![Build Status](https://travis-ci.org/philschatz/octokat.js.png)](https://travis-ci.org/philschatz/octokat.js) | ||
- [Usage](#usage) | ||
- [Examples](#examples) | ||
- [Using Callbacks or Promises](#using-callbacks-or-promises) | ||
- [Read/Write/Remove a File](#read-write-remove-a-file) | ||
- [Setup](#setup) | ||
- [Promises (Optional)](#promises-optional) | ||
- [Preview new APIs](#preview-new-apis) | ||
- [Enterprise APIs](#enterprise-apis) | ||
- [Advanced](#advanced-uses) | ||
@@ -23,2 +24,4 @@ - [Promises or Callbacks](#promises-or-callbacks) | ||
- [Paged Results](#paged-results) | ||
- [Preview new APIs](#preview-new-apis) | ||
- [Enterprise APIs](#enterprise-apis) | ||
- [Development](#development) | ||
@@ -110,30 +113,106 @@ | ||
octo.me.starred('philschatz', 'octokat.js').add(cb); // Star a repo | ||
octo.me.starred('philschatz', 'octokat.js').remove(cb); // Un-Star a repo | ||
``` | ||
## Using Generators in Node.js 0.11 (or EcmaScript 6 browsers) | ||
## Using bower | ||
This requires Node.js 0.11 with the `--harmony-generators` flag: | ||
This file can be included using the bower package manager: | ||
bower install octokat --save | ||
# Examples | ||
Here are some examples for using the library. | ||
## Using Callbacks or Promises | ||
```js | ||
var co = require('co'); | ||
var Octokat = require('octokat'); | ||
var octo = new Octokat(); | ||
var fn = function *() { | ||
var zen = yield octo.zen.read(); | ||
var info = yield octo.repos('philschatz', 'octokat.js').fetch(); | ||
// Starring a repository using callbacks | ||
var cb = function (err, val) { console.log(val); }; | ||
octo.me.starred('philschatz', 'octokat.js').add(cb); | ||
console.log(zen); | ||
console.log(info); | ||
// Starring a repository using Promises | ||
octo.me.starred('philschatz', 'octokat.js').add() | ||
.then(function(val) { | ||
console.log('Starred!'); | ||
}); | ||
``` | ||
## Read/Write/Remove a File | ||
To read the contents of a file: | ||
```js | ||
var octo = new Octokat(); | ||
var repo = octo.repos('philschatz', 'octokat.js'); | ||
repo.contents('README.md').read() // Use `.read` to get the raw file. | ||
.then(function(contents) { // `.fetch` is used for getting JSON | ||
console.log(contents); | ||
}); | ||
``` | ||
To read the contents of a binary file: | ||
```js | ||
var octo = new Octokat(); | ||
var repo = octo.repos('philschatz', 'octokat.js'); | ||
repo.contents('README.md').readBinary() // Decodes the Base64-encoded content | ||
.then(function(contents) { | ||
console.log(contents); | ||
}); | ||
``` | ||
To read the contents of a file and JSON metadata: | ||
```js | ||
var octo = new Octokat(); | ||
var repo = octo.repos('philschatz', 'octokat.js'); | ||
repo.contents('README.md').fetch() | ||
.then(function(info) { | ||
console.log(info.sha, info.content); | ||
}); | ||
``` | ||
To update a file you need the **blob SHA** of the previous commit: | ||
```js | ||
var octo = new Octokat({token: 'API_TOKEN'}); | ||
var repo = octo.repos('philschatz', 'octokat.js'); | ||
var config = { | ||
message: 'Updating file', | ||
content: base64encode('New file contents'), | ||
sha: '123456789abcdef', // the blob SHA | ||
// branch: 'gh-pages' | ||
}; | ||
co(fn)(); | ||
repo.contents('README.md').add(config) | ||
.then(function(info) { | ||
console.log('File Updated. new sha is ', info.commit.sha); | ||
}); | ||
``` | ||
## Using bower | ||
Creating a new file is the same as updating a file but the `sha` field in the config is omitted. | ||
This file can be included using the bower package manager: | ||
To remove a file: | ||
bower install octokat --save | ||
```js | ||
var octo = new Octokat({token: 'API_TOKEN'}); | ||
var repo = octo.repos('philschatz', 'octokat.js'); | ||
var config = { | ||
message: 'Removing file', | ||
sha: '123456789abcdef', | ||
// branch: 'gh-pages' | ||
}; | ||
repo.contents('README.md').remove(config) | ||
.then(function() { | ||
console.log('File Updated'); | ||
}); | ||
``` | ||
# Setup | ||
@@ -143,10 +222,12 @@ | ||
<script src="../dist/octokat.js"></script> | ||
<script> | ||
var octo = new Octokat(); | ||
octo.zen.read(function(err, message) { | ||
if (err) { throw new Error(err); } | ||
alert(message); | ||
}); | ||
</script> | ||
```html | ||
<script src="../dist/octokat.js"></script> | ||
<script> | ||
var octo = new Octokat(); | ||
octo.zen.read(function(err, message) { | ||
if (err) { throw new Error(err); } | ||
alert(message); | ||
}); | ||
</script> | ||
``` | ||
@@ -165,30 +246,8 @@ ## Promises (Optional) | ||
<script src="./node_modules/es6-promise/dist/promise-0.1.2.js"></script> | ||
<script src="./octokat.js"> | ||
# Preview new APIs | ||
To use the APIs available for preview just add a `acceptHeader` when instantiating Octokat. | ||
For example: | ||
```js | ||
var octo = new Octokat({ | ||
token: 'API_TOKEN' | ||
acceptHeader: 'application/vnd.github.cannonball-preview+json' | ||
}); | ||
```html | ||
<script src="./node_modules/es6-promise/dist/promise-0.1.2.js"></script> | ||
<script src="./octokat.js"></script> | ||
``` | ||
# Enterprise APIs | ||
To use the Enterprise APIs add the root URL when instantiating Octokat: | ||
```js | ||
var octo = new Octokat({ | ||
token: 'API_TOKEN' | ||
rootUrl: 'https://example.com/api/v3/' | ||
}); | ||
``` | ||
# Testing | ||
@@ -292,5 +351,49 @@ | ||
.then (moreCommits) -> | ||
# Done! | ||
console.log('2nd page of results', moreCommits) | ||
``` | ||
## Preview new APIs | ||
To use the APIs available for preview just add a `acceptHeader` when instantiating Octokat. | ||
For example: | ||
```js | ||
var octo = new Octokat({ | ||
token: 'API_TOKEN', | ||
acceptHeader: 'application/vnd.github.cannonball-preview+json' | ||
}); | ||
``` | ||
## Enterprise APIs | ||
To use the Enterprise APIs add the root URL when instantiating Octokat: | ||
```js | ||
var octo = new Octokat({ | ||
token: 'API_TOKEN', | ||
rootUrl: 'https://example.com/api/v3/' | ||
}); | ||
``` | ||
## Using Generators in Node.js 0.11 (or EcmaScript 6 browsers) | ||
This requires Node.js 0.11 with the `--harmony-generators` flag: | ||
```js | ||
var co = require('co'); | ||
var Octokat = require('octokat'); | ||
var octo = new Octokat(); | ||
var fn = function *() { | ||
var zen = yield octo.zen.read(); | ||
var info = yield octo.repos('philschatz', 'octokat.js').fetch(); | ||
console.log(zen); | ||
console.log(info); | ||
}; | ||
co(fn)(); | ||
``` | ||
## Development | ||
@@ -297,0 +400,0 @@ |
Sorry, the diff of this file is not supported yet
Trivial Package
Supply chain riskPackages less than 10 lines of code are easily copied into your own project and may not warrant the additional supply chain risk of an external dependency.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Trivial Package
Supply chain riskPackages less than 10 lines of code are easily copied into your own project and may not warrant the additional supply chain risk of an external dependency.
Found 1 instance in 1 package
40952
14
5
404
1