{"action":"created","comment":{"url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/pulls/comments/126335642","pull_request_review_id":48806178,"id":126335642,"diff_hunk":"@@ -0,0 +1,275 @@\n+# Python\n+ \n+Python has rich tools for packaging, distributing and sandboxing applications. Snapcraft builds on top of these familiar tools such as `pip`, `setup.py` and `requirements.txt` to create snaps for people to install on Linux. \n+ \n+## What problems do snaps solve for Python applications?\n+ \n+Linux install instructions for Python applications often get complicated. System dependencies, which differ from distribution to distribution, must be separately installed. To prevent modules from different Python applications clashing with each other, developer tools like `virtualenv` or `venv` must be used. With snapcraft it's one command to produce a bundle that works anywhere.\n+ \n+Here are some snap advantages that will benefit many Python projects:\n+ \n+  * Bundle all the runtime requirements, including the exact versions of system libraries.\n+  * Simplify installation instructions, regardless of distribution, to `snap install mypythonapp`.\n+  * Directly control the delivery of automatic application updates.\n+  * Extremely simple creation of daemons.\n+ \n+# Getting started\n+ \n+Let's take a look at `offlineimap` and `youtube-dl` by way of examples. Both are command line applications. `offlineimap` uses Python 2 and only has Python module requirements. `youtube-dl` uses Python 3 and has system package requirements, in this case `ffmpeg`.\n+ \n+## offlineimap\n+ \n+Snaps are defined in a single yaml file, placed in the root of your project. The `offlineimap` example shows how this `snapcraft.yaml` can be added to the source repository of an existing project, leveraging the existing `requirements.txt` to satisfy runtime requirements. Here is the entire `snapcraft.yaml` for `offlineimap`. We'll break this down.\n+ \n+```yaml\n+name: offlineimap\n+version: git\n+summary: OfflineIMAP\n+description: |\n+  OfflineIMAP is software that downloads your email mailbox(es) as local\n+  Maildirs. OfflineIMAP will synchronize both sides via IMAP.\n+\n+grade: devel\n+confinement: devmode\n+\n+apps:\n+  offlineimap:\n+    command: bin/offlineimap\n+\n+parts:\n+  offlineimap:\n+    plugin: python\n+    python-version: python2\n+    source: .\n+```\n+ \n+### Metadata\n+ \n+The `snapcraft.yaml` starts with a small amount of human-readable metadata, which usually can be lifted from the GitHub description or project README.md. This data is used in the presentation of your app in the snap store. The `summary:` can not exceed 79 characters. You can use a pipe with the `description:` to declare a multi-line description.\n+ \n+```yaml\n+name: offlineimap\n+version: git\n+summary: OfflineIMAP\n+description: |\n+  OfflineIMAP is software that downloads your email mailbox(es) as local\n+  Maildirs. OfflineIMAP will synchronize both sides via IMAP.\n+```\n+ \n+### Confinement\n+ \n+To get started we won’t confine this application. Unconfined applications, specified with `devmode`, can only be released to the hidden “edge” channel where you and other developers can install them.\n+ \n+```yaml\n+confinement: devmode\n+```\n+ \n+ \n+### Parts\n+ \n+Parts define how to build your app. Parts can be anything: programs, libraries, or other assets needed to create and run your application. In this case we have one: the offlineimap source code. In other cases these can point to local directories, remote git repositories, or tarballs.\n+ \n+The Python plugin will also bundle Python in the snap, so you can be sure that the version of Python you test against is included with your app. Dependencies from your requirements.txt will also be bundled.\n+ \n+```yaml\n+parts:\n+  offlineimap:\n+    plugin: python\n+    python-version: python2\n+    source: .\n+```\n+ \n+### Apps\n+ \n+Apps are the commands and services exposed to end users. If your command name matches the snap `name`, users will be able run the command directly. If the names differ, then apps are prefixed with the snap `name`. For example, `offlineimap.command-name`. This is to avoid conflicting with the apps defined by other installed snaps.\n+ \n+If you don’t want your command prefixed you can request an alias for it on the [Snapcraft forum](https://forum.snapcraft.io). These command aliases are set up automatically when your snap is installed from the snap store.\n+ \n+```yaml\n+apps:\n+  offlineimap:\n+    command: bin/offlineimap\n+```\n+ \n+If your application is intended to run as a service, add the line `daemon: simple` after the command keyword. This will automatically keep the service running on install, update and reboot.\n+ \n+## Building the snap\n+ \n+You’ll first need to [install snap support](https://snapcraft.io/docs/core/install), and then install the snapcraft tool:\n+```\n+sudo snap install --beta --classic snapcraft\n+```\n+ \n+You can then build this example yourself:\n+ \n+```\n+git clone https://github.com/snapcraft-docs/offlineimap\n+cd offlineimap\n+snapcraft\n+```\n+ \n+If the snapcraft command cannot be found, make sure your PATH contains /snap/bin (`echo $PATH`). This is done by the installation of snap support, but that change isn’t picked up until you start a new shell.\n+ \n+The resulting snap can be installed locally. This requires the `--dangerous` flag because the snap is not signed by the snap store:\n+ \n+    sudo snap install offlineimap_*.snap --devmode --dangerous\n+ \n+You can then try it out:\n+\n+    offlineimap\n+ \n+Removing the snap is simple too:\n+ \n+    sudo snap remove offlineimap\n+ \n+Jump ahead to [Share with your friends](#share-with-your-friends) or continue to read another example.\n+ \n+## youtube-dl\n+ \n+The `youtube-dl` example shows a `snapcraft.yaml` using a tarball of a Python application and using `stage-packages:` to bundle `ffmpeg` in the snap to satisfy the runtime requirements. Here is the entire `snapcraft.yaml` for `youtube-dl`. We'll break this down.\n+ \n+```yaml\n+name: youtube-dl\n+version: 2017.06.18\n+summary: YouTube Downloader.\n+description: |\n+  youtube-dl is a small command-line program to download videos from\n+  YouTube.com and a few more sites.\n+\n+grade: devel\n+confinement: devmode\n+\n+parts:\n+  youtube-dl:\n+    source: https://github.com/rg3/youtube-dl/archive/$SNAPCRAFT_PROJECT_VERSION.tar.gz\n+    plugin: python\n+    python-version: python3\n+    stage-packages: [ffmpeg]","path":"build-snaps/python.md","position":147,"original_position":147,"commit_id":"0edaa56cac6ef08f56113ad8a0e1278c9ae84d98","original_commit_id":"0edaa56cac6ef08f56113ad8a0e1278c9ae84d98","user":{"login":"thomir","id":372783,"avatar_url":"https://avatars0.githubusercontent.com/u/372783?v=3","gravatar_id":"","url":"https://api.github.com/users/thomir","html_url":"https://github.com/thomir","followers_url":"https://api.github.com/users/thomir/followers","following_url":"https://api.github.com/users/thomir/following{/other_user}","gists_url":"https://api.github.com/users/thomir/gists{/gist_id}","starred_url":"https://api.github.com/users/thomir/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thomir/subscriptions","organizations_url":"https://api.github.com/users/thomir/orgs","repos_url":"https://api.github.com/users/thomir/repos","events_url":"https://api.github.com/users/thomir/events{/privacy}","received_events_url":"https://api.github.com/users/thomir/received_events","type":"User","site_admin":false},"body":"Doing this surely makes this example Ubuntu specific? Will snapcraft DTRT when run on Fedora? \r\n\r\nGiven that one of the benefits of building a snap package is that you get to pick your dependencies explicitly, wouldn't it be better to do that here as well? (i.e.- build it as a separate part)","created_at":"2017-07-10T05:04:40Z","updated_at":"2017-07-10T05:10:36Z","html_url":"https://github.com/CanonicalLtd/snappy-docs/pull/87#discussion_r126335642","pull_request_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/pulls/87","_links":{"self":{"href":"https://api.github.com/repos/CanonicalLtd/snappy-docs/pulls/comments/126335642"},"html":{"href":"https://github.com/CanonicalLtd/snappy-docs/pull/87#discussion_r126335642"},"pull_request":{"href":"https://api.github.com/repos/CanonicalLtd/snappy-docs/pulls/87"}}},"pull_request":{"url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/pulls/87","id":127884288,"html_url":"https://github.com/CanonicalLtd/snappy-docs/pull/87","diff_url":"https://github.com/CanonicalLtd/snappy-docs/pull/87.diff","patch_url":"https://github.com/CanonicalLtd/snappy-docs/pull/87.patch","issue_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/issues/87","number":87,"state":"open","locked":false,"title":"Per-language narrative documentation","user":{"login":"evandandrea","id":1523179,"avatar_url":"https://avatars0.githubusercontent.com/u/1523179?v=3","gravatar_id":"","url":"https://api.github.com/users/evandandrea","html_url":"https://github.com/evandandrea","followers_url":"https://api.github.com/users/evandandrea/followers","following_url":"https://api.github.com/users/evandandrea/following{/other_user}","gists_url":"https://api.github.com/users/evandandrea/gists{/gist_id}","starred_url":"https://api.github.com/users/evandandrea/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/evandandrea/subscriptions","organizations_url":"https://api.github.com/users/evandandrea/orgs","repos_url":"https://api.github.com/users/evandandrea/repos","events_url":"https://api.github.com/users/evandandrea/events{/privacy}","received_events_url":"https://api.github.com/users/evandandrea/received_events","type":"User","site_admin":false},"body":"When complete, the navigation will be:\r\n\r\n**Build snaps**\r\n- [Pre-built apps](https://github.com/CanonicalLtd/snappy-docs/blob/349-language-docs/build-snaps/pre-built.md)\r\n- [Node](https://github.com/CanonicalLtd/snappy-docs/blob/349-language-docs/build-snaps/node.md)\r\n- Electron\r\n- Swift\r\n- Kotlin\r\n- [Go](https://github.com/CanonicalLtd/snappy-docs/blob/349-language-docs/build-snaps/go.md)\r\n- Java\r\n- [Python](https://github.com/CanonicalLtd/snappy-docs/blob/349-language-docs/build-snaps/python.md)\r\n- Ruby\r\n- C#\r\n- Unity 3D\r\n- PHP\r\n- C/C++\r\n- Rust\r\n\r\n**Release management**\r\n- Managing data and running code during updates\r\n- Getting your app ready for stable\r\n- Releasing to stable\r\n- Betas and release candidates\r\n- Creating different release tracks\r\n- Creating hotfixes\r\n\r\n…\r\n\r\nFixes https://github.com/canonical-websites/snapcraft.io/issues/349.","created_at":"2017-06-28T09:55:26Z","updated_at":"2017-07-10T05:10:36Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e6e4fe27a26f8d35b8300ddfeed5e7daf07738bd","assignee":{"login":"caldav","id":18480003,"avatar_url":"https://avatars3.githubusercontent.com/u/18480003?v=3","gravatar_id":"","url":"https://api.github.com/users/caldav","html_url":"https://github.com/caldav","followers_url":"https://api.github.com/users/caldav/followers","following_url":"https://api.github.com/users/caldav/following{/other_user}","gists_url":"https://api.github.com/users/caldav/gists{/gist_id}","starred_url":"https://api.github.com/users/caldav/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/caldav/subscriptions","organizations_url":"https://api.github.com/users/caldav/orgs","repos_url":"https://api.github.com/users/caldav/repos","events_url":"https://api.github.com/users/caldav/events{/privacy}","received_events_url":"https://api.github.com/users/caldav/received_events","type":"User","site_admin":false},"assignees":[{"login":"caldav","id":18480003,"avatar_url":"https://avatars3.githubusercontent.com/u/18480003?v=3","gravatar_id":"","url":"https://api.github.com/users/caldav","html_url":"https://github.com/caldav","followers_url":"https://api.github.com/users/caldav/followers","following_url":"https://api.github.com/users/caldav/following{/other_user}","gists_url":"https://api.github.com/users/caldav/gists{/gist_id}","starred_url":"https://api.github.com/users/caldav/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/caldav/subscriptions","organizations_url":"https://api.github.com/users/caldav/orgs","repos_url":"https://api.github.com/users/caldav/repos","events_url":"https://api.github.com/users/caldav/events{/privacy}","received_events_url":"https://api.github.com/users/caldav/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/pulls/87/commits","review_comments_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/pulls/87/comments","review_comment_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/issues/87/comments","statuses_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/statuses/0edaa56cac6ef08f56113ad8a0e1278c9ae84d98","head":{"label":"CanonicalLtd:349-language-docs","ref":"349-language-docs","sha":"0edaa56cac6ef08f56113ad8a0e1278c9ae84d98","user":{"login":"CanonicalLtd","id":7490288,"avatar_url":"https://avatars3.githubusercontent.com/u/7490288?v=3","gravatar_id":"","url":"https://api.github.com/users/CanonicalLtd","html_url":"https://github.com/CanonicalLtd","followers_url":"https://api.github.com/users/CanonicalLtd/followers","following_url":"https://api.github.com/users/CanonicalLtd/following{/other_user}","gists_url":"https://api.github.com/users/CanonicalLtd/gists{/gist_id}","starred_url":"https://api.github.com/users/CanonicalLtd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CanonicalLtd/subscriptions","organizations_url":"https://api.github.com/users/CanonicalLtd/orgs","repos_url":"https://api.github.com/users/CanonicalLtd/repos","events_url":"https://api.github.com/users/CanonicalLtd/events{/privacy}","received_events_url":"https://api.github.com/users/CanonicalLtd/received_events","type":"Organization","site_admin":false},"repo":{"id":60839956,"name":"snappy-docs","full_name":"CanonicalLtd/snappy-docs","owner":{"login":"CanonicalLtd","id":7490288,"avatar_url":"https://avatars3.githubusercontent.com/u/7490288?v=3","gravatar_id":"","url":"https://api.github.com/users/CanonicalLtd","html_url":"https://github.com/CanonicalLtd","followers_url":"https://api.github.com/users/CanonicalLtd/followers","following_url":"https://api.github.com/users/CanonicalLtd/following{/other_user}","gists_url":"https://api.github.com/users/CanonicalLtd/gists{/gist_id}","starred_url":"https://api.github.com/users/CanonicalLtd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CanonicalLtd/subscriptions","organizations_url":"https://api.github.com/users/CanonicalLtd/orgs","repos_url":"https://api.github.com/users/CanonicalLtd/repos","events_url":"https://api.github.com/users/CanonicalLtd/events{/privacy}","received_events_url":"https://api.github.com/users/CanonicalLtd/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CanonicalLtd/snappy-docs","description":"The home of http://snapcraft.io/docs","fork":false,"url":"https://api.github.com/repos/CanonicalLtd/snappy-docs","forks_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/forks","keys_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/teams","hooks_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/hooks","issue_events_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/issues/events{/number}","events_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/events","assignees_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/assignees{/user}","branches_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/branches{/branch}","tags_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/tags","blobs_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/statuses/{sha}","languages_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/languages","stargazers_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/stargazers","contributors_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/contributors","subscribers_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/subscribers","subscription_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/subscription","commits_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/contents/{+path}","compare_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/merges","archive_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/downloads","issues_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/issues{/number}","pulls_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/pulls{/number}","milestones_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/milestones{/number}","notifications_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/labels{/name}","releases_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/releases{/id}","deployments_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/deployments","created_at":"2016-06-10T10:25:18Z","updated_at":"2017-06-30T05:56:55Z","pushed_at":"2017-07-07T11:00:39Z","git_url":"git://github.com/CanonicalLtd/snappy-docs.git","ssh_url":"git@github.com:CanonicalLtd/snappy-docs.git","clone_url":"https://github.com/CanonicalLtd/snappy-docs.git","svn_url":"https://github.com/CanonicalLtd/snappy-docs","homepage":"","size":846,"stargazers_count":8,"watchers_count":8,"language":"HTML","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":24,"mirror_url":null,"open_issues_count":21,"forks":24,"open_issues":21,"watchers":8,"default_branch":"master"}},"base":{"label":"CanonicalLtd:master","ref":"master","sha":"4bec4916f803c9b3fc125c0bdd00cc265f983cd6","user":{"login":"CanonicalLtd","id":7490288,"avatar_url":"https://avatars3.githubusercontent.com/u/7490288?v=3","gravatar_id":"","url":"https://api.github.com/users/CanonicalLtd","html_url":"https://github.com/CanonicalLtd","followers_url":"https://api.github.com/users/CanonicalLtd/followers","following_url":"https://api.github.com/users/CanonicalLtd/following{/other_user}","gists_url":"https://api.github.com/users/CanonicalLtd/gists{/gist_id}","starred_url":"https://api.github.com/users/CanonicalLtd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CanonicalLtd/subscriptions","organizations_url":"https://api.github.com/users/CanonicalLtd/orgs","repos_url":"https://api.github.com/users/CanonicalLtd/repos","events_url":"https://api.github.com/users/CanonicalLtd/events{/privacy}","received_events_url":"https://api.github.com/users/CanonicalLtd/received_events","type":"Organization","site_admin":false},"repo":{"id":60839956,"name":"snappy-docs","full_name":"CanonicalLtd/snappy-docs","owner":{"login":"CanonicalLtd","id":7490288,"avatar_url":"https://avatars3.githubusercontent.com/u/7490288?v=3","gravatar_id":"","url":"https://api.github.com/users/CanonicalLtd","html_url":"https://github.com/CanonicalLtd","followers_url":"https://api.github.com/users/CanonicalLtd/followers","following_url":"https://api.github.com/users/CanonicalLtd/following{/other_user}","gists_url":"https://api.github.com/users/CanonicalLtd/gists{/gist_id}","starred_url":"https://api.github.com/users/CanonicalLtd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CanonicalLtd/subscriptions","organizations_url":"https://api.github.com/users/CanonicalLtd/orgs","repos_url":"https://api.github.com/users/CanonicalLtd/repos","events_url":"https://api.github.com/users/CanonicalLtd/events{/privacy}","received_events_url":"https://api.github.com/users/CanonicalLtd/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CanonicalLtd/snappy-docs","description":"The home of http://snapcraft.io/docs","fork":false,"url":"https://api.github.com/repos/CanonicalLtd/snappy-docs","forks_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/forks","keys_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/teams","hooks_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/hooks","issue_events_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/issues/events{/number}","events_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/events","assignees_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/assignees{/user}","branches_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/branches{/branch}","tags_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/tags","blobs_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/statuses/{sha}","languages_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/languages","stargazers_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/stargazers","contributors_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/contributors","subscribers_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/subscribers","subscription_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/subscription","commits_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/contents/{+path}","compare_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/merges","archive_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/downloads","issues_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/issues{/number}","pulls_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/pulls{/number}","milestones_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/milestones{/number}","notifications_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/labels{/name}","releases_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/releases{/id}","deployments_url":"https://api.github.com/repos/CanonicalLtd/snappy-docs/deployments","created_at":"2016-06-10T10:25:18Z","updated_at":"2017-06-30T05:56:55Z","pushed_at":"2017-07-07T11:00:39Z","git_url":"git://github.com/CanonicalLtd/snappy-docs.git","ssh_url":"git@github.com:CanonicalLtd/snappy-docs.git","clone_url":"https://github.com/CanonicalLtd/snappy-docs.git","svn_url":"https://github.com/CanonicalLtd/snappy-docs","homepage":"","size":846,"stargazers_count":8,"watchers_count":8,"language":"HTML","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":24,"mirror_url":null,"open_issues_count":21,"forks":24,"open_issues":21,"watchers":8,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/CanonicalLtd/snappy-docs/pulls/87"},"html":{"href":"https://github.com/CanonicalLtd/snappy-docs/pull/87"},"issue":{"href":"https://api.github.com/repos/CanonicalLtd/snappy-docs/issues/87"},"comments":{"href":"https://api.github.com/repos/CanonicalLtd/snappy-docs/issues/87/comments"},"review_comments":{"href":"https://api.github.com/repos/CanonicalLtd/snappy-docs/pulls/87/comments"},"review_comment":{"href":"https://api.github.com/repos/CanonicalLtd/snappy-docs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/CanonicalLtd/snappy-docs/pulls/87/commits"},"statuses":{"href":"https://api.github.com/repos/CanonicalLtd/snappy-docs/statuses/0edaa56cac6ef08f56113ad8a0e1278c9ae84d98"}}}}
{"actor":{"display_login":"thomir"}}