{"action":"created","comment":{"url":"https://api.github.com/repos/Microsoft/vstest-docs/pulls/comments/192940741","pull_request_review_id":125813291,"id":192940741,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5Mjk0MDc0MQ==","diff_hunk":"@@ -1,49 +1,132 @@\n-# 0017 Guidelines for setting the FullyQualifiedName on TestCase\n+# 0017 Guidelines for setting the `FullyQualifiedName` on TestCase\n \n ## Summary\n-This note clarifies the guidelines that test adapters should consider when setting the FullyQualifiedName on test cases before returning them from the discovery process.\n+This note standardizes the form of `FullyQualifiedName` that test adapters should use when setting the `FullyQualifiedName` on test cases before returning them from the discovery process.\n \n ## Overview\n-There are a broad variety of choices that current Test Adapter implementers have made when setting the FullyQualifiedName on TestCase objects created during test discovery. This note lays out some basic guidelines to make the usage of FullyQualifiedName more useful across adapters. These guidelines are focused on languages that support namespaces, classes and methods for structuring test cases (e.g. C# & VB). Other languages may not fit these guidelines.\n+There are a broad variety of choices that current Test Adapter implementers have made when setting the `FullyQualifiedName` on TestCase objects created during test discovery. By standardizing the format of `FullyQualifiedName`, components in the vstest infrastructure can be implemented more reliably. These guidelines are focused on unit tests written in managed languages (e.g. C# & VB). Other languages may derive less benefit from adopting these guidelines.\n \n-## Usage of FullyQualifiedName\n-The Test Platform uses FullyQualifiedName as a string moniker to name tests during discovery. Visual Studio may filter tests by FullyQualifiedName in order to more quickly filter and run specific tests. The guidelines below clarify the usage of FullyQualifiedName so that these optimized test execution scenarios can be realized.\n+## Usage of `FullyQualifiedName`\n+The Test Platform uses `FullyQualifiedName` as a string moniker to name tests during discovery. Visual Studio may filter tests by `FullyQualifiedName` in order to more quickly filter and run specific tests. Visual Studio may also derive type information from the `FullyQualifiedName`. The guidelines below clarify the usage of `FullyQualifiedName` so that these optimized test execution scenarios can be realized.\n \n-## Guidelines\n-1. **FullyQualifiedName should be unique across your test set.** Internally, TestCase objects are tracked by a unique ID (GUID) which can either be set by the Test Adapter implementor, or automatically generated otherwise. The FullyQualifiedName should be unique if possible, but it's not a requirement.\n-1. **FullyQualifiedName should be deterministic** FullyQualifiedName should have the same value for the same test across different discovery sessions. This means that including random data, time-dependent data or environment specific data in the FullyQualifiedName should be avoided.\n-1. **FullyQualifiedName is expected to be a reference to the method that implements the test** The Test Platform is expecting the FullyQualifiedName to refer to a particular test case. If there are multiple tests that are instantiated from a test method (data-driven tests for instance), then the FullyQualifiedName should distinguish these using parentheses to represent data parameters and angle brackets to represent type parameters. See below.\n+## Background\n \n-## Recommended Form\n-FullyQualifiedName is expected to be a reference to the TestCase method that implements the test (or tests). The FullyQualifiedName should be unique to a particular TestCase instance, if possible.\n+`FullyQualifiedName` (also referenced as FQN) is an identifier supplied by each VS test adapter for each test during discovery. That same FQN value is supplied back to the adapter (along with other TestCase properties) when it's time to execute the tests. One exception to this case is the \"Run All\" operation which discovers all tests and executes them in one operation. There has historically been no standard for this value and each adapter has implemented its own strategy for creating FQNs.\n \n-The recommended forms of FullyQualifiedName are described by the following examples:\n+There is a need in VS for each test to have a unique and deterministic method of identifying tests irrespective of the underlying test framework. A standardized FQN opens the path for a full and complete implementation of features like source-based discovery, dynamically fetching source information and UI elements like the hierarchy view in the Test Explorer window.\n \n-    Namespace.Namespace.Class.Method\n-    Namespace.Namespace.Class.Method()\n-    Namespace.Namespace.Class<Int32>.Method()\n-    Namespace.Namespace.Class<Int32>.Method<String>()\n-    Namespace.Namespace.Class+InnerClass.Method\n-    Namespace.Namespace.Class.Method(x: 1, msg: \"string\")\n-    Namespace.Namespace.Class.Method(1, \"string\")\n-    Namespace.Namespace.Class(init: \"Value\").Method(param: 23)\n-    Namespace.Namespace.Class<String>(\"Value\").Method(23)\n+For example, in the case of source-based test discovery, we need to be able to identify tests from source code. Those same tests also need to be matched to tests discovered by reflection. Without unique and deterministic FQN identifiers, we don't have a reliable way to match corresponding tests. In other cases, such as the hierarchy view or dynamic source location fetching, we need to be able to reliably connect the source representation of a test with the type & method (via reflection) of a test. With this standard, FQN enables us to make those connections. NOTE: Our intent is that the test adapters take responsibility for source-based test discovery. Once this transition is complete, the need to keep the FQNs in sync between discovery methods will be reduced to only making sure the types and methods match up.\n \n-## Normalized Form\n-When referencing test cases by FullyQualifiedName, the test platform recognizes a normalized form of the FullyQualifiedName. This normalized form is the FullyQualifiedName with segments in parentheses and segments in angle brackets removed. The normalized form will not be unique among TestCases.\n+## Requirements of `FullyQualifiedName` and TestCase `ID`\n \n-| Fully Qualified Name | Normalized Fully Qualified Name |\n-|---|---|\n-| `Namespace.Namespace.Class.Method()` | `Namespace.Namespace.Class.Method` |\n-| `Namespace.Namespace.Class<Int32>.Method()` | `Namespace.Namespace.Class.Method` |\n-| `Namespace.Namespace.Class<Int32>.Method<String>()` | `Namespace.Namespace.Class.Method` |\n-| `Namespace.Namespace.Class+InnerClass.Method` | `Namespace.Namespace.Class+InnerClass.Method` |\n-| `Namespace.Namespace.Class.Method(x: 1, msg: \"string\")` | `Namespace.Namespace.Class.Method` |\n-| `Namespace.Namespace.Class.Method(1, \"string\")` | `Namespace.Namespace.Class.Method` |\n-| `Namespace.Namespace.Class(init: \"Value\").Method(param: 23)` | `Namespace.Namespace.Class.Method` |\n-| `Namespace.Namespace.Class<String>(\"Value\").Method(23)` | `Namespace.Namespace.Class.Method` |\n+* `FullyQualifiedName` should uniquely identify a method that represents test cases (with the optional application of a dataset). There may be duplicate FQNs within a project due to some methods being associated with multiple test cases. Note that it is possible for multiple assemblies, or multiple test executors to use the same FQNs. When comparing FQNs within a Visual Studio session, `Source`, `FQN`, and `ExecutorURI` must be combined to guarantee uniqueness.\n+* Each TestCase has an `ID` field that takes the form of a GUID. In the past, this field has been optional. It will now become required. The required `ID` field must be unique for a given test assembly. This `ID` field must also be deterministic, in the sense that a test with the same class, method and method arguments should have the same id. We envision generating this `ID` by hashing the test's class, method, method signature and method arguments into the GUID. \n+* `FullyQualifiedName` should be immutable in that the test store keeps the exact value that is provided by the test adapter and supplies it back to the test adapter for test execution. The test adapter should be able to rely on receiving the same FQN for execution that it supplied when performing discovery.\n+* `FullyQualifiedName` should reference the semantic location of the method that defines the test. This means that the `FullyQualifiedName` references the method on the type where the test is discovered. In some situations, this could be different from the type where the method is defined. See later in this document for a more detailed discussion.\n \n+## `FullyQualifiedName` specification\n \n-The normalized form allows the test platform to reference groups of tests in a more general form without having to interpret the logic that the test adapter uses when constructing the fully qualified name. \n+We are standardizing the `FullyQualifiedName` property on a TestCase in the following way. The FQN will be parsed as a URI starting with the scheme value of `fqn`. \n+\n+**Method Form**\n+\n+    fqn://clr/m/{type}/{method}","path":"RFCs/0017-TestCase-FullyQualifiedName.md","position":67,"original_position":67,"commit_id":"3439086a912d8dcae8292f9feec0aba83b1c24d1","original_commit_id":"3439086a912d8dcae8292f9feec0aba83b1c24d1","user":{"login":"abhishkk","id":32157767,"node_id":"MDQ6VXNlcjMyMTU3NzY3","avatar_url":"https://avatars2.githubusercontent.com/u/32157767?v=4","gravatar_id":"","url":"https://api.github.com/users/abhishkk","html_url":"https://github.com/abhishkk","followers_url":"https://api.github.com/users/abhishkk/followers","following_url":"https://api.github.com/users/abhishkk/following{/other_user}","gists_url":"https://api.github.com/users/abhishkk/gists{/gist_id}","starred_url":"https://api.github.com/users/abhishkk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abhishkk/subscriptions","organizations_url":"https://api.github.com/users/abhishkk/orgs","repos_url":"https://api.github.com/users/abhishkk/repos","events_url":"https://api.github.com/users/abhishkk/events{/privacy}","received_events_url":"https://api.github.com/users/abhishkk/received_events","type":"User","site_admin":false},"body":"There is a Test Plan/Test Suite scenario in vsts which requires [association](https://docs.microsoft.com/en-us/vsts/test/associate-automated-test-with-test-case?view=vsts) of test method. Associations stores FQN.\r\n\r\n1. Currently we support association for mstest v1 adapter only. Changing the FQN for mstest v1 adapter will break all these existing TestPlan/TestSuite scenarios.\r\n2. In addition, there is a huge ask from community to enable association for all adapters (including mstest v2, XUnit, NUnit). Once association is enabled for mstest v2 adapter, all the existing TestPlan scenarios which points to mstestv1 will not be able to migrate to mstest v2 (if this FQN change happens in mstest v2).","created_at":"2018-06-05T04:08:48Z","updated_at":"2018-06-05T04:37:42Z","html_url":"https://github.com/Microsoft/vstest-docs/pull/133#discussion_r192940741","pull_request_url":"https://api.github.com/repos/Microsoft/vstest-docs/pulls/133","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/Microsoft/vstest-docs/pulls/comments/192940741"},"html":{"href":"https://github.com/Microsoft/vstest-docs/pull/133#discussion_r192940741"},"pull_request":{"href":"https://api.github.com/repos/Microsoft/vstest-docs/pulls/133"}}},"pull_request":{"url":"https://api.github.com/repos/Microsoft/vstest-docs/pulls/133","id":187033727,"node_id":"MDExOlB1bGxSZXF1ZXN0MTg3MDMzNzI3","html_url":"https://github.com/Microsoft/vstest-docs/pull/133","diff_url":"https://github.com/Microsoft/vstest-docs/pull/133.diff","patch_url":"https://github.com/Microsoft/vstest-docs/pull/133.patch","issue_url":"https://api.github.com/repos/Microsoft/vstest-docs/issues/133","number":133,"state":"open","locked":false,"title":"Update standard spec for FullyQualifiedName","user":{"login":"peterwald","id":5578,"node_id":"MDQ6VXNlcjU1Nzg=","avatar_url":"https://avatars3.githubusercontent.com/u/5578?v=4","gravatar_id":"","url":"https://api.github.com/users/peterwald","html_url":"https://github.com/peterwald","followers_url":"https://api.github.com/users/peterwald/followers","following_url":"https://api.github.com/users/peterwald/following{/other_user}","gists_url":"https://api.github.com/users/peterwald/gists{/gist_id}","starred_url":"https://api.github.com/users/peterwald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peterwald/subscriptions","organizations_url":"https://api.github.com/users/peterwald/orgs","repos_url":"https://api.github.com/users/peterwald/repos","events_url":"https://api.github.com/users/peterwald/events{/privacy}","received_events_url":"https://api.github.com/users/peterwald/received_events","type":"User","site_admin":false},"body":"cc: @cltshivash @ManishJayaswal @pvlakshm ","created_at":"2018-05-09T20:39:25Z","updated_at":"2018-06-05T04:37:42Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d71ca711b90b601298e1e394e7f5291209feb1ca","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/Microsoft/vstest-docs/pulls/133/commits","review_comments_url":"https://api.github.com/repos/Microsoft/vstest-docs/pulls/133/comments","review_comment_url":"https://api.github.com/repos/Microsoft/vstest-docs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Microsoft/vstest-docs/issues/133/comments","statuses_url":"https://api.github.com/repos/Microsoft/vstest-docs/statuses/3439086a912d8dcae8292f9feec0aba83b1c24d1","head":{"label":"peterwald:stdfqn","ref":"stdfqn","sha":"3439086a912d8dcae8292f9feec0aba83b1c24d1","user":{"login":"peterwald","id":5578,"node_id":"MDQ6VXNlcjU1Nzg=","avatar_url":"https://avatars3.githubusercontent.com/u/5578?v=4","gravatar_id":"","url":"https://api.github.com/users/peterwald","html_url":"https://github.com/peterwald","followers_url":"https://api.github.com/users/peterwald/followers","following_url":"https://api.github.com/users/peterwald/following{/other_user}","gists_url":"https://api.github.com/users/peterwald/gists{/gist_id}","starred_url":"https://api.github.com/users/peterwald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peterwald/subscriptions","organizations_url":"https://api.github.com/users/peterwald/orgs","repos_url":"https://api.github.com/users/peterwald/repos","events_url":"https://api.github.com/users/peterwald/events{/privacy}","received_events_url":"https://api.github.com/users/peterwald/received_events","type":"User","site_admin":false},"repo":{"id":107304990,"node_id":"MDEwOlJlcG9zaXRvcnkxMDczMDQ5OTA=","name":"vstest-docs","full_name":"peterwald/vstest-docs","owner":{"login":"peterwald","id":5578,"node_id":"MDQ6VXNlcjU1Nzg=","avatar_url":"https://avatars3.githubusercontent.com/u/5578?v=4","gravatar_id":"","url":"https://api.github.com/users/peterwald","html_url":"https://github.com/peterwald","followers_url":"https://api.github.com/users/peterwald/followers","following_url":"https://api.github.com/users/peterwald/following{/other_user}","gists_url":"https://api.github.com/users/peterwald/gists{/gist_id}","starred_url":"https://api.github.com/users/peterwald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peterwald/subscriptions","organizations_url":"https://api.github.com/users/peterwald/orgs","repos_url":"https://api.github.com/users/peterwald/repos","events_url":"https://api.github.com/users/peterwald/events{/privacy}","received_events_url":"https://api.github.com/users/peterwald/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/peterwald/vstest-docs","description":"Documentation for the Visual Studio Test Platform. ","fork":true,"url":"https://api.github.com/repos/peterwald/vstest-docs","forks_url":"https://api.github.com/repos/peterwald/vstest-docs/forks","keys_url":"https://api.github.com/repos/peterwald/vstest-docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/peterwald/vstest-docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/peterwald/vstest-docs/teams","hooks_url":"https://api.github.com/repos/peterwald/vstest-docs/hooks","issue_events_url":"https://api.github.com/repos/peterwald/vstest-docs/issues/events{/number}","events_url":"https://api.github.com/repos/peterwald/vstest-docs/events","assignees_url":"https://api.github.com/repos/peterwald/vstest-docs/assignees{/user}","branches_url":"https://api.github.com/repos/peterwald/vstest-docs/branches{/branch}","tags_url":"https://api.github.com/repos/peterwald/vstest-docs/tags","blobs_url":"https://api.github.com/repos/peterwald/vstest-docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/peterwald/vstest-docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/peterwald/vstest-docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/peterwald/vstest-docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/peterwald/vstest-docs/statuses/{sha}","languages_url":"https://api.github.com/repos/peterwald/vstest-docs/languages","stargazers_url":"https://api.github.com/repos/peterwald/vstest-docs/stargazers","contributors_url":"https://api.github.com/repos/peterwald/vstest-docs/contributors","subscribers_url":"https://api.github.com/repos/peterwald/vstest-docs/subscribers","subscription_url":"https://api.github.com/repos/peterwald/vstest-docs/subscription","commits_url":"https://api.github.com/repos/peterwald/vstest-docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/peterwald/vstest-docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/peterwald/vstest-docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/peterwald/vstest-docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/peterwald/vstest-docs/contents/{+path}","compare_url":"https://api.github.com/repos/peterwald/vstest-docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/peterwald/vstest-docs/merges","archive_url":"https://api.github.com/repos/peterwald/vstest-docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/peterwald/vstest-docs/downloads","issues_url":"https://api.github.com/repos/peterwald/vstest-docs/issues{/number}","pulls_url":"https://api.github.com/repos/peterwald/vstest-docs/pulls{/number}","milestones_url":"https://api.github.com/repos/peterwald/vstest-docs/milestones{/number}","notifications_url":"https://api.github.com/repos/peterwald/vstest-docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/peterwald/vstest-docs/labels{/name}","releases_url":"https://api.github.com/repos/peterwald/vstest-docs/releases{/id}","deployments_url":"https://api.github.com/repos/peterwald/vstest-docs/deployments","created_at":"2017-10-17T17:59:05Z","updated_at":"2017-10-13T16:54:11Z","pushed_at":"2018-05-29T16:23:12Z","git_url":"git://github.com/peterwald/vstest-docs.git","ssh_url":"git@github.com:peterwald/vstest-docs.git","clone_url":"https://github.com/peterwald/vstest-docs.git","svn_url":"https://github.com/peterwald/vstest-docs","homepage":"","size":1241,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"Microsoft:master","ref":"master","sha":"c038f0fe7ac055185d538dce2617703a0a516adf","user":{"login":"Microsoft","id":6154722,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYxNTQ3MjI=","avatar_url":"https://avatars2.githubusercontent.com/u/6154722?v=4","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"repo":{"id":62620160,"node_id":"MDEwOlJlcG9zaXRvcnk2MjYyMDE2MA==","name":"vstest-docs","full_name":"Microsoft/vstest-docs","owner":{"login":"Microsoft","id":6154722,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYxNTQ3MjI=","avatar_url":"https://avatars2.githubusercontent.com/u/6154722?v=4","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Microsoft/vstest-docs","description":"Documentation for the Visual Studio Test Platform. ","fork":false,"url":"https://api.github.com/repos/Microsoft/vstest-docs","forks_url":"https://api.github.com/repos/Microsoft/vstest-docs/forks","keys_url":"https://api.github.com/repos/Microsoft/vstest-docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Microsoft/vstest-docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Microsoft/vstest-docs/teams","hooks_url":"https://api.github.com/repos/Microsoft/vstest-docs/hooks","issue_events_url":"https://api.github.com/repos/Microsoft/vstest-docs/issues/events{/number}","events_url":"https://api.github.com/repos/Microsoft/vstest-docs/events","assignees_url":"https://api.github.com/repos/Microsoft/vstest-docs/assignees{/user}","branches_url":"https://api.github.com/repos/Microsoft/vstest-docs/branches{/branch}","tags_url":"https://api.github.com/repos/Microsoft/vstest-docs/tags","blobs_url":"https://api.github.com/repos/Microsoft/vstest-docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Microsoft/vstest-docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Microsoft/vstest-docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/Microsoft/vstest-docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Microsoft/vstest-docs/statuses/{sha}","languages_url":"https://api.github.com/repos/Microsoft/vstest-docs/languages","stargazers_url":"https://api.github.com/repos/Microsoft/vstest-docs/stargazers","contributors_url":"https://api.github.com/repos/Microsoft/vstest-docs/contributors","subscribers_url":"https://api.github.com/repos/Microsoft/vstest-docs/subscribers","subscription_url":"https://api.github.com/repos/Microsoft/vstest-docs/subscription","commits_url":"https://api.github.com/repos/Microsoft/vstest-docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/Microsoft/vstest-docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/Microsoft/vstest-docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/Microsoft/vstest-docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/Microsoft/vstest-docs/contents/{+path}","compare_url":"https://api.github.com/repos/Microsoft/vstest-docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Microsoft/vstest-docs/merges","archive_url":"https://api.github.com/repos/Microsoft/vstest-docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Microsoft/vstest-docs/downloads","issues_url":"https://api.github.com/repos/Microsoft/vstest-docs/issues{/number}","pulls_url":"https://api.github.com/repos/Microsoft/vstest-docs/pulls{/number}","milestones_url":"https://api.github.com/repos/Microsoft/vstest-docs/milestones{/number}","notifications_url":"https://api.github.com/repos/Microsoft/vstest-docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Microsoft/vstest-docs/labels{/name}","releases_url":"https://api.github.com/repos/Microsoft/vstest-docs/releases{/id}","deployments_url":"https://api.github.com/repos/Microsoft/vstest-docs/deployments","created_at":"2016-07-05T08:40:43Z","updated_at":"2018-06-04T04:33:40Z","pushed_at":"2018-06-04T04:39:19Z","git_url":"git://github.com/Microsoft/vstest-docs.git","ssh_url":"git@github.com:Microsoft/vstest-docs.git","clone_url":"https://github.com/Microsoft/vstest-docs.git","svn_url":"https://github.com/Microsoft/vstest-docs","homepage":"","size":1255,"stargazers_count":77,"watchers_count":77,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":45,"mirror_url":null,"archived":false,"open_issues_count":14,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":45,"open_issues":14,"watchers":77,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Microsoft/vstest-docs/pulls/133"},"html":{"href":"https://github.com/Microsoft/vstest-docs/pull/133"},"issue":{"href":"https://api.github.com/repos/Microsoft/vstest-docs/issues/133"},"comments":{"href":"https://api.github.com/repos/Microsoft/vstest-docs/issues/133/comments"},"review_comments":{"href":"https://api.github.com/repos/Microsoft/vstest-docs/pulls/133/comments"},"review_comment":{"href":"https://api.github.com/repos/Microsoft/vstest-docs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Microsoft/vstest-docs/pulls/133/commits"},"statuses":{"href":"https://api.github.com/repos/Microsoft/vstest-docs/statuses/3439086a912d8dcae8292f9feec0aba83b1c24d1"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"abhishkk"}}