{"action":"created","comment":{"url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/pulls/comments/137147300","pull_request_review_id":60776439,"id":137147300,"diff_hunk":"@@ -1,57 +1,297 @@\n-# Project Name\n+---\n+services: compute\n+platforms: ruby\n+author: vishrutshah\n+---\n \n-(short, 1-3 sentenced, description of the project)\n+# Create Azure virtual machines with Managed Service Identity using Ruby\n+This sample demonstrates how to create your Azure virtual machines with Managed Service Identity using the Ruby SDK.\n \n-## Features\n+**On this page**\n \n-This project framework provides the following features:\n+- [Run this sample](#run)\n+- [What is example.rb doing?](#example)\n+    - [Create a virtual network](#vnet)\n+    - [Create a public IP address](#ipaddress)\n+    - [Create a network interface](#nic)\n+    - [Create a virtual machine with system identity](#vm)\n+    - [Add MSI extension to the VM](#extension)\n+    - [Verify MSI extension is running on VM by logging-in via ssh](#msi-extension)\n+    - [Delete the resources](#delete)\n \n-* Feature 1\n-* Feature 2\n-* ...\n \n-## Getting Started\n+<a id=\"run\"></a>\n+## Run this sample\n \n-### Prerequisites\n+1. If you don't already have it, [install Ruby and the Ruby DevKit](https://www.ruby-lang.org/en/documentation/installation/).\n \n-(ideally very short, if any)\n+2. If you don't have bundler, install it.\n \n-- OS\n-- Library version\n-- ...\n+    ```\n+    gem install bundler\n+    ```\n+    \n+3. Clone the repository.\n \n-### Installation\n+    ```\n+    git clone https://github.com/Azure-Samples/compute-ruby-msi-vm.git\n+    ```\n \n-(ideally very short)\n+4. Install the dependencies using bundle.\n \n-- npm install [package name]\n-- mvn install\n-- ...\n+    ```\n+    cd compute-ruby-msi-vm\n+    bundle install\n+    ```\n+    \n+5. Create an Azure service principal either through\n \n-### Quickstart\n-(Add steps to get up and running quickly)\n+    [Azure CLI](https://azure.microsoft.com/documentation/articles/resource-group-authenticate-service-principal-cli/),\n+    [PowerShell](https://azure.microsoft.com/documentation/articles/resource-group-authenticate-service-principal/)\n+    or [the portal](https://azure.microsoft.com/documentation/articles/resource-group-create-service-principal-portal/).\n \n-1. git clone [repository clone url]\n-2. cd [respository name]\n-3. ...\n+6. Set the following environment variables using the information from the service principle that you created.\n \n+    ```\n+    export AZURE_TENANT_ID={your tenant id}\n+    export AZURE_CLIENT_ID={your client id}\n+    export AZURE_CLIENT_SECRET={your client secret}\n+    export AZURE_SUBSCRIPTION_ID={your subscription id}\n+    ```\n \n-## Demo\n+    > [AZURE.NOTE] On Windows, use `set` instead of `export`.\n \n-A demo app is included to show how to use the project.\n+7. Run the sample.\n \n-To run the demo, follow these steps:\n+    ```\n+    bundle exec ruby example.rb\n+    ```\n \n-(Add steps to start up the demo)\n+<a id=\"example\"></a>\n+## What is example.rb doing?\n \n-1.\n-2.\n-3.\n+This sample starts by setting up ResourceManagementClient, the resource provider clients, a resource group, and a storage account using your subscription and credentials.\n \n-## Resources\n+```ruby\n+subscription_id = ENV['AZURE_SUBSCRIPTION_ID'] || '11111111-1111-1111-1111-111111111111' # your Azure Subscription Id\n+  provider = MsRestAzure::ApplicationTokenProvider.new(\n+      ENV['AZURE_TENANT_ID'],\n+      ENV['AZURE_CLIENT_ID'],\n+      ENV['AZURE_CLIENT_SECRET'])\n+  credentials = MsRest::TokenCredentials.new(provider)\n+  resource_client = Azure::ARM::Resources::ResourceManagementClient.new(credentials)\n+  resource_client.subscription_id = subscription_id\n+  network_client = Azure::ARM::Network::NetworkManagementClient.new(credentials)\n+  network_client.subscription_id = subscription_id\n+  storage_client = Azure::ARM::Storage::StorageManagementClient.new(credentials)\n+  storage_client.subscription_id = subscription_id\n+  compute_client = Azure::ARM::Compute::ComputeManagementClient.new(credentials)\n+  compute_client.subscription_id = subscription_id\n \n-(Any additional resources or related projects)\n+  #\n+  # Managing resource groups\n+  #\n+  resource_group_params = Azure::ARM::Resources::Models::ResourceGroup.new.tap do |rg|\n+    rg.location = WEST_US\n+  end\n \n-- Link to supporting information\n-- Link to similar sample\n-- ...\n+  # Create Resource group\n+  puts 'Create Resource Group'\n+  print_group resource_client.resource_groups.create_or_update(GROUP_NAME, resource_group_params)\n+\n+  postfix = rand(1000)\n+  storage_account_name = \"rubystor#{postfix}\"\n+  puts \"Creating a premium storage account with encryption off named #{storage_account_name} in resource group #{GROUP_NAME}\"\n+  storage_create_params = StorageModels::StorageAccountCreateParameters.new.tap do |account|\n+    account.location = WEST_US\n+    account.sku = StorageModels::Sku.new.tap do |sku|\n+      sku.name = StorageModels::SkuName::PremiumLRS\n+      sku.tier = StorageModels::SkuTier::Premium\n+    end\n+    account.kind = StorageModels::Kind::Storage\n+    account.encryption = StorageModels::Encryption.new.tap do |encrypt|\n+      encrypt.services = StorageModels::EncryptionServices.new.tap do |services|\n+        services.blob = StorageModels::EncryptionService.new.tap do |service|\n+          service.enabled = false\n+        end\n+      end\n+    end\n+  end\n+  print_item storage_account = storage_client.storage_accounts.create(GROUP_NAME, storage_account_name, storage_create_params)\n+```\n+\n+<a id=\"vnet\"></a>\n+### Create a virtual network\n+\n+```ruby\n+puts 'Creating a virtual network for the VM'\n+vnet_create_params = NetworkModels::VirtualNetwork.new.tap do |vnet|\n+  vnet.location = WEST_US\n+  vnet.address_space = NetworkModels::AddressSpace.new.tap do |addr_space|\n+    addr_space.address_prefixes = ['10.0.0.0/16']\n+  end\n+  vnet.dhcp_options = NetworkModels::DhcpOptions.new.tap do |dhcp|\n+    dhcp.dns_servers = ['8.8.8.8']\n+  end\n+  vnet.subnets = [\n+      NetworkModels::Subnet.new.tap do |subnet|\n+        subnet.name = 'rubySampleSubnet'\n+        subnet.address_prefix = '10.0.0.0/24'\n+      end\n+  ]\n+end\n+print_item vnet = network_client.virtual_networks.create_or_update(GROUP_NAME, 'sample-ruby-vnet', vnet_create_params)\n+```\n+\n+<a id=\"ipaddress\"></a>\n+### Create a public IP address\n+\n+```ruby\n+puts 'Creating a public IP address for the VM'\n+public_ip_params = NetworkModels::PublicIPAddress.new.tap do |ip|\n+    ip.location = WEST_US\n+    ip.public_ipallocation_method = NetworkModels::IPAllocationMethod::Dynamic\n+    ip.dns_settings = NetworkModels::PublicIPAddressDnsSettings.new.tap do |dns|\n+        dns.domain_name_label = 'msi-vm-domain-name-label'\n+    end\n+end\n+print_item public_ip = network_client.public_ipaddresses.create_or_update(GROUP_NAME, 'sample-ruby-pubip', public_ip_params)\n+```\n+\n+<a id=\"nic\"></a>\n+### Create a network interface\n+\n+```ruby\n+print_item nic = network_client.network_interfaces.create_or_update(\n+    GROUP_NAME,\n+    \"sample-ruby-nic-#{vm_name}\",\n+    NetworkModels::NetworkInterface.new.tap do |interface|\n+        interface.location = WEST_US\n+        interface.ip_configurations = [\n+            NetworkModels::NetworkInterfaceIPConfiguration.new.tap do |nic_conf|\n+                nic_conf.name = \"sample-ruby-nic-#{vm_name}\"\n+                nic_conf.private_ipallocation_method = NetworkModels::IPAllocationMethod::Dynamic\n+                nic_conf.subnet = subnet\n+                nic_conf.public_ipaddress = public_ip\n+            end\n+        ]\n+    end\n+)\n+```\n+\n+<a id=\"vm\"></a>\n+### Create a virtual machine with system identity\n+\n+```ruby\n+puts 'Creating a Ubuntu 16.04.0-LTS Standard DS2 V2 virtual machine w/ a public IP'\n+vm_create_params = ComputeModels::VirtualMachine.new.tap do |vm|\n+  vm.location = location\n+  vm.os_profile = ComputeModels::OSProfile.new.tap do |os_profile|\n+    os_profile.computer_name = vm_name\n+    os_profile.admin_username = 'notAdmin'\n+    os_profile.admin_password = 'Pa$$w0rd92'\n+  end\n+\n+  vm.storage_profile = ComputeModels::StorageProfile.new.tap do |store_profile|\n+    store_profile.image_reference = ComputeModels::ImageReference.new.tap do |ref|\n+      ref.publisher = 'canonical'\n+      ref.offer = 'UbuntuServer'\n+      ref.sku = '16.04.0-LTS'\n+      ref.version = 'latest'\n+    end\n+    store_profile.os_disk = ComputeModels::OSDisk.new.tap do |os_disk|\n+      os_disk.name = \"sample-os-disk-#{vm_name}\"\n+      os_disk.caching = ComputeModels::CachingTypes::None\n+      os_disk.create_option = ComputeModels::DiskCreateOptionTypes::FromImage\n+      os_disk.vhd = ComputeModels::VirtualHardDisk.new.tap do |vhd|\n+        vhd.uri = \"https://#{storage_acct.name}.blob.core.windows.net/rubycontainer/#{vm_name}.vhd\"\n+      end\n+    end\n+  end\n+\n+  vm.hardware_profile = ComputeModels::HardwareProfile.new.tap do |hardware|\n+    hardware.vm_size = ComputeModels::VirtualMachineSizeTypes::StandardDS2V2\n+  end\n+\n+  vm.network_profile = ComputeModels::NetworkProfile.new.tap do |net_profile|\n+    net_profile.network_interfaces = [\n+        ComputeModels::NetworkInterfaceReference.new.tap do |ref|\n+          ref.id = nic.id\n+          ref.primary = true\n+        end\n+    ]\n+  end\n+\n+  # Use System Assigned Identity for the VM\n+  vm.identity = ComputeModels::VirtualMachineIdentity.new.tap do |identity|\n+    identity.type = ComputeModels::ResourceIdentityType::SystemAssigned\n+  end\n+end\n+\n+ssh_pub_location = File.expand_path('~/.ssh/id_rsa.pub')\n+if File.exists? ssh_pub_location\n+  puts \"Found SSH public key in #{ssh_pub_location}. Disabling password and enabling SSH authentication.\"\n+  key_data = File.read(ssh_pub_location)\n+  puts \"Using public key: #{key_data}\"\n+  vm_create_params.os_profile.linux_configuration = ComputeModels::LinuxConfiguration.new.tap do |linux|\n+    linux.disable_password_authentication = true\n+    linux.ssh = ComputeModels::SshConfiguration.new.tap do |ssh_config|\n+      ssh_config.public_keys = [\n+          ComputeModels::SshPublicKey.new.tap do |pub_key|\n+            pub_key.key_data = key_data\n+            pub_key.path = '/home/notAdmin/.ssh/authorized_keys'\n+          end\n+      ]\n+    end\n+  end\n+end\n+\n+print_item vm = compute_client.virtual_machines.create_or_update(GROUP_NAME, \"sample-ruby-vm-#{vm_name}\", vm_create_params)\n+```\n+\n+<a id=\"extension\"></a>\n+### Add MSI extension to the VM\n+\n+```ruby\n+puts \"Install Managed Service Identity Extension\"\n+ext_name = 'msiextension'\n+vm_extension = ComputeModels::VirtualMachineExtension.new.tap do |extension|\n+  extension.publisher = 'Microsoft.ManagedIdentity'\n+  extension.virtual_machine_extension_type = 'ManagedIdentityExtensionForLinux'\n+  extension.type_handler_version = '1.0'\n+  extension.auto_upgrade_minor_version = true\n+  extension.settings = Hash.new.tap do |settings|\n+    settings['port'] = '50342'\n+  end\n+  extension.location = WEST_US\n+end\n+\n+vm_ext = compute_client.virtual_machine_extensions.create_or_update(GROUP_NAME, \"sample-ruby-vm-#{vm_name}\", ext_name, vm_extension)\n+```\n+\n+<a id=\"msi-extension\"></a>\n+### Verify MSI extension is running on VM by logging-in via ssh\n+","path":"README.md","position":309,"original_position":309,"commit_id":"e4cc67266ab1cf209d9c1bc89daeb0279cfdc0d5","original_commit_id":"e4cc67266ab1cf209d9c1bc89daeb0279cfdc0d5","user":{"login":"veronicagg","id":17714137,"avatar_url":"https://avatars2.githubusercontent.com/u/17714137?v=4","gravatar_id":"","url":"https://api.github.com/users/veronicagg","html_url":"https://github.com/veronicagg","followers_url":"https://api.github.com/users/veronicagg/followers","following_url":"https://api.github.com/users/veronicagg/following{/other_user}","gists_url":"https://api.github.com/users/veronicagg/gists{/gist_id}","starred_url":"https://api.github.com/users/veronicagg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/veronicagg/subscriptions","organizations_url":"https://api.github.com/users/veronicagg/orgs","repos_url":"https://api.github.com/users/veronicagg/repos","events_url":"https://api.github.com/users/veronicagg/events{/privacy}","received_events_url":"https://api.github.com/users/veronicagg/received_events","type":"User","site_admin":false},"body":"probably a good idea to indicate what to look for? and why? \r\nI see that in the actual code, we have a comment that says, run this command and look for X.\r\n","created_at":"2017-09-06T00:29:03Z","updated_at":"2017-09-06T00:30:25Z","html_url":"https://github.com/Azure-Samples/compute-ruby-msi-vm/pull/2#discussion_r137147300","pull_request_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/pulls/2","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/pulls/comments/137147300"},"html":{"href":"https://github.com/Azure-Samples/compute-ruby-msi-vm/pull/2#discussion_r137147300"},"pull_request":{"href":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/pulls/2"}}},"pull_request":{"url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/pulls/2","id":137088390,"html_url":"https://github.com/Azure-Samples/compute-ruby-msi-vm/pull/2","diff_url":"https://github.com/Azure-Samples/compute-ruby-msi-vm/pull/2.diff","patch_url":"https://github.com/Azure-Samples/compute-ruby-msi-vm/pull/2.patch","issue_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/issues/2","number":2,"state":"open","locked":false,"title":"Create Azure VM with Managed Service Identity","user":{"login":"vishrutshah","id":8782776,"avatar_url":"https://avatars0.githubusercontent.com/u/8782776?v=4","gravatar_id":"","url":"https://api.github.com/users/vishrutshah","html_url":"https://github.com/vishrutshah","followers_url":"https://api.github.com/users/vishrutshah/followers","following_url":"https://api.github.com/users/vishrutshah/following{/other_user}","gists_url":"https://api.github.com/users/vishrutshah/gists{/gist_id}","starred_url":"https://api.github.com/users/vishrutshah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vishrutshah/subscriptions","organizations_url":"https://api.github.com/users/vishrutshah/orgs","repos_url":"https://api.github.com/users/vishrutshah/repos","events_url":"https://api.github.com/users/vishrutshah/events{/privacy}","received_events_url":"https://api.github.com/users/vishrutshah/received_events","type":"User","site_admin":false},"body":"Part of https://github.com/Azure/azure-sdk-for-ruby/issues/885","created_at":"2017-08-22T21:54:30Z","updated_at":"2017-09-06T00:30:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":"86df00266631c0ea0d2636fe92e80f955ff75c3e","assignee":{"login":"vishrutshah","id":8782776,"avatar_url":"https://avatars0.githubusercontent.com/u/8782776?v=4","gravatar_id":"","url":"https://api.github.com/users/vishrutshah","html_url":"https://github.com/vishrutshah","followers_url":"https://api.github.com/users/vishrutshah/followers","following_url":"https://api.github.com/users/vishrutshah/following{/other_user}","gists_url":"https://api.github.com/users/vishrutshah/gists{/gist_id}","starred_url":"https://api.github.com/users/vishrutshah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vishrutshah/subscriptions","organizations_url":"https://api.github.com/users/vishrutshah/orgs","repos_url":"https://api.github.com/users/vishrutshah/repos","events_url":"https://api.github.com/users/vishrutshah/events{/privacy}","received_events_url":"https://api.github.com/users/vishrutshah/received_events","type":"User","site_admin":false},"assignees":[{"login":"vishrutshah","id":8782776,"avatar_url":"https://avatars0.githubusercontent.com/u/8782776?v=4","gravatar_id":"","url":"https://api.github.com/users/vishrutshah","html_url":"https://github.com/vishrutshah","followers_url":"https://api.github.com/users/vishrutshah/followers","following_url":"https://api.github.com/users/vishrutshah/following{/other_user}","gists_url":"https://api.github.com/users/vishrutshah/gists{/gist_id}","starred_url":"https://api.github.com/users/vishrutshah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vishrutshah/subscriptions","organizations_url":"https://api.github.com/users/vishrutshah/orgs","repos_url":"https://api.github.com/users/vishrutshah/repos","events_url":"https://api.github.com/users/vishrutshah/events{/privacy}","received_events_url":"https://api.github.com/users/vishrutshah/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"sarangan12","id":602456,"avatar_url":"https://avatars1.githubusercontent.com/u/602456?v=4","gravatar_id":"","url":"https://api.github.com/users/sarangan12","html_url":"https://github.com/sarangan12","followers_url":"https://api.github.com/users/sarangan12/followers","following_url":"https://api.github.com/users/sarangan12/following{/other_user}","gists_url":"https://api.github.com/users/sarangan12/gists{/gist_id}","starred_url":"https://api.github.com/users/sarangan12/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sarangan12/subscriptions","organizations_url":"https://api.github.com/users/sarangan12/orgs","repos_url":"https://api.github.com/users/sarangan12/repos","events_url":"https://api.github.com/users/sarangan12/events{/privacy}","received_events_url":"https://api.github.com/users/sarangan12/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/pulls/2/commits","review_comments_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/pulls/2/comments","review_comment_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/issues/2/comments","statuses_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/statuses/e4cc67266ab1cf209d9c1bc89daeb0279cfdc0d5","head":{"label":"vishrutshah:msi-sample","ref":"msi-sample","sha":"e4cc67266ab1cf209d9c1bc89daeb0279cfdc0d5","user":{"login":"vishrutshah","id":8782776,"avatar_url":"https://avatars0.githubusercontent.com/u/8782776?v=4","gravatar_id":"","url":"https://api.github.com/users/vishrutshah","html_url":"https://github.com/vishrutshah","followers_url":"https://api.github.com/users/vishrutshah/followers","following_url":"https://api.github.com/users/vishrutshah/following{/other_user}","gists_url":"https://api.github.com/users/vishrutshah/gists{/gist_id}","starred_url":"https://api.github.com/users/vishrutshah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vishrutshah/subscriptions","organizations_url":"https://api.github.com/users/vishrutshah/orgs","repos_url":"https://api.github.com/users/vishrutshah/repos","events_url":"https://api.github.com/users/vishrutshah/events{/privacy}","received_events_url":"https://api.github.com/users/vishrutshah/received_events","type":"User","site_admin":false},"repo":{"id":101110572,"name":"compute-ruby-msi-vm","full_name":"vishrutshah/compute-ruby-msi-vm","owner":{"login":"vishrutshah","id":8782776,"avatar_url":"https://avatars0.githubusercontent.com/u/8782776?v=4","gravatar_id":"","url":"https://api.github.com/users/vishrutshah","html_url":"https://github.com/vishrutshah","followers_url":"https://api.github.com/users/vishrutshah/followers","following_url":"https://api.github.com/users/vishrutshah/following{/other_user}","gists_url":"https://api.github.com/users/vishrutshah/gists{/gist_id}","starred_url":"https://api.github.com/users/vishrutshah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vishrutshah/subscriptions","organizations_url":"https://api.github.com/users/vishrutshah/orgs","repos_url":"https://api.github.com/users/vishrutshah/repos","events_url":"https://api.github.com/users/vishrutshah/events{/privacy}","received_events_url":"https://api.github.com/users/vishrutshah/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/vishrutshah/compute-ruby-msi-vm","description":"This sample demonstrates how to create Azure virtual machine with Managed Service Identity Extension using a Ruby client","fork":true,"url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm","forks_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/forks","keys_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/keys{/key_id}","collaborators_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/teams","hooks_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/hooks","issue_events_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/issues/events{/number}","events_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/events","assignees_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/assignees{/user}","branches_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/branches{/branch}","tags_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/tags","blobs_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/git/refs{/sha}","trees_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/git/trees{/sha}","statuses_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/statuses/{sha}","languages_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/languages","stargazers_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/stargazers","contributors_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/contributors","subscribers_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/subscribers","subscription_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/subscription","commits_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/commits{/sha}","git_commits_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/git/commits{/sha}","comments_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/comments{/number}","issue_comment_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/issues/comments{/number}","contents_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/contents/{+path}","compare_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/compare/{base}...{head}","merges_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/merges","archive_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/downloads","issues_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/issues{/number}","pulls_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/pulls{/number}","milestones_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/milestones{/number}","notifications_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/labels{/name}","releases_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/releases{/id}","deployments_url":"https://api.github.com/repos/vishrutshah/compute-ruby-msi-vm/deployments","created_at":"2017-08-22T21:51:04Z","updated_at":"2017-08-22T21:48:20Z","pushed_at":"2017-08-22T22:49:58Z","git_url":"git://github.com/vishrutshah/compute-ruby-msi-vm.git","ssh_url":"git@github.com:vishrutshah/compute-ruby-msi-vm.git","clone_url":"https://github.com/vishrutshah/compute-ruby-msi-vm.git","svn_url":"https://github.com/vishrutshah/compute-ruby-msi-vm","homepage":"","size":16,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"Azure-Samples:master","ref":"master","sha":"c9786d1ed4e86556a9349e40c04a4a323599b77b","user":{"login":"Azure-Samples","id":1844662,"avatar_url":"https://avatars2.githubusercontent.com/u/1844662?v=4","gravatar_id":"","url":"https://api.github.com/users/Azure-Samples","html_url":"https://github.com/Azure-Samples","followers_url":"https://api.github.com/users/Azure-Samples/followers","following_url":"https://api.github.com/users/Azure-Samples/following{/other_user}","gists_url":"https://api.github.com/users/Azure-Samples/gists{/gist_id}","starred_url":"https://api.github.com/users/Azure-Samples/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Azure-Samples/subscriptions","organizations_url":"https://api.github.com/users/Azure-Samples/orgs","repos_url":"https://api.github.com/users/Azure-Samples/repos","events_url":"https://api.github.com/users/Azure-Samples/events{/privacy}","received_events_url":"https://api.github.com/users/Azure-Samples/received_events","type":"Organization","site_admin":false},"repo":{"id":100969210,"name":"compute-ruby-msi-vm","full_name":"Azure-Samples/compute-ruby-msi-vm","owner":{"login":"Azure-Samples","id":1844662,"avatar_url":"https://avatars2.githubusercontent.com/u/1844662?v=4","gravatar_id":"","url":"https://api.github.com/users/Azure-Samples","html_url":"https://github.com/Azure-Samples","followers_url":"https://api.github.com/users/Azure-Samples/followers","following_url":"https://api.github.com/users/Azure-Samples/following{/other_user}","gists_url":"https://api.github.com/users/Azure-Samples/gists{/gist_id}","starred_url":"https://api.github.com/users/Azure-Samples/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Azure-Samples/subscriptions","organizations_url":"https://api.github.com/users/Azure-Samples/orgs","repos_url":"https://api.github.com/users/Azure-Samples/repos","events_url":"https://api.github.com/users/Azure-Samples/events{/privacy}","received_events_url":"https://api.github.com/users/Azure-Samples/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Azure-Samples/compute-ruby-msi-vm","description":"This sample demonstrates how to create Azure virtual machine with Managed Service Identity Extension using a Ruby client","fork":false,"url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm","forks_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/forks","keys_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/teams","hooks_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/hooks","issue_events_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/issues/events{/number}","events_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/events","assignees_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/assignees{/user}","branches_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/branches{/branch}","tags_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/tags","blobs_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/git/refs{/sha}","trees_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/statuses/{sha}","languages_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/languages","stargazers_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/stargazers","contributors_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/contributors","subscribers_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/subscribers","subscription_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/subscription","commits_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/commits{/sha}","git_commits_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/git/commits{/sha}","comments_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/comments{/number}","issue_comment_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/issues/comments{/number}","contents_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/contents/{+path}","compare_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/merges","archive_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/downloads","issues_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/issues{/number}","pulls_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/pulls{/number}","milestones_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/milestones{/number}","notifications_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/labels{/name}","releases_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/releases{/id}","deployments_url":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/deployments","created_at":"2017-08-21T15:58:27Z","updated_at":"2017-08-22T21:48:20Z","pushed_at":"2017-08-22T22:49:59Z","git_url":"git://github.com/Azure-Samples/compute-ruby-msi-vm.git","ssh_url":"git@github.com:Azure-Samples/compute-ruby-msi-vm.git","clone_url":"https://github.com/Azure-Samples/compute-ruby-msi-vm.git","svn_url":"https://github.com/Azure-Samples/compute-ruby-msi-vm","homepage":"","size":6,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":1,"forks":1,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/pulls/2"},"html":{"href":"https://github.com/Azure-Samples/compute-ruby-msi-vm/pull/2"},"issue":{"href":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/issues/2"},"comments":{"href":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/issues/2/comments"},"review_comments":{"href":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/pulls/2/comments"},"review_comment":{"href":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/pulls/2/commits"},"statuses":{"href":"https://api.github.com/repos/Azure-Samples/compute-ruby-msi-vm/statuses/e4cc67266ab1cf209d9c1bc89daeb0279cfdc0d5"}},"author_association":"NONE"}}
{"actor":{"display_login":"veronicagg"}}