{"action":"created","comment":{"url":"https://api.github.com/repos/sdelements/sdetools/pulls/comments/24184889","id":24184889,"diff_hunk":"@@ -431,6 +447,16 @@ def process_date_config(self, key):\n         except ValueError, err:\n             raise UsageError('Unable to read date field %s. Reason: %s' % (key, str(err)))\n \n+    def transform(self, key, mapping):\n+        for field, value in self[key].items():\n+            if isinstance(value, basestring):\n+                self[key][field] = Template(value).substitute(mapping).strip()\n+            elif isinstance(value, list):\n+                new_value = []\n+                for list_item in value:\n+                    new_value.append(Template(list_item).substitute(mapping).strip())\n+                self[key][field] = new_value\n+","path":"sdetools/sdelib/conf_mgr.py","position":40,"original_position":40,"commit_id":"7f3464385c4428b7a619d43385f9dd9943973a36","original_commit_id":"7f3464385c4428b7a619d43385f9dd9943973a36","user":{"login":"funkaoshi","id":11141,"avatar_url":"https://avatars.githubusercontent.com/u/11141?v=3","gravatar_id":"","url":"https://api.github.com/users/funkaoshi","html_url":"https://github.com/funkaoshi","followers_url":"https://api.github.com/users/funkaoshi/followers","following_url":"https://api.github.com/users/funkaoshi/following{/other_user}","gists_url":"https://api.github.com/users/funkaoshi/gists{/gist_id}","starred_url":"https://api.github.com/users/funkaoshi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/funkaoshi/subscriptions","organizations_url":"https://api.github.com/users/funkaoshi/orgs","repos_url":"https://api.github.com/users/funkaoshi/repos","events_url":"https://api.github.com/users/funkaoshi/events{/privacy}","received_events_url":"https://api.github.com/users/funkaoshi/received_events","type":"User","site_admin":false},"body":"Exception if neither?","created_at":"2015-02-05T18:17:33Z","updated_at":"2015-02-05T18:17:33Z","html_url":"https://github.com/sdelements/sdetools/pull/221#discussion_r24184889","pull_request_url":"https://api.github.com/repos/sdelements/sdetools/pulls/221","_links":{"self":{"href":"https://api.github.com/repos/sdelements/sdetools/pulls/comments/24184889"},"html":{"href":"https://github.com/sdelements/sdetools/pull/221#discussion_r24184889"},"pull_request":{"href":"https://api.github.com/repos/sdelements/sdetools/pulls/221"}}},"pull_request":{"url":"https://api.github.com/repos/sdelements/sdetools/pulls/221","id":28673717,"html_url":"https://github.com/sdelements/sdetools/pull/221","diff_url":"https://github.com/sdelements/sdetools/pull/221.diff","patch_url":"https://github.com/sdelements/sdetools/pull/221.patch","issue_url":"https://api.github.com/repos/sdelements/sdetools/issues/221","number":221,"state":"open","locked":false,"title":"Feature/custom lookup fields","user":{"login":"geoffwhittington","id":1770544,"avatar_url":"https://avatars.githubusercontent.com/u/1770544?v=3","gravatar_id":"","url":"https://api.github.com/users/geoffwhittington","html_url":"https://github.com/geoffwhittington","followers_url":"https://api.github.com/users/geoffwhittington/followers","following_url":"https://api.github.com/users/geoffwhittington/following{/other_user}","gists_url":"https://api.github.com/users/geoffwhittington/gists{/gist_id}","starred_url":"https://api.github.com/users/geoffwhittington/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/geoffwhittington/subscriptions","organizations_url":"https://api.github.com/users/geoffwhittington/orgs","repos_url":"https://api.github.com/users/geoffwhittington/repos","events_url":"https://api.github.com/users/geoffwhittington/events{/privacy}","received_events_url":"https://api.github.com/users/geoffwhittington/received_events","type":"User","site_admin":false},"body":"Support a new config `alm_custom_lookup_fields` which is a JSON dictionary. When searching for tasks inside JIRA 5/6 or Rally projects we will query using the provided key=>value pairs.\r\n\r\nJira is unique in that we support JSON lists of strings as a dictionary value. Rally only supports strings as dictionary values.\r\n\r\n","created_at":"2015-02-04T20:50:41Z","updated_at":"2015-02-05T18:17:33Z","closed_at":null,"merged_at":null,"merge_commit_sha":"43f563bb39aef09ef7f8384c3f58740e45e026cb","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/sdelements/sdetools/pulls/221/commits","review_comments_url":"https://api.github.com/repos/sdelements/sdetools/pulls/221/comments","review_comment_url":"https://api.github.com/repos/sdelements/sdetools/pulls/comments/{number}","comments_url":"https://api.github.com/repos/sdelements/sdetools/issues/221/comments","statuses_url":"https://api.github.com/repos/sdelements/sdetools/statuses/7f3464385c4428b7a619d43385f9dd9943973a36","head":{"label":"sdelements:feature/custom_lookup_fields","ref":"feature/custom_lookup_fields","sha":"7f3464385c4428b7a619d43385f9dd9943973a36","user":{"login":"sdelements","id":739346,"avatar_url":"https://avatars.githubusercontent.com/u/739346?v=3","gravatar_id":"","url":"https://api.github.com/users/sdelements","html_url":"https://github.com/sdelements","followers_url":"https://api.github.com/users/sdelements/followers","following_url":"https://api.github.com/users/sdelements/following{/other_user}","gists_url":"https://api.github.com/users/sdelements/gists{/gist_id}","starred_url":"https://api.github.com/users/sdelements/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sdelements/subscriptions","organizations_url":"https://api.github.com/users/sdelements/orgs","repos_url":"https://api.github.com/users/sdelements/repos","events_url":"https://api.github.com/users/sdelements/events{/privacy}","received_events_url":"https://api.github.com/users/sdelements/received_events","type":"Organization","site_admin":false},"repo":{"id":4272561,"name":"sdetools","full_name":"sdelements/sdetools","owner":{"login":"sdelements","id":739346,"avatar_url":"https://avatars.githubusercontent.com/u/739346?v=3","gravatar_id":"","url":"https://api.github.com/users/sdelements","html_url":"https://github.com/sdelements","followers_url":"https://api.github.com/users/sdelements/followers","following_url":"https://api.github.com/users/sdelements/following{/other_user}","gists_url":"https://api.github.com/users/sdelements/gists{/gist_id}","starred_url":"https://api.github.com/users/sdelements/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sdelements/subscriptions","organizations_url":"https://api.github.com/users/sdelements/orgs","repos_url":"https://api.github.com/users/sdelements/repos","events_url":"https://api.github.com/users/sdelements/events{/privacy}","received_events_url":"https://api.github.com/users/sdelements/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/sdelements/sdetools","description":"SD Element Tools: A collection of SD Elements integration tools built around SD Elements API.","fork":false,"url":"https://api.github.com/repos/sdelements/sdetools","forks_url":"https://api.github.com/repos/sdelements/sdetools/forks","keys_url":"https://api.github.com/repos/sdelements/sdetools/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sdelements/sdetools/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sdelements/sdetools/teams","hooks_url":"https://api.github.com/repos/sdelements/sdetools/hooks","issue_events_url":"https://api.github.com/repos/sdelements/sdetools/issues/events{/number}","events_url":"https://api.github.com/repos/sdelements/sdetools/events","assignees_url":"https://api.github.com/repos/sdelements/sdetools/assignees{/user}","branches_url":"https://api.github.com/repos/sdelements/sdetools/branches{/branch}","tags_url":"https://api.github.com/repos/sdelements/sdetools/tags","blobs_url":"https://api.github.com/repos/sdelements/sdetools/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sdelements/sdetools/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sdelements/sdetools/git/refs{/sha}","trees_url":"https://api.github.com/repos/sdelements/sdetools/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sdelements/sdetools/statuses/{sha}","languages_url":"https://api.github.com/repos/sdelements/sdetools/languages","stargazers_url":"https://api.github.com/repos/sdelements/sdetools/stargazers","contributors_url":"https://api.github.com/repos/sdelements/sdetools/contributors","subscribers_url":"https://api.github.com/repos/sdelements/sdetools/subscribers","subscription_url":"https://api.github.com/repos/sdelements/sdetools/subscription","commits_url":"https://api.github.com/repos/sdelements/sdetools/commits{/sha}","git_commits_url":"https://api.github.com/repos/sdelements/sdetools/git/commits{/sha}","comments_url":"https://api.github.com/repos/sdelements/sdetools/comments{/number}","issue_comment_url":"https://api.github.com/repos/sdelements/sdetools/issues/comments/{number}","contents_url":"https://api.github.com/repos/sdelements/sdetools/contents/{+path}","compare_url":"https://api.github.com/repos/sdelements/sdetools/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sdelements/sdetools/merges","archive_url":"https://api.github.com/repos/sdelements/sdetools/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sdelements/sdetools/downloads","issues_url":"https://api.github.com/repos/sdelements/sdetools/issues{/number}","pulls_url":"https://api.github.com/repos/sdelements/sdetools/pulls{/number}","milestones_url":"https://api.github.com/repos/sdelements/sdetools/milestones{/number}","notifications_url":"https://api.github.com/repos/sdelements/sdetools/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sdelements/sdetools/labels{/name}","releases_url":"https://api.github.com/repos/sdelements/sdetools/releases{/id}","created_at":"2012-05-09T14:33:34Z","updated_at":"2015-01-28T16:55:51Z","pushed_at":"2015-02-04T20:47:08Z","git_url":"git://github.com/sdelements/sdetools.git","ssh_url":"git@github.com:sdelements/sdetools.git","clone_url":"https://github.com/sdelements/sdetools.git","svn_url":"https://github.com/sdelements/sdetools","homepage":"","size":12341,"stargazers_count":5,"watchers_count":5,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":16,"forks":1,"open_issues":16,"watchers":5,"default_branch":"master"}},"base":{"label":"sdelements:master","ref":"master","sha":"e6fb7e211ad9c9d4c67eacefa3383ac2a48dc7d5","user":{"login":"sdelements","id":739346,"avatar_url":"https://avatars.githubusercontent.com/u/739346?v=3","gravatar_id":"","url":"https://api.github.com/users/sdelements","html_url":"https://github.com/sdelements","followers_url":"https://api.github.com/users/sdelements/followers","following_url":"https://api.github.com/users/sdelements/following{/other_user}","gists_url":"https://api.github.com/users/sdelements/gists{/gist_id}","starred_url":"https://api.github.com/users/sdelements/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sdelements/subscriptions","organizations_url":"https://api.github.com/users/sdelements/orgs","repos_url":"https://api.github.com/users/sdelements/repos","events_url":"https://api.github.com/users/sdelements/events{/privacy}","received_events_url":"https://api.github.com/users/sdelements/received_events","type":"Organization","site_admin":false},"repo":{"id":4272561,"name":"sdetools","full_name":"sdelements/sdetools","owner":{"login":"sdelements","id":739346,"avatar_url":"https://avatars.githubusercontent.com/u/739346?v=3","gravatar_id":"","url":"https://api.github.com/users/sdelements","html_url":"https://github.com/sdelements","followers_url":"https://api.github.com/users/sdelements/followers","following_url":"https://api.github.com/users/sdelements/following{/other_user}","gists_url":"https://api.github.com/users/sdelements/gists{/gist_id}","starred_url":"https://api.github.com/users/sdelements/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sdelements/subscriptions","organizations_url":"https://api.github.com/users/sdelements/orgs","repos_url":"https://api.github.com/users/sdelements/repos","events_url":"https://api.github.com/users/sdelements/events{/privacy}","received_events_url":"https://api.github.com/users/sdelements/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/sdelements/sdetools","description":"SD Element Tools: A collection of SD Elements integration tools built around SD Elements API.","fork":false,"url":"https://api.github.com/repos/sdelements/sdetools","forks_url":"https://api.github.com/repos/sdelements/sdetools/forks","keys_url":"https://api.github.com/repos/sdelements/sdetools/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sdelements/sdetools/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sdelements/sdetools/teams","hooks_url":"https://api.github.com/repos/sdelements/sdetools/hooks","issue_events_url":"https://api.github.com/repos/sdelements/sdetools/issues/events{/number}","events_url":"https://api.github.com/repos/sdelements/sdetools/events","assignees_url":"https://api.github.com/repos/sdelements/sdetools/assignees{/user}","branches_url":"https://api.github.com/repos/sdelements/sdetools/branches{/branch}","tags_url":"https://api.github.com/repos/sdelements/sdetools/tags","blobs_url":"https://api.github.com/repos/sdelements/sdetools/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sdelements/sdetools/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sdelements/sdetools/git/refs{/sha}","trees_url":"https://api.github.com/repos/sdelements/sdetools/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sdelements/sdetools/statuses/{sha}","languages_url":"https://api.github.com/repos/sdelements/sdetools/languages","stargazers_url":"https://api.github.com/repos/sdelements/sdetools/stargazers","contributors_url":"https://api.github.com/repos/sdelements/sdetools/contributors","subscribers_url":"https://api.github.com/repos/sdelements/sdetools/subscribers","subscription_url":"https://api.github.com/repos/sdelements/sdetools/subscription","commits_url":"https://api.github.com/repos/sdelements/sdetools/commits{/sha}","git_commits_url":"https://api.github.com/repos/sdelements/sdetools/git/commits{/sha}","comments_url":"https://api.github.com/repos/sdelements/sdetools/comments{/number}","issue_comment_url":"https://api.github.com/repos/sdelements/sdetools/issues/comments/{number}","contents_url":"https://api.github.com/repos/sdelements/sdetools/contents/{+path}","compare_url":"https://api.github.com/repos/sdelements/sdetools/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sdelements/sdetools/merges","archive_url":"https://api.github.com/repos/sdelements/sdetools/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sdelements/sdetools/downloads","issues_url":"https://api.github.com/repos/sdelements/sdetools/issues{/number}","pulls_url":"https://api.github.com/repos/sdelements/sdetools/pulls{/number}","milestones_url":"https://api.github.com/repos/sdelements/sdetools/milestones{/number}","notifications_url":"https://api.github.com/repos/sdelements/sdetools/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sdelements/sdetools/labels{/name}","releases_url":"https://api.github.com/repos/sdelements/sdetools/releases{/id}","created_at":"2012-05-09T14:33:34Z","updated_at":"2015-01-28T16:55:51Z","pushed_at":"2015-02-04T20:47:08Z","git_url":"git://github.com/sdelements/sdetools.git","ssh_url":"git@github.com:sdelements/sdetools.git","clone_url":"https://github.com/sdelements/sdetools.git","svn_url":"https://github.com/sdelements/sdetools","homepage":"","size":12341,"stargazers_count":5,"watchers_count":5,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":16,"forks":1,"open_issues":16,"watchers":5,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/sdelements/sdetools/pulls/221"},"html":{"href":"https://github.com/sdelements/sdetools/pull/221"},"issue":{"href":"https://api.github.com/repos/sdelements/sdetools/issues/221"},"comments":{"href":"https://api.github.com/repos/sdelements/sdetools/issues/221/comments"},"review_comments":{"href":"https://api.github.com/repos/sdelements/sdetools/pulls/221/comments"},"review_comment":{"href":"https://api.github.com/repos/sdelements/sdetools/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/sdelements/sdetools/pulls/221/commits"},"statuses":{"href":"https://api.github.com/repos/sdelements/sdetools/statuses/7f3464385c4428b7a619d43385f9dd9943973a36"}}}}