public void process(URL ghidraURL, TaskMonitor monitor) throws Exception, CancelledException {

		if (!GhidraURL.isServerRepositoryURL(ghidraURL) &&
			!GhidraURL.isLocalProjectURL(ghidraURL)) {
			throw new MalformedURLException("Unsupported repository URL: " + ghidraURL);
		}

		GhidraURLQuery.queryUrl(ghidraURL, new GhidraURLResultHandlerAdapter(true) {

			@Override
			public void processResult(DomainFolder domainFolder, URL url, TaskMonitor m)
					throws IOException, CancelledException {

				int totalFiles = getTotalFileCount(domainFolder);

				monitor.setMaximum(totalFiles);
				monitor.setShowProgressValue(true);

				process(domainFolder, monitor);
			}

			@Override
			public void processResult(DomainFile domainFile, URL url, TaskMonitor m)
					throws IOException, CancelledException {
				process(domainFile, monitor);
			}

		}, monitor);

	}
Process the specified repository URL
@param ghidraURL ghidra URL for existing server repository and optional
folder path
@param monitor task monitor
@throws Exception if an error occurs during processing
@throws CancelledException if processing is cancelled
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/ingest/IterateRepository.java