Socket
Socket
Sign inDemoInstall

github-api-promise

Package Overview
Dependencies
Maintainers
1
Versions
39
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github-api-promise - npm Package Compare versions

Comparing version 1.1.1 to 1.2.0

src/request-helpers.js

6

package.json
{
"name": "github-api-promise",
"version": "1.1.1",
"version": "1.2.0",
"description": "A node module for interfacing with the Github API using promises",

@@ -14,7 +14,9 @@ "main": "src/app.js",

"bluebird": "*",
"lodash": "^4.17.4",
"lognext": "0.0.3",
"q": "*",
"superagent": "*",
"superagent-bluebird-promise": "*"
"superagent-bluebird-promise": "*",
"urlencode": "^1.1.0"
}
}

@@ -1,23 +0,6 @@

const fs = require('fs');
const log = new (require('lognext'))('events');
const Q = require('q');
const request = require('superagent-bluebird-promise');
const config = require('../config');
const req = require('../request-helpers');
var config = require('../config');
function logRequestSuccess(res, message) {
if (config.debug !== true) {
return;
}
log.debug(
'[' + res.statusCode + ']' +
'[' + res.req.method + ' ' + res.req.path + '] ' +
(message ? message : ''));
}
module.exports = {

@@ -27,29 +10,9 @@ /**

* @see {@link https://developer.github.com/v3/activity/events/#list-public-events}
* @param {object} params - An object of parameters for the request
* @param {int} params.page - The page of results to retrieve
* @return {JSON} Event data
*/
getEvents: function(page) {
var deferred = Q.defer();
try {
let url = `${config.host}/events`;
if (page)
url += `?page=${page}`;
request
.get(url)
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
log.error(err);
deferred.reject(err.message);
});
} catch(err) {
log.error(err);
deferred.reject(err.message);
}
return deferred.promise;
getEvents: function(params) {
return req.standardRequest(`${config.host}/events?${req.assembleQueryParams(params,
['page'])}`);
},

@@ -60,29 +23,11 @@

* @see {@link https://developer.github.com/v3/activity/events/#list-repository-events}
* @param {int} owner - The repo's owner id
* @param {int} repo - The repo id
* @param {object} params - An object of parameters for the request
* @param {int} params.page - The page of results to retrieve
* @return {JSON} Event data
*/
getRepositoryEvents: function(owner, repo, page) {
var deferred = Q.defer();
try {
let url = `${config.host}/repos/${owner}/${repo}/events`;
if (page)
url += `?page=${page}`;
request
.get(url)
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
log.error(err);
deferred.reject(err.message);
});
} catch(err) {
log.error(err);
deferred.reject(err.message);
}
return deferred.promise;
getRepositoryEvents: function(owner, repo, params) {
return req.standardRequest(`${config.host}/repos/${owner}/${repo}/events?${req.assembleQueryParams(params,
['page'])}`);
},

@@ -94,29 +39,11 @@

* @see {@link https://developer.github.com/v3/activity/events/#list-issue-events-for-a-repository}
* @param {int} owner - The repo's owner id
* @param {int} repo - The repo id
* @param {object} params - An object of parameters for the request
* @param {int} params.page - The page of results to retrieve
* @return {JSON} Event data
*/
getRepositoryIssueEvents: function(owner, repo, page) {
var deferred = Q.defer();
try {
let url = `${config.host}/repos/${owner}/${repo}/issues/events`;
if (page)
url += `?page=${page}`;
request
.get(url)
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
log.error(err);
deferred.reject(err.message);
});
} catch(err) {
log.error(err);
deferred.reject(err.message);
}
return deferred.promise;
getRepositoryIssueEvents: function(owner, repo, params) {
return req.standardRequest(`${config.host}/repos/${owner}/${repo}/issues/events?${req.assembleQueryParams(params,
['page'])}`);
},

@@ -127,29 +54,11 @@

* @see {@link https://developer.github.com/v3/activity/events/#list-public-events-for-a-network-of-repositories}
* @param {int} owner - The repo's owner id
* @param {int} repo - The repo id
* @param {object} params - An object of parameters for the request
* @param {int} params.page - The page of results to retrieve
* @return {JSON} Event data
*/
getNetworkRepositoryEvents: function(owner, repo, page) {
var deferred = Q.defer();
try {
let url = `${config.host}/networks/${owner}/${repo}/events`;
if (page)
url += `?page=${page}`;
request
.get(url)
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
log.error(err);
deferred.reject(err.message);
});
} catch(err) {
log.error(err);
deferred.reject(err.message);
}
return deferred.promise;
getNetworkRepositoryEvents: function(owner, repo, params) {
return req.standardRequest(`${config.host}/networks/${owner}/${repo}/events?${req.assembleQueryParams(params,
['page'])}`);
},

@@ -160,29 +69,10 @@

* @see {@link https://developer.github.com/v3/activity/events/#list-public-events-for-an-organization}
* @param {string} org - The organization
* @param {object} params - An object of parameters for the request
* @param {int} params.page - The page of results to retrieve
* @return {JSON} Event data
*/
getOrganizationEvents: function(org, page) {
var deferred = Q.defer();
try {
let url = `${config.host}/orgs/${org}/events`;
if (page)
url += `?page=${page}`;
request
.get(url)
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
log.error(err);
deferred.reject(err.message);
});
} catch(err) {
log.error(err);
deferred.reject(err.message);
}
return deferred.promise;
getOrganizationEvents: function(org, params) {
return req.standardRequest(`${config.host}/orgs/${org}/events?${req.assembleQueryParams(params,
['page'])}`);
},

@@ -195,29 +85,10 @@

* @see {@link https://developer.github.com/v3/activity/events/#list-events-that-a-user-has-received}
* @param {string} username - The username
* @param {object} params - An object of parameters for the request
* @param {int} params.page - The page of results to retrieve
* @return {JSON} Event data
*/
getUserEventsReceived: function(username, page) {
var deferred = Q.defer();
try {
let url = `${config.host}/users/${username}/received_events`;
if (page)
url += `?page=${page}`;
request
.get(url)
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
log.error(err);
deferred.reject(err.message);
});
} catch(err) {
log.error(err);
deferred.reject(err.message);
}
return deferred.promise;
getUserEventsReceived: function(username, params) {
return req.standardRequest(`${config.host}/users/${username}/received_events?${req.assembleQueryParams(params,
['page'])}`);
},

@@ -228,29 +99,10 @@

* @see {@link https://developer.github.com/v3/activity/events/#list-public-events-that-a-user-has-received}
* @param {string} username - The username
* @param {object} params - An object of parameters for the request
* @param {int} params.page - The page of results to retrieve
* @return {JSON} Event data
*/
getUserPublicEventsReceived: function(username, page) {
var deferred = Q.defer();
try {
let url = `${config.host}/users/${username}/received_events/public`;
if (page)
url += `?page=${page}`;
request
.get(url)
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
log.error(err);
deferred.reject(err.message);
});
} catch(err) {
log.error(err);
deferred.reject(err.message);
}
return deferred.promise;
getUserPublicEventsReceived: function(username, params) {
return req.standardRequest(`${config.host}/users/${username}/received_events/public?${req.assembleQueryParams(params,
['page'])}`);
},

@@ -261,29 +113,10 @@

* @see {@link https://developer.github.com/v3/activity/events/#list-events-performed-by-a-user}
* @param {string} username - The username
* @param {object} params - An object of parameters for the request
* @param {int} params.page - The page of results to retrieve
* @return {JSON} Event data
*/
getUserEvents: function(username, page) {
var deferred = Q.defer();
try {
let url = `${config.host}/users/${username}/events`;
if (page)
url += `?page=${page}`;
request
.get(url)
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
log.error(err);
deferred.reject(err.message);
});
} catch(err) {
log.error(err);
deferred.reject(err.message);
}
return deferred.promise;
getUserEvents: function(username, params) {
return req.standardRequest(`${config.host}/users/${username}/events?${req.assembleQueryParams(params,
['page'])}`);
},

@@ -294,29 +127,10 @@

* @see {@link https://developer.github.com/v3/activity/events/#list-events-performed-by-a-user}
* @param {string} username - The username
* @param {object} params - An object of parameters for the request
* @param {int} params.page - The page of results to retrieve
* @return {JSON} Event data
*/
getUserPublicEvents: function(username, page) {
var deferred = Q.defer();
try {
let url = `${config.host}/users/${username}/events/public`;
if (page)
url += `?page=${page}`;
request
.get(url)
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
log.error(err);
deferred.reject(err.message);
});
} catch(err) {
log.error(err);
deferred.reject(err.message);
}
return deferred.promise;
getUserPublicEvents: function(username, params) {
return req.standardRequest(`${config.host}/users/${username}/events/public?${req.assembleQueryParams(params,
['page'])}`);
},

@@ -328,30 +142,12 @@

* @see {@link https://developer.github.com/v3/activity/events/#list-events-for-an-organization}
* @param {string} username - The username
* @param {string} org - The organization
* @param {object} params - An object of parameters for the request
* @param {int} params.page - The page of results to retrieve
* @return {JSON} Event data
*/
getUserOrganizationEvents: function(username, org, page) {
var deferred = Q.defer();
try {
let url = `${config.host}/users/${username}/events/orgs/${org}`;
if (page)
url += `?page=${page}`;
request
.get(url)
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
log.error(err);
deferred.reject(err.message);
});
} catch(err) {
log.error(err);
deferred.reject(err.message);
}
return deferred.promise;
getUserOrganizationEvents: function(username, org, params) {
return req.standardRequest(`${config.host}/users/${username}/events/orgs/${org}?${req.assembleQueryParams(params,
['page'])}`);
}
};

@@ -5,8 +5,14 @@ var githubApi = {};

githubApi.config = require('./config');
githubApi.repos = require('./repositories/repositories');
githubApi.activity = require('./activity/activity');
githubApi.repositories = {
releases: require('./repositories/releases'),
repositories: require('./repositories/repositories')
};
githubApi.repos = githubApi.repositories; // for backwards compatibility
githubApi.activity = {
events: require('./activity/events')
};
// Set to window object if there is a window
if(typeof window !== 'undefined') {
window.githubApi = githubApi;
window.githubApi = githubApi;
}

@@ -13,0 +19,0 @@

@@ -47,17 +47,17 @@ var request = require('superagent-bluebird-promise');

.get(getRepoUrl('releases'))
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
}
return deferred.promise;
return deferred.promise;
},

@@ -76,14 +76,14 @@

.get(getRepoUrl('releases/' + releaseId))
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
}

@@ -105,14 +105,14 @@

.get(getRepoUrl('releases/latest'))
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
}

@@ -134,14 +134,14 @@

.get(getRepoUrl('releases/tags/' + tag))
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
}

@@ -163,16 +163,16 @@

.post(getRepoUrl('releases'))
.set('Authorization', 'token ' + config.token)
.set('Content-Type', 'application/json')
.send(body)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
.set('Authorization', 'token ' + config.token)
.set('Content-Type', 'application/json')
.send(body)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
}

@@ -195,16 +195,16 @@

.patch(getRepoUrl('releases/' + releaseId))
.set('Authorization', 'token ' + config.token)
.set('Content-Type', 'application/json')
.send(body)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
.set('Authorization', 'token ' + config.token)
.set('Content-Type', 'application/json')
.send(body)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
}

@@ -226,14 +226,14 @@

.delete(getRepoUrl('releases/' + releaseId))
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
}

@@ -255,14 +255,14 @@

.get(getRepoUrl('releases/' + releaseId + '/assets'))
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
}

@@ -308,21 +308,21 @@

.post(uploadUrl)
.set('Authorization', 'token ' + token)
.set('Content-Type', contentType)
.send(data)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
if (err.status == '422'){
console.log('Upload failed. Error body: ');
console.log(JSON.stringify(err.body, null, 2));
}
logRequestError(err);
deferred.reject(err.message);
});
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
.set('Authorization', 'token ' + token)
.set('Content-Type', contentType)
.send(data)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
if (err.status == '422'){
console.log('Upload failed. Error body: ');
console.log(JSON.stringify(err.body, null, 2));
}
logRequestError(err);
deferred.reject(err.message);
});
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
}

@@ -345,14 +345,14 @@

.get(getRepoUrl('releases/assets/' + assetId))
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
}

@@ -375,16 +375,16 @@

.patch(getRepoUrl('releases/assets/' + assetId))
.set('Authorization', 'token ' + config.token)
.set('Content-Type', 'application/json')
.send(body)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
.set('Authorization', 'token ' + config.token)
.set('Content-Type', 'application/json')
.send(body)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
}

@@ -406,14 +406,14 @@

.delete(getRepoUrl('releases/assets/' + assetId))
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
.set('Authorization', 'token ' + config.token)
.then(function(res) {
logRequestSuccess(res);
deferred.resolve(res.body);
},
function(err) {
logRequestError(err);
deferred.reject(err.message);
});
} catch(err) {
console.log(err);
deferred.reject(err.message);
}

@@ -420,0 +420,0 @@

@@ -1,5 +0,253 @@

var repositories = {};
const config = require('../config');
const req = require('../request-helpers');
repositories.releases = require('./releases');
module.exports = repositories;
module.exports = {
/**
* List your repositories
* List repositories that are accessible to the authenticated user.
* This includes repositories owned by the authenticated user, repositories where the authenticated user
* is a collaborator, and repositories that the authenticated user has access to through an organization
* membership.
* @see {@link https://developer.github.com/v3/repos/#list-your-repositories}
* @param {object} params - An object of parameters for the request
* @param {string} params.visibility - Can be one of all, public, or private. Default: all
* @param {string} params.affiliation - default: owner, collaborator, organization_member
* @param {string} params.type - Can be one of all, owner, public, private, member. Default: all. Will cause a 422 error if used in the same request as visibility or affiliation.
* @param {string} params.sort - Can be one of created, updated, pushed, full_name. Default: full_name
* @param {string} params.direction - Can be one of asc or desc. Default: when using full_name: asc; otherwise desc
* @param {int} params.page - The page of results to retrieve
* @return {JSON} repo data
*/
getMyRepos: function(params) {
return req.standardRequest(`${config.host}/user/repos?${req.assembleQueryParams(params,
['visibility','affiliation','type','sort','direction','page'])}`);
},
/**
* List user repositories
* List public repositories for the specified user.
* @see {@link https://developer.github.com/v3/repos/#list-user-repositories}
* @param {string} username - The specified user
* @param {object} params - An object of parameters for the request
* @param {string} params.type - Can be one of all, owner, member. Default: owner
* @param {string} params.sort - Can be one of created, updated, pushed, full_name. Default: full_name
* @param {string} params.direction - Can be one of asc or desc. Default: when using full_name: asc; otherwise desc
* @param {int} params.page - The page of results to retrieve
* @return {JSON} repo data
*/
getUserRepos: function(username, params) {
return req.standardRequest(`${config.host}/users/${username}/repos?${req.assembleQueryParams(params,
['type','sort','direction','page'])}`);
},
/**
* List organization repositories
* List repositories for the specified org.
* @see {@link https://developer.github.com/v3/repos/#list-organization-repositories}
* @param {string} org - The specified org
* @param {object} params - An object of parameters for the request
* @param {string} params.type - Can be one of all, public, private, forks, sources, member. Default: all
* @param {int} params.page - The page of results to retrieve
* @return {JSON} repo data
*/
getOrgRepos: function(org, params) {
return req.standardRequest(`${config.host}/orgs/${org}/repos?${req.assembleQueryParams(params,
['type','page'])}`);
},
/**
* List all public repositories
* This provides a dump of every public repository, in the order that they were created.
* Note: Pagination is powered exclusively by the since parameter. Use the Link header to get the URL for the next page of repositories.
* @see {@link https://developer.github.com/v3/repos/#list-all-public-repositories}
* @param {object} params - An object of parameters for the request
* @param {string} params.since - The integer ID of the last Repository that you've seen.
* @return {JSON} repo data
*/
getPublicRepositories: function(params) {
return req.standardRequest(`${config.host}/repositories?${req.assembleQueryParams(params,
['since'])}`);
},
/**
* Create
* Create a new repository for the authenticated user.
* @see {@link https://developer.github.com/v3/repos/#create}
* @param {object} body - The request body
* @param {string} body.name - Required. The name of the repository.
* @param {string} body.description - A short description of the repository.
* @param {string} body.homepage - A URL with more information about the repository.
* @param {boolean} body.private - Either true to create a private repository or false to create a public one. Creating private repositories requires a paid GitHub account. Default: false.
* @param {boolean} body.has_issues - Either true to enable issues for this repository or false to disable them. Default: true.
* @param {boolean} body.has_projects - Either true to enable projects for this repository or false to disable them. Default: true. Note: If you're creating a repository in an organization that has disabled repository projects, the default is false, and if you pass true, the API returns an error.
* @param {boolean} body.has_wiki - Either true to enable the wiki for this repository or false to disable it. Default: true.
* @param {integer} body.team_id - The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization.
* @param {boolean} body.auto_init - Pass true to create an initial commit with empty README. Default: false.
* @param {string} body.gitignore_template - Desired language or platform .gitignore template to apply. Use the name of the template without the extension. For example, "Haskell".
* @param {string} body.license_template - Desired LICENSE template to apply. Use the name of the template without the extension. For example, "mit" or "mozilla".
* @param {boolean} body.allow_squash_merge - Either true to allow squash-merging pull requests, or false to prevent squash-merging. Default: true
* @param {boolean} body.allow_merge_commit - Either true to allow merging pull requests with a merge commit, or false to prevent merging pull requests with merge commits. Default: true
* @param {boolean} body.allow_rebase_merge - Either true to allow rebase-merging pull requests, or false to prevent rebase-merging. Default: true
* @return {JSON} repo data
*/
createUserRepository: function(body) {
return req.standardRequest(`${config.host}/user/repos`, 'post', body);
},
/**
* Create
* Create a new repository in this organization. The authenticated user must be a member of the specified organization.
* @see {@link https://developer.github.com/v3/repos/#create}
* @param {string} org - The organization in which to create the repository
* @param {object} body - The request body
* @param {string} body.name - Required. The name of the repository.
* @param {string} body.description - A short description of the repository.
* @param {string} body.homepage - A URL with more information about the repository.
* @param {boolean} body.private - Either true to create a private repository or false to create a public one. Creating private repositories requires a paid GitHub account. Default: false.
* @param {boolean} body.has_issues - Either true to enable issues for this repository or false to disable them. Default: true.
* @param {boolean} body.has_projects - Either true to enable projects for this repository or false to disable them. Default: true. Note: If you're creating a repository in an organization that has disabled repository projects, the default is false, and if you pass true, the API returns an error.
* @param {boolean} body.has_wiki - Either true to enable the wiki for this repository or false to disable it. Default: true.
* @param {integer} body.team_id - The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization.
* @param {boolean} body.auto_init - Pass true to create an initial commit with empty README. Default: false.
* @param {string} body.gitignore_template - Desired language or platform .gitignore template to apply. Use the name of the template without the extension. For example, "Haskell".
* @param {string} body.license_template - Desired LICENSE template to apply. Use the name of the template without the extension. For example, "mit" or "mozilla".
* @param {boolean} body.allow_squash_merge - Either true to allow squash-merging pull requests, or false to prevent squash-merging. Default: true
* @param {boolean} body.allow_merge_commit - Either true to allow merging pull requests with a merge commit, or false to prevent merging pull requests with merge commits. Default: true
* @param {boolean} body.allow_rebase_merge - Either true to allow rebase-merging pull requests, or false to prevent rebase-merging. Default: true
* @return {JSON} repo data
*/
createOrgRepository: function(org, body) {
return req.standardRequest(`${config.host}/orgs/${org}/repos`, 'post', body);
},
/**
* Get
* @see {@link https://developer.github.com/v3/repos/#get}
* @param {int} owner - The repo's owner id
* @param {int} repo - The repo id
* @return {JSON} repo data
*/
getRepository: function(owner, repo) {
return req.standardRequest(`${config.host}/repos/${owner}/${repo}`);
},
/**
* Edit
* @see {@link https://developer.github.com/v3/repos/#edit}
* @param {int} owner - The repo's owner id
* @param {int} repo - The repo id
* @param {object} body - The request body
* @param {string} body.name - Required. The name of the repository.
* @param {string} body.description - A short description of the repository.
* @param {string} body.homepage - A URL with more information about the repository.
* @param {boolean} body.private - Either true to create a private repository or false to create a public one. Creating private repositories requires a paid GitHub account. Default: false.
* @param {boolean} body.has_issues - Either true to enable issues for this repository or false to disable them. Default: true.
* @param {boolean} body.has_projects - Either true to enable projects for this repository or false to disable them. Default: true. Note: If you're creating a repository in an organization that has disabled repository projects, the default is false, and if you pass true, the API returns an error.
* @param {boolean} body.has_wiki - Either true to enable the wiki for this repository or false to disable it. Default: true.
* @param {string} body.default_branch - Updates the default branch for this repository.
* @param {boolean} body.allow_squash_merge - Either true to allow squash-merging pull requests, or false to prevent squash-merging. Default: true
* @param {boolean} body.allow_merge_commit - Either true to allow merging pull requests with a merge commit, or false to prevent merging pull requests with merge commits. Default: true
* @param {boolean} body.allow_rebase_merge - Either true to allow rebase-merging pull requests, or false to prevent rebase-merging. Default: true
* @return {JSON} repo data
*/
updateRepository: function(owner, repo, body) {
return req.standardRequest(`${config.host}/repos/${owner}/${repo}`, 'patch', body);
},
/**
* List all topics for a repository
* @see {@link https://developer.github.com/v3/repos/#list-all-topics-for-a-repository}
* @param {int} owner - The repo's owner id
* @param {int} repo - The repo id
* @param {object} params - An object of parameters for the request
* @param {int} params.page - The page of results to retrieve
* @return {JSON} repo data
*/
getRepositoryTopics: function(owner, repo, params) {
return req.standardRequest(`${config.host}/repos/${owner}/${repo}/topics?${req.assembleQueryParams(params,
['since'])}`);
},
/**
* Replace all topics for a repository
* @see {@link https://developer.github.com/v3/repos/#replace-all-topics-for-a-repository}
* @param {int} owner - The repo's owner id
* @param {int} repo - The repo id
* @param {object} body - The request body
* @param {string[]} body.names - Required. An array of topics to add to the repository. Pass one or more topics to replace the set of existing topics. Send an empty array ([]) to clear all topics from the repository.
* @return {JSON} repo data
*/
updateRepositoryTopics: function(owner, repo, body) {
return req.standardRequest(`${config.host}/repos/${owner}/${repo}/topics?`, 'put', body);
},
/**
* List contributors
* Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API v3 caches contributor data to improve performance.
* GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information.
* @see {@link https://developer.github.com/v3/repos/#list-contributors}
* @param {int} owner - The repo's owner id
* @param {int} repo - The repo id
* @param {object} params - An object of parameters for the request
* @param {int} params.anon - Set to 1 or true to include anonymous contributors in results.
* @param {int} params.page - The page of results to retrieve
* @return {JSON} repo data
*/
getRepositoryContributors: function(owner, repo, params) {
return req.standardRequest(`${config.host}/repos/${owner}/${repo}/contributors?${req.assembleQueryParams(params,
['anon', 'page'])}`);
},
/**
* List languages
* Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language.
* @see {@link https://developer.github.com/v3/repos/#list-languages}
* @param {int} owner - The repo's owner id
* @param {int} repo - The repo id
* @return {JSON} repo data
*/
getRepositoryLanguages: function(owner, repo) {
return req.standardRequest(`${config.host}/repos/${owner}/${repo}/languages`);
},
/**
* List Teams
* @see {@link https://developer.github.com/v3/repos/#list-teams}
* @param {int} owner - The repo's owner id
* @param {int} repo - The repo id
* @param {object} params - An object of parameters for the request
* @param {int} params.page - The page of results to retrieve
* @return {JSON} repo data
*/
getRepositoryTeams: function(owner, repo, params) {
return req.standardRequest(`${config.host}/repos/${owner}/${repo}/teams?${req.assembleQueryParams(params,
['page'])}`);
},
/**
*
* @see {@link https://developer.github.com/v3/repos/#list-tags}
* @param {int} owner - The repo's owner id
* @param {int} repo - The repo id
* @param {object} params - An object of parameters for the request
* @param {int} params.page - The page of results to retrieve
* @return {JSON} repo data
*/
getRepositoryTags: function(owner, repo, params) {
return req.standardRequest(`${config.host}/repos/${owner}/${repo}/tags?${req.assembleQueryParams(params,
['page'])}`);
},
/**
*
* @see {@link https://developer.github.com/v3/repos/#}
* @param {int} owner - The repo's owner id
* @param {int} repo - The repo id
* @return {nothing}
*/
deleteRepository: function(owner, repo) {
return req.standardRequest(`${config.host}/repos/${owner}/${repo}`, 'delete');
}
};
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc