1
0
mirror of https://github.com/docker/docs.git synced 2026-11-06 12:54:24 +03:00

Added support for ORG repos

Signed-off-by: FrenchBen <me@frenchben.com>
This commit is contained in:
FrenchBen
2015-09-14 12:11:12 -04:00
parent 3c075ce69d
commit 67d9a9989f

View File

@@ -6,7 +6,7 @@ import hubUtil from '../utils/HubUtil';
import repositoryServerActions from '../actions/RepositoryServerActions';
import tagServerActions from '../actions/TagServerActions';
let REGHUB2_ENDPOINT = process.env.REGHUB2_ENDPOINT || 'https://registry.hub.docker.com/v2';
let REGHUB2_ENDPOINT = process.env.REGHUB2_ENDPOINT || 'https://hub.docker.com/v2';
let searchReq = null;
module.exports = {
@@ -73,7 +73,7 @@ module.exports = {
}
request.get({
url: `${REGHUB2_ENDPOINT}/repositories/${name}`,
url: `${REGHUB2_ENDPOINT}/repositories/${name}`
}, (error, response, body) => {
if (error) {
repositoryServerActions.error({error});
@@ -104,10 +104,14 @@ module.exports = {
if (response.statusCode === 200) {
let data = JSON.parse(body);
tagServerActions.tagsUpdated({repo, tags: data.results || []});
if (callback) { callback(null, data.results || []); }
if (callback) {
return callback(null, data.results || []);
}
} else {
repositoryServerActions.error({repo});
if (callback) { callback(new Error('Failed to fetch tags for repo')); }
if (callback) {
return callback(new Error('Failed to fetch tags for repo'));
}
}
});
},
@@ -117,59 +121,97 @@ module.exports = {
repositoryServerActions.reposLoading({repos: []});
hubUtil.request({
url: `${REGHUB2_ENDPOINT}/namespaces/`,
url: `${REGHUB2_ENDPOINT}/namespaces/`
}, (error, response, body) => {
if (error) {
repositoryServerActions.error({error});
if (callback) { callback(error); }
return;
if (callback) {
return callback(error);
}
return null;
}
if (response.statusCode !== 200) {
let generalError = new Error('Failed to fetch repos');
repositoryServerActions.error({error: generalError});
if (callback) { callback({error: generalError}); }
return;
if (callback) {
return callback({error: generalError});
}
return null;
}
let data = JSON.parse(body);
let namespaces = data.namespaces;
async.map(namespaces, (namespace, cb) => {
hubUtil.request({
url: `${REGHUB2_ENDPOINT}/repositories/${namespace}`
}, (error, response, body) => {
// Get Orgs for user
hubUtil.request({
url: `${REGHUB2_ENDPOINT}/user/orgs/?page_size=50`
}, (orgError, orgResponse, orgBody) => {
if (orgError) {
repositoryServerActions.error({orgError});
if (callback) {
return callback(orgError);
}
return null;
}
if (orgResponse.statusCode !== 200) {
let generalError = new Error('Failed to fetch repos');
repositoryServerActions.error({error: generalError});
if (callback) {
return callback({error: generalError});
}
return null;
}
let orgs = JSON.parse(orgBody);
orgs.results.map((org) => {
namespaces.push(org.orgname);
});
async.map(namespaces, (namespace, cb) => {
hubUtil.request({
url: `${REGHUB2_ENDPOINT}/repositories/${namespace}`
}, (error, response, body) => {
if (error) {
repositoryServerActions.error({error});
if (callback) {
return callback(error);
}
return null;
}
if (response.statusCode !== 200) {
repositoryServerActions.error({error: new Error('Could not fetch repository information from Docker Hub.')});
return null;
}
let data = JSON.parse(body);
cb(null, data.results);
});
}, (error, lists) => {
if (error) {
repositoryServerActions.error({error});
if (callback) { callback(error); }
return;
if (callback) {
return callback(error);
}
return null;
}
if (response.statusCode !== 200) {
repositoryServerActions.error({error: new Error('Could not fetch repository information from Docker Hub.')});
return;
let repos = [];
for (let list of lists) {
repos = repos.concat(list);
}
let data = JSON.parse(body);
cb(null, data.results);
});
}, (error, lists) => {
if (error) {
repositoryServerActions.error({error});
if (callback) { callback(error); }
return;
}
_.each(repos, repo => {
repo.is_user_repo = true;
});
let repos = [];
for (let list of lists) {
repos = repos.concat(list);
}
_.each(repos, repo => {
repo.is_user_repo = true;
});
repositoryServerActions.reposUpdated({repos});
if (callback) { callback(null, repos); }
repositoryServerActions.reposUpdated({repos});
if (callback) {
return callback(null, repos);
}
return null;
});
});
});
}