{"action":"created","comment":{"url":"https://api.github.com/repos/nodatime/nodatime/pulls/comments/60827798","id":60827798,"diff_hunk":"@@ -0,0 +1,199 @@\n+﻿// Copyright 2016 The Noda Time Authors. All rights reserved.\n+// Use of this source code is governed by the Apache License 2.0,\n+// as found in the LICENSE.txt file.\n+\n+using JetBrains.Annotations;\n+using NodaTime.Annotations;\n+using NodaTime.Utility;\n+using System.Linq;\n+\n+namespace NodaTime.Calendars\n+{\n+    /// <summary>\n+    /// A rule determining how \"week years\" are arranged, including the weeks within the week year.\n+    /// </summary>\n+    /// <remarks>\n+    /// <para>\n+    /// Dates are usually identified within a calendar system by a calendar year, a month within that\n+    /// calendar year, and a day within that month. For example, the date of birth of Ada Lovelace can be identified\n+    /// within the Gregorian calendar system as the year 1815, the month December (12), and the day 10. However,\n+    /// dates can also be identified (again within a calendar system) by week-year, week and day-of-week. How\n+    /// that identification occurs depends on which rule you use - but again as an example, within the Gregorian\n+    /// calendar system, using the ISO-8601 week year rule, the date of the Unix epoch is week-year 1815,\n+    /// week 49, day-of-week Sunday.\n+    /// </para> \n+    /// <para>\n+    /// The calendar year of a date and the week-year of a date are the same in most rules for most dates, but aren't\n+    /// always. When they differ, it is usually because a day near the start of the calendar year is deemed to belong\n+    /// to the last week of the previous week-year - or conversely because a day near the end of the calendar year is\n+    /// deemed to belong to the first week of the following week-year. Some rules may be more radical -\n+    /// a UK tax year rule could number weeks from April 6th onwards, such that any date earlier than that in the calendar\n+    /// year would belong to the previous week-year.\n+    /// </para>\n+    /// <para>\n+    /// The mapping of dates into week-year, week and day-of-week is always relative to a specific calendar system.\n+    /// For example, years in the Hebrew calendar system vary very significantly in length due to leap months, and this\n+    /// is reflected in the number of weeks within the week-years - as low as 50, and as high as 55.\n+    /// </para>\n+    /// <para>\n+    /// This class allows conversions between the two schemes of identifying dates: <see cref=\"GetWeekYear(LocalDate)\"/>\n+    /// and <see cref=\"GetWeekOfWeekYear(LocalDate)\"/> allow the week-year and week to be obtained, and\n+    /// <see cref=\"CreateLocalDate(int, int, IsoDayOfWeek, CalendarSystem)\"/> allows the reverse mapping. Note that\n+    /// the calendar system does not need to be specified in the former methods as a <see cref=\"LocalDate\"/> already\n+    /// contains calendar information, and there is no method to obtain the day-of-week as that is not affected by the\n+    /// week year rule being used.\n+    /// </para>\n+    /// <para>Specific rules are obtained using the static factory methods within this class, or with the\n+    /// <see cref=\"Iso\"/> property.</para>\n+    /// <para>\n+    /// All implementations within Noda Time are immutable, and it is advised that any external implementations\n+    /// should be immutable too.\n+    /// </para>\n+    /// </remarks>\n+    [Immutable]\n+    public abstract class WeekYearRule\n+    {\n+        private static readonly WeekYearRule[] isoBasedRules = Enumerable.Range(1, 7).Select(x => new IsoBasedWeekYearRule(x)).ToArray();\n+\n+        /// <summary>\n+        /// Returns a <see cref=\"WeekYearRule\"/> similar to ISO-8601, but allowing the minimum number of\n+        /// days in the first week to vary from the value of 4 specified by ISO-8601.\n+        /// </summary>\n+        /// <remarks>\n+        /// <paramref name=\"minDaysInFirstWeek\"/> determines when the first week of the week-year starts.\n+        /// For any given calendar year X, consider the Monday-to-Sunday week that includes the first day of the\n+        /// calendar year. Usually, some days of that week are in calendar year X, and some are in calendar year \n+        /// X-1. If <paramref name=\"minDaysInFirstWeek\"/> or more of the days are in year X, then the week is\n+        /// deemed to be the first week of week-year X. Otherwise, the week is deemed to be the last week of\n+        /// week-year X-1, and the first week of week-year X starts on the following Monday.\n+        /// </remarks>\n+        /// <param name=\"minDaysInFirstWeek\">The minimum number of days in the first Monday-to-Sunday week\n+        /// which have to be in the new calendar year for that week to count as being in that week-year.\n+        /// Must be in the range 1 to 7 inclusive.\n+        /// </param>\n+        /// <returns>A <see cref=\"WeekYearRule\"/> with the specified minimum number of days in the first\n+        /// week.</returns>\n+        public static WeekYearRule ForMinDaysInFirstWeek(int minDaysInFirstWeek)\n+        {\n+            Preconditions.CheckArgumentRange(nameof(minDaysInFirstWeek), minDaysInFirstWeek, 1, 7);\n+            return isoBasedRules[minDaysInFirstWeek - 1];\n+        }\n+\n+        /// <summary>\n+        /// Returns a <see cref=\"WeekYearRule\"/> consistent with ISO-8601.\n+        /// </summary>\n+        /// <remarks></remarks>\n+        /// <para>\n+        /// In the standard ISO-8601 week algorithm, the first week of the year\n+        /// is that in which at least 4 days are in the year. As a result of this\n+        /// definition, day 1 of the first week may be in the previous year.\n+        /// </para>\n+        /// <para>\n+        /// For example, January 1st 2011 was a Saturday, so only two days of that week\n+        /// (Saturday and Sunday) were in 2011. Therefore January 1st is part of\n+        /// week 52 of week-year 2010. Conversely, December 31st 2012 is a Monday,\n+        /// so is part of week 1 of week-year 2013.\n+        /// </para>\n+        /// <value>A <see cref=\"WeekYearRule\"/> consistent with ISO-8601.</value>\n+        public static WeekYearRule Iso { get; } = isoBasedRules[3];\n+\n+        // TODO: public static WeekYearRule FromBclRule(CalendarWeekRule rule, IsoDayOfWeek firstDayOfWeek) => null;\n+        // TODO: public static WeekYearRule FromBclRule(CalendarWeekRule rule, DayOfWeek firstDayOfWeek)\n+        //    => FromBclRule(rule, BclConversions.ToIsoDayOfWeek(firstDayOfWeek));\n+\n+        // TODO: Make IsoBasedWeekYearRule more flexible, allowing non-Monday-to-Sunday weeks?\n+\n+        /// <summary>\n+        /// Creates a <see cref=\"LocalDate\" /> from a given week-year, week within that week-year,\n+        /// and day-of-week, for the specified calendar system.\n+        /// </summary>\n+        /// <remarks>\n+        /// <para>\n+        /// Valid values for <paramref name=\"weekYear\"/> and <paramref name=\"weekOfWeekYear\"/> will\n+        /// depend on the rule and calendar system. Rules will usually permit any week-year which is also a valid calendar year,\n+        /// and sometimes the value one less than the minimum calendar year and one more than the maximum\n+        /// calendar year. The valid weeks within that week-year may vary as some years are longer than others\n+        /// in terms of weeks - and the first valid week-year and last valid week-year usually only contain a few\n+        /// weeks each. In most applications this is unlikely to be an issue as the range of valid dates is far","path":"src/NodaTime/Calendars/WeekYearRule.cs","position":117,"original_position":117,"commit_id":"fb31ccdee4ec77dbeafb18987ce736e584773d24","original_commit_id":"fb31ccdee4ec77dbeafb18987ce736e584773d24","user":{"login":"malcolmr","id":7025783,"avatar_url":"https://avatars.githubusercontent.com/u/7025783?v=3","gravatar_id":"","url":"https://api.github.com/users/malcolmr","html_url":"https://github.com/malcolmr","followers_url":"https://api.github.com/users/malcolmr/followers","following_url":"https://api.github.com/users/malcolmr/following{/other_user}","gists_url":"https://api.github.com/users/malcolmr/gists{/gist_id}","starred_url":"https://api.github.com/users/malcolmr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/malcolmr/subscriptions","organizations_url":"https://api.github.com/users/malcolmr/orgs","repos_url":"https://api.github.com/users/malcolmr/repos","events_url":"https://api.github.com/users/malcolmr/events{/privacy}","received_events_url":"https://api.github.com/users/malcolmr/received_events","type":"User","site_admin":false},"body":"Worth saying that the valid day-of-week may depend upon the week year/week? (e.g. the US system of \"01/01 is in week 1, week starts on Sunday\", where day-of-week 1 may not be valid.)\r\n\r\nAlso I wonder if it's worth breaking the paragraph into a bulleted list for week-year/week/day.","created_at":"2016-04-23T12:22:53Z","updated_at":"2016-04-23T12:22:53Z","html_url":"https://github.com/nodatime/nodatime/pull/496#discussion_r60827798","pull_request_url":"https://api.github.com/repos/nodatime/nodatime/pulls/496","_links":{"self":{"href":"https://api.github.com/repos/nodatime/nodatime/pulls/comments/60827798"},"html":{"href":"https://github.com/nodatime/nodatime/pull/496#discussion_r60827798"},"pull_request":{"href":"https://api.github.com/repos/nodatime/nodatime/pulls/496"}}},"pull_request":{"url":"https://api.github.com/repos/nodatime/nodatime/pulls/496","id":67419190,"html_url":"https://github.com/nodatime/nodatime/pull/496","diff_url":"https://github.com/nodatime/nodatime/pull/496.diff","patch_url":"https://github.com/nodatime/nodatime/pull/496.patch","issue_url":"https://api.github.com/repos/nodatime/nodatime/issues/496","number":496,"state":"open","locked":false,"title":"Change how we handle week-years, proposed in issue #408","user":{"login":"jskeet","id":17011,"avatar_url":"https://avatars.githubusercontent.com/u/17011?v=3","gravatar_id":"","url":"https://api.github.com/users/jskeet","html_url":"https://github.com/jskeet","followers_url":"https://api.github.com/users/jskeet/followers","following_url":"https://api.github.com/users/jskeet/following{/other_user}","gists_url":"https://api.github.com/users/jskeet/gists{/gist_id}","starred_url":"https://api.github.com/users/jskeet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jskeet/subscriptions","organizations_url":"https://api.github.com/users/jskeet/orgs","repos_url":"https://api.github.com/users/jskeet/repos","events_url":"https://api.github.com/users/jskeet/events{/privacy}","received_events_url":"https://api.github.com/users/jskeet/received_events","type":"User","site_admin":false},"body":"// cc @mj1856 \r\n\r\nWe no longer have any members in most of Noda Time which deal with week-years,\r\nother than LocalDate.FromWeekYearWeekAndDay (maintained for discoverability).\r\nThe normal \"entry point\" for this functionality is now WeekYearRule, an\r\nabstract class with static factory methods. Unlike CalendarSystem, we *do*\r\nexpect that users may create their own implementations of this.\r\n\r\nMost of the implementation came from WeekYearCalculator, but has been refactored\r\na bit and fixed in terms of validation. (We now round-trip all dates. This\r\nfixes issue #439.)\r\n\r\nThis reduces the number of calendar systems we have - there's now just\r\nGregorian, rather than Gregorian-1 etc. ISO and Gregorian are now functionally\r\nequivalent, but have separate IDs - we may want to reconsider that at some point\r\n(pre-2.0).\r\n\r\nWork still to do:\r\n- Implement the BCL functionality (CalendarWeekRule)\r\n- Update non-API documentation\r\n- Update version history","created_at":"2016-04-21T20:43:57Z","updated_at":"2016-04-23T12:22:53Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bc73a98a9048f3de19fe7b604ede8a63ed503486","assignee":{"login":"malcolmr","id":7025783,"avatar_url":"https://avatars.githubusercontent.com/u/7025783?v=3","gravatar_id":"","url":"https://api.github.com/users/malcolmr","html_url":"https://github.com/malcolmr","followers_url":"https://api.github.com/users/malcolmr/followers","following_url":"https://api.github.com/users/malcolmr/following{/other_user}","gists_url":"https://api.github.com/users/malcolmr/gists{/gist_id}","starred_url":"https://api.github.com/users/malcolmr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/malcolmr/subscriptions","organizations_url":"https://api.github.com/users/malcolmr/orgs","repos_url":"https://api.github.com/users/malcolmr/repos","events_url":"https://api.github.com/users/malcolmr/events{/privacy}","received_events_url":"https://api.github.com/users/malcolmr/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/nodatime/nodatime/pulls/496/commits","review_comments_url":"https://api.github.com/repos/nodatime/nodatime/pulls/496/comments","review_comment_url":"https://api.github.com/repos/nodatime/nodatime/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nodatime/nodatime/issues/496/comments","statuses_url":"https://api.github.com/repos/nodatime/nodatime/statuses/fb31ccdee4ec77dbeafb18987ce736e584773d24","head":{"label":"jskeet:week-calculator","ref":"week-calculator","sha":"fb31ccdee4ec77dbeafb18987ce736e584773d24","user":{"login":"jskeet","id":17011,"avatar_url":"https://avatars.githubusercontent.com/u/17011?v=3","gravatar_id":"","url":"https://api.github.com/users/jskeet","html_url":"https://github.com/jskeet","followers_url":"https://api.github.com/users/jskeet/followers","following_url":"https://api.github.com/users/jskeet/following{/other_user}","gists_url":"https://api.github.com/users/jskeet/gists{/gist_id}","starred_url":"https://api.github.com/users/jskeet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jskeet/subscriptions","organizations_url":"https://api.github.com/users/jskeet/orgs","repos_url":"https://api.github.com/users/jskeet/repos","events_url":"https://api.github.com/users/jskeet/events{/privacy}","received_events_url":"https://api.github.com/users/jskeet/received_events","type":"User","site_admin":false},"repo":{"id":44097469,"name":"nodatime","full_name":"jskeet/nodatime","owner":{"login":"jskeet","id":17011,"avatar_url":"https://avatars.githubusercontent.com/u/17011?v=3","gravatar_id":"","url":"https://api.github.com/users/jskeet","html_url":"https://github.com/jskeet","followers_url":"https://api.github.com/users/jskeet/followers","following_url":"https://api.github.com/users/jskeet/following{/other_user}","gists_url":"https://api.github.com/users/jskeet/gists{/gist_id}","starred_url":"https://api.github.com/users/jskeet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jskeet/subscriptions","organizations_url":"https://api.github.com/users/jskeet/orgs","repos_url":"https://api.github.com/users/jskeet/repos","events_url":"https://api.github.com/users/jskeet/events{/privacy}","received_events_url":"https://api.github.com/users/jskeet/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jskeet/nodatime","description":"A better date and time API for .NET","fork":true,"url":"https://api.github.com/repos/jskeet/nodatime","forks_url":"https://api.github.com/repos/jskeet/nodatime/forks","keys_url":"https://api.github.com/repos/jskeet/nodatime/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jskeet/nodatime/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jskeet/nodatime/teams","hooks_url":"https://api.github.com/repos/jskeet/nodatime/hooks","issue_events_url":"https://api.github.com/repos/jskeet/nodatime/issues/events{/number}","events_url":"https://api.github.com/repos/jskeet/nodatime/events","assignees_url":"https://api.github.com/repos/jskeet/nodatime/assignees{/user}","branches_url":"https://api.github.com/repos/jskeet/nodatime/branches{/branch}","tags_url":"https://api.github.com/repos/jskeet/nodatime/tags","blobs_url":"https://api.github.com/repos/jskeet/nodatime/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jskeet/nodatime/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jskeet/nodatime/git/refs{/sha}","trees_url":"https://api.github.com/repos/jskeet/nodatime/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jskeet/nodatime/statuses/{sha}","languages_url":"https://api.github.com/repos/jskeet/nodatime/languages","stargazers_url":"https://api.github.com/repos/jskeet/nodatime/stargazers","contributors_url":"https://api.github.com/repos/jskeet/nodatime/contributors","subscribers_url":"https://api.github.com/repos/jskeet/nodatime/subscribers","subscription_url":"https://api.github.com/repos/jskeet/nodatime/subscription","commits_url":"https://api.github.com/repos/jskeet/nodatime/commits{/sha}","git_commits_url":"https://api.github.com/repos/jskeet/nodatime/git/commits{/sha}","comments_url":"https://api.github.com/repos/jskeet/nodatime/comments{/number}","issue_comment_url":"https://api.github.com/repos/jskeet/nodatime/issues/comments{/number}","contents_url":"https://api.github.com/repos/jskeet/nodatime/contents/{+path}","compare_url":"https://api.github.com/repos/jskeet/nodatime/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jskeet/nodatime/merges","archive_url":"https://api.github.com/repos/jskeet/nodatime/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jskeet/nodatime/downloads","issues_url":"https://api.github.com/repos/jskeet/nodatime/issues{/number}","pulls_url":"https://api.github.com/repos/jskeet/nodatime/pulls{/number}","milestones_url":"https://api.github.com/repos/jskeet/nodatime/milestones{/number}","notifications_url":"https://api.github.com/repos/jskeet/nodatime/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jskeet/nodatime/labels{/name}","releases_url":"https://api.github.com/repos/jskeet/nodatime/releases{/id}","deployments_url":"https://api.github.com/repos/jskeet/nodatime/deployments","created_at":"2015-10-12T09:28:27Z","updated_at":"2016-03-24T17:26:33Z","pushed_at":"2016-04-21T21:19:23Z","git_url":"git://github.com/jskeet/nodatime.git","ssh_url":"git@github.com:jskeet/nodatime.git","clone_url":"https://github.com/jskeet/nodatime.git","svn_url":"https://github.com/jskeet/nodatime","homepage":"http://nodatime.org","size":44652,"stargazers_count":8,"watchers_count":8,"language":"C#","has_issues":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":8,"default_branch":"master"}},"base":{"label":"nodatime:master","ref":"master","sha":"3d84097c03ed1d8f2b2cd2f717629fa14639cd2d","user":{"login":"nodatime","id":10754831,"avatar_url":"https://avatars.githubusercontent.com/u/10754831?v=3","gravatar_id":"","url":"https://api.github.com/users/nodatime","html_url":"https://github.com/nodatime","followers_url":"https://api.github.com/users/nodatime/followers","following_url":"https://api.github.com/users/nodatime/following{/other_user}","gists_url":"https://api.github.com/users/nodatime/gists{/gist_id}","starred_url":"https://api.github.com/users/nodatime/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nodatime/subscriptions","organizations_url":"https://api.github.com/users/nodatime/orgs","repos_url":"https://api.github.com/users/nodatime/repos","events_url":"https://api.github.com/users/nodatime/events{/privacy}","received_events_url":"https://api.github.com/users/nodatime/received_events","type":"Organization","site_admin":false},"repo":{"id":32252455,"name":"nodatime","full_name":"nodatime/nodatime","owner":{"login":"nodatime","id":10754831,"avatar_url":"https://avatars.githubusercontent.com/u/10754831?v=3","gravatar_id":"","url":"https://api.github.com/users/nodatime","html_url":"https://github.com/nodatime","followers_url":"https://api.github.com/users/nodatime/followers","following_url":"https://api.github.com/users/nodatime/following{/other_user}","gists_url":"https://api.github.com/users/nodatime/gists{/gist_id}","starred_url":"https://api.github.com/users/nodatime/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nodatime/subscriptions","organizations_url":"https://api.github.com/users/nodatime/orgs","repos_url":"https://api.github.com/users/nodatime/repos","events_url":"https://api.github.com/users/nodatime/events{/privacy}","received_events_url":"https://api.github.com/users/nodatime/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/nodatime/nodatime","description":"A better date and time API for .NET","fork":false,"url":"https://api.github.com/repos/nodatime/nodatime","forks_url":"https://api.github.com/repos/nodatime/nodatime/forks","keys_url":"https://api.github.com/repos/nodatime/nodatime/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nodatime/nodatime/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nodatime/nodatime/teams","hooks_url":"https://api.github.com/repos/nodatime/nodatime/hooks","issue_events_url":"https://api.github.com/repos/nodatime/nodatime/issues/events{/number}","events_url":"https://api.github.com/repos/nodatime/nodatime/events","assignees_url":"https://api.github.com/repos/nodatime/nodatime/assignees{/user}","branches_url":"https://api.github.com/repos/nodatime/nodatime/branches{/branch}","tags_url":"https://api.github.com/repos/nodatime/nodatime/tags","blobs_url":"https://api.github.com/repos/nodatime/nodatime/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nodatime/nodatime/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nodatime/nodatime/git/refs{/sha}","trees_url":"https://api.github.com/repos/nodatime/nodatime/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nodatime/nodatime/statuses/{sha}","languages_url":"https://api.github.com/repos/nodatime/nodatime/languages","stargazers_url":"https://api.github.com/repos/nodatime/nodatime/stargazers","contributors_url":"https://api.github.com/repos/nodatime/nodatime/contributors","subscribers_url":"https://api.github.com/repos/nodatime/nodatime/subscribers","subscription_url":"https://api.github.com/repos/nodatime/nodatime/subscription","commits_url":"https://api.github.com/repos/nodatime/nodatime/commits{/sha}","git_commits_url":"https://api.github.com/repos/nodatime/nodatime/git/commits{/sha}","comments_url":"https://api.github.com/repos/nodatime/nodatime/comments{/number}","issue_comment_url":"https://api.github.com/repos/nodatime/nodatime/issues/comments{/number}","contents_url":"https://api.github.com/repos/nodatime/nodatime/contents/{+path}","compare_url":"https://api.github.com/repos/nodatime/nodatime/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nodatime/nodatime/merges","archive_url":"https://api.github.com/repos/nodatime/nodatime/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nodatime/nodatime/downloads","issues_url":"https://api.github.com/repos/nodatime/nodatime/issues{/number}","pulls_url":"https://api.github.com/repos/nodatime/nodatime/pulls{/number}","milestones_url":"https://api.github.com/repos/nodatime/nodatime/milestones{/number}","notifications_url":"https://api.github.com/repos/nodatime/nodatime/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nodatime/nodatime/labels{/name}","releases_url":"https://api.github.com/repos/nodatime/nodatime/releases{/id}","deployments_url":"https://api.github.com/repos/nodatime/nodatime/deployments","created_at":"2015-03-15T09:14:36Z","updated_at":"2016-04-22T15:05:24Z","pushed_at":"2016-04-21T21:19:23Z","git_url":"git://github.com/nodatime/nodatime.git","ssh_url":"git@github.com:nodatime/nodatime.git","clone_url":"https://github.com/nodatime/nodatime.git","svn_url":"https://github.com/nodatime/nodatime","homepage":"http://nodatime.org","size":48123,"stargazers_count":316,"watchers_count":316,"language":"C#","has_issues":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":54,"mirror_url":null,"open_issues_count":70,"forks":54,"open_issues":70,"watchers":316,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/nodatime/nodatime/pulls/496"},"html":{"href":"https://github.com/nodatime/nodatime/pull/496"},"issue":{"href":"https://api.github.com/repos/nodatime/nodatime/issues/496"},"comments":{"href":"https://api.github.com/repos/nodatime/nodatime/issues/496/comments"},"review_comments":{"href":"https://api.github.com/repos/nodatime/nodatime/pulls/496/comments"},"review_comment":{"href":"https://api.github.com/repos/nodatime/nodatime/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nodatime/nodatime/pulls/496/commits"},"statuses":{"href":"https://api.github.com/repos/nodatime/nodatime/statuses/fb31ccdee4ec77dbeafb18987ce736e584773d24"}}}}