{"action":"created","comment":{"url":"https://api.github.com/repos/xitu/gold-miner/pulls/comments/80955670","pull_request_review_id":1972021,"id":80955670,"diff_hunk":"@@ -1,229 +1,201 @@\n > * 原文地址：[Function Naming In Swift 3](http://inaka.net/blog/2016/09/16/function-naming-in-swift-3/)\n * 原文作者：[Pablo Villar](https://twitter.com/volbap)\n * 译文出自：[掘金翻译计划](https://github.com/xitu/gold-miner)\n-* 译者：\n+* 译者：[Zheaoli](https://github.com/Zheaoli)\n * 校对者：\n \n-Yesterday, I started to migrate [Jayme](http://inaka.net/blog/2016/05/09/meet-jayme/) to Swift 3\\. It was my very first experience migrating Swift 2.2 code to Swift 3\\. While it's been cumbersome, I have to admit it couldn't have turned out another way: Swift 3 is **very different** from older versions; most of the changes are **abrupt**, and take time to think of. The good part is that it's for our own sake: The more Swift 3 code I write, the happier I feel. 😃\n+昨天，将这个 [Jayme](http://inaka.net/blog/2016/05/09/meet-jayme/) 迁移到 Swift 3。这是我第一次将一个项目从 Swift 2.2 迁移至 Swift 3。说实话这个过程十分的繁琐，由于 Swift 3 在老版本基础上发生了很多比较大的改变，我不得不承认眼前这样一个事实，除了花费较多的时间以外，没有其余的捷径可走。不过这样的经历也带来一点好处：我对 Swift 3 的理解变得更为深入，对我来讲，这可能是最好的消息了。😃\n \n-There have been many, many decisions I had to take regarding changes in code. What's more, it's not just about translating the code, but also dividing the whole migration process into steps, and take it little by little, patiently. Changes in code is just **one** of those steps.\n+在迁移代码的过程中，我需要做出很多的选择。更为蛋疼的是，整个迁移过程并不是修改代码那么简单，你还需要用耐心去一点点适应 Swift 3 中带来的新变化。某种意义上来讲，修改代码只是整个迁移过程的开始而已。\n \n-If you have already decided to start migrating your codebases, I recommend [this article](http://www.jessesquires.com/migrating-to-swift-3/) as a good kickstart.\n+如果你已经决定将你的代码迁移到 Swift 3 ，我建议你去看看这篇[文章](http://www.jessesquires.com/migrating-to-swift-3/)来作为你万里长征的第一步。\n \n-Hopefully, in a near future, I'll write a blogpost about my experience, covering the whole process and wrapping up most of those decisions I've been facing. But for now, I will just focus on one of those, which I consider being the most important one so far: **How to write function signatures properly**.\n+如果一切顺利的话，在不久以后，我将回去写一篇博客来记录下整个迁移过程中的点点滴滴，包括我所作出的决定等等。但是眼前，我将会把注意力集中在一个非常非常重要的问题上：**怎样去给一个函数的参数命名**.\n \n-## The Basics\n+## 开篇\n \n-Let's start by understanding that **function naming in Swift 3 behaves differently** than in Swift 2.\n+首先，让我们来看看在 Swift 3 与 Swift 2 相比函数命名方式的差异吧。\n \n-In Swift 2, the label for the **first** parameter of a function is implicitly omitted when you call the function, in order to follow the [good ol' Objective-C conventions](https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/NamingMethods.html) that we've been carrying since then:\n+在 Swift 2 中，函数中的第一个参数的标签在调用时可以省略，这是为了遵循这样一个 [good ol' Objective-C conventions](https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/NamingMethods.html) 标准。比如我们可以这样写代码：\n \n-\n-\n-    // Swift 2 \n+~~~Swift\n+    // Swift 2\n     func handleError(error: NSError) { }\n     let error = NSError()\n     handleError(error) // Looks like Objective-C\n+~~~\n \n+在 Swift 3 中，调用函数时，其实也是可以省略第一个参数的标签的，但是编译器默认是不允许你这样做的：\n \n-\n-In Swift 3, instead, the first parameter label _can_ be omitted in a function call, but by default, it is **not**:\n-\n-\n-\n+~~~Swift\n     // Swift 3\n     func handleError(error: NSError) { }\n     let error = NSError()\n     handleError(error)  // Does not compile!\n     // ⛔ Missing argument label 'error:' in call\n+~~~\n \n \n+当遇到这样的情况时，我们第一反应可能是下面这样的：\n \n-So, the first fix would be:\n-\n-\n-\n+~~~Swift\n     // Swift 3\n     func handleError(error: NSError) { }\n     let error = NSError()\n     handleError(error: error)    \n     // Had to write 'error' three times in a row!\n     // My eyes already hurt 🙈\n+~~~\n \n+当然如果这样做，你肯定会很快意识到你的代码将将会变得有多坑爹。\n \n+如同前面所说的一样，在 Swift 3 中，我们是可以在调用函数时，将第一个参数的标签省略的，但是记住，你要去明确的告诉编译器这一点：\n \n-At this point, you can realize how tiresome and repetitive your code could become...\n-\n-That said, you'll want to omit the first parameter label in the function call. But remember, in Swift 3, you have to be **explicit** about it:\n-\n-\n-\n+~~~Swift\n     // Swift 3\n     func handleError(_ error: NSError) { }\n     // 🖐 Notice the underscore!\n     let error = NSError()\n     handleError(error)  // Same as in Swift 2\n+~~~\n \n+> 你可能在使用 Xcode 自带的迁移工具进行迁移时遇到这样的情况。\n \n+注意，在函数签名中的下划线的意思是：告诉编译器，我们在调用函数时第一个参数不需要外带标签。这样，我们可以按照 Swift 2 中的方式去调用函数。\n \n-> This is the typical change that would occur to your functions when you run the Xcode migrator.\n+此外，你需要意识到，Swift 3 之所以修改了函数编写方式，是为了保证其一致性与可读性：我们不在需要对不同的参数区别对待。我想这可能是你遇到的第一个问题。\n \n-Notice the underscore in the function signature: It points out that the first parameter will **not** require a label when you call the function. This way, we can keep the function calling like in Swift 2.\n+好了，现在代码可以编译运行了，但是你必须知道，你需要反复的去阅读 [Swift 3 API design guidelines](https://swift.org/documentation/api-design-guidelines/) 一文。\n \n-Furthermore, you can realize that Swift 3 is more consistent and easier to understand when it comes to functions naming: **All parameter labels are treated the same**; there is no such thing as treating the first one differently.\n+> ☝️ 一点微小的人生经验：你需要随时去诵读 [Swift 3 API design guidelines](https://swift.org/documentation/api-design-guidelines/) 一文，这会为你解锁 Swift 开发的新体位。\n \n-This code will compile, but you still need to go a step further in order to stick to the [Swift 3 API design guidelines](https://swift.org/documentation/api-design-guidelines/).\n+## 第二步，精简你的代码\n \n-> ☝️ A piece of advice: Read the [Swift 3 API design guidelines](https://swift.org/documentation/api-design-guidelines/) once and again. Every day in the morning, if necessary, until you get used to the new way of writing Swift code.\n-\n-## One Step Further: Da Pruning\n-\n-![Pruning](http://inaka.net/assets/img/jet-pruning.gif)\n-\n-Observe how repetitive this line of code is:\n-\n-    handleError(error)\n-\n-In order to make it less repetitive and more concise, you can [**prune**](https://github.com/apple/swift-evolution/blob/master/proposals/0005-objective-c-name-translation.md#prune-redundant-type-names) the redundant type name from the function signature:\n+![Pruning](http://v1.qzone.cc/pic/201507/27/16/46/55b5efcd7c79f853.png%21600x600.jpg)\n \n+让我们再来看看之前的代码:\n \n+为了精简我们的代码，你可以将你的代码进行[修剪](https://github.com/apple/swift-evolution/blob/master/proposals/0005-objective-c-name-translation.md#prune-redundant-type-names)一番，比如去除函数名里的类型信息等。\n \n+~~~Swift\n     // Swift 3\n     func handle(_ error: NSError) { /* ... */ }\n     let error = NSError()\n     handle(error)   // Type name has been pruned\n     // from function name, since it was redundant\n+~~~\n \n+如果你想让你的代码变得更短，更精悍，更明了的话，我给你们讲，作为一个钦定的开发者，一定要去反复诵读这篇 [Swift 3 API design guidelines](https://swift.org/documentation/api-design-guidelines/) 文章到可以默写为止。\n \n+Notice that the function call is clear. We can know what the function parameter is expected to be because of two facts:（这句有点拿捏不准，请校者帮忙参考一二）\n \n-This is shorter, clearer, more concise, and encourages developers to follow the [Swift 3 API design guidelines](https://swift.org/documentation/api-design-guidelines/) (yes, [**read them again**](https://swift.org/documentation/api-design-guidelines/), and [**again**](https://swift.org/documentation/api-design-guidelines/)!)\n-\n-Notice that the function call is clear. We can know what the function parameter is expected to be because of two facts:\n-\n-*   **We know its type**.\n-*   And also, **that type denotes exactly what the parameter is expected to represent** (an _error_, in this case, there is no doubt about it).\n+*   我们知道相应的类型\n+*   我们知道参数所对应的类型（比如在上面这个例子中，我们毫无疑问的知道其参数所属的类型是 **NSError**）。\n \n-## It's Not Always A Matter Of Pruning\n+## 更多的一些问题\n \n-Now, it's time to **be careful**! ⚠️\n-\n-There are lots of scenarios where the latter fact I mentioned above doesn't actually happen. In other words, the parameter's type **does not reflect** what the parameter itself is supposed to represent.\n-\n-Consider the following example:\n+现在请睁大眼睛看清楚我们下面所讨论的东西。 ⚠️\n \n+上面我们所讲的东西并没有包括所有可能出现的情况，换句话说，你可能遇到这样一种特殊情况，即，一个参数的类型没有办法直观的体现其作用。\n \n+让我们考虑下面这样一种情况：\n \n+~~~Swift\n     // Swift 2\n     func requestForPath(path: String) -> URLRequest {  }\n     let request = requestForPath(\"local:80/users\")\n+~~~\n \n+如果你想将代码迁移到 Swift 3 ，那么根据已有的知识，你可能会这么做：\n \n-\n-If you try to migrate that code to Swift 3, by following what we've learned so far, you will end up with something like this:\n-\n-\n-\n+~~~Swift\n     // Swift 3\n     func request(_ path: String) -> URLRequest {  }\n     let request = request(\"local:80/users\")\n+~~~\n \n+讲真，这段代码看起来可读性很差，让我们稍微修改下：\n \n-\n-This is confusing and not really readable. Let's enhance it just a bit:\n-\n-\n-\n+~~~Swift\n     // Swift 3\n     func request(for path: String) -> URLRequest {  }\n     let request = request(for: \"local:80/users\")\n+~~~\n \n+OK，现在看起来舒服多了，但是并没有解决我上面提到的问题。\n \n+在我们调用这个函数的时候，我们怎样很直观的知道我们需要给这个参数传递一个 Web Url 呢？你所能提前知道的是你需要传递一个 String 类型的变量进去，但是你并不清楚你需要传递一个 Web Url 进去。\n \n-Now, while this is more readable, it doesn't solve the problem I mentioned above.\n-\n-At the moment of calling this function, how can you know that what you need to pass in is a _path_? All you can know beforehand, because of Swift's static typing, is that the parameter is expected to be of `String` type, but there's no clue that you need to pass in a _path_ there.\n-\n-There are plenty of these scenarios where the parameter type isn't meaningful to what it should represent, for instance:\n-\n-*   A `String` not always represents a _path_.\n-*   An `Int` not always represents a _status code_.\n-*   A `[String: String]` not always represents an _HTTP header_.\n-*   And so on...\n+同理，我们在一个大型项目中，我们需要很清楚的明白每个参数的作用所在，但是很明显，目前我们还没有解决这个大问题，比如:\n \n-> ⚠️ My advice up to here: **Always take your pruning shears with caution!** ✄\n-\n-Back to the code, a first approach to solve this issue could be appending the name of the parameter to the argument label, making it explicit in consequence:\n+*   你怎么知道一个 `String` 类型的变量代表着 Web Url。","path":"TODO/function-naming-in-swift-3.md","position":207,"original_position":207,"commit_id":"aea0c07c5b67191824e48e6e980d33869aab4667","original_commit_id":"aea0c07c5b67191824e48e6e980d33869aab4667","user":{"login":"Kulbear","id":14886380,"avatar_url":"https://avatars.githubusercontent.com/u/14886380?v=3","gravatar_id":"","url":"https://api.github.com/users/Kulbear","html_url":"https://github.com/Kulbear","followers_url":"https://api.github.com/users/Kulbear/followers","following_url":"https://api.github.com/users/Kulbear/following{/other_user}","gists_url":"https://api.github.com/users/Kulbear/gists{/gist_id}","starred_url":"https://api.github.com/users/Kulbear/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kulbear/subscriptions","organizations_url":"https://api.github.com/users/Kulbear/orgs","repos_url":"https://api.github.com/users/Kulbear/repos","events_url":"https://api.github.com/users/Kulbear/events{/privacy}","received_events_url":"https://api.github.com/users/Kulbear/received_events","type":"User","site_admin":false},"body":"这块改成反问有点多余？","created_at":"2016-09-28T16:11:10Z","updated_at":"2016-09-28T16:11:10Z","html_url":"https://github.com/xitu/gold-miner/pull/761#discussion_r80955670","pull_request_url":"https://api.github.com/repos/xitu/gold-miner/pulls/761","_links":{"self":{"href":"https://api.github.com/repos/xitu/gold-miner/pulls/comments/80955670"},"html":{"href":"https://github.com/xitu/gold-miner/pull/761#discussion_r80955670"},"pull_request":{"href":"https://api.github.com/repos/xitu/gold-miner/pulls/761"}}},"pull_request":{"url":"https://api.github.com/repos/xitu/gold-miner/pulls/761","id":86962716,"html_url":"https://github.com/xitu/gold-miner/pull/761","diff_url":"https://github.com/xitu/gold-miner/pull/761.diff","patch_url":"https://github.com/xitu/gold-miner/pull/761.patch","issue_url":"https://api.github.com/repos/xitu/gold-miner/issues/761","number":761,"state":"open","locked":false,"title":"Swift 3 中的函数命名规范指南 初稿","user":{"login":"Zheaoli","id":7054676,"avatar_url":"https://avatars.githubusercontent.com/u/7054676?v=3","gravatar_id":"","url":"https://api.github.com/users/Zheaoli","html_url":"https://github.com/Zheaoli","followers_url":"https://api.github.com/users/Zheaoli/followers","following_url":"https://api.github.com/users/Zheaoli/following{/other_user}","gists_url":"https://api.github.com/users/Zheaoli/gists{/gist_id}","starred_url":"https://api.github.com/users/Zheaoli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Zheaoli/subscriptions","organizations_url":"https://api.github.com/users/Zheaoli/orgs","repos_url":"https://api.github.com/users/Zheaoli/repos","events_url":"https://api.github.com/users/Zheaoli/events{/privacy}","received_events_url":"https://api.github.com/users/Zheaoli/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-09-27T16:15:46Z","updated_at":"2016-09-28T16:11:10Z","closed_at":null,"merged_at":null,"merge_commit_sha":"636789240b975e58d9625cd482cbccdb464276e2","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/xitu/gold-miner/pulls/761/commits","review_comments_url":"https://api.github.com/repos/xitu/gold-miner/pulls/761/comments","review_comment_url":"https://api.github.com/repos/xitu/gold-miner/pulls/comments{/number}","comments_url":"https://api.github.com/repos/xitu/gold-miner/issues/761/comments","statuses_url":"https://api.github.com/repos/xitu/gold-miner/statuses/aea0c07c5b67191824e48e6e980d33869aab4667","head":{"label":"Zheaoli:dev1","ref":"dev1","sha":"aea0c07c5b67191824e48e6e980d33869aab4667","user":{"login":"Zheaoli","id":7054676,"avatar_url":"https://avatars.githubusercontent.com/u/7054676?v=3","gravatar_id":"","url":"https://api.github.com/users/Zheaoli","html_url":"https://github.com/Zheaoli","followers_url":"https://api.github.com/users/Zheaoli/followers","following_url":"https://api.github.com/users/Zheaoli/following{/other_user}","gists_url":"https://api.github.com/users/Zheaoli/gists{/gist_id}","starred_url":"https://api.github.com/users/Zheaoli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Zheaoli/subscriptions","organizations_url":"https://api.github.com/users/Zheaoli/orgs","repos_url":"https://api.github.com/users/Zheaoli/repos","events_url":"https://api.github.com/users/Zheaoli/events{/privacy}","received_events_url":"https://api.github.com/users/Zheaoli/received_events","type":"User","site_admin":false},"repo":{"id":60066532,"name":"gold-miner","full_name":"Zheaoli/gold-miner","owner":{"login":"Zheaoli","id":7054676,"avatar_url":"https://avatars.githubusercontent.com/u/7054676?v=3","gravatar_id":"","url":"https://api.github.com/users/Zheaoli","html_url":"https://github.com/Zheaoli","followers_url":"https://api.github.com/users/Zheaoli/followers","following_url":"https://api.github.com/users/Zheaoli/following{/other_user}","gists_url":"https://api.github.com/users/Zheaoli/gists{/gist_id}","starred_url":"https://api.github.com/users/Zheaoli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Zheaoli/subscriptions","organizations_url":"https://api.github.com/users/Zheaoli/orgs","repos_url":"https://api.github.com/users/Zheaoli/repos","events_url":"https://api.github.com/users/Zheaoli/events{/privacy}","received_events_url":"https://api.github.com/users/Zheaoli/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Zheaoli/gold-miner","description":"掘金翻译计划，翻译掘金上优质的英文文章","fork":true,"url":"https://api.github.com/repos/Zheaoli/gold-miner","forks_url":"https://api.github.com/repos/Zheaoli/gold-miner/forks","keys_url":"https://api.github.com/repos/Zheaoli/gold-miner/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Zheaoli/gold-miner/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Zheaoli/gold-miner/teams","hooks_url":"https://api.github.com/repos/Zheaoli/gold-miner/hooks","issue_events_url":"https://api.github.com/repos/Zheaoli/gold-miner/issues/events{/number}","events_url":"https://api.github.com/repos/Zheaoli/gold-miner/events","assignees_url":"https://api.github.com/repos/Zheaoli/gold-miner/assignees{/user}","branches_url":"https://api.github.com/repos/Zheaoli/gold-miner/branches{/branch}","tags_url":"https://api.github.com/repos/Zheaoli/gold-miner/tags","blobs_url":"https://api.github.com/repos/Zheaoli/gold-miner/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Zheaoli/gold-miner/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Zheaoli/gold-miner/git/refs{/sha}","trees_url":"https://api.github.com/repos/Zheaoli/gold-miner/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Zheaoli/gold-miner/statuses/{sha}","languages_url":"https://api.github.com/repos/Zheaoli/gold-miner/languages","stargazers_url":"https://api.github.com/repos/Zheaoli/gold-miner/stargazers","contributors_url":"https://api.github.com/repos/Zheaoli/gold-miner/contributors","subscribers_url":"https://api.github.com/repos/Zheaoli/gold-miner/subscribers","subscription_url":"https://api.github.com/repos/Zheaoli/gold-miner/subscription","commits_url":"https://api.github.com/repos/Zheaoli/gold-miner/commits{/sha}","git_commits_url":"https://api.github.com/repos/Zheaoli/gold-miner/git/commits{/sha}","comments_url":"https://api.github.com/repos/Zheaoli/gold-miner/comments{/number}","issue_comment_url":"https://api.github.com/repos/Zheaoli/gold-miner/issues/comments{/number}","contents_url":"https://api.github.com/repos/Zheaoli/gold-miner/contents/{+path}","compare_url":"https://api.github.com/repos/Zheaoli/gold-miner/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Zheaoli/gold-miner/merges","archive_url":"https://api.github.com/repos/Zheaoli/gold-miner/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Zheaoli/gold-miner/downloads","issues_url":"https://api.github.com/repos/Zheaoli/gold-miner/issues{/number}","pulls_url":"https://api.github.com/repos/Zheaoli/gold-miner/pulls{/number}","milestones_url":"https://api.github.com/repos/Zheaoli/gold-miner/milestones{/number}","notifications_url":"https://api.github.com/repos/Zheaoli/gold-miner/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Zheaoli/gold-miner/labels{/name}","releases_url":"https://api.github.com/repos/Zheaoli/gold-miner/releases{/id}","deployments_url":"https://api.github.com/repos/Zheaoli/gold-miner/deployments","created_at":"2016-05-31T07:13:00Z","updated_at":"2016-05-31T06:23:30Z","pushed_at":"2016-09-27T16:18:27Z","git_url":"git://github.com/Zheaoli/gold-miner.git","ssh_url":"git@github.com:Zheaoli/gold-miner.git","clone_url":"https://github.com/Zheaoli/gold-miner.git","svn_url":"https://github.com/Zheaoli/gold-miner","homepage":"http://gold.xitu.io","size":15522,"stargazers_count":0,"watchers_count":0,"language":null,"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":"xitu:master","ref":"master","sha":"b92f025333ff73841c213bdd7d538bd977644b68","user":{"login":"xitu","id":10482599,"avatar_url":"https://avatars.githubusercontent.com/u/10482599?v=3","gravatar_id":"","url":"https://api.github.com/users/xitu","html_url":"https://github.com/xitu","followers_url":"https://api.github.com/users/xitu/followers","following_url":"https://api.github.com/users/xitu/following{/other_user}","gists_url":"https://api.github.com/users/xitu/gists{/gist_id}","starred_url":"https://api.github.com/users/xitu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xitu/subscriptions","organizations_url":"https://api.github.com/users/xitu/orgs","repos_url":"https://api.github.com/users/xitu/repos","events_url":"https://api.github.com/users/xitu/events{/privacy}","received_events_url":"https://api.github.com/users/xitu/received_events","type":"Organization","site_admin":false},"repo":{"id":45512989,"name":"gold-miner","full_name":"xitu/gold-miner","owner":{"login":"xitu","id":10482599,"avatar_url":"https://avatars.githubusercontent.com/u/10482599?v=3","gravatar_id":"","url":"https://api.github.com/users/xitu","html_url":"https://github.com/xitu","followers_url":"https://api.github.com/users/xitu/followers","following_url":"https://api.github.com/users/xitu/following{/other_user}","gists_url":"https://api.github.com/users/xitu/gists{/gist_id}","starred_url":"https://api.github.com/users/xitu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xitu/subscriptions","organizations_url":"https://api.github.com/users/xitu/orgs","repos_url":"https://api.github.com/users/xitu/repos","events_url":"https://api.github.com/users/xitu/events{/privacy}","received_events_url":"https://api.github.com/users/xitu/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/xitu/gold-miner","description":"掘金翻译计划，翻译掘金上优质的英文文章","fork":false,"url":"https://api.github.com/repos/xitu/gold-miner","forks_url":"https://api.github.com/repos/xitu/gold-miner/forks","keys_url":"https://api.github.com/repos/xitu/gold-miner/keys{/key_id}","collaborators_url":"https://api.github.com/repos/xitu/gold-miner/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/xitu/gold-miner/teams","hooks_url":"https://api.github.com/repos/xitu/gold-miner/hooks","issue_events_url":"https://api.github.com/repos/xitu/gold-miner/issues/events{/number}","events_url":"https://api.github.com/repos/xitu/gold-miner/events","assignees_url":"https://api.github.com/repos/xitu/gold-miner/assignees{/user}","branches_url":"https://api.github.com/repos/xitu/gold-miner/branches{/branch}","tags_url":"https://api.github.com/repos/xitu/gold-miner/tags","blobs_url":"https://api.github.com/repos/xitu/gold-miner/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/xitu/gold-miner/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/xitu/gold-miner/git/refs{/sha}","trees_url":"https://api.github.com/repos/xitu/gold-miner/git/trees{/sha}","statuses_url":"https://api.github.com/repos/xitu/gold-miner/statuses/{sha}","languages_url":"https://api.github.com/repos/xitu/gold-miner/languages","stargazers_url":"https://api.github.com/repos/xitu/gold-miner/stargazers","contributors_url":"https://api.github.com/repos/xitu/gold-miner/contributors","subscribers_url":"https://api.github.com/repos/xitu/gold-miner/subscribers","subscription_url":"https://api.github.com/repos/xitu/gold-miner/subscription","commits_url":"https://api.github.com/repos/xitu/gold-miner/commits{/sha}","git_commits_url":"https://api.github.com/repos/xitu/gold-miner/git/commits{/sha}","comments_url":"https://api.github.com/repos/xitu/gold-miner/comments{/number}","issue_comment_url":"https://api.github.com/repos/xitu/gold-miner/issues/comments{/number}","contents_url":"https://api.github.com/repos/xitu/gold-miner/contents/{+path}","compare_url":"https://api.github.com/repos/xitu/gold-miner/compare/{base}...{head}","merges_url":"https://api.github.com/repos/xitu/gold-miner/merges","archive_url":"https://api.github.com/repos/xitu/gold-miner/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/xitu/gold-miner/downloads","issues_url":"https://api.github.com/repos/xitu/gold-miner/issues{/number}","pulls_url":"https://api.github.com/repos/xitu/gold-miner/pulls{/number}","milestones_url":"https://api.github.com/repos/xitu/gold-miner/milestones{/number}","notifications_url":"https://api.github.com/repos/xitu/gold-miner/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/xitu/gold-miner/labels{/name}","releases_url":"https://api.github.com/repos/xitu/gold-miner/releases{/id}","deployments_url":"https://api.github.com/repos/xitu/gold-miner/deployments","created_at":"2015-11-04T03:29:13Z","updated_at":"2016-09-28T15:46:27Z","pushed_at":"2016-09-28T15:54:06Z","git_url":"git://github.com/xitu/gold-miner.git","ssh_url":"git@github.com:xitu/gold-miner.git","clone_url":"https://github.com/xitu/gold-miner.git","svn_url":"https://github.com/xitu/gold-miner","homepage":"http://gold.xitu.io","size":16272,"stargazers_count":3728,"watchers_count":3728,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":671,"mirror_url":null,"open_issues_count":14,"forks":671,"open_issues":14,"watchers":3728,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/xitu/gold-miner/pulls/761"},"html":{"href":"https://github.com/xitu/gold-miner/pull/761"},"issue":{"href":"https://api.github.com/repos/xitu/gold-miner/issues/761"},"comments":{"href":"https://api.github.com/repos/xitu/gold-miner/issues/761/comments"},"review_comments":{"href":"https://api.github.com/repos/xitu/gold-miner/pulls/761/comments"},"review_comment":{"href":"https://api.github.com/repos/xitu/gold-miner/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/xitu/gold-miner/pulls/761/commits"},"statuses":{"href":"https://api.github.com/repos/xitu/gold-miner/statuses/aea0c07c5b67191824e48e6e980d33869aab4667"}}}}
{"actor":{"display_login":"Kulbear"}}