{"action":"created","comment":{"url":"https://api.github.com/repos/GitHawkApp/GitHawk/pulls/comments/232372621","pull_request_review_id":173564071,"id":232372621,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzMjM3MjYyMQ==","diff_hunk":"@@ -0,0 +1,233 @@\n+//\n+//  IssueTemplates.swift\n+//  Freetime\n+//\n+//  Created by Ehud Adler on 11/3/18.\n+//  Copyright © 2018 Ryan Nystrom. All rights reserved.\n+//\n+\n+import Foundation\n+import GitHubAPI\n+import GitHubSession\n+import Squawk\n+\n+struct IssueTemplate {\n+    let title: String\n+    let template: String\n+}\n+\n+struct IssueTemplateDetails {\n+    let owner: String\n+    let repo: String\n+    let session: GitHubUserSession?\n+    let viewController: UIViewController\n+    weak var delegate: NewIssueTableViewControllerDelegate?\n+}\n+\n+enum IssueTemplateHelper {\n+\n+\n+    static private func matches(\n+        regex: String,\n+        text: String) -> [String] {\n+        do {\n+            let regex = try NSRegularExpression(pattern: regex)\n+            let str = text as NSString\n+            let results = regex.matches(\n+                in: text,\n+                range: NSMakeRange(0, str.length))\n+            return results.map { str.substring(with: $0.range)}\n+\n+        } catch let error as NSError {\n+            print(\"invalid regex: \\(error.localizedDescription)\")\n+            return []\n+        }\n+    }\n+\n+    static func getNameAndDescription(fromTemplatefile file: String) -> (name: String?, about: String?) {\n+        let names = IssueTemplateHelper.matches(regex: \"(?<=name:).*\", text: file)\n+        let abouts = IssueTemplateHelper.matches(regex: \"(?<=about:).*\", text: file)\n+        let name = names.first?.trimmingCharacters(in: .whitespaces)\n+        let about = abouts.first?.trimmingCharacters(in: .whitespaces)\n+        return (name, about)\n+    }\n+\n+    static func showIssueAlert(\n+        with templates: [IssueTemplate],\n+        details: IssueTemplateDetails) -> UIAlertController {\n+\n+        let alertView = UIAlertController(\n+            title: NSLocalizedString(\"New Issue\", comment: \"\"),\n+            message: NSLocalizedString(\"Choose Template\", comment: \"\"),\n+            preferredStyle: .alert\n+        )\n+\n+        for template in templates {\n+            alertView.addAction(\n+                UIAlertAction(\n+                    title: template.title,\n+                    style: .default,\n+                    handler: { _ in\n+\n+                        guard let viewController = NewIssueTableViewController.createWithTemplate(\n+                            client: GithubClient(userSession: details.session),\n+                            owner: details.owner,\n+                            repo: details.repo,\n+                            template: template.template,\n+                            signature: template.title == \"Bug Report\" ? .bugReport : .sentWithGitHawk\n+                            ) else {\n+                                assertionFailure(\"Failed to create NewIssueTableViewController\")\n+                                return\n+                        }\n+                        viewController.delegate = details.delegate\n+                        let navController = UINavigationController(rootViewController: viewController)\n+                        navController.modalPresentationStyle = .formSheet\n+                        details.viewController.present(navController, animated: trueUnlessReduceMotionEnabled)\n+                }))\n+        }\n+\n+        alertView.addAction(\n+            UIAlertAction(\n+                title: NSLocalizedString(\"Dismiss\", comment: \"\"),\n+                style: .cancel,\n+                handler: { _ in\n+                    alertView.dismiss(animated: trueUnlessReduceMotionEnabled)\n+            })\n+        )\n+        return alertView\n+    }\n+\n+    static func present(\n+        withTemplates sortedTemplates: [IssueTemplate],\n+        details: IssueTemplateDetails) {\n+        if sortedTemplates.count > 0 {\n+            // Templates exists...\n+            let alertView = IssueTemplateHelper.showIssueAlert(\n+                with: sortedTemplates,\n+                details: details\n+            )\n+            details.viewController.present(alertView, animated: trueUnlessReduceMotionEnabled)\n+        } else {\n+            // No templates exists, show blank new issue view controller\n+            guard let viewController = NewIssueTableViewController.create(\n+                client: GithubClient(userSession: details.session),\n+                owner: details.owner,\n+                repo: details.repo,\n+                signature: .sentWithGitHawk\n+                ) else {\n+                    assertionFailure(\"Failed to create NewIssueTableViewController\")\n+                    return\n+            }\n+            viewController.delegate = details.delegate\n+            let navController = UINavigationController(rootViewController: viewController)\n+            navController.modalPresentationStyle = .formSheet\n+            details.viewController.present(navController, animated: trueUnlessReduceMotionEnabled)\n+        }\n+    }\n+}\n+\n+extension GithubClient {\n+\n+    private func fetchTemplateFile(\n+        owner: String,\n+        repo: String,\n+        filename: String,\n+        completion: @escaping (Result<String>) -> Void\n+        ) {\n+\n+        self.fetchFile(\n+            owner: owner,\n+            repo: repo,\n+            branch: \"master\",\n+            path: \".github/ISSUE_TEMPLATE/\\(filename)\") { (result) in","path":"Classes/New Issue/IssueTemplates.swift","position":null,"original_position":142,"commit_id":"ec7d437c00c84e3eb0a7a1a40335bac679cf60d1","original_commit_id":"76d4ec27a4e532c4f83d6684e85a2252b3d20822","user":{"login":"Huddie","id":10662471,"node_id":"MDQ6VXNlcjEwNjYyNDcx","avatar_url":"https://avatars0.githubusercontent.com/u/10662471?v=4","gravatar_id":"","url":"https://api.github.com/users/Huddie","html_url":"https://github.com/Huddie","followers_url":"https://api.github.com/users/Huddie/followers","following_url":"https://api.github.com/users/Huddie/following{/other_user}","gists_url":"https://api.github.com/users/Huddie/gists{/gist_id}","starred_url":"https://api.github.com/users/Huddie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Huddie/subscriptions","organizations_url":"https://api.github.com/users/Huddie/orgs","repos_url":"https://api.github.com/users/Huddie/repos","events_url":"https://api.github.com/users/Huddie/events{/privacy}","received_events_url":"https://api.github.com/users/Huddie/received_events","type":"User","site_admin":false},"body":"@Sherlouk Ah I think I understand. The actual filename isn't an issue here because we look at all files in the folder and request those filenames, so they will always match perfectly. The only issue would be the ISSUE_TEMPLATE folder as that's the only hardcoded path. I agree that maybe we ship and fix if there's a bug report. Waiting on Ryan for a few things before I remove the WIP and finish up","created_at":"2018-11-09T19:46:14Z","updated_at":"2018-11-09T19:46:15Z","html_url":"https://github.com/GitHawkApp/GitHawk/pull/2400#discussion_r232372621","pull_request_url":"https://api.github.com/repos/GitHawkApp/GitHawk/pulls/2400","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/GitHawkApp/GitHawk/pulls/comments/232372621"},"html":{"href":"https://github.com/GitHawkApp/GitHawk/pull/2400#discussion_r232372621"},"pull_request":{"href":"https://api.github.com/repos/GitHawkApp/GitHawk/pulls/2400"}},"in_reply_to_id":230929977},"pull_request":{"url":"https://api.github.com/repos/GitHawkApp/GitHawk/pulls/2400","id":228195720,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI4MTk1NzIw","html_url":"https://github.com/GitHawkApp/GitHawk/pull/2400","diff_url":"https://github.com/GitHawkApp/GitHawk/pull/2400.diff","patch_url":"https://github.com/GitHawkApp/GitHawk/pull/2400.patch","issue_url":"https://api.github.com/repos/GitHawkApp/GitHawk/issues/2400","number":2400,"state":"open","locked":false,"title":"WIP - Templates","user":{"login":"Huddie","id":10662471,"node_id":"MDQ6VXNlcjEwNjYyNDcx","avatar_url":"https://avatars0.githubusercontent.com/u/10662471?v=4","gravatar_id":"","url":"https://api.github.com/users/Huddie","html_url":"https://github.com/Huddie","followers_url":"https://api.github.com/users/Huddie/followers","following_url":"https://api.github.com/users/Huddie/following{/other_user}","gists_url":"https://api.github.com/users/Huddie/gists{/gist_id}","starred_url":"https://api.github.com/users/Huddie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Huddie/subscriptions","organizations_url":"https://api.github.com/users/Huddie/orgs","repos_url":"https://api.github.com/users/Huddie/repos","events_url":"https://api.github.com/users/Huddie/events{/privacy}","received_events_url":"https://api.github.com/users/Huddie/received_events","type":"User","site_admin":false},"body":"Looking for preliminary feedback. I'm thinking of moving regex matching to an extension. I originally had it that the IssueTemplateHelper returned the templates to the caller and let it deal with it how it wished. I just then felt that since every view that wants to open a new issue needs to go through the same process that maybe its better to pass the view controller in and keep the code all in one place. Since it starts with an extension on the client the client isn't being passed around. \r\n\r\nAnyways let me know what to fix.\r\n\r\n@rnystrom @BrianLitwin @Sherlouk @BasThomas \r\n\r\nTODO:\r\n- [ ] Add Spinner \r\n- [ ] Remove template details before passing it through (Text between the dashes ( --- ) at the beginning of a template file)","created_at":"2018-11-04T19:03:55Z","updated_at":"2018-11-09T19:46:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9decef216473d15e10b93fa95e9105b1c998475e","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/GitHawkApp/GitHawk/pulls/2400/commits","review_comments_url":"https://api.github.com/repos/GitHawkApp/GitHawk/pulls/2400/comments","review_comment_url":"https://api.github.com/repos/GitHawkApp/GitHawk/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GitHawkApp/GitHawk/issues/2400/comments","statuses_url":"https://api.github.com/repos/GitHawkApp/GitHawk/statuses/ec7d437c00c84e3eb0a7a1a40335bac679cf60d1","head":{"label":"Huddie:templates","ref":"templates","sha":"ec7d437c00c84e3eb0a7a1a40335bac679cf60d1","user":{"login":"Huddie","id":10662471,"node_id":"MDQ6VXNlcjEwNjYyNDcx","avatar_url":"https://avatars0.githubusercontent.com/u/10662471?v=4","gravatar_id":"","url":"https://api.github.com/users/Huddie","html_url":"https://github.com/Huddie","followers_url":"https://api.github.com/users/Huddie/followers","following_url":"https://api.github.com/users/Huddie/following{/other_user}","gists_url":"https://api.github.com/users/Huddie/gists{/gist_id}","starred_url":"https://api.github.com/users/Huddie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Huddie/subscriptions","organizations_url":"https://api.github.com/users/Huddie/orgs","repos_url":"https://api.github.com/users/Huddie/repos","events_url":"https://api.github.com/users/Huddie/events{/privacy}","received_events_url":"https://api.github.com/users/Huddie/received_events","type":"User","site_admin":false},"repo":{"id":141465914,"node_id":"MDEwOlJlcG9zaXRvcnkxNDE0NjU5MTQ=","name":"GitHawk","full_name":"Huddie/GitHawk","private":false,"owner":{"login":"Huddie","id":10662471,"node_id":"MDQ6VXNlcjEwNjYyNDcx","avatar_url":"https://avatars0.githubusercontent.com/u/10662471?v=4","gravatar_id":"","url":"https://api.github.com/users/Huddie","html_url":"https://github.com/Huddie","followers_url":"https://api.github.com/users/Huddie/followers","following_url":"https://api.github.com/users/Huddie/following{/other_user}","gists_url":"https://api.github.com/users/Huddie/gists{/gist_id}","starred_url":"https://api.github.com/users/Huddie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Huddie/subscriptions","organizations_url":"https://api.github.com/users/Huddie/orgs","repos_url":"https://api.github.com/users/Huddie/repos","events_url":"https://api.github.com/users/Huddie/events{/privacy}","received_events_url":"https://api.github.com/users/Huddie/received_events","type":"User","site_admin":false},"html_url":"https://github.com/Huddie/GitHawk","description":"A GitHub project manager app for iOS.","fork":true,"url":"https://api.github.com/repos/Huddie/GitHawk","forks_url":"https://api.github.com/repos/Huddie/GitHawk/forks","keys_url":"https://api.github.com/repos/Huddie/GitHawk/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Huddie/GitHawk/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Huddie/GitHawk/teams","hooks_url":"https://api.github.com/repos/Huddie/GitHawk/hooks","issue_events_url":"https://api.github.com/repos/Huddie/GitHawk/issues/events{/number}","events_url":"https://api.github.com/repos/Huddie/GitHawk/events","assignees_url":"https://api.github.com/repos/Huddie/GitHawk/assignees{/user}","branches_url":"https://api.github.com/repos/Huddie/GitHawk/branches{/branch}","tags_url":"https://api.github.com/repos/Huddie/GitHawk/tags","blobs_url":"https://api.github.com/repos/Huddie/GitHawk/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Huddie/GitHawk/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Huddie/GitHawk/git/refs{/sha}","trees_url":"https://api.github.com/repos/Huddie/GitHawk/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Huddie/GitHawk/statuses/{sha}","languages_url":"https://api.github.com/repos/Huddie/GitHawk/languages","stargazers_url":"https://api.github.com/repos/Huddie/GitHawk/stargazers","contributors_url":"https://api.github.com/repos/Huddie/GitHawk/contributors","subscribers_url":"https://api.github.com/repos/Huddie/GitHawk/subscribers","subscription_url":"https://api.github.com/repos/Huddie/GitHawk/subscription","commits_url":"https://api.github.com/repos/Huddie/GitHawk/commits{/sha}","git_commits_url":"https://api.github.com/repos/Huddie/GitHawk/git/commits{/sha}","comments_url":"https://api.github.com/repos/Huddie/GitHawk/comments{/number}","issue_comment_url":"https://api.github.com/repos/Huddie/GitHawk/issues/comments{/number}","contents_url":"https://api.github.com/repos/Huddie/GitHawk/contents/{+path}","compare_url":"https://api.github.com/repos/Huddie/GitHawk/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Huddie/GitHawk/merges","archive_url":"https://api.github.com/repos/Huddie/GitHawk/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Huddie/GitHawk/downloads","issues_url":"https://api.github.com/repos/Huddie/GitHawk/issues{/number}","pulls_url":"https://api.github.com/repos/Huddie/GitHawk/pulls{/number}","milestones_url":"https://api.github.com/repos/Huddie/GitHawk/milestones{/number}","notifications_url":"https://api.github.com/repos/Huddie/GitHawk/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Huddie/GitHawk/labels{/name}","releases_url":"https://api.github.com/repos/Huddie/GitHawk/releases{/id}","deployments_url":"https://api.github.com/repos/Huddie/GitHawk/deployments","created_at":"2018-07-18T17:10:28Z","updated_at":"2018-08-15T00:42:46Z","pushed_at":"2018-11-09T19:41:44Z","git_url":"git://github.com/Huddie/GitHawk.git","ssh_url":"git@github.com:Huddie/GitHawk.git","clone_url":"https://github.com/Huddie/GitHawk.git","svn_url":"https://github.com/Huddie/GitHawk","homepage":"http://githawk.com","size":137279,"stargazers_count":0,"watchers_count":0,"language":"Swift","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"GitHawkApp:master","ref":"master","sha":"595b76c770f7fc5a94a16942332be96525c6c459","user":{"login":"GitHawkApp","id":32285710,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMyMjg1NzEw","avatar_url":"https://avatars3.githubusercontent.com/u/32285710?v=4","gravatar_id":"","url":"https://api.github.com/users/GitHawkApp","html_url":"https://github.com/GitHawkApp","followers_url":"https://api.github.com/users/GitHawkApp/followers","following_url":"https://api.github.com/users/GitHawkApp/following{/other_user}","gists_url":"https://api.github.com/users/GitHawkApp/gists{/gist_id}","starred_url":"https://api.github.com/users/GitHawkApp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GitHawkApp/subscriptions","organizations_url":"https://api.github.com/users/GitHawkApp/orgs","repos_url":"https://api.github.com/users/GitHawkApp/repos","events_url":"https://api.github.com/users/GitHawkApp/events{/privacy}","received_events_url":"https://api.github.com/users/GitHawkApp/received_events","type":"Organization","site_admin":false},"repo":{"id":89921801,"node_id":"MDEwOlJlcG9zaXRvcnk4OTkyMTgwMQ==","name":"GitHawk","full_name":"GitHawkApp/GitHawk","private":false,"owner":{"login":"GitHawkApp","id":32285710,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMyMjg1NzEw","avatar_url":"https://avatars3.githubusercontent.com/u/32285710?v=4","gravatar_id":"","url":"https://api.github.com/users/GitHawkApp","html_url":"https://github.com/GitHawkApp","followers_url":"https://api.github.com/users/GitHawkApp/followers","following_url":"https://api.github.com/users/GitHawkApp/following{/other_user}","gists_url":"https://api.github.com/users/GitHawkApp/gists{/gist_id}","starred_url":"https://api.github.com/users/GitHawkApp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GitHawkApp/subscriptions","organizations_url":"https://api.github.com/users/GitHawkApp/orgs","repos_url":"https://api.github.com/users/GitHawkApp/repos","events_url":"https://api.github.com/users/GitHawkApp/events{/privacy}","received_events_url":"https://api.github.com/users/GitHawkApp/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/GitHawkApp/GitHawk","description":"The best iOS app for GitHub.","fork":false,"url":"https://api.github.com/repos/GitHawkApp/GitHawk","forks_url":"https://api.github.com/repos/GitHawkApp/GitHawk/forks","keys_url":"https://api.github.com/repos/GitHawkApp/GitHawk/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GitHawkApp/GitHawk/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GitHawkApp/GitHawk/teams","hooks_url":"https://api.github.com/repos/GitHawkApp/GitHawk/hooks","issue_events_url":"https://api.github.com/repos/GitHawkApp/GitHawk/issues/events{/number}","events_url":"https://api.github.com/repos/GitHawkApp/GitHawk/events","assignees_url":"https://api.github.com/repos/GitHawkApp/GitHawk/assignees{/user}","branches_url":"https://api.github.com/repos/GitHawkApp/GitHawk/branches{/branch}","tags_url":"https://api.github.com/repos/GitHawkApp/GitHawk/tags","blobs_url":"https://api.github.com/repos/GitHawkApp/GitHawk/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GitHawkApp/GitHawk/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GitHawkApp/GitHawk/git/refs{/sha}","trees_url":"https://api.github.com/repos/GitHawkApp/GitHawk/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GitHawkApp/GitHawk/statuses/{sha}","languages_url":"https://api.github.com/repos/GitHawkApp/GitHawk/languages","stargazers_url":"https://api.github.com/repos/GitHawkApp/GitHawk/stargazers","contributors_url":"https://api.github.com/repos/GitHawkApp/GitHawk/contributors","subscribers_url":"https://api.github.com/repos/GitHawkApp/GitHawk/subscribers","subscription_url":"https://api.github.com/repos/GitHawkApp/GitHawk/subscription","commits_url":"https://api.github.com/repos/GitHawkApp/GitHawk/commits{/sha}","git_commits_url":"https://api.github.com/repos/GitHawkApp/GitHawk/git/commits{/sha}","comments_url":"https://api.github.com/repos/GitHawkApp/GitHawk/comments{/number}","issue_comment_url":"https://api.github.com/repos/GitHawkApp/GitHawk/issues/comments{/number}","contents_url":"https://api.github.com/repos/GitHawkApp/GitHawk/contents/{+path}","compare_url":"https://api.github.com/repos/GitHawkApp/GitHawk/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GitHawkApp/GitHawk/merges","archive_url":"https://api.github.com/repos/GitHawkApp/GitHawk/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GitHawkApp/GitHawk/downloads","issues_url":"https://api.github.com/repos/GitHawkApp/GitHawk/issues{/number}","pulls_url":"https://api.github.com/repos/GitHawkApp/GitHawk/pulls{/number}","milestones_url":"https://api.github.com/repos/GitHawkApp/GitHawk/milestones{/number}","notifications_url":"https://api.github.com/repos/GitHawkApp/GitHawk/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GitHawkApp/GitHawk/labels{/name}","releases_url":"https://api.github.com/repos/GitHawkApp/GitHawk/releases{/id}","deployments_url":"https://api.github.com/repos/GitHawkApp/GitHawk/deployments","created_at":"2017-05-01T12:21:48Z","updated_at":"2018-11-08T21:50:41Z","pushed_at":"2018-11-09T19:41:46Z","git_url":"git://github.com/GitHawkApp/GitHawk.git","ssh_url":"git@github.com:GitHawkApp/GitHawk.git","clone_url":"https://github.com/GitHawkApp/GitHawk.git","svn_url":"https://github.com/GitHawkApp/GitHawk","homepage":"http://githawk.com","size":138922,"stargazers_count":1697,"watchers_count":1697,"language":"Swift","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":187,"mirror_url":null,"archived":false,"open_issues_count":376,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":187,"open_issues":376,"watchers":1697,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GitHawkApp/GitHawk/pulls/2400"},"html":{"href":"https://github.com/GitHawkApp/GitHawk/pull/2400"},"issue":{"href":"https://api.github.com/repos/GitHawkApp/GitHawk/issues/2400"},"comments":{"href":"https://api.github.com/repos/GitHawkApp/GitHawk/issues/2400/comments"},"review_comments":{"href":"https://api.github.com/repos/GitHawkApp/GitHawk/pulls/2400/comments"},"review_comment":{"href":"https://api.github.com/repos/GitHawkApp/GitHawk/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GitHawkApp/GitHawk/pulls/2400/commits"},"statuses":{"href":"https://api.github.com/repos/GitHawkApp/GitHawk/statuses/ec7d437c00c84e3eb0a7a1a40335bac679cf60d1"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"Huddie"}}