{"action":"created","comment":{"url":"https://api.github.com/repos/dotnet/corefx/pulls/comments/39222475","id":39222475,"diff_hunk":"@@ -0,0 +1,509 @@\n+// Copyright (c) Microsoft. All rights reserved.\n+// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n+\n+using System;\n+using System.Net.Security;\n+using System.Runtime.InteropServices;\n+\n+internal static partial class Interop\n+{\n+    internal static partial class Secur32\n+    {\n+        // TODO (Issue #3114): Throughout the entire file: replace with OS names from <sspi.h> and <schannel.h>\n+\n+        [StructLayout(LayoutKind.Sequential, Pack = 1)]\n+        internal struct SSPIHandle\n+        {\n+            private IntPtr _handleHi;\n+            private IntPtr _handleLo;\n+\n+            public bool IsZero\n+            {\n+                get { return _handleHi == IntPtr.Zero && HandleLo1 == IntPtr.Zero; }\n+            }\n+\n+            public IntPtr HandleLo1\n+            {\n+                get\n+                {\n+                    return _handleLo;\n+                }\n+\n+                set\n+                {\n+                    _handleLo = value;\n+                }\n+            }\n+\n+            internal void SetToInvalid()\n+            {\n+                _handleHi = IntPtr.Zero;\n+                HandleLo1 = IntPtr.Zero;\n+            }\n+\n+            public override string ToString()\n+            {\n+                { return _handleHi.ToString(\"x\") + \":\" + HandleLo1.ToString(\"x\"); }\n+            }\n+        }\n+\n+        internal enum ContextAttribute\n+        {\n+            Sizes = 0x00,\n+            Names = 0x01,\n+            Lifespan = 0x02,\n+            DceInfo = 0x03,\n+            StreamSizes = 0x04,\n+            //KeyInfo             = 0x05, must not be used, see ConnectionInfo instead\n+            Authority = 0x06,\n+            // SECPKG_ATTR_PROTO_INFO          = 7,\n+            // SECPKG_ATTR_PASSWORD_EXPIRY     = 8,\n+            // SECPKG_ATTR_SESSION_KEY         = 9,\n+            PackageInfo = 0x0A,\n+            // SECPKG_ATTR_USER_FLAGS          = 11,\n+            NegotiationInfo = 0x0C,\n+            // SECPKG_ATTR_NATIVE_NAMES        = 13,\n+            // SECPKG_ATTR_FLAGS               = 14,\n+            // SECPKG_ATTR_USE_VALIDATED       = 15,\n+            // SECPKG_ATTR_CREDENTIAL_NAME     = 16,\n+            // SECPKG_ATTR_TARGET_INFORMATION  = 17,\n+            // SECPKG_ATTR_ACCESS_TOKEN        = 18,\n+            // SECPKG_ATTR_TARGET              = 19,\n+            // SECPKG_ATTR_AUTHENTICATION_ID   = 20,\n+            UniqueBindings = 0x19,\n+            EndpointBindings = 0x1A,\n+            ClientSpecifiedSpn = 0x1B, // SECPKG_ATTR_CLIENT_SPECIFIED_TARGET = 27\n+            RemoteCertificate = 0x53,\n+            LocalCertificate = 0x54,\n+            RootStore = 0x55,\n+            IssuerListInfoEx = 0x59,\n+            ConnectionInfo = 0x5A,\n+            // SECPKG_ATTR_EAP_KEY_BLOCK        0x5b   // returns SecPkgContext_EapKeyBlock  \n+            // SECPKG_ATTR_MAPPED_CRED_ATTR     0x5c   // returns SecPkgContext_MappedCredAttr  \n+            // SECPKG_ATTR_SESSION_INFO         0x5d   // returns SecPkgContext_SessionInfo  \n+            // SECPKG_ATTR_APP_DATA             0x5e   // sets/returns SecPkgContext_SessionAppData  \n+            // SECPKG_ATTR_REMOTE_CERTIFICATES  0x5F   // returns SecPkgContext_Certificates  \n+            // SECPKG_ATTR_CLIENT_CERT_POLICY   0x60   // sets    SecPkgCred_ClientCertCtlPolicy  \n+            // SECPKG_ATTR_CC_POLICY_RESULT     0x61   // returns SecPkgContext_ClientCertPolicyResult  \n+            // SECPKG_ATTR_USE_NCRYPT           0x62   // Sets the CRED_FLAG_USE_NCRYPT_PROVIDER FLAG on cred group  \n+            // SECPKG_ATTR_LOCAL_CERT_INFO      0x63   // returns SecPkgContext_CertInfo  \n+            // SECPKG_ATTR_CIPHER_INFO          0x64   // returns new CNG SecPkgContext_CipherInfo  \n+            // SECPKG_ATTR_EAP_PRF_INFO         0x65   // sets    SecPkgContext_EapPrfInfo  \n+            // SECPKG_ATTR_SUPPORTED_SIGNATURES 0x66   // returns SecPkgContext_SupportedSignatures  \n+            // SECPKG_ATTR_REMOTE_CERT_CHAIN    0x67   // returns PCCERT_CONTEXT  \n+            UiInfo = 0x68, // sets SEcPkgContext_UiInfo  \n+        }\n+\n+        // #define ISC_REQ_DELEGATE                0x00000001\n+        // #define ISC_REQ_MUTUAL_AUTH             0x00000002\n+        // #define ISC_REQ_REPLAY_DETECT           0x00000004\n+        // #define ISC_REQ_SEQUENCE_DETECT         0x00000008\n+        // #define ISC_REQ_CONFIDENTIALITY         0x00000010\n+        // #define ISC_REQ_USE_SESSION_KEY         0x00000020\n+        // #define ISC_REQ_PROMPT_FOR_CREDS        0x00000040\n+        // #define ISC_REQ_USE_SUPPLIED_CREDS      0x00000080\n+        // #define ISC_REQ_ALLOCATE_MEMORY         0x00000100\n+        // #define ISC_REQ_USE_DCE_STYLE           0x00000200\n+        // #define ISC_REQ_DATAGRAM                0x00000400\n+        // #define ISC_REQ_CONNECTION              0x00000800\n+        // #define ISC_REQ_CALL_LEVEL              0x00001000\n+        // #define ISC_REQ_FRAGMENT_SUPPLIED       0x00002000\n+        // #define ISC_REQ_EXTENDED_ERROR          0x00004000\n+        // #define ISC_REQ_STREAM                  0x00008000\n+        // #define ISC_REQ_INTEGRITY               0x00010000\n+        // #define ISC_REQ_IDENTIFY                0x00020000\n+        // #define ISC_REQ_NULL_SESSION            0x00040000\n+        // #define ISC_REQ_MANUAL_CRED_VALIDATION  0x00080000\n+        // #define ISC_REQ_RESERVED1               0x00100000\n+        // #define ISC_REQ_FRAGMENT_TO_FIT         0x00200000\n+        // #define ISC_REQ_HTTP                    0x10000000\n+        // Win7 SP1 +\n+        // #define ISC_REQ_UNVERIFIED_TARGET_NAME  0x20000000  \n+\n+        // #define ASC_REQ_DELEGATE                0x00000001\n+        // #define ASC_REQ_MUTUAL_AUTH             0x00000002\n+        // #define ASC_REQ_REPLAY_DETECT           0x00000004\n+        // #define ASC_REQ_SEQUENCE_DETECT         0x00000008\n+        // #define ASC_REQ_CONFIDENTIALITY         0x00000010\n+        // #define ASC_REQ_USE_SESSION_KEY         0x00000020\n+        // #define ASC_REQ_ALLOCATE_MEMORY         0x00000100\n+        // #define ASC_REQ_USE_DCE_STYLE           0x00000200\n+        // #define ASC_REQ_DATAGRAM                0x00000400\n+        // #define ASC_REQ_CONNECTION              0x00000800\n+        // #define ASC_REQ_CALL_LEVEL              0x00001000\n+        // #define ASC_REQ_EXTENDED_ERROR          0x00008000\n+        // #define ASC_REQ_STREAM                  0x00010000\n+        // #define ASC_REQ_INTEGRITY               0x00020000\n+        // #define ASC_REQ_LICENSING               0x00040000\n+        // #define ASC_REQ_IDENTIFY                0x00080000\n+        // #define ASC_REQ_ALLOW_NULL_SESSION      0x00100000\n+        // #define ASC_REQ_ALLOW_NON_USER_LOGONS   0x00200000\n+        // #define ASC_REQ_ALLOW_CONTEXT_REPLAY    0x00400000\n+        // #define ASC_REQ_FRAGMENT_TO_FIT         0x00800000\n+        // #define ASC_REQ_FRAGMENT_SUPPLIED       0x00002000\n+        // #define ASC_REQ_NO_TOKEN                0x01000000\n+        // #define ASC_REQ_HTTP                    0x10000000\n+\n+        [Flags]\n+        internal enum ContextFlags\n+        {\n+            Zero = 0,\n+            // The server in the transport application can\n+            // build new security contexts impersonating the\n+            // client that will be accepted by other servers\n+            // as the client's contexts.\n+            Delegate = 0x00000001,\n+            // The communicating parties must authenticate\n+            // their identities to each other. Without MutualAuth,\n+            // the client authenticates its identity to the server.\n+            // With MutualAuth, the server also must authenticate\n+            // its identity to the client.\n+            MutualAuth = 0x00000002,\n+            // The security package detects replayed packets and\n+            // notifies the caller if a packet has been replayed.\n+            // The use of this flag implies all of the conditions\n+            // specified by the Integrity flag.\n+            ReplayDetect = 0x00000004,\n+            // The context must be allowed to detect out-of-order\n+            // delivery of packets later through the message support\n+            // functions. Use of this flag implies all of the\n+            // conditions specified by the Integrity flag.\n+            SequenceDetect = 0x00000008,\n+            // The context must protect data while in transit.\n+            // Confidentiality is supported for NTLM with Microsoft\n+            // Windows NT version 4.0, SP4 and later and with the\n+            // Kerberos protocol in Microsoft Windows 2000 and later.\n+            Confidentiality = 0x00000010,\n+            UseSessionKey = 0x00000020,\n+            AllocateMemory = 0x00000100,\n+\n+            // Connection semantics must be used.\n+            Connection = 0x00000800,\n+\n+            // Client applications requiring extended error messages specify the\n+            // ISC_REQ_EXTENDED_ERROR flag when calling the InitializeSecurityContext\n+            // Server applications requiring extended error messages set\n+            // the ASC_REQ_EXTENDED_ERROR flag when calling AcceptSecurityContext.\n+            InitExtendedError = 0x00004000,\n+            AcceptExtendedError = 0x00008000,\n+            // A transport application requests stream semantics\n+            // by setting the ISC_REQ_STREAM and ASC_REQ_STREAM\n+            // flags in the calls to the InitializeSecurityContext\n+            // and AcceptSecurityContext functions\n+            InitStream = 0x00008000,\n+            AcceptStream = 0x00010000,\n+            // Buffer integrity can be verified; however, replayed\n+            // and out-of-sequence messages will not be detected\n+            InitIntegrity = 0x00010000,       // ISC_REQ_INTEGRITY\n+            AcceptIntegrity = 0x00020000,       // ASC_REQ_INTEGRITY\n+\n+            InitManualCredValidation = 0x00080000,   // ISC_REQ_MANUAL_CRED_VALIDATION\n+            InitUseSuppliedCreds = 0x00000080,   // ISC_REQ_USE_SUPPLIED_CREDS\n+            InitIdentify = 0x00020000,   // ISC_REQ_IDENTIFY\n+            AcceptIdentify = 0x00080000,   // ASC_REQ_IDENTIFY\n+\n+            ProxyBindings = 0x04000000,   // ASC_REQ_PROXY_BINDINGS\n+            AllowMissingBindings = 0x10000000,   // ASC_REQ_ALLOW_MISSING_BINDINGS\n+\n+            UnverifiedTargetName = 0x20000000,   // ISC_REQ_UNVERIFIED_TARGET_NAME\n+        }\n+\n+        internal enum Endianness\n+        {\n+            Network = 0x00,\n+            Native = 0x10,\n+        }\n+\n+        internal enum CredentialUse\n+        {\n+            Inbound = 0x1,\n+            Outbound = 0x2,\n+            Both = 0x3,\n+        }\n+\n+        [StructLayout(LayoutKind.Sequential)]\n+        internal struct _CERT_CHAIN_ELEMENT\n+        {\n+            public uint cbSize;\n+            public IntPtr pCertContext;\n+            // Since this structure is allocated by unmanaged code, we can\n+            // omit the fileds below since we don't need to access them\n+            // CERT_TRUST_STATUS   TrustStatus;\n+            // IntPtr                pRevocationInfo;\n+            // IntPtr                pIssuanceUsage;\n+            // IntPtr                pApplicationUsage;\n+        }\n+\n+        // SecPkgContext_IssuerListInfoEx\n+        [StructLayout(LayoutKind.Sequential)]\n+        internal unsafe struct IssuerListInfoEx\n+        {\n+            public SafeHandle aIssuers;\n+            public uint cIssuers;\n+\n+            public unsafe IssuerListInfoEx(SafeHandle handle, byte[] nativeBuffer)\n+            {\n+                aIssuers = handle;\n+                fixed (byte* voidPtr = nativeBuffer)\n+                {\n+                    // if this breaks on 64 bit, do the sizeof(IntPtr) trick","path":"src/Common/src/Interop/Windows/secur32/Interop.SSPI.cs","position":249,"original_position":249,"commit_id":"9b826ada60f4c1eaaf61a990392604eacab83406","original_commit_id":"9b826ada60f4c1eaaf61a990392604eacab83406","user":{"login":"CIPop","id":8635911,"avatar_url":"https://avatars.githubusercontent.com/u/8635911?v=3","gravatar_id":"","url":"https://api.github.com/users/CIPop","html_url":"https://github.com/CIPop","followers_url":"https://api.github.com/users/CIPop/followers","following_url":"https://api.github.com/users/CIPop/following{/other_user}","gists_url":"https://api.github.com/users/CIPop/gists{/gist_id}","starred_url":"https://api.github.com/users/CIPop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CIPop/subscriptions","organizations_url":"https://api.github.com/users/CIPop/orgs","repos_url":"https://api.github.com/users/CIPop/repos","events_url":"https://api.github.com/users/CIPop/events{/privacy}","received_events_url":"https://api.github.com/users/CIPop/received_events","type":"User","site_admin":false},"body":"The comment is from the original code. I'd keep it for now since it uncovers an issue in marshaling the struct from a native buffer: There is an assumption made that padding won't be added on any any architecture. \r\nChanged the comment to reflect this and linked to #3114.","created_at":"2015-09-10T22:29:20Z","updated_at":"2015-09-10T22:29:20Z","html_url":"https://github.com/dotnet/corefx/pull/3113#discussion_r39222475","pull_request_url":"https://api.github.com/repos/dotnet/corefx/pulls/3113","_links":{"self":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/comments/39222475"},"html":{"href":"https://github.com/dotnet/corefx/pull/3113#discussion_r39222475"},"pull_request":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/3113"}}},"pull_request":{"url":"https://api.github.com/repos/dotnet/corefx/pulls/3113","id":44380670,"html_url":"https://github.com/dotnet/corefx/pull/3113","diff_url":"https://github.com/dotnet/corefx/pull/3113.diff","patch_url":"https://github.com/dotnet/corefx/pull/3113.patch","issue_url":"https://api.github.com/repos/dotnet/corefx/issues/3113","number":3113,"state":"open","locked":false,"title":"Porting System.Net.Security","user":{"login":"CIPop","id":8635911,"avatar_url":"https://avatars.githubusercontent.com/u/8635911?v=3","gravatar_id":"","url":"https://api.github.com/users/CIPop","html_url":"https://github.com/CIPop","followers_url":"https://api.github.com/users/CIPop/followers","following_url":"https://api.github.com/users/CIPop/following{/other_user}","gists_url":"https://api.github.com/users/CIPop/gists{/gist_id}","starred_url":"https://api.github.com/users/CIPop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CIPop/subscriptions","organizations_url":"https://api.github.com/users/CIPop/orgs","repos_url":"https://api.github.com/users/CIPop/repos","events_url":"https://api.github.com/users/CIPop/events{/privacy}","received_events_url":"https://api.github.com/users/CIPop/received_events","type":"User","site_admin":false},"body":"Missing issues for TODO comments. Will create the tracking issue and update the code, author (dotnetbot) and reference the tracking issue.\r\n\r\n@davidsh @bartonjs @pgavlin @stephentoub @SidharthNabar  PTAL.\r\n","created_at":"2015-09-07T21:59:42Z","updated_at":"2015-09-10T22:29:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a884ce634948a6a9265694a9cbd2f0e9803d124d","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/dotnet/corefx/pulls/3113/commits","review_comments_url":"https://api.github.com/repos/dotnet/corefx/pulls/3113/comments","review_comment_url":"https://api.github.com/repos/dotnet/corefx/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dotnet/corefx/issues/3113/comments","statuses_url":"https://api.github.com/repos/dotnet/corefx/statuses/9b826ada60f4c1eaaf61a990392604eacab83406","head":{"label":"CIPop:SNSecurityPR","ref":"SNSecurityPR","sha":"9b826ada60f4c1eaaf61a990392604eacab83406","user":{"login":"CIPop","id":8635911,"avatar_url":"https://avatars.githubusercontent.com/u/8635911?v=3","gravatar_id":"","url":"https://api.github.com/users/CIPop","html_url":"https://github.com/CIPop","followers_url":"https://api.github.com/users/CIPop/followers","following_url":"https://api.github.com/users/CIPop/following{/other_user}","gists_url":"https://api.github.com/users/CIPop/gists{/gist_id}","starred_url":"https://api.github.com/users/CIPop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CIPop/subscriptions","organizations_url":"https://api.github.com/users/CIPop/orgs","repos_url":"https://api.github.com/users/CIPop/repos","events_url":"https://api.github.com/users/CIPop/events{/privacy}","received_events_url":"https://api.github.com/users/CIPop/received_events","type":"User","site_admin":false},"repo":{"id":37789108,"name":"corefx","full_name":"CIPop/corefx","owner":{"login":"CIPop","id":8635911,"avatar_url":"https://avatars.githubusercontent.com/u/8635911?v=3","gravatar_id":"","url":"https://api.github.com/users/CIPop","html_url":"https://github.com/CIPop","followers_url":"https://api.github.com/users/CIPop/followers","following_url":"https://api.github.com/users/CIPop/following{/other_user}","gists_url":"https://api.github.com/users/CIPop/gists{/gist_id}","starred_url":"https://api.github.com/users/CIPop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CIPop/subscriptions","organizations_url":"https://api.github.com/users/CIPop/orgs","repos_url":"https://api.github.com/users/CIPop/repos","events_url":"https://api.github.com/users/CIPop/events{/privacy}","received_events_url":"https://api.github.com/users/CIPop/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/CIPop/corefx","description":"This repo contains the .NET Core foundational libraries, called CoreFX. It includes classes for collections, file systems, console, XML, async and many others.","fork":true,"url":"https://api.github.com/repos/CIPop/corefx","forks_url":"https://api.github.com/repos/CIPop/corefx/forks","keys_url":"https://api.github.com/repos/CIPop/corefx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CIPop/corefx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CIPop/corefx/teams","hooks_url":"https://api.github.com/repos/CIPop/corefx/hooks","issue_events_url":"https://api.github.com/repos/CIPop/corefx/issues/events{/number}","events_url":"https://api.github.com/repos/CIPop/corefx/events","assignees_url":"https://api.github.com/repos/CIPop/corefx/assignees{/user}","branches_url":"https://api.github.com/repos/CIPop/corefx/branches{/branch}","tags_url":"https://api.github.com/repos/CIPop/corefx/tags","blobs_url":"https://api.github.com/repos/CIPop/corefx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CIPop/corefx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CIPop/corefx/git/refs{/sha}","trees_url":"https://api.github.com/repos/CIPop/corefx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CIPop/corefx/statuses/{sha}","languages_url":"https://api.github.com/repos/CIPop/corefx/languages","stargazers_url":"https://api.github.com/repos/CIPop/corefx/stargazers","contributors_url":"https://api.github.com/repos/CIPop/corefx/contributors","subscribers_url":"https://api.github.com/repos/CIPop/corefx/subscribers","subscription_url":"https://api.github.com/repos/CIPop/corefx/subscription","commits_url":"https://api.github.com/repos/CIPop/corefx/commits{/sha}","git_commits_url":"https://api.github.com/repos/CIPop/corefx/git/commits{/sha}","comments_url":"https://api.github.com/repos/CIPop/corefx/comments{/number}","issue_comment_url":"https://api.github.com/repos/CIPop/corefx/issues/comments{/number}","contents_url":"https://api.github.com/repos/CIPop/corefx/contents/{+path}","compare_url":"https://api.github.com/repos/CIPop/corefx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CIPop/corefx/merges","archive_url":"https://api.github.com/repos/CIPop/corefx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CIPop/corefx/downloads","issues_url":"https://api.github.com/repos/CIPop/corefx/issues{/number}","pulls_url":"https://api.github.com/repos/CIPop/corefx/pulls{/number}","milestones_url":"https://api.github.com/repos/CIPop/corefx/milestones{/number}","notifications_url":"https://api.github.com/repos/CIPop/corefx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CIPop/corefx/labels{/name}","releases_url":"https://api.github.com/repos/CIPop/corefx/releases{/id}","created_at":"2015-06-20T23:04:57Z","updated_at":"2015-09-09T08:20:51Z","pushed_at":"2015-09-10T15:39:41Z","git_url":"git://github.com/CIPop/corefx.git","ssh_url":"git@github.com:CIPop/corefx.git","clone_url":"https://github.com/CIPop/corefx.git","svn_url":"https://github.com/CIPop/corefx","homepage":"http://dotnet.github.io/core/","size":32868,"stargazers_count":1,"watchers_count":1,"language":"C#","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":2,"forks":0,"open_issues":2,"watchers":1,"default_branch":"master"}},"base":{"label":"dotnet:master","ref":"master","sha":"f41c09dbb93723d62787e5b3973cd3fc8666fec8","user":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars.githubusercontent.com/u/9141961?v=3","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"repo":{"id":26295345,"name":"corefx","full_name":"dotnet/corefx","owner":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars.githubusercontent.com/u/9141961?v=3","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dotnet/corefx","description":"This repo contains the .NET Core foundational libraries, called CoreFX. It includes classes for collections, file systems, console, XML, async and many others.","fork":false,"url":"https://api.github.com/repos/dotnet/corefx","forks_url":"https://api.github.com/repos/dotnet/corefx/forks","keys_url":"https://api.github.com/repos/dotnet/corefx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dotnet/corefx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dotnet/corefx/teams","hooks_url":"https://api.github.com/repos/dotnet/corefx/hooks","issue_events_url":"https://api.github.com/repos/dotnet/corefx/issues/events{/number}","events_url":"https://api.github.com/repos/dotnet/corefx/events","assignees_url":"https://api.github.com/repos/dotnet/corefx/assignees{/user}","branches_url":"https://api.github.com/repos/dotnet/corefx/branches{/branch}","tags_url":"https://api.github.com/repos/dotnet/corefx/tags","blobs_url":"https://api.github.com/repos/dotnet/corefx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dotnet/corefx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dotnet/corefx/git/refs{/sha}","trees_url":"https://api.github.com/repos/dotnet/corefx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dotnet/corefx/statuses/{sha}","languages_url":"https://api.github.com/repos/dotnet/corefx/languages","stargazers_url":"https://api.github.com/repos/dotnet/corefx/stargazers","contributors_url":"https://api.github.com/repos/dotnet/corefx/contributors","subscribers_url":"https://api.github.com/repos/dotnet/corefx/subscribers","subscription_url":"https://api.github.com/repos/dotnet/corefx/subscription","commits_url":"https://api.github.com/repos/dotnet/corefx/commits{/sha}","git_commits_url":"https://api.github.com/repos/dotnet/corefx/git/commits{/sha}","comments_url":"https://api.github.com/repos/dotnet/corefx/comments{/number}","issue_comment_url":"https://api.github.com/repos/dotnet/corefx/issues/comments{/number}","contents_url":"https://api.github.com/repos/dotnet/corefx/contents/{+path}","compare_url":"https://api.github.com/repos/dotnet/corefx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dotnet/corefx/merges","archive_url":"https://api.github.com/repos/dotnet/corefx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dotnet/corefx/downloads","issues_url":"https://api.github.com/repos/dotnet/corefx/issues{/number}","pulls_url":"https://api.github.com/repos/dotnet/corefx/pulls{/number}","milestones_url":"https://api.github.com/repos/dotnet/corefx/milestones{/number}","notifications_url":"https://api.github.com/repos/dotnet/corefx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dotnet/corefx/labels{/name}","releases_url":"https://api.github.com/repos/dotnet/corefx/releases{/id}","created_at":"2014-11-06T23:42:48Z","updated_at":"2015-09-10T15:59:08Z","pushed_at":"2015-09-10T22:20:18Z","git_url":"git://github.com/dotnet/corefx.git","ssh_url":"git@github.com:dotnet/corefx.git","clone_url":"https://github.com/dotnet/corefx.git","svn_url":"https://github.com/dotnet/corefx","homepage":"http://dotnet.github.io/core/","size":66745,"stargazers_count":8313,"watchers_count":8313,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1775,"mirror_url":null,"open_issues_count":589,"forks":1775,"open_issues":589,"watchers":8313,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/3113"},"html":{"href":"https://github.com/dotnet/corefx/pull/3113"},"issue":{"href":"https://api.github.com/repos/dotnet/corefx/issues/3113"},"comments":{"href":"https://api.github.com/repos/dotnet/corefx/issues/3113/comments"},"review_comments":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/3113/comments"},"review_comment":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/3113/commits"},"statuses":{"href":"https://api.github.com/repos/dotnet/corefx/statuses/9b826ada60f4c1eaaf61a990392604eacab83406"}}}}