{"action":"created","comment":{"url":"https://api.github.com/repos/mitchellh/packer/pulls/comments/86895142","pull_request_review_id":7530268,"id":86895142,"diff_hunk":"@@ -0,0 +1,519 @@\n+// Copyright (c) Microsoft Open Technologies, Inc.\n+// All Rights Reserved.\n+// Licensed under the Apache License, Version 2.0.\n+// See License.txt in the project root for license information.\n+package iso\n+\n+import (\n+\t\"errors\"\n+\t\"fmt\"\n+\t\"log\"\n+\t\"os\"\n+\t\"strings\"\n+\n+\t\"github.com/mitchellh/multistep\"\n+\thypervcommon \"github.com/mitchellh/packer/builder/hyperv/common\"\n+\t\"github.com/mitchellh/packer/common\"\n+\t\"github.com/mitchellh/packer/helper/communicator\"\n+\t\"github.com/mitchellh/packer/helper/config\"\n+\t\"github.com/mitchellh/packer/packer\"\n+\tpowershell \"github.com/mitchellh/packer/powershell\"\n+\t\"github.com/mitchellh/packer/powershell/hyperv\"\n+\t\"github.com/mitchellh/packer/template/interpolate\"\n+)\n+\n+const (\n+\tDefaultDiskSize = 40 * 1024        // ~40GB\n+\tMinDiskSize     = 256              // 256MB\n+\tMaxDiskSize     = 64 * 1024 * 1024 // 64TB\n+\n+\tDefaultRamSize                 = 1 * 1024  // 1GB\n+\tMinRamSize                     = 32        // 32MB\n+\tMaxRamSize                     = 32 * 1024 // 32GB\n+\tMinNestedVirtualizationRamSize = 4 * 1024  // 4GB\n+\n+\tLowRam = 256 // 256MB\n+\n+\tDefaultUsername = \"\"\n+\tDefaultPassword = \"\"\n+)\n+\n+// Builder implements packer.Builder and builds the actual Hyperv\n+// images.\n+type Builder struct {\n+\tconfig Config\n+\trunner multistep.Runner\n+}\n+\n+type Config struct {\n+\tcommon.PackerConfig         `mapstructure:\",squash\"`\n+\tcommon.HTTPConfig           `mapstructure:\",squash\"`\n+\tcommon.ISOConfig            `mapstructure:\",squash\"`\n+\thypervcommon.FloppyConfig   `mapstructure:\",squash\"`\n+\thypervcommon.OutputConfig   `mapstructure:\",squash\"`\n+\thypervcommon.SSHConfig      `mapstructure:\",squash\"`\n+\thypervcommon.RunConfig      `mapstructure:\",squash\"`\n+\thypervcommon.ShutdownConfig `mapstructure:\",squash\"`\n+\n+\t// The size, in megabytes, of the hard disk to create for the VM.\n+\t// By default, this is 130048 (about 127 GB).\n+\tDiskSize uint `mapstructure:\"disk_size\"`\n+\t// The size, in megabytes, of the computer memory in the VM.\n+\t// By default, this is 1024 (about 1 GB).\n+\tRamSize uint `mapstructure:\"ram_size\"`\n+\t// A list of files to place onto a floppy disk that is attached when the\n+\t// VM is booted. This is most useful for unattended Windows installs,\n+\t// which look for an Autounattend.xml file on removable media. By default,\n+\t// no floppy will be attached. All files listed in this setting get\n+\t// placed into the root directory of the floppy and the floppy is attached\n+\t// as the first floppy device. Currently, no support exists for creating\n+\t// sub-directories on the floppy. Wildcard characters (*, ?, and [])\n+\t// are allowed. Directory names are also allowed, which will add all\n+\t// the files found in the directory to the floppy.\n+\tFloppyFiles []string `mapstructure:\"floppy_files\"`\n+\t//\n+\tSecondaryDvdImages []string `mapstructure:\"secondary_iso_images\"`\n+\n+\t// Should integration services iso be mounted\n+\tGuestAdditionsMode string `mapstructure:\"guest_additions_mode\"`\n+\n+\t// The path to the integration services iso\n+\tGuestAdditionsPath string `mapstructure:\"guest_additions_path\"`\n+\n+\t// This is the name of the new virtual machine.\n+\t// By default this is \"packer-BUILDNAME\", where \"BUILDNAME\" is the name of the build.\n+\tVMName string `mapstructure:\"vm_name\"`\n+\n+\tBootCommand                    []string `mapstructure:\"boot_command\"`\n+\tSwitchName                     string   `mapstructure:\"switch_name\"`\n+\tSwitchVlanId                   string   `mapstructure:\"switch_vlan_id\"`\n+\tVlanId                         string   `mapstructure:\"vlan_id\"`\n+\tCpu                            uint     `mapstructure:\"cpu\"`\n+\tGeneration                     uint     `mapstructure:\"generation\"`\n+\tEnableMacSpoofing              bool     `mapstructure:\"enable_mac_spoofing\"`\n+\tEnableDynamicMemory            bool     `mapstructure:\"enable_dynamic_memory\"`\n+\tEnableSecureBoot               bool     `mapstructure:\"enable_secure_boot\"`\n+\tEnableVirtualizationExtensions bool     `mapstructure:\"enable_virtualization_extensions\"`\n+\n+\tCommunicator string `mapstructure:\"communicator\"`\n+\n+\tSkipCompaction bool `mapstructure:\"skip_compaction\"`\n+\n+\tctx interpolate.Context\n+}\n+\n+// Prepare processes the build configuration parameters.\n+func (b *Builder) Prepare(raws ...interface{}) ([]string, error) {\n+\terr := config.Decode(&b.config, &config.DecodeOpts{\n+\t\tInterpolate: true,\n+\t\tInterpolateFilter: &interpolate.RenderFilter{\n+\t\t\tExclude: []string{\n+\t\t\t\t\"boot_command\",\n+\t\t\t},\n+\t\t},\n+\t}, raws...)\n+\tif err != nil {\n+\t\treturn nil, err\n+\t}\n+\n+\t// Accumulate any errors and warnings\n+\tvar errs *packer.MultiError\n+\twarnings := make([]string, 0)\n+\n+\tisoWarnings, isoErrs := b.config.ISOConfig.Prepare(&b.config.ctx)\n+\twarnings = append(warnings, isoWarnings...)\n+\terrs = packer.MultiErrorAppend(errs, isoErrs...)\n+\n+\terrs = packer.MultiErrorAppend(errs, b.config.FloppyConfig.Prepare(&b.config.ctx)...)\n+\terrs = packer.MultiErrorAppend(errs, b.config.HTTPConfig.Prepare(&b.config.ctx)...)\n+\terrs = packer.MultiErrorAppend(errs, b.config.RunConfig.Prepare(&b.config.ctx)...)\n+\terrs = packer.MultiErrorAppend(errs, b.config.OutputConfig.Prepare(&b.config.ctx, &b.config.PackerConfig)...)\n+\terrs = packer.MultiErrorAppend(errs, b.config.SSHConfig.Prepare(&b.config.ctx)...)\n+\terrs = packer.MultiErrorAppend(errs, b.config.ShutdownConfig.Prepare(&b.config.ctx)...)\n+\n+\terr = b.checkDiskSize()\n+\tif err != nil {\n+\t\terrs = packer.MultiErrorAppend(errs, err)\n+\t}\n+\n+\terr = b.checkRamSize()\n+\tif err != nil {\n+\t\terrs = packer.MultiErrorAppend(errs, err)\n+\t}\n+\n+\tif b.config.VMName == \"\" {\n+\t\tb.config.VMName = fmt.Sprintf(\"packer-%s\", b.config.PackerBuildName)\n+\t}\n+\n+\tlog.Println(fmt.Sprintf(\"%s: %v\", \"VMName\", b.config.VMName))\n+\n+\tif b.config.SwitchName == \"\" {\n+\t\tb.config.SwitchName = b.detectSwitchName()\n+\t}\n+\n+\tif b.config.Cpu < 1 {\n+\t\tb.config.Cpu = 1\n+\t}\n+\n+\tif b.config.Generation != 2 {\n+\t\tb.config.Generation = 1\n+\t}\n+\n+\tif b.config.Generation == 2 {\n+\t\tif len(b.config.FloppyFiles) > 0 {\n+\t\t\terr = errors.New(\"Generation 2 vms don't support floppy drives. Use ISO image instead.\")\n+\t\t\terrs = packer.MultiErrorAppend(errs, err)\n+\t\t}\n+\t}\n+\n+\tlog.Println(fmt.Sprintf(\"Using switch %s\", b.config.SwitchName))\n+\tlog.Println(fmt.Sprintf(\"%s: %v\", \"SwitchName\", b.config.SwitchName))\n+\n+\tif b.config.Communicator == \"\" {\n+\t\tb.config.Communicator = \"ssh\"\n+\t} else if b.config.Communicator == \"ssh\" || b.config.Communicator == \"winrm\" {\n+\t\t// good\n+\t} else {\n+\t\terr = errors.New(\"communicator must be either ssh or winrm\")\n+\t\terrs = packer.MultiErrorAppend(errs, err)\n+\t}\n+\n+\tlog.Println(fmt.Sprintf(\"%s: %v\", \"Communicator\", b.config.Communicator))\n+\n+\t// Errors\n+\tif b.config.GuestAdditionsMode == \"\" {\n+\t\tb.config.GuestAdditionsMode = \"attach\"","path":"builder/hyperv/iso/builder.go","position":185,"original_position":185,"commit_id":"90bc80b996c3017451ea17ef91d3f0ca50e0ffe5","original_commit_id":"90bc80b996c3017451ea17ef91d3f0ca50e0ffe5","user":{"login":"mwhooker","id":15618,"avatar_url":"https://avatars.githubusercontent.com/u/15618?v=3","gravatar_id":"","url":"https://api.github.com/users/mwhooker","html_url":"https://github.com/mwhooker","followers_url":"https://api.github.com/users/mwhooker/followers","following_url":"https://api.github.com/users/mwhooker/following{/other_user}","gists_url":"https://api.github.com/users/mwhooker/gists{/gist_id}","starred_url":"https://api.github.com/users/mwhooker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mwhooker/subscriptions","organizations_url":"https://api.github.com/users/mwhooker/orgs","repos_url":"https://api.github.com/users/mwhooker/repos","events_url":"https://api.github.com/users/mwhooker/events{/privacy}","received_events_url":"https://api.github.com/users/mwhooker/received_events","type":"User","site_admin":false},"body":"should we have this default to none? The minimal ubuntu example fails unless you have the ISO in the correct place since it defaults to attach","created_at":"2016-11-07T23:40:09Z","updated_at":"2016-11-07T23:40:09Z","html_url":"https://github.com/mitchellh/packer/pull/2576#discussion_r86895142","pull_request_url":"https://api.github.com/repos/mitchellh/packer/pulls/2576","_links":{"self":{"href":"https://api.github.com/repos/mitchellh/packer/pulls/comments/86895142"},"html":{"href":"https://github.com/mitchellh/packer/pull/2576#discussion_r86895142"},"pull_request":{"href":"https://api.github.com/repos/mitchellh/packer/pulls/2576"}}},"pull_request":{"url":"https://api.github.com/repos/mitchellh/packer/pulls/2576","id":41999572,"html_url":"https://github.com/mitchellh/packer/pull/2576","diff_url":"https://github.com/mitchellh/packer/pull/2576.diff","patch_url":"https://github.com/mitchellh/packer/pull/2576.patch","issue_url":"https://api.github.com/repos/mitchellh/packer/issues/2576","number":2576,"state":"open","locked":false,"title":"Add Hyper-V builder","user":{"login":"taliesins","id":314567,"avatar_url":"https://avatars.githubusercontent.com/u/314567?v=3","gravatar_id":"","url":"https://api.github.com/users/taliesins","html_url":"https://github.com/taliesins","followers_url":"https://api.github.com/users/taliesins/followers","following_url":"https://api.github.com/users/taliesins/following{/other_user}","gists_url":"https://api.github.com/users/taliesins/gists{/gist_id}","starred_url":"https://api.github.com/users/taliesins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/taliesins/subscriptions","organizations_url":"https://api.github.com/users/taliesins/orgs","repos_url":"https://api.github.com/users/taliesins/repos","events_url":"https://api.github.com/users/taliesins/events{/privacy}","received_events_url":"https://api.github.com/users/taliesins/received_events","type":"User","site_admin":false},"body":"Add on all the good work done by https://github.com/pbolduc/packer-hyperv/\nSupports hyper-v 1 and 2 generation machines\nSupports boot_command so you can use it to automate linux builds\nDocumentation added\n","created_at":"2015-08-10T09:03:01Z","updated_at":"2016-11-07T23:40:09Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1f0fcfdccf7cd4141f16a411fe539c0718fb92f0","assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/mitchellh/packer/milestones/17","html_url":"https://github.com/mitchellh/packer/milestones/v0.12","labels_url":"https://api.github.com/repos/mitchellh/packer/milestones/17/labels","id":2065980,"number":17,"title":"v0.12","description":"0.12 will be the last release before v1.0","creator":{"login":"mwhooker","id":15618,"avatar_url":"https://avatars.githubusercontent.com/u/15618?v=3","gravatar_id":"","url":"https://api.github.com/users/mwhooker","html_url":"https://github.com/mwhooker","followers_url":"https://api.github.com/users/mwhooker/followers","following_url":"https://api.github.com/users/mwhooker/following{/other_user}","gists_url":"https://api.github.com/users/mwhooker/gists{/gist_id}","starred_url":"https://api.github.com/users/mwhooker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mwhooker/subscriptions","organizations_url":"https://api.github.com/users/mwhooker/orgs","repos_url":"https://api.github.com/users/mwhooker/repos","events_url":"https://api.github.com/users/mwhooker/events{/privacy}","received_events_url":"https://api.github.com/users/mwhooker/received_events","type":"User","site_admin":false},"open_issues":8,"closed_issues":9,"state":"open","created_at":"2016-10-12T19:21:38Z","updated_at":"2016-11-05T21:25:47Z","due_on":"2016-11-15T00:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/mitchellh/packer/pulls/2576/commits","review_comments_url":"https://api.github.com/repos/mitchellh/packer/pulls/2576/comments","review_comment_url":"https://api.github.com/repos/mitchellh/packer/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mitchellh/packer/issues/2576/comments","statuses_url":"https://api.github.com/repos/mitchellh/packer/statuses/90bc80b996c3017451ea17ef91d3f0ca50e0ffe5","head":{"label":"taliesins:HyperV","ref":"HyperV","sha":"90bc80b996c3017451ea17ef91d3f0ca50e0ffe5","user":{"login":"taliesins","id":314567,"avatar_url":"https://avatars.githubusercontent.com/u/314567?v=3","gravatar_id":"","url":"https://api.github.com/users/taliesins","html_url":"https://github.com/taliesins","followers_url":"https://api.github.com/users/taliesins/followers","following_url":"https://api.github.com/users/taliesins/following{/other_user}","gists_url":"https://api.github.com/users/taliesins/gists{/gist_id}","starred_url":"https://api.github.com/users/taliesins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/taliesins/subscriptions","organizations_url":"https://api.github.com/users/taliesins/orgs","repos_url":"https://api.github.com/users/taliesins/repos","events_url":"https://api.github.com/users/taliesins/events{/privacy}","received_events_url":"https://api.github.com/users/taliesins/received_events","type":"User","site_admin":false},"repo":{"id":37606725,"name":"packer","full_name":"taliesins/packer","owner":{"login":"taliesins","id":314567,"avatar_url":"https://avatars.githubusercontent.com/u/314567?v=3","gravatar_id":"","url":"https://api.github.com/users/taliesins","html_url":"https://github.com/taliesins","followers_url":"https://api.github.com/users/taliesins/followers","following_url":"https://api.github.com/users/taliesins/following{/other_user}","gists_url":"https://api.github.com/users/taliesins/gists{/gist_id}","starred_url":"https://api.github.com/users/taliesins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/taliesins/subscriptions","organizations_url":"https://api.github.com/users/taliesins/orgs","repos_url":"https://api.github.com/users/taliesins/repos","events_url":"https://api.github.com/users/taliesins/events{/privacy}","received_events_url":"https://api.github.com/users/taliesins/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/taliesins/packer","description":"Packer is a tool for creating identical machine images for multiple platforms from a single source configuration.","fork":true,"url":"https://api.github.com/repos/taliesins/packer","forks_url":"https://api.github.com/repos/taliesins/packer/forks","keys_url":"https://api.github.com/repos/taliesins/packer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/taliesins/packer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/taliesins/packer/teams","hooks_url":"https://api.github.com/repos/taliesins/packer/hooks","issue_events_url":"https://api.github.com/repos/taliesins/packer/issues/events{/number}","events_url":"https://api.github.com/repos/taliesins/packer/events","assignees_url":"https://api.github.com/repos/taliesins/packer/assignees{/user}","branches_url":"https://api.github.com/repos/taliesins/packer/branches{/branch}","tags_url":"https://api.github.com/repos/taliesins/packer/tags","blobs_url":"https://api.github.com/repos/taliesins/packer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/taliesins/packer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/taliesins/packer/git/refs{/sha}","trees_url":"https://api.github.com/repos/taliesins/packer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/taliesins/packer/statuses/{sha}","languages_url":"https://api.github.com/repos/taliesins/packer/languages","stargazers_url":"https://api.github.com/repos/taliesins/packer/stargazers","contributors_url":"https://api.github.com/repos/taliesins/packer/contributors","subscribers_url":"https://api.github.com/repos/taliesins/packer/subscribers","subscription_url":"https://api.github.com/repos/taliesins/packer/subscription","commits_url":"https://api.github.com/repos/taliesins/packer/commits{/sha}","git_commits_url":"https://api.github.com/repos/taliesins/packer/git/commits{/sha}","comments_url":"https://api.github.com/repos/taliesins/packer/comments{/number}","issue_comment_url":"https://api.github.com/repos/taliesins/packer/issues/comments{/number}","contents_url":"https://api.github.com/repos/taliesins/packer/contents/{+path}","compare_url":"https://api.github.com/repos/taliesins/packer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/taliesins/packer/merges","archive_url":"https://api.github.com/repos/taliesins/packer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/taliesins/packer/downloads","issues_url":"https://api.github.com/repos/taliesins/packer/issues{/number}","pulls_url":"https://api.github.com/repos/taliesins/packer/pulls{/number}","milestones_url":"https://api.github.com/repos/taliesins/packer/milestones{/number}","notifications_url":"https://api.github.com/repos/taliesins/packer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/taliesins/packer/labels{/name}","releases_url":"https://api.github.com/repos/taliesins/packer/releases{/id}","deployments_url":"https://api.github.com/repos/taliesins/packer/deployments","created_at":"2015-06-17T16:25:45Z","updated_at":"2016-10-23T19:11:40Z","pushed_at":"2016-11-06T16:20:43Z","git_url":"git://github.com/taliesins/packer.git","ssh_url":"git@github.com:taliesins/packer.git","clone_url":"https://github.com/taliesins/packer.git","svn_url":"https://github.com/taliesins/packer","homepage":"http://www.packer.io","size":20872,"stargazers_count":7,"watchers_count":7,"language":"Go","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":10,"mirror_url":null,"open_issues_count":1,"forks":10,"open_issues":1,"watchers":7,"default_branch":"master"}},"base":{"label":"mitchellh:master","ref":"master","sha":"f06ab286bf6c7462b284ab69fa6091ba0ee00b6d","user":{"login":"mitchellh","id":1299,"avatar_url":"https://avatars.githubusercontent.com/u/1299?v=3","gravatar_id":"","url":"https://api.github.com/users/mitchellh","html_url":"https://github.com/mitchellh","followers_url":"https://api.github.com/users/mitchellh/followers","following_url":"https://api.github.com/users/mitchellh/following{/other_user}","gists_url":"https://api.github.com/users/mitchellh/gists{/gist_id}","starred_url":"https://api.github.com/users/mitchellh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mitchellh/subscriptions","organizations_url":"https://api.github.com/users/mitchellh/orgs","repos_url":"https://api.github.com/users/mitchellh/repos","events_url":"https://api.github.com/users/mitchellh/events{/privacy}","received_events_url":"https://api.github.com/users/mitchellh/received_events","type":"User","site_admin":false},"repo":{"id":8966356,"name":"packer","full_name":"mitchellh/packer","owner":{"login":"mitchellh","id":1299,"avatar_url":"https://avatars.githubusercontent.com/u/1299?v=3","gravatar_id":"","url":"https://api.github.com/users/mitchellh","html_url":"https://github.com/mitchellh","followers_url":"https://api.github.com/users/mitchellh/followers","following_url":"https://api.github.com/users/mitchellh/following{/other_user}","gists_url":"https://api.github.com/users/mitchellh/gists{/gist_id}","starred_url":"https://api.github.com/users/mitchellh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mitchellh/subscriptions","organizations_url":"https://api.github.com/users/mitchellh/orgs","repos_url":"https://api.github.com/users/mitchellh/repos","events_url":"https://api.github.com/users/mitchellh/events{/privacy}","received_events_url":"https://api.github.com/users/mitchellh/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mitchellh/packer","description":"Packer is a tool for creating identical machine images for multiple platforms from a single source configuration.","fork":false,"url":"https://api.github.com/repos/mitchellh/packer","forks_url":"https://api.github.com/repos/mitchellh/packer/forks","keys_url":"https://api.github.com/repos/mitchellh/packer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mitchellh/packer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mitchellh/packer/teams","hooks_url":"https://api.github.com/repos/mitchellh/packer/hooks","issue_events_url":"https://api.github.com/repos/mitchellh/packer/issues/events{/number}","events_url":"https://api.github.com/repos/mitchellh/packer/events","assignees_url":"https://api.github.com/repos/mitchellh/packer/assignees{/user}","branches_url":"https://api.github.com/repos/mitchellh/packer/branches{/branch}","tags_url":"https://api.github.com/repos/mitchellh/packer/tags","blobs_url":"https://api.github.com/repos/mitchellh/packer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mitchellh/packer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mitchellh/packer/git/refs{/sha}","trees_url":"https://api.github.com/repos/mitchellh/packer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mitchellh/packer/statuses/{sha}","languages_url":"https://api.github.com/repos/mitchellh/packer/languages","stargazers_url":"https://api.github.com/repos/mitchellh/packer/stargazers","contributors_url":"https://api.github.com/repos/mitchellh/packer/contributors","subscribers_url":"https://api.github.com/repos/mitchellh/packer/subscribers","subscription_url":"https://api.github.com/repos/mitchellh/packer/subscription","commits_url":"https://api.github.com/repos/mitchellh/packer/commits{/sha}","git_commits_url":"https://api.github.com/repos/mitchellh/packer/git/commits{/sha}","comments_url":"https://api.github.com/repos/mitchellh/packer/comments{/number}","issue_comment_url":"https://api.github.com/repos/mitchellh/packer/issues/comments{/number}","contents_url":"https://api.github.com/repos/mitchellh/packer/contents/{+path}","compare_url":"https://api.github.com/repos/mitchellh/packer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mitchellh/packer/merges","archive_url":"https://api.github.com/repos/mitchellh/packer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mitchellh/packer/downloads","issues_url":"https://api.github.com/repos/mitchellh/packer/issues{/number}","pulls_url":"https://api.github.com/repos/mitchellh/packer/pulls{/number}","milestones_url":"https://api.github.com/repos/mitchellh/packer/milestones{/number}","notifications_url":"https://api.github.com/repos/mitchellh/packer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mitchellh/packer/labels{/name}","releases_url":"https://api.github.com/repos/mitchellh/packer/releases{/id}","deployments_url":"https://api.github.com/repos/mitchellh/packer/deployments","created_at":"2013-03-23T05:43:03Z","updated_at":"2016-11-07T21:59:59Z","pushed_at":"2016-11-07T20:53:28Z","git_url":"git://github.com/mitchellh/packer.git","ssh_url":"git@github.com:mitchellh/packer.git","clone_url":"https://github.com/mitchellh/packer.git","svn_url":"https://github.com/mitchellh/packer","homepage":"http://www.packer.io","size":38913,"stargazers_count":5870,"watchers_count":5870,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1432,"mirror_url":null,"open_issues_count":556,"forks":1432,"open_issues":556,"watchers":5870,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mitchellh/packer/pulls/2576"},"html":{"href":"https://github.com/mitchellh/packer/pull/2576"},"issue":{"href":"https://api.github.com/repos/mitchellh/packer/issues/2576"},"comments":{"href":"https://api.github.com/repos/mitchellh/packer/issues/2576/comments"},"review_comments":{"href":"https://api.github.com/repos/mitchellh/packer/pulls/2576/comments"},"review_comment":{"href":"https://api.github.com/repos/mitchellh/packer/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mitchellh/packer/pulls/2576/commits"},"statuses":{"href":"https://api.github.com/repos/mitchellh/packer/statuses/90bc80b996c3017451ea17ef91d3f0ca50e0ffe5"}}}}
{"actor":{"display_login":"mwhooker"}}