mirror of https://github.com/docker/docs.git
Merge pull request #1038 from FrenchBen/org-repo
Added support for ORG repos
This commit is contained in:
commit
bcfcd6bc70
|
|
@ -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'));
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
@ -115,38 +119,56 @@ module.exports = {
|
|||
// Returns the base64 encoded index token or null if no token exists
|
||||
repos: function (callback) {
|
||||
repositoryServerActions.reposLoading({repos: []});
|
||||
|
||||
let namespaces = [];
|
||||
// Get Orgs for user
|
||||
hubUtil.request({
|
||||
url: `${REGHUB2_ENDPOINT}/namespaces/`,
|
||||
}, (error, response, body) => {
|
||||
if (error) {
|
||||
repositoryServerActions.error({error});
|
||||
if (callback) { callback(error); }
|
||||
return;
|
||||
url: `${REGHUB2_ENDPOINT}/user/orgs/?page_size=50`
|
||||
}, (orgError, orgResponse, orgBody) => {
|
||||
if (orgError) {
|
||||
repositoryServerActions.error({orgError});
|
||||
if (callback) {
|
||||
return callback(orgError);
|
||||
}
|
||||
|
||||
if (response.statusCode !== 200) {
|
||||
return null;
|
||||
}
|
||||
if (orgResponse.statusCode !== 200) {
|
||||
let generalError = new Error('Failed to fetch repos');
|
||||
repositoryServerActions.error({error: generalError});
|
||||
if (callback) { callback({error: generalError}); }
|
||||
return;
|
||||
if (callback) {
|
||||
callback({error: generalError});
|
||||
}
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
let orgs = JSON.parse(orgBody);
|
||||
orgs.results.map((org) => {
|
||||
namespaces.push(org.orgname);
|
||||
});
|
||||
// Add current user
|
||||
namespaces.push(hubUtil.username());
|
||||
} catch(jsonError) {
|
||||
repositoryServerActions.error({jsonError});
|
||||
if (callback) {
|
||||
return callback(jsonError);
|
||||
}
|
||||
}
|
||||
|
||||
let data = JSON.parse(body);
|
||||
let namespaces = data.namespaces;
|
||||
|
||||
async.map(namespaces, (namespace, cb) => {
|
||||
hubUtil.request({
|
||||
url: `${REGHUB2_ENDPOINT}/repositories/${namespace}`
|
||||
}, (error, response, body) => {
|
||||
if (error) {
|
||||
repositoryServerActions.error({error});
|
||||
if (callback) { callback(error); }
|
||||
return;
|
||||
if (callback) {
|
||||
callback(error);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
if (response.statusCode !== 200) {
|
||||
repositoryServerActions.error({error: new Error('Could not fetch repository information from Docker Hub.')});
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
let data = JSON.parse(body);
|
||||
|
|
@ -155,8 +177,10 @@ module.exports = {
|
|||
}, (error, lists) => {
|
||||
if (error) {
|
||||
repositoryServerActions.error({error});
|
||||
if (callback) { callback(error); }
|
||||
return;
|
||||
if (callback) {
|
||||
callback(error);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
let repos = [];
|
||||
|
|
@ -169,7 +193,10 @@ module.exports = {
|
|||
});
|
||||
|
||||
repositoryServerActions.reposUpdated({repos});
|
||||
if (callback) { callback(null, repos); }
|
||||
if (callback) {
|
||||
return callback(null, repos);
|
||||
}
|
||||
return null;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue