{"action":"created","comment":{"url":"https://api.github.com/repos/cake-build/cake/pulls/comments/61054507","id":61054507,"diff_hunk":"@@ -1,19 +1,11 @@\n-﻿using System.Collections.Generic;\n-\n-namespace Cake.Core\n+﻿namespace Cake.Core\n {\n     /// <summary>\n     /// Represents arguments passed to script.\n     /// </summary>\n     public interface ICakeArguments\n     {\n         /// <summary>\n-        /// Initializes the argument list.\n-        /// </summary>\n-        /// <param name=\"arguments\">The arguments.</param>\n-        void SetArguments(IDictionary<string, string> arguments);","path":"src/Cake.Core/ICakeArguments.cs","position":15,"original_position":15,"commit_id":"5500a44fd2cee5cb968163581df321c961c52117","original_commit_id":"5500a44fd2cee5cb968163581df321c961c52117","user":{"login":"devlead","id":1647294,"avatar_url":"https://avatars.githubusercontent.com/u/1647294?v=3","gravatar_id":"","url":"https://api.github.com/users/devlead","html_url":"https://github.com/devlead","followers_url":"https://api.github.com/users/devlead/followers","following_url":"https://api.github.com/users/devlead/following{/other_user}","gists_url":"https://api.github.com/users/devlead/gists{/gist_id}","starred_url":"https://api.github.com/users/devlead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/devlead/subscriptions","organizations_url":"https://api.github.com/users/devlead/orgs","repos_url":"https://api.github.com/users/devlead/repos","events_url":"https://api.github.com/users/devlead/events{/privacy}","received_events_url":"https://api.github.com/users/devlead/received_events","type":"User","site_admin":false},"body":"Just note to self, potential breaking change, don't think anyone has used this externally though.","created_at":"2016-04-26T09:27:10Z","updated_at":"2016-04-26T09:27:10Z","html_url":"https://github.com/cake-build/cake/pull/840#discussion_r61054507","pull_request_url":"https://api.github.com/repos/cake-build/cake/pulls/840","_links":{"self":{"href":"https://api.github.com/repos/cake-build/cake/pulls/comments/61054507"},"html":{"href":"https://github.com/cake-build/cake/pull/840#discussion_r61054507"},"pull_request":{"href":"https://api.github.com/repos/cake-build/cake/pulls/840"}}},"pull_request":{"url":"https://api.github.com/repos/cake-build/cake/pulls/840","id":67164551,"html_url":"https://github.com/cake-build/cake/pull/840","diff_url":"https://github.com/cake-build/cake/pull/840.diff","patch_url":"https://github.com/cake-build/cake/pull/840.patch","issue_url":"https://api.github.com/repos/cake-build/cake/issues/840","number":840,"state":"open","locked":false,"title":"Add configuration file support","user":{"login":"patriksvensson","id":357872,"avatar_url":"https://avatars.githubusercontent.com/u/357872?v=3","gravatar_id":"","url":"https://api.github.com/users/patriksvensson","html_url":"https://github.com/patriksvensson","followers_url":"https://api.github.com/users/patriksvensson/followers","following_url":"https://api.github.com/users/patriksvensson/following{/other_user}","gists_url":"https://api.github.com/users/patriksvensson/gists{/gist_id}","starred_url":"https://api.github.com/users/patriksvensson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/patriksvensson/subscriptions","organizations_url":"https://api.github.com/users/patriksvensson/orgs","repos_url":"https://api.github.com/users/patriksvensson/repos","events_url":"https://api.github.com/users/patriksvensson/events{/privacy}","received_events_url":"https://api.github.com/users/patriksvensson/received_events","type":"User","site_admin":false},"body":"*(Description copied from issue)*\r\n\r\n> Sometimes we want to be able to configure internals of Cake so I propose that we add support for this. My proposal is that we add `ICakeConfiguration` that will fetch values in the following order:\r\n> \r\n> 1) Environment\r\n> 2) Configuration file\r\n> 3) Arguments\r\n> \r\n> ```csharp\r\n> public interface ICakeConfiguration\r\n> {\r\n>   string GetValue(string key);\r\n> }\r\n> ```\r\n> \r\n> * Configuration keys are case insensitive.\r\n> \r\n> #### Environment variables:\r\n> \r\n> Environment variables are named like the following convention:\r\n> \r\n> ```\r\n> CAKE_[KEY]\r\n> ```\r\n> \r\n> The `CAKE_` part will be completely removed from the key name.\r\n> \r\n> ##### Example\r\n> \r\n> ```powershell\r\n> PS> $env:CAKE_RUNTESTS=true\r\n> PS> $env:CAKE_TOOLS_PATH=D:/tools\r\n> ```\r\n> \r\n> #### Configuration file:\r\n> \r\n> ```ini\r\n> ; Cake configuration file\r\n> \r\n> ; Global settings\r\n> RunTests=true\r\n> \r\n> [Tools]\r\n> Path=D:/tools\r\n> ```\r\n> \r\n> #### Arguments:\r\n> \r\n> Arguments are passed in the following format:\r\n> \r\n> ```\r\n> --[key]=[value]\r\n> ```\r\n> \r\n> ##### Example:\r\n> \r\n> ```\r\n> Cake.exe --tools_path=D:/tools --runtests=true\r\n> ```\r\n> \r\n> ### Using the configuration\r\n> \r\n> ```csharp\r\n> public void DoMagic(ICakeConfiguration config)\r\n> {\r\n>   var runTests = config.GetValue(\"RunTests\");\r\n>   var toolPath = config.GetValue(\"Tools_Path\");\r\n> }\r\n> ```\r\n\r\nRelated to #833.","created_at":"2016-04-20T10:40:17Z","updated_at":"2016-04-26T09:27:10Z","closed_at":null,"merged_at":null,"merge_commit_sha":"85d76e6c16d3c834f4c4b1f80bb075cc0d265d9d","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/cake-build/cake/pulls/840/commits","review_comments_url":"https://api.github.com/repos/cake-build/cake/pulls/840/comments","review_comment_url":"https://api.github.com/repos/cake-build/cake/pulls/comments{/number}","comments_url":"https://api.github.com/repos/cake-build/cake/issues/840/comments","statuses_url":"https://api.github.com/repos/cake-build/cake/statuses/5500a44fd2cee5cb968163581df321c961c52117","head":{"label":"patriksvensson:feature/GH833","ref":"feature/GH833","sha":"5500a44fd2cee5cb968163581df321c961c52117","user":{"login":"patriksvensson","id":357872,"avatar_url":"https://avatars.githubusercontent.com/u/357872?v=3","gravatar_id":"","url":"https://api.github.com/users/patriksvensson","html_url":"https://github.com/patriksvensson","followers_url":"https://api.github.com/users/patriksvensson/followers","following_url":"https://api.github.com/users/patriksvensson/following{/other_user}","gists_url":"https://api.github.com/users/patriksvensson/gists{/gist_id}","starred_url":"https://api.github.com/users/patriksvensson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/patriksvensson/subscriptions","organizations_url":"https://api.github.com/users/patriksvensson/orgs","repos_url":"https://api.github.com/users/patriksvensson/repos","events_url":"https://api.github.com/users/patriksvensson/events{/privacy}","received_events_url":"https://api.github.com/users/patriksvensson/received_events","type":"User","site_admin":false},"repo":{"id":51225732,"name":"cake","full_name":"patriksvensson/cake","owner":{"login":"patriksvensson","id":357872,"avatar_url":"https://avatars.githubusercontent.com/u/357872?v=3","gravatar_id":"","url":"https://api.github.com/users/patriksvensson","html_url":"https://github.com/patriksvensson","followers_url":"https://api.github.com/users/patriksvensson/followers","following_url":"https://api.github.com/users/patriksvensson/following{/other_user}","gists_url":"https://api.github.com/users/patriksvensson/gists{/gist_id}","starred_url":"https://api.github.com/users/patriksvensson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/patriksvensson/subscriptions","organizations_url":"https://api.github.com/users/patriksvensson/orgs","repos_url":"https://api.github.com/users/patriksvensson/repos","events_url":"https://api.github.com/users/patriksvensson/events{/privacy}","received_events_url":"https://api.github.com/users/patriksvensson/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/patriksvensson/cake","description":"Cake (C# Make) is a cross platform build automation system.","fork":true,"url":"https://api.github.com/repos/patriksvensson/cake","forks_url":"https://api.github.com/repos/patriksvensson/cake/forks","keys_url":"https://api.github.com/repos/patriksvensson/cake/keys{/key_id}","collaborators_url":"https://api.github.com/repos/patriksvensson/cake/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/patriksvensson/cake/teams","hooks_url":"https://api.github.com/repos/patriksvensson/cake/hooks","issue_events_url":"https://api.github.com/repos/patriksvensson/cake/issues/events{/number}","events_url":"https://api.github.com/repos/patriksvensson/cake/events","assignees_url":"https://api.github.com/repos/patriksvensson/cake/assignees{/user}","branches_url":"https://api.github.com/repos/patriksvensson/cake/branches{/branch}","tags_url":"https://api.github.com/repos/patriksvensson/cake/tags","blobs_url":"https://api.github.com/repos/patriksvensson/cake/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/patriksvensson/cake/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/patriksvensson/cake/git/refs{/sha}","trees_url":"https://api.github.com/repos/patriksvensson/cake/git/trees{/sha}","statuses_url":"https://api.github.com/repos/patriksvensson/cake/statuses/{sha}","languages_url":"https://api.github.com/repos/patriksvensson/cake/languages","stargazers_url":"https://api.github.com/repos/patriksvensson/cake/stargazers","contributors_url":"https://api.github.com/repos/patriksvensson/cake/contributors","subscribers_url":"https://api.github.com/repos/patriksvensson/cake/subscribers","subscription_url":"https://api.github.com/repos/patriksvensson/cake/subscription","commits_url":"https://api.github.com/repos/patriksvensson/cake/commits{/sha}","git_commits_url":"https://api.github.com/repos/patriksvensson/cake/git/commits{/sha}","comments_url":"https://api.github.com/repos/patriksvensson/cake/comments{/number}","issue_comment_url":"https://api.github.com/repos/patriksvensson/cake/issues/comments{/number}","contents_url":"https://api.github.com/repos/patriksvensson/cake/contents/{+path}","compare_url":"https://api.github.com/repos/patriksvensson/cake/compare/{base}...{head}","merges_url":"https://api.github.com/repos/patriksvensson/cake/merges","archive_url":"https://api.github.com/repos/patriksvensson/cake/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/patriksvensson/cake/downloads","issues_url":"https://api.github.com/repos/patriksvensson/cake/issues{/number}","pulls_url":"https://api.github.com/repos/patriksvensson/cake/pulls{/number}","milestones_url":"https://api.github.com/repos/patriksvensson/cake/milestones{/number}","notifications_url":"https://api.github.com/repos/patriksvensson/cake/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/patriksvensson/cake/labels{/name}","releases_url":"https://api.github.com/repos/patriksvensson/cake/releases{/id}","deployments_url":"https://api.github.com/repos/patriksvensson/cake/deployments","created_at":"2016-02-06T22:44:16Z","updated_at":"2016-02-06T22:44:18Z","pushed_at":"2016-04-22T08:43:12Z","git_url":"git://github.com/patriksvensson/cake.git","ssh_url":"git@github.com:patriksvensson/cake.git","clone_url":"https://github.com/patriksvensson/cake.git","svn_url":"https://github.com/patriksvensson/cake","homepage":"http://cakebuild.net/","size":4319,"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":"develop"}},"base":{"label":"cake-build:develop","ref":"develop","sha":"4e1a73d3f7f8f7e86347a0652eb0303581b9b818","user":{"login":"cake-build","id":7738262,"avatar_url":"https://avatars.githubusercontent.com/u/7738262?v=3","gravatar_id":"","url":"https://api.github.com/users/cake-build","html_url":"https://github.com/cake-build","followers_url":"https://api.github.com/users/cake-build/followers","following_url":"https://api.github.com/users/cake-build/following{/other_user}","gists_url":"https://api.github.com/users/cake-build/gists{/gist_id}","starred_url":"https://api.github.com/users/cake-build/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cake-build/subscriptions","organizations_url":"https://api.github.com/users/cake-build/orgs","repos_url":"https://api.github.com/users/cake-build/repos","events_url":"https://api.github.com/users/cake-build/events{/privacy}","received_events_url":"https://api.github.com/users/cake-build/received_events","type":"Organization","site_admin":false},"repo":{"id":20094029,"name":"cake","full_name":"cake-build/cake","owner":{"login":"cake-build","id":7738262,"avatar_url":"https://avatars.githubusercontent.com/u/7738262?v=3","gravatar_id":"","url":"https://api.github.com/users/cake-build","html_url":"https://github.com/cake-build","followers_url":"https://api.github.com/users/cake-build/followers","following_url":"https://api.github.com/users/cake-build/following{/other_user}","gists_url":"https://api.github.com/users/cake-build/gists{/gist_id}","starred_url":"https://api.github.com/users/cake-build/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cake-build/subscriptions","organizations_url":"https://api.github.com/users/cake-build/orgs","repos_url":"https://api.github.com/users/cake-build/repos","events_url":"https://api.github.com/users/cake-build/events{/privacy}","received_events_url":"https://api.github.com/users/cake-build/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/cake-build/cake","description":"Cake (C# Make) is a cross platform build automation system.","fork":false,"url":"https://api.github.com/repos/cake-build/cake","forks_url":"https://api.github.com/repos/cake-build/cake/forks","keys_url":"https://api.github.com/repos/cake-build/cake/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cake-build/cake/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cake-build/cake/teams","hooks_url":"https://api.github.com/repos/cake-build/cake/hooks","issue_events_url":"https://api.github.com/repos/cake-build/cake/issues/events{/number}","events_url":"https://api.github.com/repos/cake-build/cake/events","assignees_url":"https://api.github.com/repos/cake-build/cake/assignees{/user}","branches_url":"https://api.github.com/repos/cake-build/cake/branches{/branch}","tags_url":"https://api.github.com/repos/cake-build/cake/tags","blobs_url":"https://api.github.com/repos/cake-build/cake/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cake-build/cake/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cake-build/cake/git/refs{/sha}","trees_url":"https://api.github.com/repos/cake-build/cake/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cake-build/cake/statuses/{sha}","languages_url":"https://api.github.com/repos/cake-build/cake/languages","stargazers_url":"https://api.github.com/repos/cake-build/cake/stargazers","contributors_url":"https://api.github.com/repos/cake-build/cake/contributors","subscribers_url":"https://api.github.com/repos/cake-build/cake/subscribers","subscription_url":"https://api.github.com/repos/cake-build/cake/subscription","commits_url":"https://api.github.com/repos/cake-build/cake/commits{/sha}","git_commits_url":"https://api.github.com/repos/cake-build/cake/git/commits{/sha}","comments_url":"https://api.github.com/repos/cake-build/cake/comments{/number}","issue_comment_url":"https://api.github.com/repos/cake-build/cake/issues/comments{/number}","contents_url":"https://api.github.com/repos/cake-build/cake/contents/{+path}","compare_url":"https://api.github.com/repos/cake-build/cake/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cake-build/cake/merges","archive_url":"https://api.github.com/repos/cake-build/cake/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cake-build/cake/downloads","issues_url":"https://api.github.com/repos/cake-build/cake/issues{/number}","pulls_url":"https://api.github.com/repos/cake-build/cake/pulls{/number}","milestones_url":"https://api.github.com/repos/cake-build/cake/milestones{/number}","notifications_url":"https://api.github.com/repos/cake-build/cake/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cake-build/cake/labels{/name}","releases_url":"https://api.github.com/repos/cake-build/cake/releases{/id}","deployments_url":"https://api.github.com/repos/cake-build/cake/deployments","created_at":"2014-05-23T09:26:54Z","updated_at":"2016-04-25T18:59:51Z","pushed_at":"2016-04-22T08:43:13Z","git_url":"git://github.com/cake-build/cake.git","ssh_url":"git@github.com:cake-build/cake.git","clone_url":"https://github.com/cake-build/cake.git","svn_url":"https://github.com/cake-build/cake","homepage":"http://cakebuild.net/","size":6812,"stargazers_count":536,"watchers_count":536,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":128,"mirror_url":null,"open_issues_count":137,"forks":128,"open_issues":137,"watchers":536,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/cake-build/cake/pulls/840"},"html":{"href":"https://github.com/cake-build/cake/pull/840"},"issue":{"href":"https://api.github.com/repos/cake-build/cake/issues/840"},"comments":{"href":"https://api.github.com/repos/cake-build/cake/issues/840/comments"},"review_comments":{"href":"https://api.github.com/repos/cake-build/cake/pulls/840/comments"},"review_comment":{"href":"https://api.github.com/repos/cake-build/cake/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/cake-build/cake/pulls/840/commits"},"statuses":{"href":"https://api.github.com/repos/cake-build/cake/statuses/5500a44fd2cee5cb968163581df321c961c52117"}}}}