ember-data-github
Advanced tools
Comparing version 0.2.0 to 0.3.0
import GithubAdapter from './github'; | ||
export default GithubAdapter.extend({ | ||
buildURL(type, id, snapshot) { | ||
let builtURL = this._super(type, id, snapshot); | ||
if (id) { | ||
builtURL = builtURL.replace('branches', 'repos'); | ||
builtURL = builtURL.replace(/%2F/g, '/'); | ||
} | ||
return builtURL; | ||
urlForFindRecord(id, modelName, snapshot) { | ||
return this._super(id, modelName, snapshot) | ||
.replace('branches', 'repos') | ||
.replace(/%2F/g, '/'); | ||
}, | ||
urlForQuery(query) { | ||
const repo = query.repo; | ||
delete query.repo; | ||
return `${this.get('host')}/repos/${repo}/branches`; | ||
}, | ||
urlForQueryRecord(query) { | ||
const {repo, branch} = query; | ||
delete query.repo; | ||
delete query.branch; | ||
return `${this.get('host')}/repos/${repo}/branches/${branch}`; | ||
} | ||
}); |
import GithubAdapter from './github'; | ||
export default GithubAdapter.extend({ | ||
buildURL(type, id, snapshot) { | ||
let builtURL = this._super(type, id, snapshot); | ||
return builtURL; | ||
} | ||
}); |
import GithubAdapter from './github'; | ||
export default GithubAdapter.extend({ | ||
buildURL(type, id, snapshot) { | ||
let builtURL = this._super(type, id, snapshot); | ||
if (id) { | ||
builtURL = builtURL.replace('repositories', 'repos'); | ||
builtURL = builtURL.replace('%2F', '/'); | ||
} | ||
return builtURL; | ||
urlForFindRecord(id, modelName, snapshot) { | ||
return this._super(id, modelName, snapshot) | ||
.replace('repositories', 'repos') | ||
.replace('%2F', '/'); | ||
} | ||
}); |
import GithubAdapter from './github'; | ||
export default GithubAdapter.extend({ | ||
buildURL(type, id, snapshot) { | ||
let builtURL = this._super(type, id, snapshot); | ||
urlForFindRecord(id, modelName, snapshot) { | ||
let builtURL = this._super(id, modelName, snapshot); | ||
if (id === '#') { | ||
@@ -7,0 +7,0 @@ builtURL = builtURL.replace('users/%23', 'user'); |
/*jshint node:true*/ | ||
'use strict'; | ||
module.exports = function (/* environment, appConfig */) { | ||
module.exports = function(/* environment, appConfig */) { | ||
return { }; | ||
}; |
{ | ||
"name": "ember-data-github", | ||
"version": "0.2.0", | ||
"version": "0.3.0", | ||
"description": "Ember Data abstraction for the GitHub API", | ||
"keywords": [ | ||
"ember-addon", | ||
"ember-data", | ||
"github", | ||
"api" | ||
], | ||
"license": "MIT", | ||
"author": "Jordan Hawker <hawker.jordan@gmail.com> (http://www.JordanHawker.com)", | ||
"directories": { | ||
@@ -9,2 +17,3 @@ "doc": "doc", | ||
}, | ||
"repository": "git@github.com:elwayman02/ember-data-github.git", | ||
"scripts": { | ||
@@ -15,19 +24,15 @@ "build": "ember build", | ||
}, | ||
"repository": "git@github.com:elwayman02/ember-data-github.git", | ||
"engines": { | ||
"node": ">= 0.10.0" | ||
"dependencies": { | ||
"ember-cli-babel": "^5.1.7" | ||
}, | ||
"author": "Jordan Hawker <hawker.jordan@gmail.com> (http://www.JordanHawker.com)", | ||
"license": "MIT", | ||
"devDependencies": { | ||
"broccoli-asset-rev": "^2.4.2", | ||
"ember-cli": "2.7.0", | ||
"broccoli-asset-rev": "^2.4.5", | ||
"ember-cli": "2.10.0", | ||
"ember-cli-app-version": "^2.0.0", | ||
"ember-cli-content-security-policy": "0.5.0", | ||
"ember-cli-dependency-checker": "^1.2.0", | ||
"ember-cli-dependency-checker": "^1.3.0", | ||
"ember-cli-eslint": "3.0.0", | ||
"ember-cli-htmlbars": "^1.1.0", | ||
"ember-cli-htmlbars-inline-precompile": "^0.3.1", | ||
"ember-cli-inject-live-reload": "^1.4.0", | ||
"ember-cli-qunit": "^3.0.0", | ||
"ember-cli-htmlbars-inline-precompile": "^0.3.3", | ||
"ember-cli-inject-live-reload": "^1.4.1", | ||
"ember-cli-qunit": "^3.0.1", | ||
"ember-cli-release": "1.0.0-beta.2", | ||
@@ -37,17 +42,11 @@ "ember-cli-sri": "^2.1.0", | ||
"ember-cli-uglify": "^1.2.0", | ||
"ember-data": "^2.7.0", | ||
"ember-data": "^2.10.0", | ||
"ember-disable-prototype-extensions": "^1.1.0", | ||
"ember-export-application-global": "^1.0.5", | ||
"ember-load-initializers": "^0.5.1", | ||
"ember-export-application-global": "^1.1.1", | ||
"ember-load-initializers": "^0.6.2", | ||
"ember-resolver": "^2.0.3", | ||
"loader.js": "^4.0.7" | ||
"loader.js": "^4.0.10" | ||
}, | ||
"keywords": [ | ||
"ember-addon", | ||
"ember-data", | ||
"github", | ||
"api" | ||
], | ||
"dependencies": { | ||
"ember-cli-babel": "^5.1.6" | ||
"engines": { | ||
"node": ">= 0.12.0" | ||
}, | ||
@@ -54,0 +53,0 @@ "ember-addon": { |
@@ -17,14 +17,63 @@ # Ember Data Github | ||
In order to use OAuth endpoints you must set the property named `githubAccessToken` on `github-session` service with the currently logged in user's GitHub access token. | ||
You need to choose how you wish to authenticate your GitHub requests using OAuth. `ember-data-github` provides a simple | ||
and direct mechanism that is specific to itself. Alternatively, you can use a more general authentication framework like | ||
`ember-simple-auth`. | ||
Examples: | ||
### Authenticating Directly | ||
If you already have a token to use the OAuth endpoints, such as a *Personal access token*, you must set the property | ||
named `githubAccessToken` on `github-session` service with the currently logged in user's GitHub access token. | ||
### Authenticating with `ember-simple-auth` | ||
If you are using [ember-simple-auth](http://ember-simple-auth.com/) (ESA) to authenticate, perhaps with | ||
[torii](http://vestorly.github.io/torii) and ESA's `torii-provider`, you can authenticate by creating a github | ||
authorizer and extending `ember-data-github`'s adapter for each model you use. See the respective addon docs and | ||
[GitHub's OAuth docs](https://developer.github.com/v3/oauth/) to set it up. | ||
Once you have a token, the authorizer will look like | ||
```js | ||
// app/authorizers/github.js | ||
import Ember from 'ember'; | ||
import Base from 'ember-simple-auth/authorizers/base'; | ||
export default Base.extend({ | ||
session: Ember.inject.service(), | ||
authorize(sessionData, block) { | ||
if (this.get('session.isAuthenticated') && !Ember.isEmpty(sessionData.access_token)) { | ||
block('Authorization', `token ${sessionData.access_token}`); | ||
} | ||
} | ||
}); | ||
``` | ||
this.get('store').findRecord('githubUser', '#'); // get the current user | ||
this.get('store').findRecord('githubUser', 'jimmay5469'); // get a user | ||
this.get('store').findRecord('githubRepository', 'jimmay5469/old-hash'); // get a repository | ||
this.get('store').findRecord('githubBranch, 'jimmay5469/old-hash/branches/master'); // get a branch | ||
this.get('store').queryRecord('githubRelease', { repo: 'jimmay5469/old-hash', releaseId: 1 }) // get a specific release | ||
this.get('store').query('githubRelease', { repo: 'jimmay5469/old-hash' }) // get a repo's releases | ||
assuming `access_token` is the name of the property containing the token. This automatically injects the `Authorization` | ||
header into the API requests using ESA mechanisms. | ||
An extended adapter for `github-user` would look like | ||
```js | ||
// app/adapters/github-user.js | ||
import GitHubUserAdapter from 'ember-data-github/adapters/github-user'; | ||
import DataAdapterMixin from 'ember-simple-auth/mixins/data-adapter-mixin'; | ||
export default GitHubUserAdapter.extend(DataAdapterMixin, { | ||
authorizer: 'authorizer:github' | ||
}); | ||
``` | ||
### Retrieving GitHub Data | ||
The following examples show how to retrieve each supported GitHub entity as you might use it in your `model` hook. | ||
```js | ||
this.get('store').findRecord('github-user', '#'); // get the current user | ||
this.get('store').findRecord('github-user', 'jimmay5469'); // get a user | ||
this.get('store').findRecord('github-repository', 'jimmay5469/old-hash'); // get a repository | ||
this.get('store').findRecord('github-branch', 'jimmay5469/old-hash/branches/master'); // get a branch | ||
this.get('store').queryRecord('github-branch', { repo: 'jimmay5469/old-hash', branch: 'master' }); // get a specific branch | ||
this.get('store').query('github-branch', { repo: 'jimmay5469/old-hash' }); // get a repo's branches | ||
this.get('store').queryRecord('github-release', { repo: 'jimmay5469/old-hash', releaseId: 1 }); // get a specific release | ||
this.get('store').query('github-release', { repo: 'jimmay5469/old-hash' }) // get a repo's releases | ||
``` | ||
## Contributing | ||
@@ -54,2 +103,2 @@ | ||
For more information on using ember-cli, visit [http://ember-cli.com/](http://ember-cli.com/). | ||
For more information on using ember-cli, visit [https://ember-cli.com/](https://ember-cli.com/). |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
SPDX disjunction
LicenseSPDX disjunction for an artifact's license information
Found 1 instance in 1 package
SPDX disjunction
LicenseSPDX disjunction for an artifact's license information
Found 1 instance in 1 package
256134
19
66
378
103
Updatedember-cli-babel@^5.1.7