UNPKG

@atomist/sdm

Version:

Atomist Software Delivery Machine SDK

41 lines 1.73 kB
"use strict"; /* * Copyright © 2019 Atomist, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.doWithRepos = void 0; const logger_1 = require("@atomist/automation-client/lib/util/logger"); const pool_1 = require("@atomist/automation-client/lib/util/pool"); /** * Perform an action on all accessible repos in parallel up to a configurable max concurrency limit. * This is normally readonly. * If you want to perform an update, use a CodeTransform. * @param {SoftwareDeliveryMachine} sdm * @param {SdmContext} i * @param {WithLoadedProject<any>} action * @return {Promise<any>} */ async function doWithRepos(sdm, i, action) { const repos = await sdm.configuration.sdm.repoFinder(i.context); logger_1.logger.debug("doWithRepos working on %d repos", repos.length); await pool_1.executeAll(repos.map(id => () => { return sdm.configuration.sdm.projectLoader.doWithProject({ credentials: i.credentials, id: id, readOnly: true }, action) .catch(err => { logger_1.logger.debug("Project err: %s", err); }); })); } exports.doWithRepos = doWithRepos; //# sourceMappingURL=withRepos.js.map