protected override async Task ExecuteCore() { if (Directory.Exists(ArtifactPath)) { Log.Warning("{Pack} was already downloaded. Skipping download.", repository); return; } var branch = await gitHubClient.Repository.Branch.Get(repoInfo.Owner, repoInfo.Repository, branchName); var commit = branch.Commit; var downloadUrl = GitHubMixin.GetCommitDownloadUrl(repositoryUrl, commit.Sha); var downloadeOn = DateTimeOffset.Now; using (var stream = await downloader.GetStream(downloadUrl, progressObserver)) { await zipExtractor.ExtractFirstChildToFolder(stream, ArtifactPath, progressObserver); } SaveMetadata(new { Repository = repoInfo, Commit = commit.Sha, Branch = branch.Name, DownloadedOn = downloadeOn, }); }
protected override async Task ExecuteCore() { if (Directory.Exists(ArtifactPath)) { Log.Warning("{Pack} was already downloaded. Skipping download.", ArtifactPath); return; } var repoInf = GitHubMixin.GetRepoInfo(repoUrl); var releases = await gitHubClient.Repository.Release.GetAll(repoInf.Owner, repoInf.Repository); var latestRelease = releases.OrderByDescending(x => x.CreatedAt).First(); var asset = latestRelease.Assets.First(x => string.Equals(x.Name, assetName, StringComparison.OrdinalIgnoreCase)); using (var stream = await downloader.GetStream(asset.BrowserDownloadUrl, progressObserver)) { await extractor.ExtractFirstChildToFolder(stream, ArtifactPath, progressObserver); } SaveMetadata(new { asset.Name, asset.Id, asset.Size, asset.UpdatedAt, asset.Label, asset.Url, }); }
public async Task Execute() { if (Directory.Exists(folderPath)) { Log.Warning("{Pack} was already downloaded. Skipping download.", artifactName); return; } var artifact = await buildClient.LatestBuildArtifact(org, project, definitionId, artifactName); var url = artifact.Resource.DownloadUrl; var stream = await downloader.GetStream(url, progressObserver); await extractor.ExtractFirstChildToFolder(stream, folderPath, progressObserver); }
public async Task Execute() { if (Directory.Exists(folderPath)) { Log.Warning("{Pack} was already downloaded. Skipping download.", repository); return; } var openZipStream = await GitHubMixin.GetBranchZippedStream(downloader, repoBaseUrl, branch, progressObserver); using (var stream = openZipStream) { await extractor.ExtractFirstChildToFolder(stream, folderPath, progressObserver); } }
public async Task Execute() { if (Directory.Exists(folderPath)) { Log.Warning("{Pack} was already downloaded. Skipping download.", folderPath); return; } var repoInf = GitHubMixin.GetRepoInfo(repoUrl); var latest = await gitHubClient.Repository.Release.GetLatest(repoInf.Owner, repoInf.Repository); var asset = latest.Assets.First(x => string.Equals(x.Name, assetName, StringComparison.OrdinalIgnoreCase)); using (var stream = await downloader.GetStream(asset.BrowserDownloadUrl, progressObserver)) { await extractor.ExtractFirstChildToFolder(stream, folderPath, progressObserver); } }