{"action":"created","comment":{"url":"https://api.github.com/repos/aspnet/Docs/pulls/comments/43978198","id":43978198,"diff_hunk":"@@ -1,8 +1,315 @@\n-.. include:: /../common/stub-topic.txt\n+Bundling and Minification\n+=========================\n+\n+By `Erik Reitan`_ \n+\n+Bundling and minification are two techniques you can use in ASP.NET 5 to improve performance. Bundling makes it easy to combine or bundle multiple files into a single file. Minification performs a variety of different code optimizations to scripts and CSS, which results in smaller file sizes.\n+\n+This article explains and shows how to use the bundling and minification features included with the ASP.NET 5 Web Application template in `Visual Studio 2015 <http://go.microsoft.com/fwlink/?LinkId=517106>`_. \n+\n+Overview\n+--------\n+Because bundling combines multiple files into a single file, it reduces the number of requests to the server that is required to retrieve and display a web asset, such as a web page. You can create CSS, JavaScript and other bundles. Fewer files, means fewer HTTP requests from your browser to the server or from the service providing your application. This results in improved first page load performance.\n+\n+Minification performs a variety of different code optimizations to reduce the size of requested assets (such as CSS, image, JavaScript files). Common results of minification include removing unnecessary white space and comments, and shortening variable names to one character. \n+\n+Consider the following JavaScript function:\n+\n+.. code-block:: javascript\n+\n+\tAddAltToImg = function (imageTagAndImageID, imageContext) {\n+\t\t///<signature>\n+\t\t///<summary> Adds an alt tab to the image\n+\t\t// </summary>\n+\t\t//<param name=\"imgElement\" type=\"String\">The image selector.</param>\n+\t\t//<param name=\"ContextForImage\" type=\"String\">The image context.</param>\n+\t\t///</signature>\n+\t\tvar imageElement = $(imageTagAndImageID, imageContext);\n+\t\timageElement.attr('alt', imageElement.attr('id').replace(/ID/, ''));\n+\t}\n+\n+After minification, the function is reduced to the following:\n+\n+.. code-block:: javascript\n+\n+\tAddAltToImg = function (n, t) { var i = $(n, t); i.attr(\"alt\", i.attr(\"id\").replace(/ID/, \"\")) }\n+\t\n+In addition to removing the comments and unnecessary whitespace, the following parameters and variable names were renamed (shortened) as follows:\n+\n+==================  =======  \n+Original            Renamed      \n+==================  =======  \n+imageTagAndImageID  n  \n+imageContext        t  \n+imageElement        i   \n+==================  =======  \n+\n+ASP.NET Web Application Template \n+--------------------------------\n+The ASP.NET 5 Web Application project template is used to help you get started designing and coding a new Web application. It contains default functionality that demonstrates many aspects of ASP.NET. The template also includes the Node Package Manager (`npm <https://www.npmjs.com/>`_) and gulp by default.\n+\n+Gulp\n+----\n+Gulp is a JavaScript-based streaming build toolkit for client-side code. It is commonly used to stream client-side files through a series of processes when a specific Visual Studio event occurs. The advantages of using gulp include automating common development processes, simplifying repetitive tasks, and speeding up overall development. For instance, you can use gulp to automate your minification processes or clean your development environment before a new build.\n+\n+Visual Studio 2015 automatically installs gulp and the npm. Gulp functionality is included within the ASP.NET 5 Web Application template. When you create a new web project using this template, Visual Studio includes the `Gulp.js NuGet package <https://github.com/koistya/nuget-gulp>`_, the *gulpfile.js* file, and a set of gulp dependencies. The NuGet package contains all that is needed to install, run, update, and uninstall gulp for your Visual Studio project. The *gulpfile.js* file contains JavaScript that defines a set of gulp tasks that you can run using the **Task Runner Explorer** in Visual Studio. The dependencies for the project are declared in the package.json file:\n+\n+.. code-block:: javascript\n+\n+\t{\n+\t  \"name\": \"ASP.NET\",\n+\t  \"version\": \"0.0.0\",\n+\t  \"devDependencies\": {\n+\t\t\"gulp\": \"3.9.0\",\n+\t\t\"gulp-concat\": \"2.5.2\",\n+\t\t\"gulp-cssmin\": \"0.1.7\",\n+\t\t\"gulp-uglify\": \"1.2.0\",\n+\t\t\"rimraf\": \"2.2.8\"\n+\t  }\n+\t}\n+\n+In **Solution Explorer** you can find the gulp packages in **Dependencies** > **NPM**. \n+\n+Gulp Default Tasks in Visual Studio\n+-----------------------------------\n+A default set of gulp tasks are defined in *gulpfile.js*. These tasks allow you to clean and minimize CSS and JavaScript files. The following JavaScript, from the first half of *gulpfile.js*, includes gulp modules and also specify file paths:\n+\n+.. code-block:: javascript\n+\n+\tvar gulp = require(\"gulp\"),\n+\t\trimraf = require(\"rimraf\"),\n+\t\tconcat = require(\"gulp-concat\"),\n+\t\tcssmin = require(\"gulp-cssmin\"),\n+\t\tuglify = require(\"gulp-uglify\"),\n+\t\tproject = require(\"./project.json\");\n+\n+\tvar paths = {\n+\t\twebroot: \"./\" + project.webroot + \"/\"\n+\t};\n+\n+\tpaths.js = paths.webroot + \"js/**/*.js\";\n+\tpaths.minJs = paths.webroot + \"js/**/*.min.js\";\n+\tpaths.css = paths.webroot + \"css/**/*.css\";\n+\tpaths.minCss = paths.webroot + \"css/**/*.min.css\";\n+\tpaths.concatJsDest = paths.webroot + \"js/site.min.js\";\n+\tpaths.concatCssDest = paths.webroot + \"css/site.min.css\";\n+\n+The above code specifies which Node modules are required. The ``require`` function registers each module so that the related tasks can be run. Then, each module is assigned to a variable. These modules can be specified by their name or their path. You’ll see that the modules named ``gulp``, ``rimraf``, ``gulp-concat``, ``gulp-cssmin``, and ``gulp-uglify`` are specified using their name. The variable project is assigned based on the module at the path *./project.json*. Additionally, a series of paths are created so that the locations of CSS and JavaScript files can be referenced. The following table provides a list of modules and descriptions included in *gulpfile.js*.\n+\n+=============  ===============================================================================================================================  \n+Module Name\t   Description    \n+=============  ===============================================================================================================================  \n+gulp\t       The gulp streaming build system. For more information, see gulp.\n+rimraf\t       A Node deletion module. For more information, see rimraf.\n+gulp-concat\t   A module that will concatenate files based on your operating systems newline character. For more information, see gulp-concat.\n+gulp-cssmin\t   A module that will minify CSS files. For more information see gulp-cssmin.\n+gulp-uglify\t   A module that minifies files using the UglifyJS toolkit. For more information, see gulp-uglify. \n+=============  =============================================================================================================================== \n+\n+Once modules are registered from *gulpfile.js*, the tasks are specified. Visual Studio 2015 registers six tasks based on the following code contained in *gulpfile.js*:\n+\n+.. code-block:: javascript\n+\t:emphasize-lines: 1,5,9,11,18,25\n+\n+\tgulp.task(\"clean:js\", function (cb) {\n+\t\trimraf(paths.concatJsDest, cb);\n+\t});\n+\n+\tgulp.task(\"clean:css\", function (cb) {\n+\t\trimraf(paths.concatCssDest, cb);\n+\t});\n+\n+\tgulp.task(\"clean\", [\"clean:js\", \"clean:css\"]);\n+\n+\tgulp.task(\"min:js\", function () {\n+\t\tgulp.src([paths.js, \"!\" + paths.minJs], { base: \".\" })\n+\t\t\t.pipe(concat(paths.concatJsDest))\n+\t\t\t.pipe(uglify())\n+\t\t\t.pipe(gulp.dest(\".\"));\n+\t});\n+\n+\tgulp.task(\"min:css\", function () {\n+\t\tgulp.src([paths.css, \"!\" + paths.minCss])\n+\t\t\t.pipe(concat(paths.concatCssDest))\n+\t\t\t.pipe(cssmin())\n+\t\t\t.pipe(gulp.dest(\".\"));\n+\t});\n+\n+\tgulp.task(\"min\", [\"min:js\", \"min:css\"]);\n+\n+The following table gives an explanation of the tasks specified in the code above:\n+\n+=============  ===============================================================================================================================  \n+Task Name\t   Description    \n+=============  ===============================================================================================================================  \n+clean:js\t   A task that uses the rimraf Node deletion module to remove unneeded text from *.js* files.\n+clean:css\t   A task that uses the rimraf Node deletion module to remove unneeded text from *.css* files.\n+clean\t       A task that calls both the ``clean:js`` and ``clean:css`` tasks.\n+min:js\t       A task that matches files based on the specified JavaScript file path, concatenates the files into a destination location, removes unneeded characters using the ``uglify()`` function, and re-writes the file to the destination location.\n+min:css\t       A task that matches files based on the specified CSS file path, concatenates the files into a destination location, minimizes the CSS file using the ``cssmin()`` function, and re-writes the file to the destination location.\n+min\t           A task that calls both the ``min:js`` and ``min:css`` tasks.\n+=============  =============================================================================================================================== \n+\n+Running Default Tasks\n+---------------------\n+\n+If you haven’t already created a new Web app, create a new ASP.NET Web Application project in Visual Studio 2015.\n+\n+1.\tSelect **File** > **New** > **Project** from the menu bar. The **New Project** dialog box is displayed.\n+\n+\t.. image:: bundling-and-minification/_static/01-NewProjectDB.png\n+\t\n+2.\tSelect the **ASP.NET Web Application** template, choose a project name and click **OK**.\n+3.\tIn the **New ASP.NET Project** dialog box select the **Web Application** template from the **ASP.NET 5 Templates** and click **OK**.\n+4.\tIn **Solution Explorer**, right-click *gulpfile.js* and select **Task Runner Explorer**. \n+\n+\t.. image:: bundling-and-minification/_static/02-SolutionExplorer-TaskRunnerExplorer.png\n+\t\n+\t**Task Runner Explorer** shows the list of gulp tasks. In the default ASP.NET 5 Web Application template in Visual Studio 2015 there are six tasks included from *gulpfile.js*.\n+\n+\t.. image:: bundling-and-minification/_static/03-TaskRunnerExplorer.png \n+\n+5.\tUnderneath **Tasks** in **Task Runner Explorer** right-click **clean** and select **Run** from the pop-up menu.\n+\n+\t.. image:: bundling-and-minification/_static/04-TaskRunner-clean.png \n+\n+**Task Runner Explorer** will create a new tab named **clean** and execute the related clean task as it is defined in *gulpfile.js*.\n+\n+6.\tNext, right-click the **clean** task, then select **Bindings** > **Before Build**.\n+\n+ \t.. image:: bundling-and-minification/_static/05-TaskRunner-BeforeBuild.png \n+\n+\tThe **Before Build** binding option will allow the clean task to be automatically run before each time you build your project.\n+\n+Defining and Running a New Task\n+-------------------------------\n+\n+To define a new gulp task, you must modify *gulpfile.js*.\n+ \n+1.\tAdd the following JavaScript to the end of *gulpfile.js*:\n+\n+.. code-block:: javascript\n+\n+\tgulp.task(\"first\", function () {\n+\t\tconsole.log('first task! <-----');\n+\t});\n+\t\n+\tThis task is named ``first`` and simply displays a string. \n+2.\tSave *gulpfile.js*.\n+3.\tIn **Solution Explorer**, right-click *gulpfile.js** and select *Task Runner Explorer*. \n+4.\tIn **Task Runner Explorer**, right-click **first** and select **Run**.\n+\n+\t.. image:: bundling-and-minification/_static/06-TaskRunner-First.png \n+\n+\tYou’ll see that the output text is displayed. If you are interested in examples based on a common scenario, see Gulp Recipes.\n+\n+Defining and Running Tasks in a Series\n+--------------------------------------\n+When you run multiple tasks, the tasks run concurrently by default. However, if you need to run tasks in a specific order, you must specify when each task is complete, as well as which tasks depend on the completion of another task. \n+\n+1.\tTo define a series of tasks to run in order, replace the ``first`` task that you added above in *gulpfile.js* with the following:\n+\n+.. code-block:: javascript\n+\n+\tgulp.task(\"series:first\", function () {\n+\t\tconsole.log('first task! <-----');\n+\t});\n+\tgulp.task(\"series:second\", [\"series:first\"], function () {\n+\t\tconsole.log('second task! <-----');\n+\t});\n+\tgulp.task(\"series\", [\"series:first\", \"series:second\"], function () {});\n+\n+\tYou now have three tasks: ``series:first``, ``series:second``, and ``series``. The ``series:second`` task includes a second parameter that specifies an array of tasks that must be run and completed before the ``series:second`` task will run.  As specified in the code above, only the ``series:first`` task must be completed before the ``series:second`` task will run.\t\n+\n+2.\tSave *gulpfile.js*.\n+3.\tIn **Solution Explorer**, right-click *gulpfile.js* and select **Task Runner Explorer** if it isn’t already open. \n+4.\tIn **Task Runner Explorer**, right-click **series** and select **Run**.\n+\n+\t.. image:: bundling-and-minification/_static/07-TaskRunner-Series.png \n+ \n+IntelliSense\n+------------\n+IntelliSense, which provide coding details while you code, helps you write code faster and with fewer errors. Because the gulp tasks are created using JavaScript, you can use IntelliSense to help code. As you work with JavaScript, IntelliSense lists the objects, functions, properties, and parameters that are available based on your current context. You can select a coding option from the pop-up list provided by IntelliSense to complete the code.\n+\n+\t.. image:: bundling-and-minification/_static/08-IntelliSense.png \n+\n+\tFor more information about IntelliSense, see `JavaScript IntelliSense <https://msdn.microsoft.com/en-us/library/bb385682.aspx>`_.\n+\t\n+Development, Staging, and Production Environments\n+-------------------------------------------------\n+\n+When you use gulp to optimize your client-side files for staging and production, the processed files are saved to a local staging and production location. The *_Layout.cshtml* file uses the **environment** tag to provide two different versions of CSS files. One version of CSS files is for development and the other version is for both staging and production. In Visual Studio 2015, when you change the **ASPNET_ENV** environment variable to ``Production``, Visual Studio will build the Web app and link to the minimized CSS files. The following markup shows the **environment** tags containing link tags to the ``Development`` CSS files and the minimized ``Staging, Production`` CSS files.\n+\n+.. code-block:: javascript\n+\n+\t<environment names=\"Development\">\n+\t\t<link rel=\"stylesheet\" href=\"~/lib/bootstrap/dist/css/bootstrap.css\" />\n+\t\t<link rel=\"stylesheet\" href=\"~/lib/bootstrap-touch-carousel/dist/css/bootstrap-touch-carousel.css\" />\n+\t\t<link rel=\"stylesheet\" href=\"~/css/site.css\" />\n+\t</environment>\n+\t<environment names=\"Staging,Production\">\n+\t\t<link rel=\"stylesheet\" href=\"//ajax.aspnetcdn.com/ajax/bootstrap/3.0.0/css/bootstrap.min.css\"\n+\t\t\t\tasp-fallback-href=\"~/lib/bootstrap/css/bootstrap.min.css\"\n+\t\t\t\tasp-fallback-test-class=\"hidden\" asp-fallback-test-property=\"visibility\" asp-fallback-test-value=\"hidden\" />\n+\t\t<link rel=\"stylesheet\" href=\"//ajax.aspnetcdn.com/ajax/bootstrap-touch-carousel/0.8.0/css/bootstrap-touch-carousel.css\"\n+\t\t\t\tasp-fallback-href=\"~/lib/bootstrap-touch-carousel/css/bootstrap-touch-carousel.css\"\n+\t\t\t\tasp-fallback-test-class=\"carousel-caption\" asp-fallback-test-property=\"display\" asp-fallback-test-value=\"none\" />\n+\t\t<link rel=\"stylesheet\" href=\"~/css/site.css\" asp-file-version=\"true\" />\n+\t</environment>\n+\t\n+Switching Between Environments\n+------------------------------\n+\n+To switch between compiling for different environments, you can change the ASPNET_ENV environment variable. \n+1.\tIn **Task Runner Explorer**, verify that the **min** task has been set to occur **Before Build**.\n+2.\tIn **Solution Explorer**, right-click the project name and select **Properties**.\n+\tThe property sheet for the Web app is displayed.\n+3.\tSet the value of the **ASPNET_ENV** environment variable to ``Production``.\n+4.\tPress **F5** to run the application in a browser.\n+5.\tIn the browser window, right-click the page and select **View Source** to see the html for the page.\n+\tYou will notice that the stylesheet links point to the minified CSS files.\n+6.\tClose the browser to stop the Web app.\n+7.\tIn Visual Studio, return to the property sheet for the Web app and change the **ASPNET_ENV** environment variable back to ``Development``.\n+8.\tPress **F5** to run the application in a browser again.\n+9.\tIn the browser window, right-click the page and select **View Source** to see the html for the page.\n+\tYou will notice that the stylesheet links point to the full version of the CSS files.\n+\t\n+\tFor more information related to Visual Studio 2015 environments, see `Working with Multiple Environments <http://docs.asp.net/en/latest/fundamentals/environments.html>`_.\n+\t\n+Task and Module Details\n+-----------------------\n+A gulp task is registered with a function name.  You can specify dependencies if other tasks must run before the current task. Additional functions allow you to run and watch the gulp tasks, as well as set the source (src) and destination (dest) of the files that you are modifying. The following are the primary gulp functions:\n+\n+•\tgulp.task(name[, deps], fn) { }\n+•\tgulp.run(tasks) { }\n+•\tgulp.watch(glob [, opts], tasks) { }\n+•\tgulp.src(globs[, options]) { }\n+•\tgulp.dest(path[, options]) { } \n+\n+For additional gulp API reference information, see `Gulp Docs API <https://github.com/gulpjs/gulp/blob/master/docs/API.md>`_. \n+\n+Gulp Recipes","path":"aspnet/client-side/bundling-and-minification.rst","position":298,"original_position":292,"commit_id":"c8eb8eefe53fb66ff1a849a5a95c9f52b62b8ed1","original_commit_id":"a9c2c6645f5cac3b9a4fc47cde1997d6ab897c94","user":{"login":"Rick-Anderson","id":3605364,"avatar_url":"https://avatars.githubusercontent.com/u/3605364?v=3","gravatar_id":"","url":"https://api.github.com/users/Rick-Anderson","html_url":"https://github.com/Rick-Anderson","followers_url":"https://api.github.com/users/Rick-Anderson/followers","following_url":"https://api.github.com/users/Rick-Anderson/following{/other_user}","gists_url":"https://api.github.com/users/Rick-Anderson/gists{/gist_id}","starred_url":"https://api.github.com/users/Rick-Anderson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Rick-Anderson/subscriptions","organizations_url":"https://api.github.com/users/Rick-Anderson/orgs","repos_url":"https://api.github.com/users/Rick-Anderson/repos","events_url":"https://api.github.com/users/Rick-Anderson/events{/privacy}","received_events_url":"https://api.github.com/users/Rick-Anderson/received_events","type":"User","site_admin":false},"body":"move to Gulp - if PM complains have him talk to me.","created_at":"2015-11-05T05:42:26Z","updated_at":"2015-11-05T05:42:26Z","html_url":"https://github.com/aspnet/Docs/pull/572#discussion_r43978198","pull_request_url":"https://api.github.com/repos/aspnet/Docs/pulls/572","_links":{"self":{"href":"https://api.github.com/repos/aspnet/Docs/pulls/comments/43978198"},"html":{"href":"https://github.com/aspnet/Docs/pull/572#discussion_r43978198"},"pull_request":{"href":"https://api.github.com/repos/aspnet/Docs/pulls/572"}}},"pull_request":{"url":"https://api.github.com/repos/aspnet/Docs/pulls/572","id":48802920,"html_url":"https://github.com/aspnet/Docs/pull/572","diff_url":"https://github.com/aspnet/Docs/pull/572.diff","patch_url":"https://github.com/aspnet/Docs/pull/572.patch","issue_url":"https://api.github.com/repos/aspnet/Docs/issues/572","number":572,"state":"open","locked":false,"title":"Adding content to bundling and minification topic.","user":{"login":"Erikre","id":7407729,"avatar_url":"https://avatars.githubusercontent.com/u/7407729?v=3","gravatar_id":"","url":"https://api.github.com/users/Erikre","html_url":"https://github.com/Erikre","followers_url":"https://api.github.com/users/Erikre/followers","following_url":"https://api.github.com/users/Erikre/following{/other_user}","gists_url":"https://api.github.com/users/Erikre/gists{/gist_id}","starred_url":"https://api.github.com/users/Erikre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Erikre/subscriptions","organizations_url":"https://api.github.com/users/Erikre/orgs","repos_url":"https://api.github.com/users/Erikre/repos","events_url":"https://api.github.com/users/Erikre/events{/privacy}","received_events_url":"https://api.github.com/users/Erikre/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-10-26T21:56:03Z","updated_at":"2015-11-05T05:42:26Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3580dfd95ae505e620538cf3f92cc8452dd058bc","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/aspnet/Docs/pulls/572/commits","review_comments_url":"https://api.github.com/repos/aspnet/Docs/pulls/572/comments","review_comment_url":"https://api.github.com/repos/aspnet/Docs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/aspnet/Docs/issues/572/comments","statuses_url":"https://api.github.com/repos/aspnet/Docs/statuses/c8eb8eefe53fb66ff1a849a5a95c9f52b62b8ed1","head":{"label":"Erikre:erikre10262015-asp5","ref":"erikre10262015-asp5","sha":"c8eb8eefe53fb66ff1a849a5a95c9f52b62b8ed1","user":{"login":"Erikre","id":7407729,"avatar_url":"https://avatars.githubusercontent.com/u/7407729?v=3","gravatar_id":"","url":"https://api.github.com/users/Erikre","html_url":"https://github.com/Erikre","followers_url":"https://api.github.com/users/Erikre/followers","following_url":"https://api.github.com/users/Erikre/following{/other_user}","gists_url":"https://api.github.com/users/Erikre/gists{/gist_id}","starred_url":"https://api.github.com/users/Erikre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Erikre/subscriptions","organizations_url":"https://api.github.com/users/Erikre/orgs","repos_url":"https://api.github.com/users/Erikre/repos","events_url":"https://api.github.com/users/Erikre/events{/privacy}","received_events_url":"https://api.github.com/users/Erikre/received_events","type":"User","site_admin":false},"repo":{"id":34420782,"name":"Docs","full_name":"Erikre/Docs","owner":{"login":"Erikre","id":7407729,"avatar_url":"https://avatars.githubusercontent.com/u/7407729?v=3","gravatar_id":"","url":"https://api.github.com/users/Erikre","html_url":"https://github.com/Erikre","followers_url":"https://api.github.com/users/Erikre/followers","following_url":"https://api.github.com/users/Erikre/following{/other_user}","gists_url":"https://api.github.com/users/Erikre/gists{/gist_id}","starred_url":"https://api.github.com/users/Erikre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Erikre/subscriptions","organizations_url":"https://api.github.com/users/Erikre/orgs","repos_url":"https://api.github.com/users/Erikre/repos","events_url":"https://api.github.com/users/Erikre/events{/privacy}","received_events_url":"https://api.github.com/users/Erikre/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Erikre/Docs","description":"Documentation for ASP.NET 5","fork":true,"url":"https://api.github.com/repos/Erikre/Docs","forks_url":"https://api.github.com/repos/Erikre/Docs/forks","keys_url":"https://api.github.com/repos/Erikre/Docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Erikre/Docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Erikre/Docs/teams","hooks_url":"https://api.github.com/repos/Erikre/Docs/hooks","issue_events_url":"https://api.github.com/repos/Erikre/Docs/issues/events{/number}","events_url":"https://api.github.com/repos/Erikre/Docs/events","assignees_url":"https://api.github.com/repos/Erikre/Docs/assignees{/user}","branches_url":"https://api.github.com/repos/Erikre/Docs/branches{/branch}","tags_url":"https://api.github.com/repos/Erikre/Docs/tags","blobs_url":"https://api.github.com/repos/Erikre/Docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Erikre/Docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Erikre/Docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/Erikre/Docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Erikre/Docs/statuses/{sha}","languages_url":"https://api.github.com/repos/Erikre/Docs/languages","stargazers_url":"https://api.github.com/repos/Erikre/Docs/stargazers","contributors_url":"https://api.github.com/repos/Erikre/Docs/contributors","subscribers_url":"https://api.github.com/repos/Erikre/Docs/subscribers","subscription_url":"https://api.github.com/repos/Erikre/Docs/subscription","commits_url":"https://api.github.com/repos/Erikre/Docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/Erikre/Docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/Erikre/Docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/Erikre/Docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/Erikre/Docs/contents/{+path}","compare_url":"https://api.github.com/repos/Erikre/Docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Erikre/Docs/merges","archive_url":"https://api.github.com/repos/Erikre/Docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Erikre/Docs/downloads","issues_url":"https://api.github.com/repos/Erikre/Docs/issues{/number}","pulls_url":"https://api.github.com/repos/Erikre/Docs/pulls{/number}","milestones_url":"https://api.github.com/repos/Erikre/Docs/milestones{/number}","notifications_url":"https://api.github.com/repos/Erikre/Docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Erikre/Docs/labels{/name}","releases_url":"https://api.github.com/repos/Erikre/Docs/releases{/id}","created_at":"2015-04-22T23:01:10Z","updated_at":"2015-08-26T20:56:02Z","pushed_at":"2015-11-02T22:35:56Z","git_url":"git://github.com/Erikre/Docs.git","ssh_url":"git@github.com:Erikre/Docs.git","clone_url":"https://github.com/Erikre/Docs.git","svn_url":"https://github.com/Erikre/Docs","homepage":null,"size":24137,"stargazers_count":0,"watchers_count":0,"language":"C#","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":"aspnet:master","ref":"master","sha":"839557631f0f14871539c413f00e13148a08a7d4","user":{"login":"aspnet","id":6476660,"avatar_url":"https://avatars.githubusercontent.com/u/6476660?v=3","gravatar_id":"","url":"https://api.github.com/users/aspnet","html_url":"https://github.com/aspnet","followers_url":"https://api.github.com/users/aspnet/followers","following_url":"https://api.github.com/users/aspnet/following{/other_user}","gists_url":"https://api.github.com/users/aspnet/gists{/gist_id}","starred_url":"https://api.github.com/users/aspnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aspnet/subscriptions","organizations_url":"https://api.github.com/users/aspnet/orgs","repos_url":"https://api.github.com/users/aspnet/repos","events_url":"https://api.github.com/users/aspnet/events{/privacy}","received_events_url":"https://api.github.com/users/aspnet/received_events","type":"Organization","site_admin":false},"repo":{"id":28239455,"name":"Docs","full_name":"aspnet/Docs","owner":{"login":"aspnet","id":6476660,"avatar_url":"https://avatars.githubusercontent.com/u/6476660?v=3","gravatar_id":"","url":"https://api.github.com/users/aspnet","html_url":"https://github.com/aspnet","followers_url":"https://api.github.com/users/aspnet/followers","following_url":"https://api.github.com/users/aspnet/following{/other_user}","gists_url":"https://api.github.com/users/aspnet/gists{/gist_id}","starred_url":"https://api.github.com/users/aspnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aspnet/subscriptions","organizations_url":"https://api.github.com/users/aspnet/orgs","repos_url":"https://api.github.com/users/aspnet/repos","events_url":"https://api.github.com/users/aspnet/events{/privacy}","received_events_url":"https://api.github.com/users/aspnet/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/aspnet/Docs","description":"Documentation for ASP.NET 5","fork":false,"url":"https://api.github.com/repos/aspnet/Docs","forks_url":"https://api.github.com/repos/aspnet/Docs/forks","keys_url":"https://api.github.com/repos/aspnet/Docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aspnet/Docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aspnet/Docs/teams","hooks_url":"https://api.github.com/repos/aspnet/Docs/hooks","issue_events_url":"https://api.github.com/repos/aspnet/Docs/issues/events{/number}","events_url":"https://api.github.com/repos/aspnet/Docs/events","assignees_url":"https://api.github.com/repos/aspnet/Docs/assignees{/user}","branches_url":"https://api.github.com/repos/aspnet/Docs/branches{/branch}","tags_url":"https://api.github.com/repos/aspnet/Docs/tags","blobs_url":"https://api.github.com/repos/aspnet/Docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aspnet/Docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aspnet/Docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/aspnet/Docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aspnet/Docs/statuses/{sha}","languages_url":"https://api.github.com/repos/aspnet/Docs/languages","stargazers_url":"https://api.github.com/repos/aspnet/Docs/stargazers","contributors_url":"https://api.github.com/repos/aspnet/Docs/contributors","subscribers_url":"https://api.github.com/repos/aspnet/Docs/subscribers","subscription_url":"https://api.github.com/repos/aspnet/Docs/subscription","commits_url":"https://api.github.com/repos/aspnet/Docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/aspnet/Docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/aspnet/Docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/aspnet/Docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/aspnet/Docs/contents/{+path}","compare_url":"https://api.github.com/repos/aspnet/Docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aspnet/Docs/merges","archive_url":"https://api.github.com/repos/aspnet/Docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aspnet/Docs/downloads","issues_url":"https://api.github.com/repos/aspnet/Docs/issues{/number}","pulls_url":"https://api.github.com/repos/aspnet/Docs/pulls{/number}","milestones_url":"https://api.github.com/repos/aspnet/Docs/milestones{/number}","notifications_url":"https://api.github.com/repos/aspnet/Docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aspnet/Docs/labels{/name}","releases_url":"https://api.github.com/repos/aspnet/Docs/releases{/id}","created_at":"2014-12-19T17:38:02Z","updated_at":"2015-11-04T23:48:04Z","pushed_at":"2015-11-03T23:37:36Z","git_url":"git://github.com/aspnet/Docs.git","ssh_url":"git@github.com:aspnet/Docs.git","clone_url":"https://github.com/aspnet/Docs.git","svn_url":"https://github.com/aspnet/Docs","homepage":null,"size":43710,"stargazers_count":240,"watchers_count":240,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":307,"mirror_url":null,"open_issues_count":213,"forks":307,"open_issues":213,"watchers":240,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/aspnet/Docs/pulls/572"},"html":{"href":"https://github.com/aspnet/Docs/pull/572"},"issue":{"href":"https://api.github.com/repos/aspnet/Docs/issues/572"},"comments":{"href":"https://api.github.com/repos/aspnet/Docs/issues/572/comments"},"review_comments":{"href":"https://api.github.com/repos/aspnet/Docs/pulls/572/comments"},"review_comment":{"href":"https://api.github.com/repos/aspnet/Docs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/aspnet/Docs/pulls/572/commits"},"statuses":{"href":"https://api.github.com/repos/aspnet/Docs/statuses/c8eb8eefe53fb66ff1a849a5a95c9f52b62b8ed1"}}}}