public async Task ShouldParseCredentials() { var tmp = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); Directory.CreateDirectory(tmp); try { File.WriteAllText(Path.Combine(tmp, ".runner"), runner); File.WriteAllText(Path.Combine(tmp, ".credentials"), credentials); File.WriteAllText(Path.Combine(tmp, ".credentials_rsaparams"), credentialsRsaParams); var getCreds = new GetCredentials(); var creds = await getCreds.GetCredentialsFromPath(tmp); Assert.Equal(Convert.ToBase64String(Encoding.UTF8.GetBytes(credentialsRsaParams)), creds.CredentialsRsaParams); Assert.Equal(Convert.ToBase64String(Encoding.UTF8.GetBytes(runner)), creds.Runner); Assert.Equal(Convert.ToBase64String(Encoding.UTF8.GetBytes(credentials)), creds.Credentials); Assert.Equal("213aa528-e449-4fc8-8b51-2f4bcd76d560", creds.Id.ToString()); Assert.NotNull(creds.PrivatePem); Assert.NotNull(creds.PublicPem); } finally { Directory.Delete(tmp, true); } }
//private void launchCredentialsThread_Click(object sender, RoutedEventArgs e) private void launchCredentialsThread_Click() { Thread credentialsThread = new Thread(delegate() { GetCredentials _credentials = new GetCredentials(); _credentials.Show(); System.Threading.Dispatcher.Run(); }); credentialsThread.SetApartmentState(ApartmentState.STA); // needs to be STA or throws exception credentialsThread.Start(); }
static Task <int> Main() => Deployment.RunAsync(async() => { // Create a private ECR registry. var repo = new Repository("my-repo"); // Get registry info (creds and endpoint) so we can build/publish to it. var imageName = repo.RepositoryUrl; var registryInfo = repo.RegistryId.Apply(async(id) => { var creds = await GetCredentials.InvokeAsync(new GetCredentialsArgs { RegistryId = id }); var decodedData = Convert.FromBase64String(creds.AuthorizationToken); var decoded = ASCIIEncoding.ASCII.GetString(decodedData); var parts = decoded.Split(':'); if (parts.Length != 2) { throw new Exception("Invalid credentials"); } return(new ImageRegistry { Server = creds.ProxyEndpoint, Username = parts[0], Password = parts[1], }); }); // Build and publish the app image. var image = new Image("my-image", new ImageArgs { Build = new DockerBuild { Context = "app" }, ImageName = imageName, Registry = registryInfo, }); // Export the resulting base name in addition to the specific version pushed. return(new Dictionary <string, object> { { "baseImageName", image.BaseImageName }, { "fullImageName", image.ImageName }, }); });