{"action":"created","comment":{"url":"https://api.github.com/repos/QISKit/qiskit-core/pulls/comments/196151411","pull_request_review_id":129580844,"id":196151411,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5NjE1MTQxMQ==","diff_hunk":"@@ -0,0 +1,13 @@\n+# -*- coding: utf-8 -*-\n+\n+# Copyright 2018, IBM.\n+#\n+# This source code is licensed under the Apache License, Version 2.0 found in\n+# the LICENSE.txt file in the root directory of this source tree.\n+\n+\"\"\"Module that holds the runtime location of qiskitrc file.\n+\"\"\"\n+\n+QISKIT_RC_FILE = None","path":"qiskit/wrapper/configrc/_settings.py","position":11,"original_position":11,"commit_id":"5fbe701d97f6eacacbddcd265c257076e2e11875","original_commit_id":"5fbe701d97f6eacacbddcd265c257076e2e11875","user":{"login":"delapuente","id":757942,"node_id":"MDQ6VXNlcjc1Nzk0Mg==","avatar_url":"https://avatars1.githubusercontent.com/u/757942?v=4","gravatar_id":"","url":"https://api.github.com/users/delapuente","html_url":"https://github.com/delapuente","followers_url":"https://api.github.com/users/delapuente/followers","following_url":"https://api.github.com/users/delapuente/following{/other_user}","gists_url":"https://api.github.com/users/delapuente/gists{/gist_id}","starred_url":"https://api.github.com/users/delapuente/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/delapuente/subscriptions","organizations_url":"https://api.github.com/users/delapuente/orgs","repos_url":"https://api.github.com/users/delapuente/repos","events_url":"https://api.github.com/users/delapuente/events{/privacy}","received_events_url":"https://api.github.com/users/delapuente/received_events","type":"User","site_admin":false},"body":"Actually, this is not a setting but shared state for the functions in [`_configrc.py`](https://github.com/QISKit/qiskit-core/pull/547/files#diff-7964b0eebe1f71cbbea9d0d929667e33R1). I'm not a friend of using OOP when it is not necessary, so a module works form me. This variable should be in `_configrc.py` as a module-level.","created_at":"2018-06-18T16:57:07Z","updated_at":"2018-06-18T17:04:18Z","html_url":"https://github.com/QISKit/qiskit-core/pull/547#discussion_r196151411","pull_request_url":"https://api.github.com/repos/QISKit/qiskit-core/pulls/547","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/QISKit/qiskit-core/pulls/comments/196151411"},"html":{"href":"https://github.com/QISKit/qiskit-core/pull/547#discussion_r196151411"},"pull_request":{"href":"https://api.github.com/repos/QISKit/qiskit-core/pulls/547"}}},"pull_request":{"url":"https://api.github.com/repos/QISKit/qiskit-core/pulls/547","id":193386835,"node_id":"MDExOlB1bGxSZXF1ZXN0MTkzMzg2ODM1","html_url":"https://github.com/QISKit/qiskit-core/pull/547","diff_url":"https://github.com/QISKit/qiskit-core/pull/547.diff","patch_url":"https://github.com/QISKit/qiskit-core/pull/547.patch","issue_url":"https://api.github.com/repos/QISKit/qiskit-core/issues/547","number":547,"state":"open","locked":false,"title":"Improve user authentication handling","user":{"login":"nonhermitian","id":1249193,"node_id":"MDQ6VXNlcjEyNDkxOTM=","avatar_url":"https://avatars1.githubusercontent.com/u/1249193?v=4","gravatar_id":"","url":"https://api.github.com/users/nonhermitian","html_url":"https://github.com/nonhermitian","followers_url":"https://api.github.com/users/nonhermitian/followers","following_url":"https://api.github.com/users/nonhermitian/following{/other_user}","gists_url":"https://api.github.com/users/nonhermitian/gists{/gist_id}","starred_url":"https://api.github.com/users/nonhermitian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nonhermitian/subscriptions","organizations_url":"https://api.github.com/users/nonhermitian/orgs","repos_url":"https://api.github.com/users/nonhermitian/repos","events_url":"https://api.github.com/users/nonhermitian/events{/privacy}","received_events_url":"https://api.github.com/users/nonhermitian/received_events","type":"User","site_admin":false},"body":"<!--- Provide a general summary of your changes in the Title above -->\r\n\r\n## Description\r\nWork to make changes inline with #540.\r\n\r\n- [x] Add ability to create, read, and write to local `qiskitrc` file.\r\n- [x] Auto-register providers after registering once (if so desired).\r\n- [x] Register via env variables.\r\n- [x] Register automatically via `Qconfig.py` if in local dir.\r\n- [x] Update documentation.\r\n\r\n### Summary of Changes Made\r\n\r\n- User credentials can now be stored in the `qiskitrc` file in the users `HOME/.qiskit` folder.\r\n- Calling `register()` with no arguments loads credentials from a `Qconfig.py` file in the `cwd`, the env vars `QE_TOKEN`, `QE_URL`, `QE_HUB`, `QE_GROUP`, and `QE_PROJECT`, then finally `qiskitrc`, in that order.\r\n- Provider base classes can now be named, and providers with the same name are not registered twice.\r\n- Can modify the `qiskitrc` file using `store`, `get`, and `remove` `_credentials` functions.\r\n- IBMQ provider is automatically named `ibmq`, where as the Q network provider is called `qnet`.\r\n- Can register both IBMQ and Q Network providers at same time.\r\n- Can remove a provider with new `unregister()` function.\r\n- Can register single provider (if many exist) by doing `register(provider_name='MY_PROVIDER')`.\r\n- Added `requires_ci` test decorator for testing registration routines that would break a local users registration.\r\n\r\n## Motivation and Context\r\nMake the end users life easier for registering providers.\r\n\r\n## How Has This Been Tested?\r\n\r\n## Screenshots (if appropriate):\r\n\r\n## Types of changes\r\n<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [X] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n\r\n## Checklist:\r\n<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->\r\n- [ ] My code follows the code style of this project.\r\n- [ ] My change requires a change to the documentation.\r\n- [ ] I have updated the documentation accordingly.\r\n- [ ] I have read the **CONTRIBUTING** document.\r\n- [ ] I have added tests to cover my changes.\r\n- [ ] All new and existing tests passed.","created_at":"2018-06-07T16:55:18Z","updated_at":"2018-06-18T17:04:18Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0d2c8cfe66714e7a1087f32762a30b6bfea1b92a","assignee":null,"assignees":[],"requested_reviewers":[{"login":"atilag","id":1304071,"node_id":"MDQ6VXNlcjEzMDQwNzE=","avatar_url":"https://avatars2.githubusercontent.com/u/1304071?v=4","gravatar_id":"","url":"https://api.github.com/users/atilag","html_url":"https://github.com/atilag","followers_url":"https://api.github.com/users/atilag/followers","following_url":"https://api.github.com/users/atilag/following{/other_user}","gists_url":"https://api.github.com/users/atilag/gists{/gist_id}","starred_url":"https://api.github.com/users/atilag/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atilag/subscriptions","organizations_url":"https://api.github.com/users/atilag/orgs","repos_url":"https://api.github.com/users/atilag/repos","events_url":"https://api.github.com/users/atilag/events{/privacy}","received_events_url":"https://api.github.com/users/atilag/received_events","type":"User","site_admin":false},{"login":"jaygambetta","id":15731369,"node_id":"MDQ6VXNlcjE1NzMxMzY5","avatar_url":"https://avatars2.githubusercontent.com/u/15731369?v=4","gravatar_id":"","url":"https://api.github.com/users/jaygambetta","html_url":"https://github.com/jaygambetta","followers_url":"https://api.github.com/users/jaygambetta/followers","following_url":"https://api.github.com/users/jaygambetta/following{/other_user}","gists_url":"https://api.github.com/users/jaygambetta/gists{/gist_id}","starred_url":"https://api.github.com/users/jaygambetta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaygambetta/subscriptions","organizations_url":"https://api.github.com/users/jaygambetta/orgs","repos_url":"https://api.github.com/users/jaygambetta/repos","events_url":"https://api.github.com/users/jaygambetta/events{/privacy}","received_events_url":"https://api.github.com/users/jaygambetta/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/QISKit/qiskit-core/pulls/547/commits","review_comments_url":"https://api.github.com/repos/QISKit/qiskit-core/pulls/547/comments","review_comment_url":"https://api.github.com/repos/QISKit/qiskit-core/pulls/comments{/number}","comments_url":"https://api.github.com/repos/QISKit/qiskit-core/issues/547/comments","statuses_url":"https://api.github.com/repos/QISKit/qiskit-core/statuses/5fbe701d97f6eacacbddcd265c257076e2e11875","head":{"label":"nonhermitian:configrc","ref":"configrc","sha":"5fbe701d97f6eacacbddcd265c257076e2e11875","user":{"login":"nonhermitian","id":1249193,"node_id":"MDQ6VXNlcjEyNDkxOTM=","avatar_url":"https://avatars1.githubusercontent.com/u/1249193?v=4","gravatar_id":"","url":"https://api.github.com/users/nonhermitian","html_url":"https://github.com/nonhermitian","followers_url":"https://api.github.com/users/nonhermitian/followers","following_url":"https://api.github.com/users/nonhermitian/following{/other_user}","gists_url":"https://api.github.com/users/nonhermitian/gists{/gist_id}","starred_url":"https://api.github.com/users/nonhermitian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nonhermitian/subscriptions","organizations_url":"https://api.github.com/users/nonhermitian/orgs","repos_url":"https://api.github.com/users/nonhermitian/repos","events_url":"https://api.github.com/users/nonhermitian/events{/privacy}","received_events_url":"https://api.github.com/users/nonhermitian/received_events","type":"User","site_admin":false},"repo":{"id":136189661,"node_id":"MDEwOlJlcG9zaXRvcnkxMzYxODk2NjE=","name":"qiskit-core","full_name":"nonhermitian/qiskit-core","owner":{"login":"nonhermitian","id":1249193,"node_id":"MDQ6VXNlcjEyNDkxOTM=","avatar_url":"https://avatars1.githubusercontent.com/u/1249193?v=4","gravatar_id":"","url":"https://api.github.com/users/nonhermitian","html_url":"https://github.com/nonhermitian","followers_url":"https://api.github.com/users/nonhermitian/followers","following_url":"https://api.github.com/users/nonhermitian/following{/other_user}","gists_url":"https://api.github.com/users/nonhermitian/gists{/gist_id}","starred_url":"https://api.github.com/users/nonhermitian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nonhermitian/subscriptions","organizations_url":"https://api.github.com/users/nonhermitian/orgs","repos_url":"https://api.github.com/users/nonhermitian/repos","events_url":"https://api.github.com/users/nonhermitian/events{/privacy}","received_events_url":"https://api.github.com/users/nonhermitian/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/nonhermitian/qiskit-core","description":"Quantum Information Science Kit for writing quantum computing experiments,  programs, and applications.","fork":true,"url":"https://api.github.com/repos/nonhermitian/qiskit-core","forks_url":"https://api.github.com/repos/nonhermitian/qiskit-core/forks","keys_url":"https://api.github.com/repos/nonhermitian/qiskit-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nonhermitian/qiskit-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nonhermitian/qiskit-core/teams","hooks_url":"https://api.github.com/repos/nonhermitian/qiskit-core/hooks","issue_events_url":"https://api.github.com/repos/nonhermitian/qiskit-core/issues/events{/number}","events_url":"https://api.github.com/repos/nonhermitian/qiskit-core/events","assignees_url":"https://api.github.com/repos/nonhermitian/qiskit-core/assignees{/user}","branches_url":"https://api.github.com/repos/nonhermitian/qiskit-core/branches{/branch}","tags_url":"https://api.github.com/repos/nonhermitian/qiskit-core/tags","blobs_url":"https://api.github.com/repos/nonhermitian/qiskit-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nonhermitian/qiskit-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nonhermitian/qiskit-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/nonhermitian/qiskit-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nonhermitian/qiskit-core/statuses/{sha}","languages_url":"https://api.github.com/repos/nonhermitian/qiskit-core/languages","stargazers_url":"https://api.github.com/repos/nonhermitian/qiskit-core/stargazers","contributors_url":"https://api.github.com/repos/nonhermitian/qiskit-core/contributors","subscribers_url":"https://api.github.com/repos/nonhermitian/qiskit-core/subscribers","subscription_url":"https://api.github.com/repos/nonhermitian/qiskit-core/subscription","commits_url":"https://api.github.com/repos/nonhermitian/qiskit-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/nonhermitian/qiskit-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/nonhermitian/qiskit-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/nonhermitian/qiskit-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/nonhermitian/qiskit-core/contents/{+path}","compare_url":"https://api.github.com/repos/nonhermitian/qiskit-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nonhermitian/qiskit-core/merges","archive_url":"https://api.github.com/repos/nonhermitian/qiskit-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nonhermitian/qiskit-core/downloads","issues_url":"https://api.github.com/repos/nonhermitian/qiskit-core/issues{/number}","pulls_url":"https://api.github.com/repos/nonhermitian/qiskit-core/pulls{/number}","milestones_url":"https://api.github.com/repos/nonhermitian/qiskit-core/milestones{/number}","notifications_url":"https://api.github.com/repos/nonhermitian/qiskit-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nonhermitian/qiskit-core/labels{/name}","releases_url":"https://api.github.com/repos/nonhermitian/qiskit-core/releases{/id}","deployments_url":"https://api.github.com/repos/nonhermitian/qiskit-core/deployments","created_at":"2018-06-05T14:27:15Z","updated_at":"2018-06-18T16:01:32Z","pushed_at":"2018-06-18T16:01:40Z","git_url":"git://github.com/nonhermitian/qiskit-core.git","ssh_url":"git@github.com:nonhermitian/qiskit-core.git","clone_url":"https://github.com/nonhermitian/qiskit-core.git","svn_url":"https://github.com/nonhermitian/qiskit-core","homepage":"https://qiskit.org","size":27788,"stargazers_count":0,"watchers_count":0,"language":"Python","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":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"QISKit:master","ref":"master","sha":"c07c7435ce60c180b0826b70b55d454eaaa7bc35","user":{"login":"QISKit","id":30696987,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMwNjk2OTg3","avatar_url":"https://avatars1.githubusercontent.com/u/30696987?v=4","gravatar_id":"","url":"https://api.github.com/users/QISKit","html_url":"https://github.com/QISKit","followers_url":"https://api.github.com/users/QISKit/followers","following_url":"https://api.github.com/users/QISKit/following{/other_user}","gists_url":"https://api.github.com/users/QISKit/gists{/gist_id}","starred_url":"https://api.github.com/users/QISKit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/QISKit/subscriptions","organizations_url":"https://api.github.com/users/QISKit/orgs","repos_url":"https://api.github.com/users/QISKit/repos","events_url":"https://api.github.com/users/QISKit/events{/privacy}","received_events_url":"https://api.github.com/users/QISKit/received_events","type":"Organization","site_admin":false},"repo":{"id":83821669,"node_id":"MDEwOlJlcG9zaXRvcnk4MzgyMTY2OQ==","name":"qiskit-core","full_name":"QISKit/qiskit-core","owner":{"login":"QISKit","id":30696987,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMwNjk2OTg3","avatar_url":"https://avatars1.githubusercontent.com/u/30696987?v=4","gravatar_id":"","url":"https://api.github.com/users/QISKit","html_url":"https://github.com/QISKit","followers_url":"https://api.github.com/users/QISKit/followers","following_url":"https://api.github.com/users/QISKit/following{/other_user}","gists_url":"https://api.github.com/users/QISKit/gists{/gist_id}","starred_url":"https://api.github.com/users/QISKit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/QISKit/subscriptions","organizations_url":"https://api.github.com/users/QISKit/orgs","repos_url":"https://api.github.com/users/QISKit/repos","events_url":"https://api.github.com/users/QISKit/events{/privacy}","received_events_url":"https://api.github.com/users/QISKit/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/QISKit/qiskit-core","description":"Quantum Information Science Kit for writing quantum computing experiments,  programs, and applications.","fork":false,"url":"https://api.github.com/repos/QISKit/qiskit-core","forks_url":"https://api.github.com/repos/QISKit/qiskit-core/forks","keys_url":"https://api.github.com/repos/QISKit/qiskit-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/QISKit/qiskit-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/QISKit/qiskit-core/teams","hooks_url":"https://api.github.com/repos/QISKit/qiskit-core/hooks","issue_events_url":"https://api.github.com/repos/QISKit/qiskit-core/issues/events{/number}","events_url":"https://api.github.com/repos/QISKit/qiskit-core/events","assignees_url":"https://api.github.com/repos/QISKit/qiskit-core/assignees{/user}","branches_url":"https://api.github.com/repos/QISKit/qiskit-core/branches{/branch}","tags_url":"https://api.github.com/repos/QISKit/qiskit-core/tags","blobs_url":"https://api.github.com/repos/QISKit/qiskit-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/QISKit/qiskit-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/QISKit/qiskit-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/QISKit/qiskit-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/QISKit/qiskit-core/statuses/{sha}","languages_url":"https://api.github.com/repos/QISKit/qiskit-core/languages","stargazers_url":"https://api.github.com/repos/QISKit/qiskit-core/stargazers","contributors_url":"https://api.github.com/repos/QISKit/qiskit-core/contributors","subscribers_url":"https://api.github.com/repos/QISKit/qiskit-core/subscribers","subscription_url":"https://api.github.com/repos/QISKit/qiskit-core/subscription","commits_url":"https://api.github.com/repos/QISKit/qiskit-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/QISKit/qiskit-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/QISKit/qiskit-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/QISKit/qiskit-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/QISKit/qiskit-core/contents/{+path}","compare_url":"https://api.github.com/repos/QISKit/qiskit-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/QISKit/qiskit-core/merges","archive_url":"https://api.github.com/repos/QISKit/qiskit-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/QISKit/qiskit-core/downloads","issues_url":"https://api.github.com/repos/QISKit/qiskit-core/issues{/number}","pulls_url":"https://api.github.com/repos/QISKit/qiskit-core/pulls{/number}","milestones_url":"https://api.github.com/repos/QISKit/qiskit-core/milestones{/number}","notifications_url":"https://api.github.com/repos/QISKit/qiskit-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/QISKit/qiskit-core/labels{/name}","releases_url":"https://api.github.com/repos/QISKit/qiskit-core/releases{/id}","deployments_url":"https://api.github.com/repos/QISKit/qiskit-core/deployments","created_at":"2017-03-03T17:02:42Z","updated_at":"2018-06-18T16:58:09Z","pushed_at":"2018-06-18T16:15:55Z","git_url":"git://github.com/QISKit/qiskit-core.git","ssh_url":"git@github.com:QISKit/qiskit-core.git","clone_url":"https://github.com/QISKit/qiskit-core.git","svn_url":"https://github.com/QISKit/qiskit-core","homepage":"https://qiskit.org","size":27717,"stargazers_count":1813,"watchers_count":1813,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":514,"mirror_url":null,"archived":false,"open_issues_count":69,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":514,"open_issues":69,"watchers":1813,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/QISKit/qiskit-core/pulls/547"},"html":{"href":"https://github.com/QISKit/qiskit-core/pull/547"},"issue":{"href":"https://api.github.com/repos/QISKit/qiskit-core/issues/547"},"comments":{"href":"https://api.github.com/repos/QISKit/qiskit-core/issues/547/comments"},"review_comments":{"href":"https://api.github.com/repos/QISKit/qiskit-core/pulls/547/comments"},"review_comment":{"href":"https://api.github.com/repos/QISKit/qiskit-core/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/QISKit/qiskit-core/pulls/547/commits"},"statuses":{"href":"https://api.github.com/repos/QISKit/qiskit-core/statuses/5fbe701d97f6eacacbddcd265c257076e2e11875"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"delapuente"}}