{"action":"created","comment":{"url":"https://api.github.com/repos/nextcloud/nextcloud-snap/pulls/comments/75599122","id":75599122,"diff_hunk":"@@ -66,18 +82,40 @@ parts:\n       - authz_core\n       - unixd\n       - alias\n+      - ssl\n+      - socache_shmcb\n \n-    # Extra Apache configuration for Nextcloud (and PHP)\n-    extra-configuration: src/nextcloud/apache_config\n-\n-    # Script to run before bringing up Apache\n-    startup-script: src/nextcloud/setup_nextcloud\n-\n+    filesets:\n+      exclude:\n+        - -man\n+        - -manual\n+        - -htdocs\n+        - -include\n+        - -build\n+        - -conf/httpd.conf\n+        - -conf/magic\n+        - -conf/original\n+        - -conf/extra\n+        - -bin/apachectl\n+        - -bin/envvars*\n     stage:\n-      - -htdocs/.git*\n+      - $exclude\n     snap:\n-      - -manual # No need to include the documentation in the .snap\n-      - -htdocs/.git*\n+      - $exclude\n+\n+  apache-customizations:\n+    plugin: copy\n+    files:\n+      src/apache/scripts/*: bin/\n+      src/apache/conf/*: conf/\n+\n+  nextcloud:\n+    plugin: copy\n+    source: https://github.com/kyrofa/nextcloud.git\n+    source-tag: 9.0.50","path":"snapcraft.yaml","position":84,"original_position":84,"commit_id":"553ee96b2b1fdfcae530356437273fb820008a9b","original_commit_id":"553ee96b2b1fdfcae530356437273fb820008a9b","user":{"login":"oparoz","id":323220,"avatar_url":"https://avatars.githubusercontent.com/u/323220?v=3","gravatar_id":"","url":"https://api.github.com/users/oparoz","html_url":"https://github.com/oparoz","followers_url":"https://api.github.com/users/oparoz/followers","following_url":"https://api.github.com/users/oparoz/following{/other_user}","gists_url":"https://api.github.com/users/oparoz/gists{/gist_id}","starred_url":"https://api.github.com/users/oparoz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oparoz/subscriptions","organizations_url":"https://api.github.com/users/oparoz/orgs","repos_url":"https://api.github.com/users/oparoz/repos","events_url":"https://api.github.com/users/oparoz/events{/privacy}","received_events_url":"https://api.github.com/users/oparoz/received_events","type":"User","site_admin":false},"body":"We're at 9.0.53 ;)","created_at":"2016-08-21T17:15:05Z","updated_at":"2016-08-21T17:15:06Z","html_url":"https://github.com/nextcloud/nextcloud-snap/pull/23#discussion_r75599122","pull_request_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/pulls/23","_links":{"self":{"href":"https://api.github.com/repos/nextcloud/nextcloud-snap/pulls/comments/75599122"},"html":{"href":"https://github.com/nextcloud/nextcloud-snap/pull/23#discussion_r75599122"},"pull_request":{"href":"https://api.github.com/repos/nextcloud/nextcloud-snap/pulls/23"}}},"pull_request":{"url":"https://api.github.com/repos/nextcloud/nextcloud-snap/pulls/23","id":81734619,"html_url":"https://github.com/nextcloud/nextcloud-snap/pull/23","diff_url":"https://github.com/nextcloud/nextcloud-snap/pull/23.diff","patch_url":"https://github.com/nextcloud/nextcloud-snap/pull/23.patch","issue_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/issues/23","number":23,"state":"open","locked":false,"title":"Move to HTTPS-only.","user":{"login":"kyrofa","id":946674,"avatar_url":"https://avatars.githubusercontent.com/u/946674?v=3","gravatar_id":"","url":"https://api.github.com/users/kyrofa","html_url":"https://github.com/kyrofa","followers_url":"https://api.github.com/users/kyrofa/followers","following_url":"https://api.github.com/users/kyrofa/following{/other_user}","gists_url":"https://api.github.com/users/kyrofa/gists{/gist_id}","starred_url":"https://api.github.com/users/kyrofa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kyrofa/subscriptions","organizations_url":"https://api.github.com/users/kyrofa/orgs","repos_url":"https://api.github.com/users/kyrofa/repos","events_url":"https://api.github.com/users/kyrofa/events{/privacy}","received_events_url":"https://api.github.com/users/kyrofa/received_events","type":"User","site_admin":false},"body":"This PR resolves #6 by accomplishing the following:\r\n\r\n- Nothing changes upon first install-- HTTP only.\r\n- Add an `enable-https` command for either generating a self-signed certificate or obtaining one from Let's Encrypt. If used, the command changes the snap to HTTPS-only.\r\n- Add `disable-https` command to revert back to HTTP-only.\r\n\r\nPlease test this version of the snap with the following (amd64 only, please let me know if you need another arch):\r\n\r\n```bash\r\n$ sudo snap install nextcloud --beta\r\n```\r\n\r\nThe initial experience should be the same as it currently is: HTTP only. Now let's enable HTTPS.\r\n\r\n```bash\r\n$ /snap/bin/nextcloud.enable-https -h\r\nUsage:\r\n    /snap/nextcloud/x1/bin/enable-https [-h -t -d -s]\r\n\r\n    -t: Obtain a test certificate. This is a valid Let's\r\n        Encrypt certificate, but is not signed by a\r\n        recognized CA, so browsers won't accept it.\r\n    -d: Dry run: don't actually obtain/install certificates\r\n        from Let's Encrypt, but make sure it's possible.\r\n    -s: Generate and use a self-signed certificate. This\r\n        is easier to setup than Let's Encrypt certificates,\r\n        but will cause warnings in browsers.\r\n```\r\n\r\nLet's start with a self-signed certificate, since it requires no setup:\r\n\r\n```bash\r\n$ sudo /snap/bin/nextcloud.enable-https -s\r\nGenerating key and self-signed certificate... done\r\nStopping apache... done\r\nStarting apache... done\r\n```\r\n\r\nYou should see that HTTP now redirects to HTTPS:\r\n\r\n```bash\r\n$ curl -s -vv -k http://xenial-vbx.local 2>&1 | grep \"< \"\r\n< HTTP/1.1 301 Moved Permanently\r\n< Date: Sat, 20 Aug 2016 20:07:51 GMT\r\n< Server: Apache/2.4.23 (Unix) OpenSSL/1.0.2g-fips\r\n< Location: https://xenial-vbx.local/\r\n< Content-Length: 233\r\n< Content-Type: text/html; charset=iso-8859-1\r\n```\r\n\r\nAlso note that HSTS is not enabled (since the certificate is self-signed):\r\n\r\n```bash\r\n$ curl -s -vv -k https://xenial-vbx.local 2>&1 | grep \"Strict\"\r\n```\r\n\r\nAlright, disable HTTPS:\r\n\r\n```bash\r\n$ sudo /snap/bin/nextcloud.disable-https \r\nDeactivating HTTPS... done\r\nStopping apache... done\r\nStarting apache... done\r\n```\r\n\r\nNote that it's now HTTP-only:\r\n\r\n```bash\r\n$ curl -k https://xenial-vbx.local\r\ncurl: (7) Failed to connect to xenial-vbx.local port 443: Connection refused\r\n```\r\n\r\nNow let's obtain a certificate from Let's Encrypt:\r\n\r\n```bash\r\n$ sudo /snap/bin/nextcloud.enable-https\r\nIn order for Let's Encrypt to verify that you actually own the domain for\r\nwhich you're requesting a certificate, there are a number of requirements\r\nof which you need to be aware:\r\n\r\n1. In order to register with the Let's Encrypt ACME server, you must agree\r\n   to the currently-in-effect Subscriber Agreement located here:\r\n\r\n       https://letsencrypt.org/repository/\r\n\r\n   By continuing to use this tool you agree to these terms. Please cancel\r\n   now if otherwise.\r\n\r\n2. You must have the domain name(s) for which you want certificates\r\n   pointing at the external IP address of this machine.\r\n\r\n3. Both ports 80 and 443 on the external IP address of this machine must\r\n   point to this machine (e.g. port forwarding might need to be setup on\r\n   your router).\r\n\r\nHave you met these requirements? (y/n) y\r\nPlease enter an email address (for urgent notices or key recovery): foo@foo.com\r\nPlease enter your domain name(s) (space-separated): my.domain.com\r\nAttempting to obtain certificates... done\r\nStopping apache... done\r\nStarting apache... done\r\n```\r\n\r\nHTTP should again be redirecting to HTTPS, and HSTS should be enabled:\r\n\r\n```bash\r\n$ curl -vv -k https://my.domain.com 2>&1 | grep \"Strict\"\r\n< Strict-Transport-Security: max-age=63072000; includeSubdomains;\r\n```\r\n\r\nAs a result, this snap should now obtain an A+ rating on [SSLLabs](https://www.ssllabs.com/ssltest/). Note that the certificate will automatically be updated for you.","created_at":"2016-08-17T23:28:51Z","updated_at":"2016-08-21T17:15:06Z","closed_at":null,"merged_at":null,"merge_commit_sha":"eef042a5e003d69bfbc73fc056b5680e1c64abef","assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/nextcloud/nextcloud-snap/milestones/4","html_url":"https://github.com/nextcloud/nextcloud-snap/milestones/9.0.53snap2","labels_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/milestones/4/labels","id":1951919,"number":4,"title":"9.0.53snap2","description":"","creator":{"login":"kyrofa","id":946674,"avatar_url":"https://avatars.githubusercontent.com/u/946674?v=3","gravatar_id":"","url":"https://api.github.com/users/kyrofa","html_url":"https://github.com/kyrofa","followers_url":"https://api.github.com/users/kyrofa/followers","following_url":"https://api.github.com/users/kyrofa/following{/other_user}","gists_url":"https://api.github.com/users/kyrofa/gists{/gist_id}","starred_url":"https://api.github.com/users/kyrofa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kyrofa/subscriptions","organizations_url":"https://api.github.com/users/kyrofa/orgs","repos_url":"https://api.github.com/users/kyrofa/repos","events_url":"https://api.github.com/users/kyrofa/events{/privacy}","received_events_url":"https://api.github.com/users/kyrofa/received_events","type":"User","site_admin":false},"open_issues":3,"closed_issues":1,"state":"open","created_at":"2016-08-19T16:13:46Z","updated_at":"2016-08-20T17:47:28Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/pulls/23/commits","review_comments_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/pulls/23/comments","review_comment_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/issues/23/comments","statuses_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/statuses/553ee96b2b1fdfcae530356437273fb820008a9b","head":{"label":"kyrofa:feature/6/https","ref":"feature/6/https","sha":"553ee96b2b1fdfcae530356437273fb820008a9b","user":{"login":"kyrofa","id":946674,"avatar_url":"https://avatars.githubusercontent.com/u/946674?v=3","gravatar_id":"","url":"https://api.github.com/users/kyrofa","html_url":"https://github.com/kyrofa","followers_url":"https://api.github.com/users/kyrofa/followers","following_url":"https://api.github.com/users/kyrofa/following{/other_user}","gists_url":"https://api.github.com/users/kyrofa/gists{/gist_id}","starred_url":"https://api.github.com/users/kyrofa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kyrofa/subscriptions","organizations_url":"https://api.github.com/users/kyrofa/orgs","repos_url":"https://api.github.com/users/kyrofa/repos","events_url":"https://api.github.com/users/kyrofa/events{/privacy}","received_events_url":"https://api.github.com/users/kyrofa/received_events","type":"User","site_admin":false},"repo":{"id":65477836,"name":"nextcloud-snap","full_name":"kyrofa/nextcloud-snap","owner":{"login":"kyrofa","id":946674,"avatar_url":"https://avatars.githubusercontent.com/u/946674?v=3","gravatar_id":"","url":"https://api.github.com/users/kyrofa","html_url":"https://github.com/kyrofa","followers_url":"https://api.github.com/users/kyrofa/followers","following_url":"https://api.github.com/users/kyrofa/following{/other_user}","gists_url":"https://api.github.com/users/kyrofa/gists{/gist_id}","starred_url":"https://api.github.com/users/kyrofa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kyrofa/subscriptions","organizations_url":"https://api.github.com/users/kyrofa/orgs","repos_url":"https://api.github.com/users/kyrofa/repos","events_url":"https://api.github.com/users/kyrofa/events{/privacy}","received_events_url":"https://api.github.com/users/kyrofa/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/kyrofa/nextcloud-snap","description":"Nextcloud packaged as a snap.","fork":true,"url":"https://api.github.com/repos/kyrofa/nextcloud-snap","forks_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/forks","keys_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/teams","hooks_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/hooks","issue_events_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/issues/events{/number}","events_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/events","assignees_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/assignees{/user}","branches_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/branches{/branch}","tags_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/tags","blobs_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/git/refs{/sha}","trees_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/statuses/{sha}","languages_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/languages","stargazers_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/stargazers","contributors_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/contributors","subscribers_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/subscribers","subscription_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/subscription","commits_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/commits{/sha}","git_commits_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/git/commits{/sha}","comments_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/comments{/number}","issue_comment_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/issues/comments{/number}","contents_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/contents/{+path}","compare_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/merges","archive_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/downloads","issues_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/issues{/number}","pulls_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/pulls{/number}","milestones_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/milestones{/number}","notifications_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/labels{/name}","releases_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/releases{/id}","deployments_url":"https://api.github.com/repos/kyrofa/nextcloud-snap/deployments","created_at":"2016-08-11T14:53:42Z","updated_at":"2016-08-11T14:53:43Z","pushed_at":"2016-08-20T21:02:42Z","git_url":"git://github.com/kyrofa/nextcloud-snap.git","ssh_url":"git@github.com:kyrofa/nextcloud-snap.git","clone_url":"https://github.com/kyrofa/nextcloud-snap.git","svn_url":"https://github.com/kyrofa/nextcloud-snap","homepage":null,"size":116,"stargazers_count":0,"watchers_count":0,"language":"Shell","has_issues":false,"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":"nextcloud:develop","ref":"develop","sha":"847153ac653ec49d59ae9ed2f0e04c1c5607e04d","user":{"login":"nextcloud","id":19211038,"avatar_url":"https://avatars.githubusercontent.com/u/19211038?v=3","gravatar_id":"","url":"https://api.github.com/users/nextcloud","html_url":"https://github.com/nextcloud","followers_url":"https://api.github.com/users/nextcloud/followers","following_url":"https://api.github.com/users/nextcloud/following{/other_user}","gists_url":"https://api.github.com/users/nextcloud/gists{/gist_id}","starred_url":"https://api.github.com/users/nextcloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nextcloud/subscriptions","organizations_url":"https://api.github.com/users/nextcloud/orgs","repos_url":"https://api.github.com/users/nextcloud/repos","events_url":"https://api.github.com/users/nextcloud/events{/privacy}","received_events_url":"https://api.github.com/users/nextcloud/received_events","type":"Organization","site_admin":false},"repo":{"id":61128545,"name":"nextcloud-snap","full_name":"nextcloud/nextcloud-snap","owner":{"login":"nextcloud","id":19211038,"avatar_url":"https://avatars.githubusercontent.com/u/19211038?v=3","gravatar_id":"","url":"https://api.github.com/users/nextcloud","html_url":"https://github.com/nextcloud","followers_url":"https://api.github.com/users/nextcloud/followers","following_url":"https://api.github.com/users/nextcloud/following{/other_user}","gists_url":"https://api.github.com/users/nextcloud/gists{/gist_id}","starred_url":"https://api.github.com/users/nextcloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nextcloud/subscriptions","organizations_url":"https://api.github.com/users/nextcloud/orgs","repos_url":"https://api.github.com/users/nextcloud/repos","events_url":"https://api.github.com/users/nextcloud/events{/privacy}","received_events_url":"https://api.github.com/users/nextcloud/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/nextcloud/nextcloud-snap","description":"Nextcloud packaged as a snap.","fork":false,"url":"https://api.github.com/repos/nextcloud/nextcloud-snap","forks_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/forks","keys_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/teams","hooks_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/hooks","issue_events_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/issues/events{/number}","events_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/events","assignees_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/assignees{/user}","branches_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/branches{/branch}","tags_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/tags","blobs_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/git/refs{/sha}","trees_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/statuses/{sha}","languages_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/languages","stargazers_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/stargazers","contributors_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/contributors","subscribers_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/subscribers","subscription_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/subscription","commits_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/commits{/sha}","git_commits_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/git/commits{/sha}","comments_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/comments{/number}","issue_comment_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/issues/comments{/number}","contents_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/contents/{+path}","compare_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/merges","archive_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/downloads","issues_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/issues{/number}","pulls_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/pulls{/number}","milestones_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/milestones{/number}","notifications_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/labels{/name}","releases_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/releases{/id}","deployments_url":"https://api.github.com/repos/nextcloud/nextcloud-snap/deployments","created_at":"2016-06-14T14:14:58Z","updated_at":"2016-08-11T14:51:30Z","pushed_at":"2016-08-20T21:02:42Z","git_url":"git://github.com/nextcloud/nextcloud-snap.git","ssh_url":"git@github.com:nextcloud/nextcloud-snap.git","clone_url":"https://github.com/nextcloud/nextcloud-snap.git","svn_url":"https://github.com/nextcloud/nextcloud-snap","homepage":null,"size":113,"stargazers_count":8,"watchers_count":8,"language":"Shell","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":6,"forks":1,"open_issues":6,"watchers":8,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/nextcloud/nextcloud-snap/pulls/23"},"html":{"href":"https://github.com/nextcloud/nextcloud-snap/pull/23"},"issue":{"href":"https://api.github.com/repos/nextcloud/nextcloud-snap/issues/23"},"comments":{"href":"https://api.github.com/repos/nextcloud/nextcloud-snap/issues/23/comments"},"review_comments":{"href":"https://api.github.com/repos/nextcloud/nextcloud-snap/pulls/23/comments"},"review_comment":{"href":"https://api.github.com/repos/nextcloud/nextcloud-snap/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nextcloud/nextcloud-snap/pulls/23/commits"},"statuses":{"href":"https://api.github.com/repos/nextcloud/nextcloud-snap/statuses/553ee96b2b1fdfcae530356437273fb820008a9b"}}}}
{"actor":{"display_login":"oparoz"}}