{"action":"created","comment":{"url":"https://api.github.com/repos/habitat-sh/habitat/pulls/comments/194836288","pull_request_review_id":128083961,"id":194836288,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5NDgzNjI4OA==","diff_hunk":"@@ -0,0 +1,170 @@\n+---\n+title: Base Plans Refresh is Coming to Habitat Core Plans!\n+date: 2018-06-13\n+author: Nell Shamrell-Harrington\n+tags: core plans\n+category: update\n+classes: body-article\n+---\n+\n+Greetings, fellow Habicats!\n+\n+We will be refreshing the base plans of Core Plans on Tuesday, June 19th.  Let's go over what this means for us and, more important, what it means for you.\n+\n+## Base Plans 101\n+\n+Currently, there are about 500 Habitat plans under the Core Origin on Builder.\n+\n+These include everything from services like Postgresql to binaries like go to very low level system libraries, all of which you can easily pull into your own Habitat artifacts.\n+\n+### What's a Base Plan?\n+\n+The Base Plans are a group of plans (mostly low level systems libraries) that:\n+* are used by nearly every other plan (or a dependency of that plan) on Builder\n+* are used to build Habitat itself\n+* need to be built in a certain order.\n+\n+You can see [the full list of Base Plans](https://github.com/habitat-sh/core-plans/blob/master/CODEOWNERS) in the Core Plans CODEOWNERS file.\n+\n+Any time one of these plans is updated (especially ones that are nearly universally used, like [glibc](https://en.wikipedia.org/wiki/GNU_C_Library) and [gcc](https://gcc.gnu.org/), all other base plans which depend on it need to be built in a certain order, and then all plans that depend (or depend on a plan that depends) on those base plans also need to be rebuilt. We call this the \"rebuild the world\" scenario.\n+\n+### Why are you refreshing them?\n+\n+Many of our current base plans are on very old versions - i.e. the current version of gcc on Builder is 5.2.0, when the most recent stable release of gcc is 8.1.0).  It is vital to update them - and consequently every plan that depends on them - to more recent stable versions.\n+\n+Many of them also must be updated simultaneously - if we update gcc to 8.1 and it requires a later version of glibc than we current have, we must also update glibc.\n+\n+### What else does it affect?\n+\n+We are simultaneously refreshing nearly every [core plan](https://github.com/habitat-sh/core-plans/) at the same time as we are refreshing the base plans.  This is because the majority (if not all) of the core plans depend on at least one of the base plans in some fashion (or, at the very least, a base plan is in their dependency chain).\n+\n+## Base Plans and You\n+\n+So far we've discussed how and why we are refreshing the base plans and core plans, but what does that mean for the plans in your own origin?\n+\n+### How does this affect me?\n+\n+Chances are, any plan within your origin depends on at least one of the core base plans somewhere in its chain of dependencies.  When that plan is updated, your plan also must be rebuilt.  This sounds simple, but if you have plans in your origin that depend on other plans - and those plans depend on a core plan (let's say glibc), all of them must be built with the same version of glibc.  Let's look at this visually.\n+\n+### Dependencies\n+\n+Let's say I have a plan under my origin (nellshamrell) called widget_world - let's say it lives at nellshamrell/widget_world on Builder.\n+\n+```\n+nellshamrell/widget_world\n+```\n+\n+Now, let's say that plan depends on two more plans nellshamrell/widget and nellshamrell/world (yes, it's contrived, just go with it for now).\n+\n+```\n+nellshamrell/widget_world\n+-> nellshamrell/widget\n+-> nellshamrell/world\n+```\n+\n+And let's say each of those plans depends on core/glibc for some reason\n+\n+```\n+nellshamrell/widget_world\n+-> nellshamrell/widget\n+   --> core/glibc\n+-> nellshamrell/world\n+   --> core/glibc\n+```\n+\n+And let's say both are using the current core/glibc plan, which means they are both using version 2.22\n+\n+```\n+nellshamrell/widget_world\n+-> nellshamrell/widget\n+   --> core/glibc/2.22\n+-> nellshamrell/world\n+   --> core/glibc/2.22\n+```\n+\n+My nellshamrell/widget_world plan will build fine, because both of its dependencies are built with the same version of glibc.\n+\n+```\n+(studio) $ build widget_world\n+...\n+Success!\n+I love when a plan.sh comes together!\n+```\n+\n+Then suppose the Habitat team upgrades core/glibc to 2.27.  And let's say for some reason you only update one of the dependencies to use the updated glibc - so nellshamrell/widget will depend on core/glibc/2.27, while nellshamrell/world will still depend on core/glibc/2.22\n+\n+```\n+nellshamrell/widget_world\n+-> nellshamrell/widget\n+   --> core/glibc/2.27\n+-> nellshamrell/world\n+   --> core/glibc/2.22\n+```\n+\n+This time, if I attempt to build \"nellshamrell/widget_world\", it will return a very ugly error that look similar to this:\n+\n+```\n+(studio) $ build widget_world\n+(...)\n+   widget_world: WARN\n+   widget_world: WARN The following runtime dependencies have more than one version\n+   widget_world: WARN release in the full dependency chain:\n+   widget_world: WARN\n+   widget_world: WARN   * core/glibc ( core/glibc/2.22/<timestamp> core/glibc/2.27/<timestamp> )\n+   widget_world: WARN\n+   widget_world: WARN The current situation usually arises when a Plan has a direct\n+   widget_world: WARN dependency on one version of a package (`acme/A/7.0/20160101200001`)\n+   widget_world: WARN and has a direct dependency on another package which itself depends\n+   widget_world: WARN on another version of the same package (`acme/A/2.0/20151201060001`).\n+   widget_world: WARN If this package (`acme/A`) contains shared libraries which are\n+   widget_world: WARN loaded at runtime by the current Plan, then both versions of\n+   widget_world: WARN `acme/A` could be loaded into the same process in a potentially\n+   widget_world: WARN surprising order. Worse, if both versions of `acme/A` are\n+   widget_world: WARN ABI-incompatible, runtime segmentation faults are more than likely.\n+   widget_world: WARN\n+   widget_world: WARN In order to preserve reliability at runtime the duplicate dependency\n+   widget_world: WARN entries will need to be resolved before this Plan can be built.\n+   widget_world: WARN Below is an expanded graph of all `$pkg_deps` and their dependencies\n+   widget_world: WARN with the problematic lines noted.\n+   widget_world: WARN\n+   widget_world: WARN Computed dependency graph (Lines with '*' denote a problematic entry):\n+\n+nellshamrell/widget_world/1.0.0/<timestamp>\n+    nellshamrell/widget/1.0.0/<timestamp> (*)\n+        core/glibc/2.27/<timestamp> (*)\n+    nellshamrell/world/1.0.0/<timestamp> (*)\n+        core/glibc/2.22/<timestamp> (*)\n+\n+ERROR: Computed runtime dependency check failed, aborting\n+```\n+\n+This error occurs because nellshamrell/widget_world has one dependency that was built with 2.27, and another that was built with 2.22.  This makes them uncompatible, and the nellshamrell/widget_world plan will not build.\n+\n+### How do I resolve this?\n+\n+In this case, you can resolve this error by rebuilding nellshamrell/world with core/glibc version 2.27.  If we do that, and now both dependencies depend on the same version of glibc, then nellshamrell/widget_world will build fine.\n+\n+```\n+nellshamrell/widget_world\n+-> nellshamrell/widget\n+   --> core/glibc/2.27\n+-> nellshamrell/world\n+   --> core/glibc/2.27\n+```\n+\n+Success!\n+\n+```\n+(studio) $ build widget_world\n+...\n+Success!\n+I love when a plan.sh comes together!\n+```\n+\n+So...after the core plans refresh gets added to production, and all of the base plans and dependent base plans are promoted to stable, you may see some of these failures with your own plans.  It's also possible they may fail on more than one dependency being out of sync.  You can fix these errors in 2 ways:\n+1) Rebuilding a dependency with an older version of a base plan (i.e. nellshamrell/world with core/glibc/2.22) with a newer version of that base plan, or at least the same version as the rest of your dependencies (i.e. nellshamrell/world with core/glibc/2.27).","path":"www/source/blog/2018-06-13-base-plans-refresh.html.md","position":null,"original_position":165,"commit_id":"f646d1791e50f729c2ef169ccd1b299c206056a1","original_commit_id":"717b4afcb0f398ff51005e8c06dfbd10bc238873","user":{"login":"nellshamrell","id":813007,"node_id":"MDQ6VXNlcjgxMzAwNw==","avatar_url":"https://avatars3.githubusercontent.com/u/813007?v=4","gravatar_id":"","url":"https://api.github.com/users/nellshamrell","html_url":"https://github.com/nellshamrell","followers_url":"https://api.github.com/users/nellshamrell/followers","following_url":"https://api.github.com/users/nellshamrell/following{/other_user}","gists_url":"https://api.github.com/users/nellshamrell/gists{/gist_id}","starred_url":"https://api.github.com/users/nellshamrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nellshamrell/subscriptions","organizations_url":"https://api.github.com/users/nellshamrell/orgs","repos_url":"https://api.github.com/users/nellshamrell/repos","events_url":"https://api.github.com/users/nellshamrell/events{/privacy}","received_events_url":"https://api.github.com/users/nellshamrell/received_events","type":"User","site_admin":false},"body":"Fixed!","created_at":"2018-06-12T18:05:34Z","updated_at":"2018-06-12T18:05:34Z","html_url":"https://github.com/habitat-sh/habitat/pull/5189#discussion_r194836288","pull_request_url":"https://api.github.com/repos/habitat-sh/habitat/pulls/5189","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/habitat-sh/habitat/pulls/comments/194836288"},"html":{"href":"https://github.com/habitat-sh/habitat/pull/5189#discussion_r194836288"},"pull_request":{"href":"https://api.github.com/repos/habitat-sh/habitat/pulls/5189"}},"in_reply_to_id":194830512},"pull_request":{"url":"https://api.github.com/repos/habitat-sh/habitat/pulls/5189","id":194354003,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk0MzU0MDAz","html_url":"https://github.com/habitat-sh/habitat/pull/5189","diff_url":"https://github.com/habitat-sh/habitat/pull/5189.diff","patch_url":"https://github.com/habitat-sh/habitat/pull/5189.patch","issue_url":"https://api.github.com/repos/habitat-sh/habitat/issues/5189","number":5189,"state":"open","locked":false,"title":"Base package refresh post","user":{"login":"nellshamrell","id":813007,"node_id":"MDQ6VXNlcjgxMzAwNw==","avatar_url":"https://avatars3.githubusercontent.com/u/813007?v=4","gravatar_id":"","url":"https://api.github.com/users/nellshamrell","html_url":"https://github.com/nellshamrell","followers_url":"https://api.github.com/users/nellshamrell/followers","following_url":"https://api.github.com/users/nellshamrell/following{/other_user}","gists_url":"https://api.github.com/users/nellshamrell/gists{/gist_id}","starred_url":"https://api.github.com/users/nellshamrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nellshamrell/subscriptions","organizations_url":"https://api.github.com/users/nellshamrell/orgs","repos_url":"https://api.github.com/users/nellshamrell/repos","events_url":"https://api.github.com/users/nellshamrell/events{/privacy}","received_events_url":"https://api.github.com/users/nellshamrell/received_events","type":"User","site_admin":false},"body":"Communication of our upcoming base plans refresh :)","created_at":"2018-06-12T17:30:02Z","updated_at":"2018-06-12T18:05:34Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a340f63e311d2e61a0bfe914349675cc9266cfad","assignee":null,"assignees":[],"requested_reviewers":[{"login":"mgamini","id":223407,"node_id":"MDQ6VXNlcjIyMzQwNw==","avatar_url":"https://avatars0.githubusercontent.com/u/223407?v=4","gravatar_id":"","url":"https://api.github.com/users/mgamini","html_url":"https://github.com/mgamini","followers_url":"https://api.github.com/users/mgamini/followers","following_url":"https://api.github.com/users/mgamini/following{/other_user}","gists_url":"https://api.github.com/users/mgamini/gists{/gist_id}","starred_url":"https://api.github.com/users/mgamini/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mgamini/subscriptions","organizations_url":"https://api.github.com/users/mgamini/orgs","repos_url":"https://api.github.com/users/mgamini/repos","events_url":"https://api.github.com/users/mgamini/events{/privacy}","received_events_url":"https://api.github.com/users/mgamini/received_events","type":"User","site_admin":false},{"login":"cnunciato","id":274700,"node_id":"MDQ6VXNlcjI3NDcwMA==","avatar_url":"https://avatars3.githubusercontent.com/u/274700?v=4","gravatar_id":"","url":"https://api.github.com/users/cnunciato","html_url":"https://github.com/cnunciato","followers_url":"https://api.github.com/users/cnunciato/followers","following_url":"https://api.github.com/users/cnunciato/following{/other_user}","gists_url":"https://api.github.com/users/cnunciato/gists{/gist_id}","starred_url":"https://api.github.com/users/cnunciato/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cnunciato/subscriptions","organizations_url":"https://api.github.com/users/cnunciato/orgs","repos_url":"https://api.github.com/users/cnunciato/repos","events_url":"https://api.github.com/users/cnunciato/events{/privacy}","received_events_url":"https://api.github.com/users/cnunciato/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":621114732,"node_id":"MDU6TGFiZWw2MjExMTQ3MzI=","url":"https://api.github.com/repos/habitat-sh/habitat/labels/A-documentation","name":"A-documentation","color":"87B09A","default":false},{"id":621119469,"node_id":"MDU6TGFiZWw2MjExMTk0Njk=","url":"https://api.github.com/repos/habitat-sh/habitat/labels/C-release","name":"C-release","color":"ff9012","default":false},{"id":888973052,"node_id":"MDU6TGFiZWw4ODg5NzMwNTI=","url":"https://api.github.com/repos/habitat-sh/habitat/labels/V-core-plans","name":"V-core-plans","color":"0fb0bf","default":false},{"id":859405755,"node_id":"MDU6TGFiZWw4NTk0MDU3NTU=","url":"https://api.github.com/repos/habitat-sh/habitat/labels/V-devx","name":"V-devx","color":"0fb0bf","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/habitat-sh/habitat/pulls/5189/commits","review_comments_url":"https://api.github.com/repos/habitat-sh/habitat/pulls/5189/comments","review_comment_url":"https://api.github.com/repos/habitat-sh/habitat/pulls/comments{/number}","comments_url":"https://api.github.com/repos/habitat-sh/habitat/issues/5189/comments","statuses_url":"https://api.github.com/repos/habitat-sh/habitat/statuses/f646d1791e50f729c2ef169ccd1b299c206056a1","head":{"label":"habitat-sh:base-package-refresh-post","ref":"base-package-refresh-post","sha":"f646d1791e50f729c2ef169ccd1b299c206056a1","user":{"login":"habitat-sh","id":18171698,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE4MTcxNjk4","avatar_url":"https://avatars0.githubusercontent.com/u/18171698?v=4","gravatar_id":"","url":"https://api.github.com/users/habitat-sh","html_url":"https://github.com/habitat-sh","followers_url":"https://api.github.com/users/habitat-sh/followers","following_url":"https://api.github.com/users/habitat-sh/following{/other_user}","gists_url":"https://api.github.com/users/habitat-sh/gists{/gist_id}","starred_url":"https://api.github.com/users/habitat-sh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/habitat-sh/subscriptions","organizations_url":"https://api.github.com/users/habitat-sh/orgs","repos_url":"https://api.github.com/users/habitat-sh/repos","events_url":"https://api.github.com/users/habitat-sh/events{/privacy}","received_events_url":"https://api.github.com/users/habitat-sh/received_events","type":"Organization","site_admin":false},"repo":{"id":36098429,"node_id":"MDEwOlJlcG9zaXRvcnkzNjA5ODQyOQ==","name":"habitat","full_name":"habitat-sh/habitat","owner":{"login":"habitat-sh","id":18171698,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE4MTcxNjk4","avatar_url":"https://avatars0.githubusercontent.com/u/18171698?v=4","gravatar_id":"","url":"https://api.github.com/users/habitat-sh","html_url":"https://github.com/habitat-sh","followers_url":"https://api.github.com/users/habitat-sh/followers","following_url":"https://api.github.com/users/habitat-sh/following{/other_user}","gists_url":"https://api.github.com/users/habitat-sh/gists{/gist_id}","starred_url":"https://api.github.com/users/habitat-sh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/habitat-sh/subscriptions","organizations_url":"https://api.github.com/users/habitat-sh/orgs","repos_url":"https://api.github.com/users/habitat-sh/repos","events_url":"https://api.github.com/users/habitat-sh/events{/privacy}","received_events_url":"https://api.github.com/users/habitat-sh/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/habitat-sh/habitat","description":"Modern applications with built-in automation","fork":false,"url":"https://api.github.com/repos/habitat-sh/habitat","forks_url":"https://api.github.com/repos/habitat-sh/habitat/forks","keys_url":"https://api.github.com/repos/habitat-sh/habitat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/habitat-sh/habitat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/habitat-sh/habitat/teams","hooks_url":"https://api.github.com/repos/habitat-sh/habitat/hooks","issue_events_url":"https://api.github.com/repos/habitat-sh/habitat/issues/events{/number}","events_url":"https://api.github.com/repos/habitat-sh/habitat/events","assignees_url":"https://api.github.com/repos/habitat-sh/habitat/assignees{/user}","branches_url":"https://api.github.com/repos/habitat-sh/habitat/branches{/branch}","tags_url":"https://api.github.com/repos/habitat-sh/habitat/tags","blobs_url":"https://api.github.com/repos/habitat-sh/habitat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/habitat-sh/habitat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/habitat-sh/habitat/git/refs{/sha}","trees_url":"https://api.github.com/repos/habitat-sh/habitat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/habitat-sh/habitat/statuses/{sha}","languages_url":"https://api.github.com/repos/habitat-sh/habitat/languages","stargazers_url":"https://api.github.com/repos/habitat-sh/habitat/stargazers","contributors_url":"https://api.github.com/repos/habitat-sh/habitat/contributors","subscribers_url":"https://api.github.com/repos/habitat-sh/habitat/subscribers","subscription_url":"https://api.github.com/repos/habitat-sh/habitat/subscription","commits_url":"https://api.github.com/repos/habitat-sh/habitat/commits{/sha}","git_commits_url":"https://api.github.com/repos/habitat-sh/habitat/git/commits{/sha}","comments_url":"https://api.github.com/repos/habitat-sh/habitat/comments{/number}","issue_comment_url":"https://api.github.com/repos/habitat-sh/habitat/issues/comments{/number}","contents_url":"https://api.github.com/repos/habitat-sh/habitat/contents/{+path}","compare_url":"https://api.github.com/repos/habitat-sh/habitat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/habitat-sh/habitat/merges","archive_url":"https://api.github.com/repos/habitat-sh/habitat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/habitat-sh/habitat/downloads","issues_url":"https://api.github.com/repos/habitat-sh/habitat/issues{/number}","pulls_url":"https://api.github.com/repos/habitat-sh/habitat/pulls{/number}","milestones_url":"https://api.github.com/repos/habitat-sh/habitat/milestones{/number}","notifications_url":"https://api.github.com/repos/habitat-sh/habitat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/habitat-sh/habitat/labels{/name}","releases_url":"https://api.github.com/repos/habitat-sh/habitat/releases{/id}","deployments_url":"https://api.github.com/repos/habitat-sh/habitat/deployments","created_at":"2015-05-22T22:47:14Z","updated_at":"2018-06-12T16:03:26Z","pushed_at":"2018-06-12T18:04:50Z","git_url":"git://github.com/habitat-sh/habitat.git","ssh_url":"git@github.com:habitat-sh/habitat.git","clone_url":"https://github.com/habitat-sh/habitat.git","svn_url":"https://github.com/habitat-sh/habitat","homepage":"https://www.habitat.sh","size":89414,"stargazers_count":1539,"watchers_count":1539,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":244,"mirror_url":null,"archived":false,"open_issues_count":384,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":244,"open_issues":384,"watchers":1539,"default_branch":"master"}},"base":{"label":"habitat-sh:master","ref":"master","sha":"e23e9190d03b3ed88b35040db72a6193c93b3dd8","user":{"login":"habitat-sh","id":18171698,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE4MTcxNjk4","avatar_url":"https://avatars0.githubusercontent.com/u/18171698?v=4","gravatar_id":"","url":"https://api.github.com/users/habitat-sh","html_url":"https://github.com/habitat-sh","followers_url":"https://api.github.com/users/habitat-sh/followers","following_url":"https://api.github.com/users/habitat-sh/following{/other_user}","gists_url":"https://api.github.com/users/habitat-sh/gists{/gist_id}","starred_url":"https://api.github.com/users/habitat-sh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/habitat-sh/subscriptions","organizations_url":"https://api.github.com/users/habitat-sh/orgs","repos_url":"https://api.github.com/users/habitat-sh/repos","events_url":"https://api.github.com/users/habitat-sh/events{/privacy}","received_events_url":"https://api.github.com/users/habitat-sh/received_events","type":"Organization","site_admin":false},"repo":{"id":36098429,"node_id":"MDEwOlJlcG9zaXRvcnkzNjA5ODQyOQ==","name":"habitat","full_name":"habitat-sh/habitat","owner":{"login":"habitat-sh","id":18171698,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE4MTcxNjk4","avatar_url":"https://avatars0.githubusercontent.com/u/18171698?v=4","gravatar_id":"","url":"https://api.github.com/users/habitat-sh","html_url":"https://github.com/habitat-sh","followers_url":"https://api.github.com/users/habitat-sh/followers","following_url":"https://api.github.com/users/habitat-sh/following{/other_user}","gists_url":"https://api.github.com/users/habitat-sh/gists{/gist_id}","starred_url":"https://api.github.com/users/habitat-sh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/habitat-sh/subscriptions","organizations_url":"https://api.github.com/users/habitat-sh/orgs","repos_url":"https://api.github.com/users/habitat-sh/repos","events_url":"https://api.github.com/users/habitat-sh/events{/privacy}","received_events_url":"https://api.github.com/users/habitat-sh/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/habitat-sh/habitat","description":"Modern applications with built-in automation","fork":false,"url":"https://api.github.com/repos/habitat-sh/habitat","forks_url":"https://api.github.com/repos/habitat-sh/habitat/forks","keys_url":"https://api.github.com/repos/habitat-sh/habitat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/habitat-sh/habitat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/habitat-sh/habitat/teams","hooks_url":"https://api.github.com/repos/habitat-sh/habitat/hooks","issue_events_url":"https://api.github.com/repos/habitat-sh/habitat/issues/events{/number}","events_url":"https://api.github.com/repos/habitat-sh/habitat/events","assignees_url":"https://api.github.com/repos/habitat-sh/habitat/assignees{/user}","branches_url":"https://api.github.com/repos/habitat-sh/habitat/branches{/branch}","tags_url":"https://api.github.com/repos/habitat-sh/habitat/tags","blobs_url":"https://api.github.com/repos/habitat-sh/habitat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/habitat-sh/habitat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/habitat-sh/habitat/git/refs{/sha}","trees_url":"https://api.github.com/repos/habitat-sh/habitat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/habitat-sh/habitat/statuses/{sha}","languages_url":"https://api.github.com/repos/habitat-sh/habitat/languages","stargazers_url":"https://api.github.com/repos/habitat-sh/habitat/stargazers","contributors_url":"https://api.github.com/repos/habitat-sh/habitat/contributors","subscribers_url":"https://api.github.com/repos/habitat-sh/habitat/subscribers","subscription_url":"https://api.github.com/repos/habitat-sh/habitat/subscription","commits_url":"https://api.github.com/repos/habitat-sh/habitat/commits{/sha}","git_commits_url":"https://api.github.com/repos/habitat-sh/habitat/git/commits{/sha}","comments_url":"https://api.github.com/repos/habitat-sh/habitat/comments{/number}","issue_comment_url":"https://api.github.com/repos/habitat-sh/habitat/issues/comments{/number}","contents_url":"https://api.github.com/repos/habitat-sh/habitat/contents/{+path}","compare_url":"https://api.github.com/repos/habitat-sh/habitat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/habitat-sh/habitat/merges","archive_url":"https://api.github.com/repos/habitat-sh/habitat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/habitat-sh/habitat/downloads","issues_url":"https://api.github.com/repos/habitat-sh/habitat/issues{/number}","pulls_url":"https://api.github.com/repos/habitat-sh/habitat/pulls{/number}","milestones_url":"https://api.github.com/repos/habitat-sh/habitat/milestones{/number}","notifications_url":"https://api.github.com/repos/habitat-sh/habitat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/habitat-sh/habitat/labels{/name}","releases_url":"https://api.github.com/repos/habitat-sh/habitat/releases{/id}","deployments_url":"https://api.github.com/repos/habitat-sh/habitat/deployments","created_at":"2015-05-22T22:47:14Z","updated_at":"2018-06-12T16:03:26Z","pushed_at":"2018-06-12T18:04:50Z","git_url":"git://github.com/habitat-sh/habitat.git","ssh_url":"git@github.com:habitat-sh/habitat.git","clone_url":"https://github.com/habitat-sh/habitat.git","svn_url":"https://github.com/habitat-sh/habitat","homepage":"https://www.habitat.sh","size":89414,"stargazers_count":1539,"watchers_count":1539,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":244,"mirror_url":null,"archived":false,"open_issues_count":384,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":244,"open_issues":384,"watchers":1539,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/habitat-sh/habitat/pulls/5189"},"html":{"href":"https://github.com/habitat-sh/habitat/pull/5189"},"issue":{"href":"https://api.github.com/repos/habitat-sh/habitat/issues/5189"},"comments":{"href":"https://api.github.com/repos/habitat-sh/habitat/issues/5189/comments"},"review_comments":{"href":"https://api.github.com/repos/habitat-sh/habitat/pulls/5189/comments"},"review_comment":{"href":"https://api.github.com/repos/habitat-sh/habitat/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/habitat-sh/habitat/pulls/5189/commits"},"statuses":{"href":"https://api.github.com/repos/habitat-sh/habitat/statuses/f646d1791e50f729c2ef169ccd1b299c206056a1"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"nellshamrell"}}