Repository: datalad/datalad

Issue:
Reenable github integration test
A failing test of special-interest functionality was a blocker to an urgent global fix #4078

I disabled the test with cad795b0f73a952e38214c62fe1a35eef43d258a:

Please bring it back @yarikoptic 

Discussion:

Patch:
diff --git a/datalad/consts.py b/datalad/consts.py
index 76382f217..bac50b1a1 100644
--- a/datalad/consts.py
+++ b/datalad/consts.py
@@ -71,6 +71,7 @@ PRE_INIT_COMMIT_SHA = '4b825dc642cb6eb9a060e54bf8d69288fbee4904'
 # git/datalad configuration item to provide a token for github
 CONFIG_HUB_TOKEN_FIELD = 'hub.oauthtoken'
 GITHUB_LOGIN_URL = 'https://github.com/login'
+GITHUB_TOKENS_URL = 'https://github.com/settings/tokens'
 
 # format of git-annex adjusted branch names
 ADJUSTED_BRANCH_EXPR = re.compile(r'^adjusted/(?P<name>[^(]+)\(.*\)$')
diff --git a/datalad/distribution/create_sibling_github.py b/datalad/distribution/create_sibling_github.py
index 78b6e4950..120e8e31f 100644
--- a/datalad/distribution/create_sibling_github.py
+++ b/datalad/distribution/create_sibling_github.py
@@ -51,28 +51,33 @@ template_fx = lambda x: re.sub(r'\s+', '_', re.sub(r'[/\\]+', '-', x))
 
 @build_doc
 class CreateSiblingGithub(Interface):
-    """Create dataset sibling on Github.
+    """Create dataset sibling on GitHub.
 
     An existing GitHub project, or a project created via the GitHub website can
     be configured as a sibling with the :command:`siblings` command.
-    Alternatively, this command can create a repository under a user's Github
+    Alternatively, this command can create a repository under a user's GitHub
     account, or any organization a user is a member of (given appropriate
-    permissions). This is particulary helpful for recursive sibling creation
+    permissions). This is particularly helpful for recursive sibling creation
     for subdatasets. In such a case, a dataset hierarchy is represented as a
     flat list of GitHub repositories.
 
-    Github cannot host dataset content. However, in combination with
-    other data sources (and siblings), publishing a dataset to Github can
+    GitHub cannot host dataset content (but LFS special remote could be used,
+    http://handbook.datalad.org/r.html?LFS). However, in combination with
+    other data sources (and siblings), publishing a dataset to GitHub can
     facilitate distribution and exchange, while still allowing any dataset
     consumer to obtain actual data content from alternative sources.
 
-    For Github authentication user credentials can be given as arguments.
-    Alternatively, they are obtained interactively or queried from the systems
-    credential store. Lastly, an *oauth* token stored in the Git
-    configuration under variable *hub.oauthtoken* will be used automatically.
-    Such a token can be obtained, for example, using the commandline Github
-    interface (https://github.com/sociomantic/git-hub) by running:
-    :kbd:`git hub setup` (if no 2FA is used).
+    For GitHub authentication a personal access token is needed.
+    Such a token can be generated by visiting https://github.com/settings/tokens
+    or navigating via GitHub Web UI through:
+    Settings -> Developer settings -> Personal access tokens.
+    We will first consult Git configuration *hub.oauthtoken* for tokens possibly
+    available there, and then from the system credential store.
+
+    If you provide [PY: `github_login` PY][CMD: --github-login NAME CMD],
+    we will consider only tokens associated with that GitHub login from
+    *hub.oauthtoken*, and store/check the token in credential store as associated
+    with that specific login name.
     """
     # XXX prevent common args from being added to the docstring
     _no_eval_results = True
@@ -87,7 +92,7 @@ class CreateSiblingGithub(Interface):
         reponame=Parameter(
             args=('reponame',),
             metavar='REPONAME',
-            doc="""Github repository name. When operating recursively,
+            doc="""GitHub repository name. When operating recursively,
             a suffix will be appended to this name for each subdataset""",
             constraints=EnsureStr()),
         recursive=recursion_flag,
@@ -95,7 +100,7 @@ class CreateSiblingGithub(Interface):
         name=Parameter(
             args=('-s', '--name',),
             metavar='NAME',
-            doc="""name to represent the Github repository in the local
+            doc="""name to represent the GitHub repository in the local
             dataset installation""",
             constraints=EnsureStr()),
         existing=Parameter(
@@ -116,18 +121,13 @@ class CreateSiblingGithub(Interface):
             args=('--github-login',),
             constraints=EnsureStr() | EnsureNone(),
             metavar='NAME',
-            doc="""Github user name or access token"""),
-        github_passwd=Parameter(
-            args=('--github-passwd',),
-            constraints=EnsureStr() | EnsureNone(),
-            metavar='PASSWORD',
-            doc="""Github user password"""),
+            doc="""GitHub user name or access token"""),
         github_organization=Parameter(
             args=('--github-organization',),
             constraints=EnsureStr() | EnsureNone(),
             metavar='NAME',
             doc="""If provided, the repository will be created under this
-            Github organization. The respective Github user needs appropriate
+            GitHub organization. The respective GitHub user needs appropriate
             permissions."""),
         access_protocol=Parameter(
             args=("--access-protocol",),
@@ -137,7 +137,7 @@ class CreateSiblingGithub(Interface):
         dryrun=Parameter(
             args=("--dryrun",),
             action="store_true",
-            doc="""If this flag is set, no communication with Github is
+            doc="""If this flag is set, no communication with GitHub is
             performed, and no repositories will be created. Instead
             would-be repository names are reported for all relevant datasets
             """),
@@ -153,7 +153,6 @@ class CreateSiblingGithub(Interface):
             name='github',
             existing='error',
             github_login=None,
-            github_passwd=None,
             github_organization=None,
             access_protocol='https',
             publish_depends=None,
@@ -164,7 +163,7 @@ class CreateSiblingGithub(Interface):
 
         # what to operate on
         ds = require_dataset(
-            dataset, check_installed=True, purpose='create Github sibling')
+            dataset, check_installed=True, purpose='create GitHub sibling')
         # gather datasets and essential info
         # dataset instance and mountpoint relative to the top
         toprocess = [(ds, '')]
@@ -202,9 +201,9 @@ class CreateSiblingGithub(Interface):
             # all skipped
             return []
 
-        # actually make it happen on Github
+        # actually make it happen on GitHub
         rinfo = _make_github_repos(
-            github_login, github_passwd, github_organization, filtered,
+            github_login, github_organization, filtered,
             existing, access_protocol, dryrun)
 
         # lastly configure the local datasets
@@ -224,7 +223,7 @@ class CreateSiblingGithub(Interface):
                     # TODO fetch=True, maybe only if one existed already
                     publish_depends=publish_depends)
 
-        # TODO let submodule URLs point to Github (optional)
+        # TODO let submodule URLs point to GitHub (optional)
         return rinfo
 
     @staticmethod
diff --git a/datalad/support/github_.py b/datalad/support/github_.py
index d8771fd9f..3f442cd70 100644
--- a/datalad/support/github_.py
+++ b/datalad/support/github_.py
@@ -11,10 +11,10 @@
 from .. import cfg
 from ..consts import (
     CONFIG_HUB_TOKEN_FIELD,
-    GITHUB_LOGIN_URL,
+    GITHUB_TOKENS_URL,
 )
 from ..dochelpers import exc_str
-from ..downloaders.credentials import UserPassword
+from ..downloaders.credentials import Token
 from ..ui import ui
 from ..utils import unique, assure_list, assure_tuple_or_list
 
@@ -54,7 +54,10 @@ def get_repo_url(repo, access_protocol, github_login):
 
 def _token_str(token):
     """Shorten token so we do not leak sensitive info into the logs"""
-    return token[:3] + '...' + token[-3:]
+    if len(token) < 10:
+        # for some reason too short to reveal even a part of it
+        return "???TOOSHORT"
+    return token[:3] + '...'
 
 
 def _get_tokens_for_login(login, tokens):
@@ -76,7 +79,7 @@ def _get_tokens_for_login(login, tokens):
     return selected_tokens
 
 
-def _gen_github_ses(github_login, github_passwd):
+def _gen_github_ses(github_login):
     """Generate viable Github sessions
 
     The idea is that we keep trying "new" ways to authenticate until we either
@@ -85,206 +88,86 @@ def _gen_github_ses(github_login, github_passwd):
     Parameters
     ----------
     github_login:
-    github_passwd:
 
     Yields
     -------
-    Github, credential
-      credential might be None if there is no credential associated as when
-      we consider tokens from the config (instead of credentials store)
+    Github, token_str
+      token_str is a shortened token string, so we do not reveal secret in full
 
     """
     if github_login == 'disabledloginfortesting':
         raise gh.BadCredentialsException(403, 'no login specified')
 
     # see if we have tokens - might be many. Doesn't cost us much so get at once
-    all_tokens = tokens = unique(
+    tokens = unique(
         assure_list(cfg.get(CONFIG_HUB_TOKEN_FIELD, None)),
         reverse=True
     )
 
-    if not (github_login and github_passwd):
-        # we don't have both
-        # Check the tokens.  If login is provided, only the token(s) for the
-        # login are considered. We consider oauth tokens as stored/used by
-        # https://github.com/sociomantic/git-hub
+    # Check the tokens.  If login is provided, only the token(s) for the
+    # login are considered. We consider oauth tokens as stored/used by
+    # https://github.com/sociomantic/git-hub
 
-        if github_login and tokens:
-            # Take only the tokens which are Ok and correspond to that login
-            tokens = _get_tokens_for_login(github_login, tokens)
+    if github_login and tokens:
+        # Take only the tokens which are Ok and correspond to that login
+        tokens = _get_tokens_for_login(github_login, tokens)
 
-        for token in tokens:
-            try:
-                yield(gh.Github(token), None)
-            except gh.BadCredentialsException as exc:
-                lgr.debug("Failed to obtain Github session for token %s",
-                          _token_str(token))
-
-    # We got here so time to try credentials
-
-    # if login and passwd were provided - try that one first
-    try_creds = github_login and github_passwd
-    try_login = bool(github_login)
+    for token in tokens:
+        try:
+            yield gh.Github(token), _token_str(token)
+        except gh.BadCredentialsException as exc:
+            lgr.debug("Failed to obtain Github session for token %s: %s",
+                      _token_str(token), exc_str(exc))
 
+    # We got here so time to get/store token from credential store
+    cred = _get_github_cred(github_login)
     while True:
-        if try_creds:
-            # So we do not store them into cred store and thus do not need to
-            # remove
-            cred = None
-            ses = gh.Github(github_login, password=github_passwd)
-            user_name = github_login
-            try_creds = None
-        else:
-            # make it per user if github_login was provided. People might want
-            # to use different credentials etc
-            cred = _get_github_cred(github_login)
-            # if github_login was provided, we should first try it as is,
-            # and only ask for password
-            if not cred.is_known:
-                creds = {'user': github_login} if try_login else {}
-                cred.enter_new(**creds)
-            try_login = None
-            creds = cred()
-            user_name = creds['user']
-            ses = gh.Github(user_name, password=creds['password'])
-        # Get user and list its authorizations to verify that we do
-        # not need 2FA
-        user = ses.get_user()
+        token = cred()['token']
         try:
-            user_name_ = user.name  # should trigger need for 2FA
-            # authorizations = list(user.get_authorizations())
-            yield ses, cred
+            # ??? there was a comment   # None for cred so does not get killed
+            # while returning None as cred.  Effect was not fully investigated from changing to return _token_str
+            yield gh.Github(token), _token_str(token)
         except gh.BadCredentialsException as exc:
-            lgr.error("Bad Github credentials")
-        except (gh.TwoFactorException, gh.GithubException) as exc:
-            # With github 1.43.5, in comparison to 1.40 we get a "regular"
-            # GithubException for some reason, yet to check/report upstream
-            # so we will just check for the expected in such cases messages
-            if not (
-                isinstance(exc, gh.GithubException) and
-                getattr(exc, 'data', {}).get('message', '').startswith(
-                    'Must specify two-factor authentication OTP code')
-            ):
-                raise
-
-            # 2FA - we need to interact!
-            if not ui.is_interactive:
-                # Or should we just allow to pass
-                raise RuntimeError(
-                    "Cannot proceed with 2FA for Github - UI is not interactive. "
-                    "Please 'manually' establish token based authentication "
-                    "with Github and specify it in  %s  config"
-                    % CONFIG_HUB_TOKEN_FIELD
-                )
-            if not ui.yesno(
-                title="GitHub credentials - %s uses 2FA" % user_name,
-                text="Generate a GitHub token to proceed? "
-                     "If you already have a token for the account, "
-                     "just say 'no' now and specify it in config (%s), "
-                     "otherwise say 'yes' "
-                    % (CONFIG_HUB_TOKEN_FIELD,)
-                ):
-                return
-
-            token = _get_2fa_token(user)
-            yield gh.Github(token), None  # None for cred so does not get killed
-
+            lgr.debug("Failed to obtain Github session for token %s: %s",
+                      _token_str(token), exc_str(exc))
         # if we are getting here, it means we are asked for more and thus
         # aforementioned one didn't work out :-/
         if ui.is_interactive:
             if cred is not None:
                 if ui.yesno(
                     title="GitHub credentials",
-                    text="Do you want to try (re)entering GitHub credentials?"
+                    text="Do you want to try (re)entering GitHub personal access token?"
                 ):
                     cred.enter_new()
                 else:
                     break
         else:
             # Nothing we could do
-            lgr.debug(
+            lgr.warning(
                 "UI is not interactive - we cannot query for more credentials"
             )
             break
 
 
 def _get_github_cred(github_login=None):
-    """Helper to create github credential"""
+    """Helper to create a github token credential"""
     cred_identity = "%s@github" % github_login if github_login else "github"
-    return UserPassword(cred_identity, GITHUB_LOGIN_URL)
-
-
-def _get_2fa_token(user):
-    one_time_password = ui.question(
-        "2FA one time password", hidden=True, repeat=False
-    )
-    token_note = cfg.obtain('datalad.github.token-note')
-    try:
-        # TODO: can fail if already exists -- handle!?
-        # in principle there is .authorization.delete()
-        auth = user.create_authorization(
-            scopes=['user', 'repo'],  # TODO: Configurable??
-            note=token_note,  # TODO: Configurable??
-            onetime_password=one_time_password)
-    except gh.GithubException as exc:
-        if (exc.status == 422  # "Unprocessable Entity"
-                and exc.data.get('errors', [{}])[0].get('code') == 'already_exists'
-        ):
-            raise ValueError(
-                "Token %r already exists. If you specified "
-                "password -- don't, and specify token in configuration as %s. "
-                "If token already exists and you want to generate a new one "
-                "anyways - specify a new one via 'datalad.github.token-note' "
-                "configuration variable"
-                % (token_note, CONFIG_HUB_TOKEN_FIELD)
-            )
-        raise
-    token = auth.token
-    where_to_store = ui.question(
-        title="Where to store token %s?" % _token_str(token),
-        text="Empty string would result in the token not being "
-             "stored for future reuse, so you will have to adjust "
-             "configuration manually",
-        choices=["global", "local", ""]
-    )
-    if where_to_store:
-        try:
-            # Using .add so other (possibly still legit tokens) are not lost
-            if cfg.get(CONFIG_HUB_TOKEN_FIELD, None):
-                lgr.info("Found that there is some other known tokens already, "
-                         "adding one more")
-            cfg.add(CONFIG_HUB_TOKEN_FIELD, auth.token,
-                    where=where_to_store)
-            lgr.info("Stored %s=%s in %s config.",
-                     CONFIG_HUB_TOKEN_FIELD, _token_str(token),
-                     where_to_store)
-        except Exception as exc:
-            lgr.error("Failed to store token: %s",
-                      # sanitize away the token
-                      exc_str(exc).replace(token, _token_str(token)))
-            # assuming that it is ok to display the token to the user, since
-            # otherwise it would be just lost.  ui  shouldn't log it (at least
-            # ATM)
-            ui.error(
-                "Failed to store the token (%s), please store manually as %s"
-                % (token, CONFIG_HUB_TOKEN_FIELD)
-            )
-    return token
+    return Token(cred_identity, GITHUB_TOKENS_URL)
 
 
 def _gen_github_entity(
-    github_login, github_passwd,
+    github_login,
     github_organization
 ):
-    for ses, cred in _gen_github_ses(github_login, github_passwd):
+    for ses, token_str in _gen_github_ses(github_login):
         if github_organization:
             try:
                 org = ses.get_organization(github_organization)
                 lgr.info(
                     "Successfully obtained information about organization %s "
-                    "using %s credential", github_organization, cred
+                    "using token %s", github_organization, token_str
                 )
-                yield org, cred
+                yield org, token_str
             except gh.UnknownObjectException as e:
                 # yoh thinks it might be due to insufficient credentials?
                 raise ValueError('unknown organization "{}" [{}]'.format(
@@ -292,18 +175,18 @@ def _gen_github_entity(
                                  exc_str(e)))
             except gh.BadCredentialsException as e:
                 lgr.warning(
-                    "Having authenticated using %s, we failed (%s) to access "
+                    "Having authenticated using a token %s, we failed (%s) to access "
                     "information about organization %s. We will try next "
-                    "authentication method (if any left available)",
-                    cred or "token", e, github_organization
+                    "token (if any left available)",
+                    token_str, e, github_organization
                 )
                 continue
         else:
-            yield ses.get_user(), cred
+            yield ses.get_user(), token_str
 
 
 def _make_github_repos(
-        github_login, github_passwd, github_organization, rinfo, existing,
+        github_login, github_organization, rinfo, existing,
         access_protocol, dryrun):
     res = []
     if not rinfo:
@@ -312,11 +195,10 @@ def _make_github_repos(
     ncredattempts = 0
     # determine the entity under which to create the repos.  It might be that
     # we would need to check a few credentials
-    for entity, cred in _gen_github_entity(
+    for entity, token_str in _gen_github_entity(
             github_login,
-            github_passwd,
             github_organization):
-        lgr.debug("Using entity %s with credential %s", entity, cred)
+        lgr.debug("Using entity %s with token %s", entity, token_str)
         ncredattempts += 1
         for ds, reponame in rinfo:
             lgr.debug("Trying to create %s for %s", reponame, ds)
@@ -332,10 +214,24 @@ def _make_github_repos(
                 # but with a dataset prepended to the record
                 res.append((ds,) + assure_tuple_or_list(res_))
             except (gh.BadCredentialsException, gh.GithubException) as e:
-                if not isinstance(e, gh.BadCredentialsException) and e.status != 403:
+                hint = None
+                if (isinstance(e, gh.BadCredentialsException) and e.status != 403):
                     # e.g. while deleting a repository, just a generic GithubException is
-                    # raised but code is 403.  That one we process, the rest - re-raise
+                    # raised but code is 403. At least it is about permissions
+                    pass
+                elif e.status == 404:
+                    # github hides away if repository might already be existing
+                    # if token does not have sufficient credentials
+                    hint = "Likely the token lacks sufficient permissions to "\
+                            "assess if repository already exists or not"
+                else:
+                    # Those above we process, the rest - re-raise
                     raise
+                lgr.warning("Failed to create repository while using token %s: %s%s",
+                            token_str,
+                            exc_str(e),
+                            (" Hint: %s" % hint) if hint else "")
+
                 if res:
                     # so we have succeeded with at least one repo already -
                     # we should not try any other credential.
@@ -344,11 +240,6 @@ def _make_github_repos(
                     # across different organizations? but it is not the case here
                     # IMHO (-- yoh)
                     raise e
-                # things blew up, wipe out cred store, if anything is in it
-                if cred:
-                    lgr.warning("Authentication failed using %s.", cred.name)
-                else:
-                    lgr.warning("Authentication failed using a token.")
                 break  # go to the next attempt to authenticate
         if res:
             return res
@@ -423,11 +314,21 @@ def _make_github_repo(github_login, entity, reponame, existing, access_protocol,
                 has_downloads=False,
                 auto_init=False)
         except gh.GithubException as e:
-            msg = "Github {}: {}".format(
+            if e.status == 404:
+                # can happen if credentials are not good enough!
+                raise
+            msg = "Github {} ({})".format(
                 e.data.get('message', str(e) or 'unknown'),
-                ', '.join([err.get('message')
-                           for err in e.data.get('errors', [])
-                           if 'message' in err]))
+                e.data.get('documentation_url', 'no url')
+            )
+            if e.data.get('errors'):
+                msg += ': {}'.format(
+                    ', '.join(
+                        [
+                            err.get('message')
+                            for err in e.data.get('errors', [])
+                            if 'message' in err
+                        ]))
             raise RuntimeError(msg)
 
     if repo is None and not dryrun:
diff --git a/tools/ci/prep-travis-forssh.sh b/tools/ci/prep-travis-forssh.sh
index bf5e0f651..86e400236 100755
--- a/tools/ci/prep-travis-forssh.sh
+++ b/tools/ci/prep-travis-forssh.sh
@@ -23,11 +23,6 @@ StrictHostKeyChecking no
 IdentityFile /tmp/dl-test-ssh-id
 EOF
 
-ls -l "$HOME/.ssh"
-chmod go-rwx -R "$HOME/.ssh"
-ls -ld "$HOME/.ssh"
-ls -l "$HOME/.ssh"
-
 ssh-keygen -f /tmp/dl-test-ssh-id -N ""
 
 curl -fSsL \


Test patch:
diff --git a/datalad/core/distributed/tests/test_clone.py b/datalad/core/distributed/tests/test_clone.py
index df7522ee1..1b87662ca 100644
--- a/datalad/core/distributed/tests/test_clone.py
+++ b/datalad/core/distributed/tests/test_clone.py
@@ -362,23 +362,9 @@ def check_reckless(annex, src_path, top_path, sharedpath):
         raise SkipTest("Remainder of test needs proper filesystem permissions")
 
     if annex:
-        if ds.repo.git_annex_version < "8.20200908":
-            # TODO: Drop when GIT_ANNEX_MIN_VERSION is at least 8.20200908.
-
-            # the standard setup keeps the annex locks accessible to the user only
-            nok_((ds.pathobj / '.git' / 'annex' / 'index.lck').stat().st_mode \
-                 & stat.S_IWGRP)
-        else:
-            # umask might be such (e.g. 002) that group write permissions are inherited, so
-            # for the next test we should check if that is the case on some sample file
-            dltmp_path = ds.pathobj / '.git' / "dltmp"
-            dltmp_path.write_text('')
-            default_grp_write_perms = dltmp_path.stat().st_mode & stat.S_IWGRP
-            dltmp_path.unlink()
-            # the standard setup keeps the annex locks following umask inheritance
-            eq_((ds.pathobj / '.git' / 'annex' / 'index.lck').stat().st_mode \
-                 & stat.S_IWGRP, default_grp_write_perms)
-
+        # the standard setup keeps the annex locks accessible to the user only
+        nok_((ds.pathobj / '.git' / 'annex' / 'index.lck').stat().st_mode \
+             & stat.S_IWGRP)
         # but we can set it up for group-shared access too
         sharedds = clone(
             src, sharedpath,
diff --git a/datalad/distribution/tests/test_create_github.py b/datalad/distribution/tests/test_create_github.py
index 2413e14af..7e3fa3c93 100644
--- a/datalad/distribution/tests/test_create_github.py
+++ b/datalad/distribution/tests/test_create_github.py
@@ -114,31 +114,19 @@ def test_integration1_yarikoptic():
     # use case 1 - oauthtoken is known to git config, no 2FA (although irrelevant)
     check_integration1(
         'yarikoptic',
-        oauthtokens='does not matter - vcr has "token"'
+        oauthtokens='secret-token',
     )
 
 
-#@skip_if_no_network
-#@use_cassette('github_datalad_tester')
-#@with_testsui(responses=[
-#    'datalad-tester',
-#    'secret-password',
-#    'yes',      # Generate a GitHub token?
-#    '2FA code', # VCR tape has a real one
-#    'local',    # Where to store the token?
-#])
-#def test_integration1_datalad_tester():
-#    # use case 2 - nothing is known, 2FA, would generate 'DataLad token', and save it
-#    check_integration1('datalad-tester')
-
-
 @skip_if_no_network
 @use_cassette('github_datalad_tester_org')
 @with_testsui(responses=[
-     'secret-password',
-     'yes',      # Generate a GitHub token?
-     '2FA code', # VCR tape has a real one
-     'local',    # Where to store the token?
+    # place a real token here if regenerating the tape, and then
+    # sed -i \
+    # -e 's,21...................................11f,secret-token, g'\
+    # datalad/distribution/tests/vcr_cassettes/github_datalad_tester_org.yaml\
+    # datalad/distribution/tests/test_create_github.py
+      'secret-token',
 ])
 def test_integration1_datalad_tester_org():
     # similar to use case 2 but into another organization,
diff --git a/datalad/distribution/tests/vcr_cassettes/github_datalad_tester.yaml b/datalad/distribution/tests/vcr_cassettes/github_datalad_tester.yaml
deleted file mode 100644
index 608cf6a56..000000000
--- a/datalad/distribution/tests/vcr_cassettes/github_datalad_tester.yaml
+++ /dev/null
@@ -1,446 +0,0 @@
-interactions:
-- request:
-    body: null
-    headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [Basic XXX==]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
-    method: GET
-    uri: https://api.github.com/user
-  response:
-    body: {string: !!python/unicode '{"message":"Must specify two-factor authentication
-        OTP code.","documentation_url":"https://developer.github.com/v3/auth#working-with-two-factor-authentication"}'}
-    headers:
-      access-control-allow-origin: ['*']
-      access-control-expose-headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      content-length: ['160']
-      content-security-policy: [default-src 'none']
-      content-type: [application/json; charset=utf-8]
-      date: ['Tue, 23 Apr 2019 02:43:45 GMT']
-      referrer-policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      server: [GitHub.com]
-      status: [401 Unauthorized]
-      strict-transport-security: [max-age=31536000; includeSubdomains; preload]
-      x-content-type-options: [nosniff]
-      x-frame-options: [deny]
-      x-github-media-type: [github.v3; format=json]
-      x-github-otp: [required; app]
-      x-github-request-id: ['B470:108F:352213:68BDA2:5CBE7BE1']
-      x-ratelimit-limit: ['60']
-      x-ratelimit-remaining: ['58']
-      x-ratelimit-reset: ['1555991025']
-      x-xss-protection: [1; mode=block]
-    status: {code: 401, message: Unauthorized}
-- request:
-    body: !!python/unicode '{"note": "DataLad", "scopes": ["user", "repo"]}'
-    headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [Basic XXX==]
-      Connection: [keep-alive]
-      Content-Length: ['47']
-      Content-Type: [application/json]
-      User-Agent: [PyGithub/Python]
-      X-GitHub-OTP: ['686273']
-    method: POST
-    uri: https://api.github.com/authorizations
-  response:
-    body: {string: !!python/unicode '{"id":282583716,"url":"https://api.github.com/authorizations/282583716","app":{"name":"DataLad","url":"https://developer.github.com/v3/oauth_authorizations/","client_id":"00000000000000000000"},"token":"token","hashed_token":"XXX","token_last_eight":"3e6cde8a","note":"DataLad","note_url":null,"created_at":"2019-04-23T02:43:58Z","updated_at":"2019-04-23T02:43:58Z","scopes":["user","repo"],"fingerprint":null}'}
-    headers:
-      access-control-allow-origin: ['*']
-      access-control-expose-headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      cache-control: ['private, max-age=60, s-maxage=60']
-      content-length: ['506']
-      content-security-policy: [default-src 'none']
-      content-type: [application/json; charset=utf-8]
-      date: ['Tue, 23 Apr 2019 02:43:58 GMT']
-      etag: ['"48764ef7692db900147b1e18699d7507"']
-      location: ['https://api.github.com/authorizations/282583716']
-      referrer-policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      server: [GitHub.com]
-      status: [201 Created]
-      strict-transport-security: [max-age=31536000; includeSubdomains; preload]
-      vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      x-content-type-options: [nosniff]
-      x-frame-options: [deny]
-      x-github-media-type: [github.v3; format=json]
-      x-github-request-id: ['B470:108F:3525DB:68BDAA:5CBE7BE1']
-      x-ratelimit-limit: ['5000']
-      x-ratelimit-remaining: ['4999']
-      x-ratelimit-reset: ['1555991038']
-      x-xss-protection: [1; mode=block]
-    status: {code: 201, message: Created}
-- request:
-    body: null
-    headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [!!python/unicode token token]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
-    method: GET
-    uri: https://api.github.com/user
-  response:
-    body:
-      string: !!binary |
-        H4sIAAAAAAAAA51UTY/aMBD9Lz4D+SBlm0jVHraXHtrVSrSqeokcxwS3jm3ZDpSN+O99TsLSsitV
-        ChfweObN85t59ETqRihSkJp6Kmm99Nx5bsmCiJoUaZpn6/x9siBK17wMIfL549Pm2/cvkv38dHrc
-        Pj0/bpvfSKcHANiysxI5e++NK6JoDLpk1Qi/76rOccu08lz5FdNt1EWXBveHDxlAGjvBDJ0QuIEz
-        YkIaywHnolfE976VNzzG9kPRq/SdllIfgXTL/f/NopdaUB1/C9XMxkFtH2m/55ARTzsHQYTzc4gN
-        dX0UvjC1gOQwHcvrGeSmSlA7KrDqI8uNHiC7yjErjBdazSH5Tz3wtG2oEs90Lh7qHWACvTl0hjrU
-        8wP2cw7AWNhHxooDZacgkeWMiwNknw16gwBMfzIc7viKFQlDEJ6XtG6DiXdUOg6v0hYJqpNyQbDy
-        hqrT5VjB7pM/Yc/JCysIBySp2SA97h9OFQxhKONBj5YKmHrE2wvLaSVf8CuhL1emq6Rg5ShjkcQL
-        MkWGZSQFAle/XE/Y+uGOAdhDKepBII2TzTKJl0m+TfJiHRfr9Q9Q6Qwo/5WTL+P1Ms62cVakSLsL
-        OYP60OTa1Wv8tZWX+MQPHcM+12/Ea+F+wYG0wSuTNGgoJa20pV7b8R3+qMsdZTiXtINhlRcX7bzt
-        MAIjKXTsp1GQneVByVHRIr/bvNukWZ6/BX1DM4nxOZ//AM0PTWioBQAA
-    headers:
-      access-control-allow-origin: ['*']
-      access-control-expose-headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      cache-control: ['private, max-age=60, s-maxage=60']
-      content-encoding: [gzip]
-      content-security-policy: [default-src 'none']
-      content-type: [application/json; charset=utf-8]
-      date: ['Tue, 23 Apr 2019 02:44:05 GMT']
-      etag: [W/"27d5cdd87627495e3c3f2702d8cf37ef"]
-      last-modified: ['Mon, 04 Mar 2019 04:29:37 GMT']
-      referrer-policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      server: [GitHub.com]
-      status: [200 OK]
-      strict-transport-security: [max-age=31536000; includeSubdomains; preload]
-      transfer-encoding: [chunked]
-      vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      x-accepted-oauth-scopes: ['']
-      x-content-type-options: [nosniff]
-      x-frame-options: [deny]
-      x-github-media-type: [github.v3; format=json]
-      x-github-request-id: ['CB28:7199:B3E7B:1F236C:5CBE7BF5']
-      x-oauth-scopes: ['user, repo']
-      x-ratelimit-limit: ['5000']
-      x-ratelimit-remaining: ['4998']
-      x-ratelimit-reset: ['1555991038']
-      x-xss-protection: [1; mode=block]
-    status: {code: 200, message: OK}
-- request:
-    body: null
-    headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [!!python/unicode token token]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
-    method: GET
-    uri: https://api.github.com/repos/datalad-tester/test_integration1
-  response:
-    body:
-      string: !!binary |
-        H4sIAAAAAAAAAw3JMQ6AIAwAwK+Yuho6uPEAR79gEBogAUqgsBj/rrfeA5l6N55Aw8myHDyKgw0c
-        25GpiJHI5Rot/R9EateIjiYlrtSUjxLGrSxnnDs2qtxx9STwfutuZdhYAAAA
-    headers:
-      access-control-allow-origin: ['*']
-      access-control-expose-headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      content-encoding: [gzip]
-      content-security-policy: [default-src 'none']
-      content-type: [application/json; charset=utf-8]
-      date: ['Tue, 23 Apr 2019 02:44:05 GMT']
-      referrer-policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      server: [GitHub.com]
-      status: [404 Not Found]
-      strict-transport-security: [max-age=31536000; includeSubdomains; preload]
-      transfer-encoding: [chunked]
-      x-accepted-oauth-scopes: [repo]
-      x-content-type-options: [nosniff]
-      x-frame-options: [deny]
-      x-github-media-type: [github.v3; format=json]
-      x-github-request-id: ['CB28:7199:B3E81:1F2374:5CBE7BF5']
-      x-oauth-scopes: ['user, repo']
-      x-ratelimit-limit: ['5000']
-      x-ratelimit-remaining: ['4997']
-      x-ratelimit-reset: ['1555991038']
-      x-xss-protection: [1; mode=block]
-    status: {code: 404, message: Not Found}
-- request:
-    body: !!python/unicode '{"has_issues": false, "auto_init": false, "has_wiki":
-      false, "name": "test_integration1", "has_downloads": false}'
-    headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [!!python/unicode token token]
-      Connection: [keep-alive]
-      Content-Length: ['113']
-      Content-Type: [application/json]
-      User-Agent: [PyGithub/Python]
-    method: POST
-    uri: https://api.github.com/user/repos
-  response:
-    body: {string: !!python/unicode '{"id":182912407,"node_id":"MDEwOlJlcG9zaXRvcnkxODI5MTI0MDc=","name":"test_integration1","full_name":"datalad-tester/test_integration1","private":false,"owner":{"login":"datalad-tester","id":22943981,"node_id":"MDQ6VXNlcjIyOTQzOTgx","avatar_url":"https://avatars1.githubusercontent.com/u/22943981?v=4","gravatar_id":"","url":"https://api.github.com/users/datalad-tester","html_url":"https://github.com/datalad-tester","followers_url":"https://api.github.com/users/datalad-tester/followers","following_url":"https://api.github.com/users/datalad-tester/following{/other_user}","gists_url":"https://api.github.com/users/datalad-tester/gists{/gist_id}","starred_url":"https://api.github.com/users/datalad-tester/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/datalad-tester/subscriptions","organizations_url":"https://api.github.com/users/datalad-tester/orgs","repos_url":"https://api.github.com/users/datalad-tester/repos","events_url":"https://api.github.com/users/datalad-tester/events{/privacy}","received_events_url":"https://api.github.com/users/datalad-tester/received_events","type":"User","site_admin":false},"html_url":"https://github.com/datalad-tester/test_integration1","description":null,"fork":false,"url":"https://api.github.com/repos/datalad-tester/test_integration1","forks_url":"https://api.github.com/repos/datalad-tester/test_integration1/forks","keys_url":"https://api.github.com/repos/datalad-tester/test_integration1/keys{/key_id}","collaborators_url":"https://api.github.com/repos/datalad-tester/test_integration1/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/datalad-tester/test_integration1/teams","hooks_url":"https://api.github.com/repos/datalad-tester/test_integration1/hooks","issue_events_url":"https://api.github.com/repos/datalad-tester/test_integration1/issues/events{/number}","events_url":"https://api.github.com/repos/datalad-tester/test_integration1/events","assignees_url":"https://api.github.com/repos/datalad-tester/test_integration1/assignees{/user}","branches_url":"https://api.github.com/repos/datalad-tester/test_integration1/branches{/branch}","tags_url":"https://api.github.com/repos/datalad-tester/test_integration1/tags","blobs_url":"https://api.github.com/repos/datalad-tester/test_integration1/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/datalad-tester/test_integration1/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/datalad-tester/test_integration1/git/refs{/sha}","trees_url":"https://api.github.com/repos/datalad-tester/test_integration1/git/trees{/sha}","statuses_url":"https://api.github.com/repos/datalad-tester/test_integration1/statuses/{sha}","languages_url":"https://api.github.com/repos/datalad-tester/test_integration1/languages","stargazers_url":"https://api.github.com/repos/datalad-tester/test_integration1/stargazers","contributors_url":"https://api.github.com/repos/datalad-tester/test_integration1/contributors","subscribers_url":"https://api.github.com/repos/datalad-tester/test_integration1/subscribers","subscription_url":"https://api.github.com/repos/datalad-tester/test_integration1/subscription","commits_url":"https://api.github.com/repos/datalad-tester/test_integration1/commits{/sha}","git_commits_url":"https://api.github.com/repos/datalad-tester/test_integration1/git/commits{/sha}","comments_url":"https://api.github.com/repos/datalad-tester/test_integration1/comments{/number}","issue_comment_url":"https://api.github.com/repos/datalad-tester/test_integration1/issues/comments{/number}","contents_url":"https://api.github.com/repos/datalad-tester/test_integration1/contents/{+path}","compare_url":"https://api.github.com/repos/datalad-tester/test_integration1/compare/{base}...{head}","merges_url":"https://api.github.com/repos/datalad-tester/test_integration1/merges","archive_url":"https://api.github.com/repos/datalad-tester/test_integration1/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/datalad-tester/test_integration1/downloads","issues_url":"https://api.github.com/repos/datalad-tester/test_integration1/issues{/number}","pulls_url":"https://api.github.com/repos/datalad-tester/test_integration1/pulls{/number}","milestones_url":"https://api.github.com/repos/datalad-tester/test_integration1/milestones{/number}","notifications_url":"https://api.github.com/repos/datalad-tester/test_integration1/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/datalad-tester/test_integration1/labels{/name}","releases_url":"https://api.github.com/repos/datalad-tester/test_integration1/releases{/id}","deployments_url":"https://api.github.com/repos/datalad-tester/test_integration1/deployments","created_at":"2019-04-23T02:44:05Z","updated_at":"2019-04-23T02:44:05Z","pushed_at":"2019-04-23T02:44:06Z","git_url":"git://github.com/datalad-tester/test_integration1.git","ssh_url":"git@github.com:datalad-tester/test_integration1.git","clone_url":"https://github.com/datalad-tester/test_integration1.git","svn_url":"https://github.com/datalad-tester/test_integration1","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"network_count":0,"subscribers_count":0}'}
-    headers:
-      access-control-allow-origin: ['*']
-      access-control-expose-headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      cache-control: ['private, max-age=60, s-maxage=60']
-      content-length: ['5600']
-      content-security-policy: [default-src 'none']
-      content-type: [application/json; charset=utf-8]
-      date: ['Tue, 23 Apr 2019 02:44:06 GMT']
-      etag: ['"3fd6b0aed40288407d4a2faee0442b28"']
-      location: ['https://api.github.com/repos/datalad-tester/test_integration1']
-      referrer-policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      server: [GitHub.com]
-      status: [201 Created]
-      strict-transport-security: [max-age=31536000; includeSubdomains; preload]
-      vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      x-accepted-oauth-scopes: ['public_repo, repo']
-      x-content-type-options: [nosniff]
-      x-frame-options: [deny]
-      x-github-media-type: [github.v3; format=json]
-      x-github-request-id: ['CB28:7199:B3E84:1F237B:5CBE7BF5']
-      x-oauth-scopes: ['user, repo']
-      x-ratelimit-limit: ['5000']
-      x-ratelimit-remaining: ['4996']
-      x-ratelimit-reset: ['1555991038']
-      x-xss-protection: [1; mode=block]
-    status: {code: 201, message: Created}
-- request:
-    body: null
-    headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [!!python/unicode token token]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
-    method: GET
-    uri: https://api.github.com/user
-  response:
-    body:
-      string: !!binary |
-        H4sIAAAAAAAAA51UTY/TMBT8Lz63zUdDl0RCHODCAVYrFYS4RI7jpgbXtmynpRv1vzPOx7JkV0JK
-        L61f38ybjN+kI1I3QpGC1NRTSeu1585zS1ZE1KRI0zzb5m+TFVG65mUokc8fH3bfvn+R7Oen6/3+
-        4fF+3/xGOz2DwJatleg5em9cEUVD0SWbRvhjW7WOW6aV58pvmD5FbTQNeH9+l4GksSNNPwmFGZ0R
-        I9MAB52LXgg/+pOc6RjG96AX7Qctpb6Aaa79/8OiJyykDr+FahbzANtF2h85bMSj3YIhwvklwnpc
-        F4Uv3Fpgcrgdy+sF4kYkpF0UVHWR5Ub3lG3lmBXGC62WiPwHDz5tG6rEI13KB7wDTZC3RE6PA56f
-        sZ9LCAZgFxkrzpRdg0WWMy7OsH0x6YwBnP5qONLxFSsSLkF4XtL6FEJ8oNJxZJWe0KBaKVcEK2+o
-        uk7HCnEf84l4jlnYwDgwSc166/H/h2uFQBjKePDjRAVCPfAdheW0kk/8ldDTX6atpGDlYGOR4KUx
-        VvplJEU8ZQTUz07Y+v7EQOzhFPUQkMbJbp3E6yTfJ3mxjYvt9gektAaSn/Xk63i7jrN9nBUp2u5C
-        T+8+PPk71Wu82sqpPurDxLDP9Sv1WrhfSCBt8JRJGjyUklbaUq9H5f6iywNlOJe0RWCVF5N33ra4
-        AiMpfOzGqyAHy4OTg6NFfrd7s0uzPH+NeiYzifG53f4A1Qbwz6gFAAA=
-    headers:
-      access-control-allow-origin: ['*']
-      access-control-expose-headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      cache-control: ['private, max-age=60, s-maxage=60']
-      content-encoding: [gzip]
-      content-security-policy: [default-src 'none']
-      content-type: [application/json; charset=utf-8]
-      date: ['Tue, 23 Apr 2019 02:44:06 GMT']
-      etag: [W/"0f52a22cfaf01ad706ad86ee9b4a4b89"]
-      last-modified: ['Mon, 04 Mar 2019 04:29:37 GMT']
-      referrer-policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      server: [GitHub.com]
-      status: [200 OK]
-      strict-transport-security: [max-age=31536000; includeSubdomains; preload]
-      transfer-encoding: [chunked]
-      vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      x-accepted-oauth-scopes: ['']
-      x-content-type-options: [nosniff]
-      x-frame-options: [deny]
-      x-github-media-type: [github.v3; format=json]
-      x-github-request-id: ['B474:69D5:2C6B51:60599F:5CBE7BF6']
-      x-oauth-scopes: ['user, repo']
-      x-ratelimit-limit: ['5000']
-      x-ratelimit-remaining: ['4995']
-      x-ratelimit-reset: ['1555991038']
-      x-xss-protection: [1; mode=block]
-    status: {code: 200, message: OK}
-- request:
-    body: null
-    headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [!!python/unicode token token]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
-    method: GET
-    uri: https://api.github.com/repos/datalad-tester/test_integration1
-  response:
-    body:
-      string: !!binary |
-        H4sIAAAAAAAAA62Y32/bNhDH/xe/Lglt1+1qA0X3kGHIgCzokA3FXgxaoi02kqiRlN1EyP/e75H6
-        6aS1avAlsWnyw+Px7nh31UTGk9Xs/Xw5my+mv15MchWLNY1Nbq9/P9ylf6bRH8sn/vnvfZQ/fL27
-        vnl7e38zvb2OPkwwmWcCM60wdi1zK3aaW6nyGX7almm6rn+PueUpjy9pntDstemFlntuAdvy1IiL
-        iTrkQk9W1SRVO5ljjyEDG5CM8/ly8Wb5fjYU+9O7fz//lUZfbh7v7j893d3vvmI6B57rdalTwBJr
-        C7NizA+a2dVO2qTclEboSOEcub2KVMZK1mzwcf9hAQjO5zFOQRg4whWyJvnlwBn2QvDEZumRHH57
-        t+jF9K1KU3UA6Vj205uxdi1diOPIfHc2B2srpmwioEYc7ZkUIo09RzC3rmL0D8ZGJIPb0SI+Q7h6
-        JUQjm3mumBaFcshyYyItCzLJc4QcrAdP6R3P5ZMz8XN4WG+AIfHOWe7WYb3Ywz7PAfiFFXO+Fj2S
-        irSIhNxD7WdDjwhg2seCgsI/MBG6BGnFmscZObHz7ecLuN94D3g1WsSivdjJKkekIfPWD230+KFb
-        Oj0e+dmruxDyhJ7HseCHIEEZD+IxDJBAFcPf2nsiODffKIRfdSpQjBR5QKxY/ysZjhU8C3MURwIx
-        USqQth0JRGlMKUZZ9kidOKBhjR/lZbbxYXCM94zcw6MgPTdG7nIhwmi5pVWsid0bzfMoCcRvYBXz
-        n5yN8F0Y4QkE3iZVmzBAvLfM0SpmEu4fMrsOJi/hCTaga7ENJzzBWrrVoazECU60lo3H1cJgwkje
-        wFhVaz3l+a7ku0D4lkbPDtKJHX86mTaN9MoOBzaliFpuyoCxtgOS7D5vQWwJpPaO19FdVvTjbGus
-        bnppltNOlslT+clIdM0a+FFIPtn78R70/XSC9RMHIFjFusfCP0v1NkFuoH6XGsn7m9XlTBhDamCs
-        +qXgNqG4iT0LrkWQY9QsVm040sSrq6sqEdwVB5nQoYKER4HJdZQg9Q0iedXAkOhl3LoaZEuCx6hJ
-        UsXjMPpvaSD7Ow8ivUf1raZASh1GZEfqozOZogug8kAxv8P1N8mVlVsZjanURjrygFh9NDKPxAVH
-        4QHrtzKS8AeUx3TlyMNFIOV5FA6GNouv1lIB1whzM1p4WMV8AR6LIlWP4UJfj0dxQgu0d+I1tygN
-        59PZ8nK6uJy/uZ/OV4vFavr2P8wpCzQ/TswpSpN8f8o7wiCo126BT2jyfLe58rLoo+4NCMYkHeG3
-        bv3qVCOrXh+lsO8j1zxDiv3x+/wTDJwiUZkokFw1FbKRT/g8HeRGkSpz3AgGD9yiGEDG0Q01+VQD
-        SLhZ+1jRFto0VGj1RUTWTFZWl2jd0VgXqZqGHo0e5IMcLqXcrx3x9Xa3fya1VnXLzhf5dZhF861u
-        E8bS8E0qugFViLwWsn8SGYnctJrw5Tidujd9oAX3JRZbXqZ27Ssa2G3GqX8J1RZCZ9AE9YGoR1m3
-        N/zxyUIbVVD085/R9UC0UIe1+b/kMC/3DDXT/C9uCEJT+jT8RQt6EYdrcmEP6Cr0DtlPGxslPn8D
-        mCRPDuAVAAA=
-    headers:
-      access-control-allow-origin: ['*']
-      access-control-expose-headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      cache-control: ['private, max-age=60, s-maxage=60']
-      content-encoding: [gzip]
-      content-security-policy: [default-src 'none']
-      content-type: [application/json; charset=utf-8]
-      date: ['Tue, 23 Apr 2019 02:44:06 GMT']
-      etag: [W/"3fd6b0aed40288407d4a2faee0442b28"]
-      last-modified: ['Tue, 23 Apr 2019 02:44:05 GMT']
-      referrer-policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      server: [GitHub.com]
-      status: [200 OK]
-      strict-transport-security: [max-age=31536000; includeSubdomains; preload]
-      transfer-encoding: [chunked]
-      vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      x-accepted-oauth-scopes: [repo]
-      x-content-type-options: [nosniff]
-      x-frame-options: [deny]
-      x-github-media-type: [github.v3; format=json]
-      x-github-request-id: ['B474:69D5:2C6B58:6059AC:5CBE7BF6']
-      x-oauth-scopes: ['user, repo']
-      x-ratelimit-limit: ['5000']
-      x-ratelimit-remaining: ['4994']
-      x-ratelimit-reset: ['1555991038']
-      x-xss-protection: [1; mode=block]
-    status: {code: 200, message: OK}
-- request:
-    body: null
-    headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [!!python/unicode token token]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
-    method: GET
-    uri: https://api.github.com/user
-  response:
-    body:
-      string: !!binary |
-        H4sIAAAAAAAAA51UTY/TMBT8Lz63zUdDl0RCHODCAVYrFYS4RI7jpgbXtmynpRv1vzPOx7JkV0JK
-        L61f38ybjN+kI1I3QpGC1NRTSeu1585zS1ZE1KRI0zzb5m+TFVG65mUokc8fH3bfvn+R7Oen6/3+
-        4fF+3/xGOz2DwJatleg5em9cEUVD0SWbRvhjW7WOW6aV58pvmD5FbTQNeH9+l4GksSNNPwmFGZ0R
-        I9MAB52LXgg/+pOc6RjG96AX7Qctpb6Aaa79/8OiJyykDr+FahbzANtF2h85bMSj3YIhwvklwnpc
-        F4Uv3Fpgcrgdy+sF4kYkpF0UVHWR5Ub3lG3lmBXGC62WiPwHDz5tG6rEI13KB7wDTZC3RE6PA56f
-        sZ9LCAZgFxkrzpRdg0WWMy7OsH0x6YwBnP5qONLxFSsSLkF4XtL6FEJ8oNJxZJWe0KBaKVcEK2+o
-        uk7HCnEf84l4jlnYwDgwSc166/H/h2uFQBjKePDjRAVCPfAdheW0kk/8ldDTX6atpGDlYGOR4KUx
-        VvplJEU8ZQTUz07Y+v7EQOzhFPUQkMbJbp3E6yTfJ3mxjYvt9gektAaSn/Xk63i7jrN9nBUp2u5C
-        T+8+PPk71Wu82sqpPurDxLDP9Sv1WrhfSCBt8JRJGjyUklbaUq9H5f6iywNlOJe0RWCVF5N33ra4
-        AiMpfOzGqyAHy4OTg6NFfrd7s0uzPH+NeiYzifG53f4A1Qbwz6gFAAA=
-    headers:
-      access-control-allow-origin: ['*']
-      access-control-expose-headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      cache-control: ['private, max-age=60, s-maxage=60']
-      content-encoding: [gzip]
-      content-security-policy: [default-src 'none']
-      content-type: [application/json; charset=utf-8]
-      date: ['Tue, 23 Apr 2019 02:44:07 GMT']
-      etag: [W/"0f52a22cfaf01ad706ad86ee9b4a4b89"]
-      last-modified: ['Mon, 04 Mar 2019 04:29:37 GMT']
-      referrer-policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      server: [GitHub.com]
-      status: [200 OK]
-      strict-transport-security: [max-age=31536000; includeSubdomains; preload]
-      transfer-encoding: [chunked]
-      vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      x-accepted-oauth-scopes: ['']
-      x-content-type-options: [nosniff]
-      x-frame-options: [deny]
-      x-github-media-type: [github.v3; format=json]
-      x-github-request-id: ['CB2C:69D2:3A9C4B:75291C:5CBE7BF7']
-      x-oauth-scopes: ['user, repo']
-      x-ratelimit-limit: ['5000']
-      x-ratelimit-remaining: ['4993']
-      x-ratelimit-reset: ['1555991038']
-      x-xss-protection: [1; mode=block]
-    status: {code: 200, message: OK}
-- request:
-    body: null
-    headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [!!python/unicode token token]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
-    method: GET
-    uri: https://api.github.com/repos/datalad-tester/test_integration1
-  response:
-    body:
-      string: !!binary |
-        H4sIAAAAAAAAA62Y32/bNhDH/xe/Lglt1+1qA0X3kGHIgCzokA3FXgxaoi02kqiRlN1EyP/e75H6
-        6aS1avAlsWnyw+Px7nh31UTGk9Xs/Xw5my+mv15MchWLNY1Nbq9/P9ylf6bRH8sn/vnvfZQ/fL27
-        vnl7e38zvb2OPkwwmWcCM60wdi1zK3aaW6nyGX7almm6rn+PueUpjy9pntDstemFlntuAdvy1IiL
-        iTrkQk9W1SRVO5ljjyEDG5CM8/ly8Wb5fjYU+9O7fz//lUZfbh7v7j893d3vvmI6B57rdalTwBJr
-        C7NizA+a2dVO2qTclEboSOEcub2KVMZK1mzwcf9hAQjO5zFOQRg4whWyJvnlwBn2QvDEZumRHH57
-        t+jF9K1KU3UA6Vj205uxdi1diOPIfHc2B2srpmwioEYc7ZkUIo09RzC3rmL0D8ZGJIPb0SI+Q7h6
-        JUQjm3mumBaFcshyYyItCzLJc4QcrAdP6R3P5ZMz8XN4WG+AIfHOWe7WYb3Ywz7PAfiFFXO+Fj2S
-        irSIhNxD7WdDjwhg2seCgsI/MBG6BGnFmscZObHz7ecLuN94D3g1WsSivdjJKkekIfPWD230+KFb
-        Oj0e+dmruxDyhJ7HseCHIEEZD+IxDJBAFcPf2nsiODffKIRfdSpQjBR5QKxY/ysZjhU8C3MURwIx
-        USqQth0JRGlMKUZZ9kidOKBhjR/lZbbxYXCM94zcw6MgPTdG7nIhwmi5pVWsid0bzfMoCcRvYBXz
-        n5yN8F0Y4QkE3iZVmzBAvLfM0SpmEu4fMrsOJi/hCTaga7ENJzzBWrrVoazECU60lo3H1cJgwkje
-        wFhVaz3l+a7ku0D4lkbPDtKJHX86mTaN9MoOBzaliFpuyoCxtgOS7D5vQWwJpPaO19FdVvTjbGus
-        bnppltNOlslT+clIdM0a+FFIPtn78R70/XSC9RMHIFjFusfCP0v1NkFuoH6XGsn7m9XlTBhDamCs
-        +qXgNqG4iT0LrkWQY9QsVm040sSrq6sqEdwVB5nQoYKER4HJdZQg9Q0iedXAkOhl3LoaZEuCx6hJ
-        UsXjMPpvaSD7Ow8ivUf1raZASh1GZEfqozOZogug8kAxv8P1N8mVlVsZjanURjrygFh9NDKPxAVH
-        4QHrtzKS8AeUx3TlyMNFIOV5FA6GNouv1lIB1whzM1p4WMV8AR6LIlWP4UJfj0dxQgu0d+I1tygN
-        59PZ8nK6uJy/uZ/OV4vFavr2P8wpCzQ/TswpSpN8f8o7wiCo126BT2jyfLe58rLoo+4NCMYkHeG3
-        bv3qVCOrXh+lsO8j1zxDiv3x+/wTDJwiUZkokFw1FbKRT/g8HeRGkSpz3AgGD9yiGEDG0Q01+VQD
-        SLhZ+1jRFto0VGj1RUTWTFZWl2jd0VgXqZqGHo0e5IMcLqXcrx3x9Xa3fya1VnXLzhf5dZhF861u
-        E8bS8E0qugFViLwWsn8SGYnctJrw5Tidujd9oAX3JRZbXqZ27Ssa2G3GqX8J1RZCZ9AE9YGoR1m3
-        N/zxyUIbVVD085/R9UC0UIe1+b/kMC/3DDXT/C9uCEJT+jT8RQt6EYdrcmEP6Cr0DtlPGxslPn8D
-        mCRPDuAVAAA=
-    headers:
-      access-control-allow-origin: ['*']
-      access-control-expose-headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      cache-control: ['private, max-age=60, s-maxage=60']
-      content-encoding: [gzip]
-      content-security-policy: [default-src 'none']
-      content-type: [application/json; charset=utf-8]
-      date: ['Tue, 23 Apr 2019 02:44:07 GMT']
-      etag: [W/"3fd6b0aed40288407d4a2faee0442b28"]
-      last-modified: ['Tue, 23 Apr 2019 02:44:05 GMT']
-      referrer-policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      server: [GitHub.com]
-      status: [200 OK]
-      strict-transport-security: [max-age=31536000; includeSubdomains; preload]
-      transfer-encoding: [chunked]
-      vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      x-accepted-oauth-scopes: [repo]
-      x-content-type-options: [nosniff]
-      x-frame-options: [deny]
-      x-github-media-type: [github.v3; format=json]
-      x-github-request-id: ['CB2C:69D2:3A9C56:75292C:5CBE7BF7']
-      x-oauth-scopes: ['user, repo']
-      x-ratelimit-limit: ['5000']
-      x-ratelimit-remaining: ['4992']
-      x-ratelimit-reset: ['1555991038']
-      x-xss-protection: [1; mode=block]
-    status: {code: 200, message: OK}
-version: 1
diff --git a/datalad/distribution/tests/vcr_cassettes/github_datalad_tester_org.yaml b/datalad/distribution/tests/vcr_cassettes/github_datalad_tester_org.yaml
index 89d74398c..1d7559ea0 100644
--- a/datalad/distribution/tests/vcr_cassettes/github_datalad_tester_org.yaml
+++ b/datalad/distribution/tests/vcr_cassettes/github_datalad_tester_org.yaml
@@ -2,752 +2,1001 @@ interactions:
 - request:
     body: null
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [token fake1]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token fake1
+      Connection:
+      - keep-alive
+      User-Agent:
+      - PyGithub/Python
     method: GET
     uri: https://api.github.com/user
   response:
-    body: {string: '{"message":"Bad credentials","documentation_url":"https://developer.github.com/v3"}'}
-    headers:
-      Access-Control-Allow-Origin: ['*']
-      Access-Control-Expose-Headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      Content-Length: ['83']
-      Content-Security-Policy: [default-src 'none']
-      Content-Type: [application/json; charset=utf-8]
-      Date: ['Tue, 23 Apr 2019 16:49:59 GMT']
-      Referrer-Policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      Server: [GitHub.com]
-      Status: [401 Unauthorized]
-      Strict-Transport-Security: [max-age=31536000; includeSubdomains; preload]
-      X-Content-Type-Options: [nosniff]
-      X-Frame-Options: [deny]
-      X-GitHub-Media-Type: [github.v3; format=json]
-      X-GitHub-Request-Id: ['24F9:1C7C:659E99:DE075A:5CBF4237']
-      X-RateLimit-Limit: ['60']
-      X-RateLimit-Remaining: ['59']
-      X-RateLimit-Reset: ['1556041799']
-      X-XSS-Protection: [1; mode=block]
-    status: {code: 401, message: Unauthorized}
-- request:
-    body: null
-    headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [token fake2]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
-    method: GET
-    uri: https://api.github.com/user
-  response:
-    body: {string: '{"message":"Bad credentials","documentation_url":"https://developer.github.com/v3"}'}
-    headers:
-      Access-Control-Allow-Origin: ['*']
-      Access-Control-Expose-Headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      Content-Length: ['83']
-      Content-Security-Policy: [default-src 'none']
-      Content-Type: [application/json; charset=utf-8]
-      Date: ['Tue, 23 Apr 2019 16:49:59 GMT']
-      Referrer-Policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      Server: [GitHub.com]
-      Status: [401 Unauthorized]
-      Strict-Transport-Security: [max-age=31536000; includeSubdomains; preload]
-      X-Content-Type-Options: [nosniff]
-      X-Frame-Options: [deny]
-      X-GitHub-Media-Type: [github.v3; format=json]
-      X-GitHub-Request-Id: ['8950:52CF:7CD285:FA3F09:5CBF4237']
-      X-RateLimit-Limit: ['60']
-      X-RateLimit-Remaining: ['58']
-      X-RateLimit-Reset: ['1556041799']
-      X-XSS-Protection: [1; mode=block]
-    status: {code: 401, message: Unauthorized}
+    body:
+      string: '{"message":"Bad credentials","documentation_url":"https://docs.github.com/rest"}'
+    headers:
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Content-Length:
+      - '80'
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 19:57:34 GMT
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 401 Unauthorized
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Vary:
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - 98C4:29B4:3BF0792:64BF336:5FCFDAAE
+      X-RateLimit-Limit:
+      - '60'
+      X-RateLimit-Remaining:
+      - '46'
+      X-RateLimit-Reset:
+      - '1607459252'
+      X-RateLimit-Used:
+      - '14'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 401
+      message: Unauthorized
 - request:
     body: null
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [Basic XXX==]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token fake2
+      Connection:
+      - keep-alive
+      User-Agent:
+      - PyGithub/Python
     method: GET
     uri: https://api.github.com/user
   response:
-    body: {string: '{"message":"Must specify two-factor authentication OTP code.","documentation_url":"https://developer.github.com/v3/auth#working-with-two-factor-authentication"}'}
-    headers:
-      Access-Control-Allow-Origin: ['*']
-      Access-Control-Expose-Headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      Content-Length: ['160']
-      Content-Security-Policy: [default-src 'none']
-      Content-Type: [application/json; charset=utf-8]
-      Date: ['Tue, 23 Apr 2019 16:50:08 GMT']
-      Referrer-Policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      Server: [GitHub.com]
-      Status: [401 Unauthorized]
-      Strict-Transport-Security: [max-age=31536000; includeSubdomains; preload]
-      X-Content-Type-Options: [nosniff]
-      X-Frame-Options: [deny]
-      X-GitHub-Media-Type: [github.v3; format=json]
-      X-GitHub-OTP: [required; app]
-      X-GitHub-Request-Id: ['BE0C:0789:80002D:105A231:5CBF4240']
-      X-RateLimit-Limit: ['60']
-      X-RateLimit-Remaining: ['57']
-      X-RateLimit-Reset: ['1556041799']
-      X-XSS-Protection: [1; mode=block]
-    status: {code: 401, message: Unauthorized}
-- request:
-    body: '{"scopes": ["user", "repo"], "note": "DataLad"}'
-    headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [Basic XXX==]
-      Connection: [keep-alive]
-      Content-Length: ['47']
-      Content-Type: [application/json]
-      User-Agent: [PyGithub/Python]
-      X-GitHub-OTP: ['796221']
-    method: POST
-    uri: https://api.github.com/authorizations
-  response:
-    body: {string: '{"id":282841148,"url":"https://api.github.com/authorizations/282841148","app":{"name":"DataLad","url":"https://developer.github.com/v3/oauth_authorizations/","client_id":"00000000000000000000"},"token":"sometoken","hashed_token":"XXX","token_last_eight":"329ec22f","note":"DataLad","note_url":null,"created_at":"2019-04-23T16:50:16Z","updated_at":"2019-04-23T16:50:16Z","scopes":["user","repo"],"fingerprint":null}'}
-    headers:
-      Access-Control-Allow-Origin: ['*']
-      Access-Control-Expose-Headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      Cache-Control: ['private, max-age=60, s-maxage=60']
-      Content-Length: ['506']
-      Content-Security-Policy: [default-src 'none']
-      Content-Type: [application/json; charset=utf-8]
-      Date: ['Tue, 23 Apr 2019 16:50:16 GMT']
-      ETag: ['"3e37dd4c88d09e1fdcbb66dd15d5701c"']
-      Location: ['https://api.github.com/authorizations/282841148']
-      Referrer-Policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      Server: [GitHub.com]
-      Status: [201 Created]
-      Strict-Transport-Security: [max-age=31536000; includeSubdomains; preload]
-      Vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      X-Content-Type-Options: [nosniff]
-      X-Frame-Options: [deny]
-      X-GitHub-Media-Type: [github.v3; format=json]
-      X-GitHub-Request-Id: ['BE0C:0789:800380:105A255:5CBF4240']
-      X-RateLimit-Limit: ['5000']
-      X-RateLimit-Remaining: ['4999']
-      X-RateLimit-Reset: ['1556041816']
-      X-XSS-Protection: [1; mode=block]
-    status: {code: 201, message: Created}
+    body:
+      string: '{"message":"Bad credentials","documentation_url":"https://docs.github.com/rest"}'
+    headers:
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Content-Length:
+      - '80'
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 19:57:34 GMT
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 401 Unauthorized
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Vary:
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - 98C6:0B0B:370F5ED:5DA94D4:5FCFDAAE
+      X-RateLimit-Limit:
+      - '60'
+      X-RateLimit-Remaining:
+      - '45'
+      X-RateLimit-Reset:
+      - '1607459252'
+      X-RateLimit-Used:
+      - '15'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 401
+      message: Unauthorized
 - request:
     body: null
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [token sometoken]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token secret-token
+      Connection:
+      - keep-alive
+      User-Agent:
+      - PyGithub/Python
     method: GET
     uri: https://api.github.com/orgs/datalad-tester-org
   response:
     body:
       string: !!binary |
-        H4sIAAAAAAAAA6VTyW7bMBT8F52jyFEdtxZQtIekRQ+FUSCHIhfiSXqSGVOkysWGa/jfO1pSK3GA
-        Au5NfOIMOQsPkTK11FEWleRJURl7dp5tbGwdXUWyjLL5cnmz+JDOriJtShbdKPp+d79fbZb7x/RL
-        oJ/tuvyqtvnTj9vVw326uvu2AzRYhY1r71uXJQm18rqWfh3y68I0Cdhd8uaJllvjxCXgpIfiZN6y
-        9hdyDFiQrI3ZXMjRQzvznAt8IceABUnDTc72QpYRfEiGjyP42pArWYj/on3JMWWnLVpkX8fXD91s
-        LEBwbAujPULquxCS54Z92n6c44olu8LK1kuDXuqgVGel2LKVlWS0ryLlGAmRE+gRafmbur2iteaJ
-        C++izNswbug7Ib2x+7Pfo4qhNRnqPQ5q6ToODCqjlNnB/clK6rpfrX2jXumc9PvNaheWyXMpyONh
-        pLObZTybx+m7h5tFNkvxzB67V9MC+o89ft8yGFYT7UB6g/cLkRJuszipMjsNvvP58+Qkt5RuI4Kj
-        GuxQWEA95cYS3BscyKVS0C+4Idk9bhjL8aA6fqn4s9Fsg3OSdJdxH2pFQfnhYmMgbBv0vI85gjfl
-        pO4FaTH4dUJI/hut3xlRUYGb4fevIC03qJNgTbmaVKRVBO5DpKnpHKssM85wLRVYLt8vbhcpuofk
-        z1yrIBW2OSSGQ+cADV+z4/EPvJnsXjMFAAA=
-    headers:
-      Access-Control-Allow-Origin: ['*']
-      Access-Control-Expose-Headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      Cache-Control: ['private, max-age=60, s-maxage=60']
-      Content-Encoding: [gzip]
-      Content-Security-Policy: [default-src 'none']
-      Content-Type: [application/json; charset=utf-8]
-      Date: ['Tue, 23 Apr 2019 16:50:18 GMT']
-      ETag: [W/"c611133c5e69817584e50fd8ea60b9cb"]
-      Last-Modified: ['Tue, 23 Apr 2019 16:02:49 GMT']
-      Referrer-Policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      Server: [GitHub.com]
-      Status: [200 OK]
-      Strict-Transport-Security: [max-age=31536000; includeSubdomains; preload]
-      Transfer-Encoding: [chunked]
-      Vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      X-Accepted-OAuth-Scopes: ['admin:org, read:org, repo, user, write:org']
-      X-Content-Type-Options: [nosniff]
-      X-Frame-Options: [deny]
-      X-GitHub-Media-Type: [github.v3; format=json]
-      X-GitHub-Request-Id: ['7349:4752:1D0A22:4D8E83:5CBF424A']
-      X-OAuth-Scopes: ['user, repo']
-      X-RateLimit-Limit: ['5000']
-      X-RateLimit-Remaining: ['4998']
-      X-RateLimit-Reset: ['1556041816']
-      X-XSS-Protection: [1; mode=block]
-    status: {code: 200, message: OK}
+        H4sIAAAAAAAAA6VUy27bMBD8F57jSFZtNxYQtIekRQ+FUSCHIhdiJa1tJhTJkpQNN8i/d/SwozxO
+        rk/UkjPkzM76SWi7UUbkoqJImqpJ5BDZT6zfiAuhKpHPlsvp4ipLL4SxFcu2JH7e3B5Wj8vDffat
+        od9uW33Xu+Lh13x1d5utbn7sAW28xsFtjC7kSUJOXW5U3DbFZWnrBOwh+fBGz84GeQ446aC4mXds
+        4pkcPRYkW2sfz+TooK15ITR8JkePBUnNdcH+TJYB/JT0i2fwuabQqpT/RfuaY8xOO6TIv21fVwzp
+        EIAmsC+tiWhSl4UmOSbsy+56hidWHEqvXFQWuTSN1kge1XxcA+PIHI6fBQJ8XGtb0hjGNSmksOeI
+        exWRbNneP+ZTQe7Yq7ViJHtNOjC6T0Eio2TU345QOm8fuIxB5NE3w4Eubypaf3i3PTjUJzKfnmzf
+        qNByYJbWVmu7R2dHX8pACfa2sdZvPBzNzodjU3qmyJWkiKHL0ulyks4m2ae76SJPM4zwfTuRDtCP
+        z8yv8um8PRMPDkaL1Uh7W7X4b4BIhU6yHFThoXZvwPe+fqy8yK1UeITztAE77CihngrrCe71DhRK
+        a+iXQ8sEjOVJr3ryWvFXa9g3ISgybX66wKyp0bF/2NAQ9jVmqIuQgDfVaJRKMrL36wWh+NTauLdy
+        TSVehu0/jfJcI6qSDRV6FJHjBI3YHOSdaJwm3P00RFesPTPeEByVsGD5eTFfZMg9kvHa1WmKH+IB
+        O2BtQFfBOAOwX6XPz/8ATNYh97MFAAA=
+    headers:
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Cache-Control:
+      - private, max-age=60, s-maxage=60
+      Content-Encoding:
+      - gzip
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 19:57:34 GMT
+      ETag:
+      - W/"768188c272bea52cf1e61bbe5eddcdedb3503dbf736db32b8571ba24b369b570"
+      Last-Modified:
+      - Tue, 23 Apr 2019 16:58:15 GMT
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 200 OK
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Transfer-Encoding:
+      - chunked
+      Vary:
+      - Accept, Authorization, Cookie, X-GitHub-OTP
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Accepted-OAuth-Scopes:
+      - admin:org, read:org, repo, user, write:org
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - 98C8:0FEA:1379230:2EDC7EB:5FCFDAAE
+      X-OAuth-Scopes:
+      - delete_repo, repo
+      X-RateLimit-Limit:
+      - '5000'
+      X-RateLimit-Remaining:
+      - '4996'
+      X-RateLimit-Reset:
+      - '1607460909'
+      X-RateLimit-Used:
+      - '4'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 200
+      message: OK
 - request:
     body: null
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [token sometoken]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token secret-token
+      Connection:
+      - keep-alive
+      User-Agent:
+      - PyGithub/Python
     method: GET
     uri: https://api.github.com/repos/datalad-tester-org/test_integration1
   response:
     body:
       string: !!binary |
-        H4sIAAAAAAAAAw3JMQ6AIAwAwK+Yuho6uPEAR79gEBogAUqgsBj/rrfeA5l6N55Aw8myHDyKgw0c
-        25GpiJHI5Rot/R9EateIjiYlrtSUjxLGrSxnnDs2qtxx9STwfutuZdhYAAAA
-    headers:
-      Access-Control-Allow-Origin: ['*']
-      Access-Control-Expose-Headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      Content-Encoding: [gzip]
-      Content-Security-Policy: [default-src 'none']
-      Content-Type: [application/json; charset=utf-8]
-      Date: ['Tue, 23 Apr 2019 16:50:18 GMT']
-      Referrer-Policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      Server: [GitHub.com]
-      Status: [404 Not Found]
-      Strict-Transport-Security: [max-age=31536000; includeSubdomains; preload]
-      Transfer-Encoding: [chunked]
-      X-Accepted-OAuth-Scopes: [repo]
-      X-Content-Type-Options: [nosniff]
-      X-Frame-Options: [deny]
-      X-GitHub-Media-Type: [github.v3; format=json]
-      X-GitHub-Request-Id: ['7349:4752:1D0A2B:4D8EA1:5CBF424A']
-      X-OAuth-Scopes: ['user, repo']
-      X-RateLimit-Limit: ['5000']
-      X-RateLimit-Remaining: ['4997']
-      X-RateLimit-Reset: ['1556041816']
-      X-XSS-Protection: [1; mode=block]
-    status: {code: 404, message: Not Found}
+        H4sIAAAAAAAAAx3JQQqAIBBG4avEtK3cd4CWXSHMJhPSCed3EdHdkzaPD95DkVWtZxppFjSTlLRR
+        R5u4EjnBIkhaSj7rP4BLR2Pq08EHHGUdnESTWVGzc+bkuOoSbT2jt/3vAMk3vR/3hhbbawAAAA==
+    headers:
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Content-Encoding:
+      - gzip
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 19:57:34 GMT
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 404 Not Found
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Transfer-Encoding:
+      - chunked
+      Vary:
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Accepted-OAuth-Scopes:
+      - repo
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - 98C8:0FEA:1379238:2EDC7FC:5FCFDAAE
+      X-OAuth-Scopes:
+      - delete_repo, repo
+      X-RateLimit-Limit:
+      - '5000'
+      X-RateLimit-Remaining:
+      - '4995'
+      X-RateLimit-Reset:
+      - '1607460909'
+      X-RateLimit-Used:
+      - '5'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 404
+      message: Not Found
 - request:
     body: '{"name": "test_integration1", "has_issues": false, "has_wiki": false, "has_downloads":
       false, "auto_init": false}'
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [token sometoken]
-      Connection: [keep-alive]
-      Content-Length: ['113']
-      Content-Type: [application/json]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token secret-token
+      Connection:
+      - keep-alive
+      Content-Length:
+      - '113'
+      Content-Type:
+      - application/json
+      User-Agent:
+      - PyGithub/Python
     method: POST
     uri: https://api.github.com/orgs/datalad-tester-org/repos
   response:
-    body: {string: '{"id":183058162,"node_id":"MDEwOlJlcG9zaXRvcnkxODMwNTgxNjI=","name":"test_integration1","full_name":"datalad-tester-org/test_integration1","private":false,"owner":{"login":"datalad-tester-org","id":49916820,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ5OTE2ODIw","avatar_url":"https://avatars0.githubusercontent.com/u/49916820?v=4","gravatar_id":"","url":"https://api.github.com/users/datalad-tester-org","html_url":"https://github.com/datalad-tester-org","followers_url":"https://api.github.com/users/datalad-tester-org/followers","following_url":"https://api.github.com/users/datalad-tester-org/following{/other_user}","gists_url":"https://api.github.com/users/datalad-tester-org/gists{/gist_id}","starred_url":"https://api.github.com/users/datalad-tester-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/datalad-tester-org/subscriptions","organizations_url":"https://api.github.com/users/datalad-tester-org/orgs","repos_url":"https://api.github.com/users/datalad-tester-org/repos","events_url":"https://api.github.com/users/datalad-tester-org/events{/privacy}","received_events_url":"https://api.github.com/users/datalad-tester-org/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/datalad-tester-org/test_integration1","description":null,"fork":false,"url":"https://api.github.com/repos/datalad-tester-org/test_integration1","forks_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/forks","keys_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/keys{/key_id}","collaborators_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/teams","hooks_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/hooks","issue_events_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/issues/events{/number}","events_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/events","assignees_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/assignees{/user}","branches_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/branches{/branch}","tags_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/tags","blobs_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/git/refs{/sha}","trees_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/git/trees{/sha}","statuses_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/statuses/{sha}","languages_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/languages","stargazers_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/stargazers","contributors_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/contributors","subscribers_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/subscribers","subscription_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/subscription","commits_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/commits{/sha}","git_commits_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/git/commits{/sha}","comments_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/comments{/number}","issue_comment_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/issues/comments{/number}","contents_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/contents/{+path}","compare_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/compare/{base}...{head}","merges_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/merges","archive_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/downloads","issues_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/issues{/number}","pulls_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/pulls{/number}","milestones_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/milestones{/number}","notifications_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/labels{/name}","releases_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/releases{/id}","deployments_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/deployments","created_at":"2019-04-23T16:50:18Z","updated_at":"2019-04-23T16:50:18Z","pushed_at":"2019-04-23T16:50:19Z","git_url":"git://github.com/datalad-tester-org/test_integration1.git","ssh_url":"git@github.com:datalad-tester-org/test_integration1.git","clone_url":"https://github.com/datalad-tester-org/test_integration1.git","svn_url":"https://github.com/datalad-tester-org/test_integration1","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"organization":{"login":"datalad-tester-org","id":49916820,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ5OTE2ODIw","avatar_url":"https://avatars0.githubusercontent.com/u/49916820?v=4","gravatar_id":"","url":"https://api.github.com/users/datalad-tester-org","html_url":"https://github.com/datalad-tester-org","followers_url":"https://api.github.com/users/datalad-tester-org/followers","following_url":"https://api.github.com/users/datalad-tester-org/following{/other_user}","gists_url":"https://api.github.com/users/datalad-tester-org/gists{/gist_id}","starred_url":"https://api.github.com/users/datalad-tester-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/datalad-tester-org/subscriptions","organizations_url":"https://api.github.com/users/datalad-tester-org/orgs","repos_url":"https://api.github.com/users/datalad-tester-org/repos","events_url":"https://api.github.com/users/datalad-tester-org/events{/privacy}","received_events_url":"https://api.github.com/users/datalad-tester-org/received_events","type":"Organization","site_admin":false},"network_count":0,"subscribers_count":0}'}
-    headers:
-      Access-Control-Allow-Origin: ['*']
-      Access-Control-Expose-Headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      Cache-Control: ['private, max-age=60, s-maxage=60']
-      Content-Length: ['6904']
-      Content-Security-Policy: [default-src 'none']
-      Content-Type: [application/json; charset=utf-8]
-      Date: ['Tue, 23 Apr 2019 16:50:19 GMT']
-      ETag: ['"9a6bd71d4d28485de0be79b73fdf9478"']
-      Location: ['https://api.github.com/repos/datalad-tester-org/test_integration1']
-      Referrer-Policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      Server: [GitHub.com]
-      Status: [201 Created]
-      Strict-Transport-Security: [max-age=31536000; includeSubdomains; preload]
-      Vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      X-Accepted-OAuth-Scopes: ['public_repo, repo']
-      X-Content-Type-Options: [nosniff]
-      X-Frame-Options: [deny]
-      X-GitHub-Media-Type: [github.v3; format=json]
-      X-GitHub-Request-Id: ['7349:4752:1D0A2E:4D8EA7:5CBF424A']
-      X-OAuth-Scopes: ['user, repo']
-      X-RateLimit-Limit: ['5000']
-      X-RateLimit-Remaining: ['4996']
-      X-RateLimit-Reset: ['1556041816']
-      X-XSS-Protection: [1; mode=block]
-    status: {code: 201, message: Created}
-- request:
-    body: null
-    headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [token fake1]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
-    method: GET
-    uri: https://api.github.com/user
-  response:
-    body: {string: '{"message":"Bad credentials","documentation_url":"https://developer.github.com/v3"}'}
-    headers:
-      Access-Control-Allow-Origin: ['*']
-      Access-Control-Expose-Headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      Content-Length: ['83']
-      Content-Security-Policy: [default-src 'none']
-      Content-Type: [application/json; charset=utf-8]
-      Date: ['Tue, 23 Apr 2019 16:50:21 GMT']
-      Referrer-Policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      Server: [GitHub.com]
-      Status: [401 Unauthorized]
-      Strict-Transport-Security: [max-age=31536000; includeSubdomains; preload]
-      X-Content-Type-Options: [nosniff]
-      X-Frame-Options: [deny]
-      X-GitHub-Media-Type: [github.v3; format=json]
-      X-GitHub-Request-Id: ['419A:447E:8669DE:10F40C4:5CBF424C']
-      X-RateLimit-Limit: ['60']
-      X-RateLimit-Remaining: ['56']
-      X-RateLimit-Reset: ['1556041799']
-      X-XSS-Protection: [1; mode=block]
-    status: {code: 401, message: Unauthorized}
+    body:
+      string: '{"id":319746515,"node_id":"MDEwOlJlcG9zaXRvcnkzMTk3NDY1MTU=","name":"test_integration1","full_name":"datalad-tester-org/test_integration1","private":false,"owner":{"login":"datalad-tester-org","id":49916820,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ5OTE2ODIw","avatar_url":"https://avatars0.githubusercontent.com/u/49916820?v=4","gravatar_id":"","url":"https://api.github.com/users/datalad-tester-org","html_url":"https://github.com/datalad-tester-org","followers_url":"https://api.github.com/users/datalad-tester-org/followers","following_url":"https://api.github.com/users/datalad-tester-org/following{/other_user}","gists_url":"https://api.github.com/users/datalad-tester-org/gists{/gist_id}","starred_url":"https://api.github.com/users/datalad-tester-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/datalad-tester-org/subscriptions","organizations_url":"https://api.github.com/users/datalad-tester-org/orgs","repos_url":"https://api.github.com/users/datalad-tester-org/repos","events_url":"https://api.github.com/users/datalad-tester-org/events{/privacy}","received_events_url":"https://api.github.com/users/datalad-tester-org/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/datalad-tester-org/test_integration1","description":null,"fork":false,"url":"https://api.github.com/repos/datalad-tester-org/test_integration1","forks_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/forks","keys_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/keys{/key_id}","collaborators_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/teams","hooks_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/hooks","issue_events_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/issues/events{/number}","events_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/events","assignees_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/assignees{/user}","branches_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/branches{/branch}","tags_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/tags","blobs_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/git/refs{/sha}","trees_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/git/trees{/sha}","statuses_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/statuses/{sha}","languages_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/languages","stargazers_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/stargazers","contributors_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/contributors","subscribers_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/subscribers","subscription_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/subscription","commits_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/commits{/sha}","git_commits_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/git/commits{/sha}","comments_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/comments{/number}","issue_comment_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/issues/comments{/number}","contents_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/contents/{+path}","compare_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/compare/{base}...{head}","merges_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/merges","archive_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/downloads","issues_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/issues{/number}","pulls_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/pulls{/number}","milestones_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/milestones{/number}","notifications_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/labels{/name}","releases_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/releases{/id}","deployments_url":"https://api.github.com/repos/datalad-tester-org/test_integration1/deployments","created_at":"2020-12-08T19:57:35Z","updated_at":"2020-12-08T19:57:35Z","pushed_at":"2020-12-08T19:57:36Z","git_url":"git://github.com/datalad-tester-org/test_integration1.git","ssh_url":"git@github.com:datalad-tester-org/test_integration1.git","clone_url":"https://github.com/datalad-tester-org/test_integration1.git","svn_url":"https://github.com/datalad-tester-org/test_integration1","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"main","permissions":{"admin":true,"push":true,"pull":true},"allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"delete_branch_on_merge":false,"organization":{"login":"datalad-tester-org","id":49916820,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ5OTE2ODIw","avatar_url":"https://avatars0.githubusercontent.com/u/49916820?v=4","gravatar_id":"","url":"https://api.github.com/users/datalad-tester-org","html_url":"https://github.com/datalad-tester-org","followers_url":"https://api.github.com/users/datalad-tester-org/followers","following_url":"https://api.github.com/users/datalad-tester-org/following{/other_user}","gists_url":"https://api.github.com/users/datalad-tester-org/gists{/gist_id}","starred_url":"https://api.github.com/users/datalad-tester-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/datalad-tester-org/subscriptions","organizations_url":"https://api.github.com/users/datalad-tester-org/orgs","repos_url":"https://api.github.com/users/datalad-tester-org/repos","events_url":"https://api.github.com/users/datalad-tester-org/events{/privacy}","received_events_url":"https://api.github.com/users/datalad-tester-org/received_events","type":"Organization","site_admin":false},"network_count":0,"subscribers_count":0}'
+    headers:
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Cache-Control:
+      - private, max-age=60, s-maxage=60
+      Content-Length:
+      - '6933'
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 19:57:36 GMT
+      ETag:
+      - '"f6ce870d9ca7c649afee26840a932a405694e19ed0ed5440c5954d3fe992c11c"'
+      Location:
+      - https://api.github.com/repos/datalad-tester-org/test_integration1
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 201 Created
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Vary:
+      - Accept, Authorization, Cookie, X-GitHub-OTP
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Accepted-OAuth-Scopes:
+      - public_repo, repo
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - 98C8:0FEA:137923E:2EDC804:5FCFDAAE
+      X-OAuth-Scopes:
+      - delete_repo, repo
+      X-RateLimit-Limit:
+      - '5000'
+      X-RateLimit-Remaining:
+      - '4994'
+      X-RateLimit-Reset:
+      - '1607460909'
+      X-RateLimit-Used:
+      - '6'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 201
+      message: Created
 - request:
     body: null
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [token fake2]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token fake1
+      Connection:
+      - keep-alive
+      User-Agent:
+      - PyGithub/Python
     method: GET
     uri: https://api.github.com/user
   response:
-    body: {string: '{"message":"Bad credentials","documentation_url":"https://developer.github.com/v3"}'}
-    headers:
-      Access-Control-Allow-Origin: ['*']
-      Access-Control-Expose-Headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      Content-Length: ['83']
-      Content-Security-Policy: [default-src 'none']
-      Content-Type: [application/json; charset=utf-8]
-      Date: ['Tue, 23 Apr 2019 16:50:21 GMT']
-      Referrer-Policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      Server: [GitHub.com]
-      Status: [401 Unauthorized]
-      Strict-Transport-Security: [max-age=31536000; includeSubdomains; preload]
-      X-Content-Type-Options: [nosniff]
-      X-Frame-Options: [deny]
-      X-GitHub-Media-Type: [github.v3; format=json]
-      X-GitHub-Request-Id: ['38A2:0788:681D7B:DE1571:5CBF424D']
-      X-RateLimit-Limit: ['60']
-      X-RateLimit-Remaining: ['55']
-      X-RateLimit-Reset: ['1556041799']
-      X-XSS-Protection: [1; mode=block]
-    status: {code: 401, message: Unauthorized}
+    body:
+      string: '{"message":"Bad credentials","documentation_url":"https://docs.github.com/rest"}'
+    headers:
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Content-Length:
+      - '80'
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 19:57:37 GMT
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 401 Unauthorized
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Vary:
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - 98DE:447D:20DFCF9:4AB9E00:5FCFDAB1
+      X-RateLimit-Limit:
+      - '60'
+      X-RateLimit-Remaining:
+      - '44'
+      X-RateLimit-Reset:
+      - '1607459252'
+      X-RateLimit-Used:
+      - '16'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 401
+      message: Unauthorized
 - request:
     body: null
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [token sometoken]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token fake2
+      Connection:
+      - keep-alive
+      User-Agent:
+      - PyGithub/Python
     method: GET
     uri: https://api.github.com/user
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAAA51UTY/aMBD9Lz4D+SBlm0jVHraXHtrVSrSqeokcxwS3jm3ZDpSN+O99TsLSsitV
-        ChfweObN85t59ETqRihSkJp6Kmm99Nx5bsmCiJoUaZpn6/x9siBK17wMIfL549Pm2/cvkv38dHrc
-        Pj0/bpvfSKcHANiysxI5e++NK6JoDLpk1Qi/76rOccu08lz5FdNt1EWXBveHDxlAGjvBDJ0QuIEz
-        YkIaywHnolfE976VNzzG9kPRq/SdllIfgXTL/f/NopdaUB1/C9XMxkFtH2m/55ARTzsHQYTzc4gN
-        dX0UvjC1gOQwHcvrGeSmSlA7KrDqI8uNHiC7yjErjBdazSH5Tz3wtG2oEs90Lh7qHWACvTl0hjrU
-        8wP2cw7AWNhHxooDZacgkeWMiwNknw16gwBMfzIc7viKFQlDEJ6XtG6DiXdUOg6v0hYJqpNyQbDy
-        hqrT5VjB7pM/Yc/JCysIBySp2SA97h9OFQxhKONBj5YKmHrE2wvLaSVf8CuhL1emq6Rg5ShjkcQL
-        MkWGZSQFAle/XE/Y+uGOAdhDKepBII2TzTKJl0m+TfJiHRfr9Q9Q6Qwo/5WTL+P1Ms62cVakSLsL
-        OYP60OTa1Wv8tZWX+MQPHcM+12/Ea+F+wYG0wSuTNGgoJa20pV7b8R3+qMsdZTiXtINhlRcX7bzt
-        MAIjKXTsp1GQneVByVHRIr/bvNukWZ6/BX1DM4nxOZ//AM0PTWioBQAA
-    headers:
-      Access-Control-Allow-Origin: ['*']
-      Access-Control-Expose-Headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      Cache-Control: ['private, max-age=60, s-maxage=60']
-      Content-Encoding: [gzip]
-      Content-Security-Policy: [default-src 'none']
-      Content-Type: [application/json; charset=utf-8]
-      Date: ['Tue, 23 Apr 2019 16:50:22 GMT']
-      ETag: [W/"090ee3357e52cf73b31161d67a27b965"]
-      Last-Modified: ['Mon, 04 Mar 2019 04:29:37 GMT']
-      Referrer-Policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      Server: [GitHub.com]
-      Status: [200 OK]
-      Strict-Transport-Security: [max-age=31536000; includeSubdomains; preload]
-      Transfer-Encoding: [chunked]
-      Vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      X-Accepted-OAuth-Scopes: ['']
-      X-Content-Type-Options: [nosniff]
-      X-Frame-Options: [deny]
-      X-GitHub-Media-Type: [github.v3; format=json]
-      X-GitHub-Request-Id: ['C697:4C28:39C272:90E63C:5CBF424E']
-      X-OAuth-Scopes: ['user, repo']
-      X-RateLimit-Limit: ['5000']
-      X-RateLimit-Remaining: ['4995']
-      X-RateLimit-Reset: ['1556041816']
-      X-XSS-Protection: [1; mode=block]
-    status: {code: 200, message: OK}
+      string: '{"message":"Bad credentials","documentation_url":"https://docs.github.com/rest"}'
+    headers:
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Content-Length:
+      - '80'
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 19:57:37 GMT
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 401 Unauthorized
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Vary:
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - 98E8:3348:10B3B40:28F3B9C:5FCFDAB1
+      X-RateLimit-Limit:
+      - '60'
+      X-RateLimit-Remaining:
+      - '43'
+      X-RateLimit-Reset:
+      - '1607459252'
+      X-RateLimit-Used:
+      - '17'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 401
+      message: Unauthorized
 - request:
     body: null
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [token sometoken]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token secret-token
+      Connection:
+      - keep-alive
+      User-Agent:
+      - PyGithub/Python
     method: GET
     uri: https://api.github.com/orgs/datalad-tester-org
   response:
     body:
       string: !!binary |
-        H4sIAAAAAAAAA6VTyW7bMBT8F52jSFYdtzYQtIekRQ+FUSCHIhfiSXqSGVOkysWGa+TfO1qSKHGA
-        Au5NpDhDzvKOkTK11NEqKsmTojL27Dzb2Ng6uohkGa3my+Vs8SlLLyJtShbdVvTj5vaw3i4P99nX
-        QL/aTflN7fKHn1fru9tsffN9D2iwCgc33rdulSTUysta+k3ILwvTJGB3ybs3Wm6NE+eAkx6Km3nH
-        2p/JMWBBsjFmeyZHD+3Mcy7wmRwDFiQNNznbM1lG8DEZPh7B14ZcyUL8F+1rjik77dAi+za+ftOl
-        YwGCY1sY7RFS34WQPDXs8+56jieW7AorWy8NeqmDUp2VYsdWVpLRvoqUYyRETqBHpOUf6s6K1poH
-        LryLVt6G8UDfCemNPZz8HlUMrVnNnq2ppes40PfKKGX2cH+ykrruVxvfqDc6J/1+t9qFZfJcCvIY
-        jCydLeN0Hmcf7maLVZphzO67qWkB/ccZf2gZDOuJdiC9wfxCpITbLEZVeKjZa/Cd7j/tvMgtpduK
-        4KgGO4AF1FNuLMG9wYFcKgX9ghuS3XDDWI4H1fFrxV+MZhuck6S7jPtQKwrKDw8bA2HboOd9zBG8
-        KSd1L0iLwa8XhOTnaP3eiIoKvAy/fwdpuUGdBGvK1aQirSJwHyNNTedYZZlxh2upwHL5cXG1yNA9
-        JH/iWgWpsM0hMVw6B2j4Sh8f/wKjzBz6MwUAAA==
-    headers:
-      Access-Control-Allow-Origin: ['*']
-      Access-Control-Expose-Headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      Cache-Control: ['private, max-age=60, s-maxage=60']
-      Content-Encoding: [gzip]
-      Content-Security-Policy: [default-src 'none']
-      Content-Type: [application/json; charset=utf-8]
-      Date: ['Tue, 23 Apr 2019 16:50:22 GMT']
-      ETag: [W/"7e5228ad7342e648fc760e47f588e90c"]
-      Last-Modified: ['Tue, 23 Apr 2019 16:02:49 GMT']
-      Referrer-Policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      Server: [GitHub.com]
-      Status: [200 OK]
-      Strict-Transport-Security: [max-age=31536000; includeSubdomains; preload]
-      Transfer-Encoding: [chunked]
-      Vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      X-Accepted-OAuth-Scopes: ['admin:org, read:org, repo, user, write:org']
-      X-Content-Type-Options: [nosniff]
-      X-Frame-Options: [deny]
-      X-GitHub-Media-Type: [github.v3; format=json]
-      X-GitHub-Request-Id: ['1A88:14D0:64AC5D:DA7276:5CBF424E']
-      X-OAuth-Scopes: ['user, repo']
-      X-RateLimit-Limit: ['5000']
-      X-RateLimit-Remaining: ['4994']
-      X-RateLimit-Reset: ['1556041816']
-      X-XSS-Protection: [1; mode=block]
-    status: {code: 200, message: OK}
+        H4sIAAAAAAAAA6VUy27bMBD8F57jSFZtNxYQtIekRQ+FUSCHIhdiJa1tJhTJkpQNN8i/d/SwozxO
+        rk/UkjPkzM76SWi7UUbkoqJImqpJ5BDZT6zfiAuhKpHPlsvp4ipLL4SxFcu2JH7e3B5Wj8vDffat
+        od9uW33Xu+Lh13x1d5utbn7sAW28xsFtjC7kSUJOXW5U3DbFZWnrBOwh+fBGz84GeQ446aC4mXds
+        4pkcPRYkW2sfz+TooK15ITR8JkePBUnNdcH+TJYB/JT0i2fwuabQqpT/RfuaY8xOO6TIv21fVwzp
+        EIAmsC+tiWhSl4UmOSbsy+56hidWHEqvXFQWuTSN1kge1XxcA+PIHI6fBQJ8XGtb0hjGNSmksOeI
+        exWRbNneP+ZTQe7Yq7ViJHtNOjC6T0Eio2TU345QOm8fuIxB5NE3w4Eubypaf3i3PTjUJzLPTrZv
+        VGg5MEtrq7Xdo7OjL2WgBHvbWOs3Ho5m58OxKT1T5EpSxNBl6XQ5SWeT7NPddJGnGUb4vp1IB+jH
+        Z+ZX+XTenokHB6PFaqS9rVr8N0CkQidZDqrwULs34HtfP1Ze5FYqPMJ52oB9eiFKqKfCeoJ7vQOF
+        0hr65dAyAWN50quevFb81Rr2TQiKTJufLjBranTsHzY0hH2NGeoiJOBNNRqlkozs/XpBKD61Nu6t
+        XFOJl2H7T6M814iqZEOFHkXkOEEjNgd5JxqnCXc/DdEVa8+MNwRHJSxYfl7MFxlyj2S8dnWa4od4
+        wA5YG9BVMM4A7Ffp8/M/4LAMALMFAAA=
+    headers:
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Cache-Control:
+      - private, max-age=60, s-maxage=60
+      Content-Encoding:
+      - gzip
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 19:57:37 GMT
+      ETag:
+      - W/"7711dafea6b07e5657560b779817d9544a5179daab89da1a3cee35f7edfd0fba"
+      Last-Modified:
+      - Tue, 23 Apr 2019 16:58:15 GMT
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 200 OK
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Transfer-Encoding:
+      - chunked
+      Vary:
+      - Accept, Authorization, Cookie, X-GitHub-OTP
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Accepted-OAuth-Scopes:
+      - admin:org, read:org, repo, user, write:org
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - 98EA:5D46:219ABEC:4C0F1CC:5FCFDAB1
+      X-OAuth-Scopes:
+      - delete_repo, repo
+      X-RateLimit-Limit:
+      - '5000'
+      X-RateLimit-Remaining:
+      - '4993'
+      X-RateLimit-Reset:
+      - '1607460909'
+      X-RateLimit-Used:
+      - '7'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 200
+      message: OK
 - request:
     body: null
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [token sometoken]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token secret-token
+      Connection:
+      - keep-alive
+      User-Agent:
+      - PyGithub/Python
     method: GET
     uri: https://api.github.com/repos/datalad-tester-org/test_integration1
   response:
     body:
       string: !!binary |
-        H4sIAAAAAAAAA+2YwW7bOBCG38XXTULbTYLEQNE9pFt0gdbYRQ9FLwYl0RYTSdSSlF1HyLvvP6Rk
-        yY4bxy6PuSQyJX7DGc4Mh1MPZDKYjG7eDa9uRtfjs0GhEjGjscGXu4+rafZ3Fn+6feTf/13GxcPP
-        6d2X1ddvi59f7z+/H+Bjngt8aYWxM1lYsdDcSlWM8GpeZdmseZ9wyzOenNN3Qp8rvWD7ppRaLrkF
-        cM4zI84GalUIPZjUg0wtZAE5zzkQRGu9vL0dXd+MhzvLX08fbtc/xn9V/HuZJp+yZXT/z9X028fx
-        9O7zClM5xHE9q3QGeGptaSaM+UEzvFhIm1ZRZYSOFXQr7EWsclaxVtiH5ftLQKCzxzijYWAHV8qG
-        5KcDZ9heRVKbZztr8UtwE/dOmassUysQd3V4nVC2mU8b5liyWPwWC/NrpmwqYFao+kQGksaeukA3
-        t2b0D05JNIMd0yI5cZHNbCyRfOupZlqUymGryMRaluS+py52iwEm/JwX8tGFxKlMMAxQtMxTEW4u
-        GGIJHz4V4ifXzMVovCaTaRELucRW/BZ4hwKuXZeUVKY969EGSStmPMkpEbj88HSGkD0uYvZmnURs
-        Nn4wKZC1KBT0wyYLvRjOzrZ7YnOvJMIesP/reYhd0GCYB7EOByVYzfC3ibYYSYFHCmldHUoyRyx9
-        i1qz/k9yLCt4Hk4lRwM1VSqg9R0NVGlMJV4VAUfYx0ENa2OuqPLIp9LXRNoRcjwOWnBj5KIQIpzV
-        N8SatedApHkRpwFltMCa+SfnO3wRTgmCgRllKgoHxZnOHLFmJuX+gLSzoOsmEQTckqDFPKwSBNxI
-        sDqk9zgFiLjh4+C2cKRwGrRAVje7kPFiUfFFQBEbIh1fKFsW/PFgqXZE9HZI8KlE1TKqAufpDko6
-        +BoJuSjgNnTMToKrwl6u8I6xU6+0c5bKc3moDjoC3/C2Yi20DIqHXTn0+3BBd6QiBKxZd+D4460R
-        FWxHmvOt1aAvsLlqhXOwFsjqP0puU8q3kFtyLYKp0/BYHXGUpRcXF3UquLus5EKHTCgeBy7XcYrS
-        O5gGdQtEUZlz6+5Fc1IgwT0pUzwJtx8bIujeD4Jp4XF9bypRzodbuqP18bnM0NFQRcAzo0P2BRXK
-        yrmMX3OTPCLgt6j1ByOLWJxxXIAQHVbGEvGC6zy5Ae4AIqAhPQ4Kon3kb5KZQOiE2yktPLBmvmmQ
-        iDJT67DpsseknKIFWlfJjFtcXcfD0e358PJ8/O7b6HpyNUR/7Qe+qUo0cQ58U1Ym/fUnt4TBYdCE
-        DJ7QsHqxSfT8IkrdKFCMSTvKnx1j8rzR9EtGnMH3d8L3xNUsd8/7IznQKFW5KFHAtbd4Ix/xjJ5g
-        r/aKVVVghzC44haXEVQy3VBbr7WAlJuZzymbZgANlVrdi9iawcTqCm1KGuuyWtu8pNGVfJDbU6m+
-        3Iz4fkAnP5daq6Yd6RsRTVpGY7FpiSbS8CgT3YAqRdEssq+JjEVhNpbwrQLSuvf5lhXcj0TMeZXZ
-        mb9NwY9zTv1amLYUOoclqI9F/dimDePVJ49tTUEZ0j+jO4NMolYz81/F4Wru6Go/82/cEBZN5dj2
-        Gy3oJN2e02+mvfWEo7ee8FtP+K0nvKcnXAi7Qme0lwz719Y22T79D6vbxcj4GgAA
-    headers:
-      Access-Control-Allow-Origin: ['*']
-      Access-Control-Expose-Headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      Cache-Control: ['private, max-age=60, s-maxage=60']
-      Content-Encoding: [gzip]
-      Content-Security-Policy: [default-src 'none']
-      Content-Type: [application/json; charset=utf-8]
-      Date: ['Tue, 23 Apr 2019 16:50:23 GMT']
-      ETag: [W/"9a6bd71d4d28485de0be79b73fdf9478"]
-      Last-Modified: ['Tue, 23 Apr 2019 16:50:18 GMT']
-      Referrer-Policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      Server: [GitHub.com]
-      Status: [200 OK]
-      Strict-Transport-Security: [max-age=31536000; includeSubdomains; preload]
-      Transfer-Encoding: [chunked]
-      Vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      X-Accepted-OAuth-Scopes: [repo]
-      X-Content-Type-Options: [nosniff]
-      X-Frame-Options: [deny]
-      X-GitHub-Media-Type: [github.v3; format=json]
-      X-GitHub-Request-Id: ['1A88:14D0:64AC6D:DA728E:5CBF424E']
-      X-OAuth-Scopes: ['user, repo']
-      X-RateLimit-Limit: ['5000']
-      X-RateLimit-Remaining: ['4993']
-      X-RateLimit-Reset: ['1556041816']
-      X-XSS-Protection: [1; mode=block]
-    status: {code: 200, message: OK}
+        H4sIAAAAAAAAA+2YUW/bNhDHv4tfl4Sxk7S1gaJ7SFdsQBZsyICuLwIt0RZrSdRIyoYj5Lvvf6Rk
+        yY4bxy4f85LIlPg73vHueLx6IJPB5Go4fn/97mZ4czYoVCIiGhvc3X5e3Wd/ZPGX8SP/+vcyLhaP
+        dw+Lqz9v/x3ePfzzcYCPeS7wpRXGRrKwYq65laoY4tWsyrKoeZ9wyzOenNN3Qp8rPWf7ppRaLrkF
+        cMYzI84GalUIPZjUg0zNZQE5zzkQRGu9Ho+H7z6MLneWv75fjNffRr9V/GuZJl+y5fT7Xzf3D59H
+        97e/rzCVQxzXUaUzwFNrSzNhzA+ay4u5tGk1rYzQsYJuhb2IVc4q1gr7tPx4DQh09hhnNAzs4ErZ
+        kPx04Azbq0hq82xnLX4JbuLeKTOVZWoF4q4OrxPKNvNpwxxLFvOfYmF+zZRNBcwKVZ/IQNLYUxfo
+        5taM/sEpiWawY1okJy6ymY0lkm891UyLUjlsNTWxliW576mL3WKACT/nhXx0IXEqEwwDFC3zVISb
+        C4ZYwodPhfjJNXMxGq/JZFrEQi6xFT8F3qGAa9clJZX7nvVog6QVEU9ySgQuPzydIWSPi5i9WScR
+        m40fTApkLQoFvdhkoRfD2dl2T2zulUTYA/Z/PQ+xCxoMsxDrcFCC1Qx/m2iLkRT4VCGtq0NJ5oil
+        b1Fr1v9JjmUFz8Op5GigpkoFtL6jgSqNqcSrIuAI+zioYW3MFVU+9an0NZF2hByPgxbcGDkvhAhn
+        9Q2xZu05MNW8iNOAMlpgzfyT8x0+D6cEwcCcZmoaDooznTlizUzK/QFpo6DrJhEE3JKgxSysEgTc
+        SLA6pPc4BYi44ePgtnCkcBq0QFY3u5DxYl7xeUARGyIdXyhb5vzxYKl2RPR2SPCpRNVyWgXO0x2U
+        dPA1EnJRwG3omJ0EV4W9XOEdY6deaecslefyUB10BL7hbcVaaBkUD7ty6Pfhgu5IRQhYs+7A8cdb
+        IyrYjjTnW6tBX2Bz1QrnYC2Q1b+U3KaUbyG35FoEU6fhsXrKUZZeXFzUqeDuspILHTKheBy4XMcp
+        Su9gGtQtEEVlzq27F81IgQT3pEzxJNx+bIigez8IpoXH9b2pRDkfbumO1sfnMkNHQxUBz4wO2RdU
+        KCtnMn7NTfKIgN+i1p+MLGJxxnEBQnRYGUvEC67z5Aa4A4iAhvQ4KIj2kb9JZgKhE26ntPDAmvmm
+        QSLKTK3Dpssek3KKFmhdJRG3uLqOLkeX58PR+eWHh+F4cvN+cnXzDd9UJZo4B74pK5P++JN3hMFh
+        0IQMntCwerFJ9PwiSt0oUIxJO8qvHWPyvNH0Q0acwfd3wvfE1Sx3z/sjOdAoVbkoUcC1t3gjH/GM
+        nmCv9opVVWCHMLjiFpcRVDLdUFuvtYCUm8jnlE0zgIZKrb6L2JrBxOoKbUoa67Ja27yk0ZVcyO2p
+        VF9uRnw/oJOfS61V0470jYgmLaOx2LREE2n4NBPdgCpF0Syyr4mMRWE2lvCtAtK69/mWFdyPRMx4
+        ldnI36bgxzlHt+VsUAqdww7UxaJubNOE8cqTv7aGoPzon9GbsSIvI+8gVi0EtW+BQnZRq8j8V3G4
+        nzvO2sn+jRuCIlSibb/Rgk7X7TkJwhxdIb/eCCVjQ2z7x/0O0lsb+a2N/NZGfmsj72kjF8Ku0Ezt
+        5c/+TbfNz0//A8gmg5ArGwAA
+    headers:
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Cache-Control:
+      - private, max-age=60, s-maxage=60
+      Content-Encoding:
+      - gzip
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 19:57:38 GMT
+      ETag:
+      - W/"a4f4a1f87a44847fb27ce97b583556dd52101f738a8eab2269e72ae83af202ba"
+      Last-Modified:
+      - Tue, 08 Dec 2020 19:57:35 GMT
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 200 OK
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Transfer-Encoding:
+      - chunked
+      Vary:
+      - Accept, Authorization, Cookie, X-GitHub-OTP
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Accepted-OAuth-Scopes:
+      - repo
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - 98EA:5D46:219ABF9:4C0F1D9:5FCFDAB1
+      X-OAuth-Scopes:
+      - delete_repo, repo
+      X-RateLimit-Limit:
+      - '5000'
+      X-RateLimit-Remaining:
+      - '4992'
+      X-RateLimit-Reset:
+      - '1607460909'
+      X-RateLimit-Used:
+      - '8'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 200
+      message: OK
 - request:
     body: null
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [token fake1]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token fake1
+      Connection:
+      - keep-alive
+      User-Agent:
+      - PyGithub/Python
     method: GET
     uri: https://api.github.com/user
   response:
-    body: {string: '{"message":"Bad credentials","documentation_url":"https://developer.github.com/v3"}'}
-    headers:
-      Access-Control-Allow-Origin: ['*']
-      Access-Control-Expose-Headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      Content-Length: ['83']
-      Content-Security-Policy: [default-src 'none']
-      Content-Type: [application/json; charset=utf-8]
-      Date: ['Tue, 23 Apr 2019 16:50:23 GMT']
-      Referrer-Policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      Server: [GitHub.com]
-      Status: [401 Unauthorized]
-      Strict-Transport-Security: [max-age=31536000; includeSubdomains; preload]
-      X-Content-Type-Options: [nosniff]
-      X-Frame-Options: [deny]
-      X-GitHub-Media-Type: [github.v3; format=json]
-      X-GitHub-Request-Id: ['1FF8:4247:7FFB2C:101220C:5CBF424F']
-      X-RateLimit-Limit: ['60']
-      X-RateLimit-Remaining: ['54']
-      X-RateLimit-Reset: ['1556041799']
-      X-XSS-Protection: [1; mode=block]
-    status: {code: 401, message: Unauthorized}
-- request:
-    body: null
-    headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [token fake2]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
-    method: GET
-    uri: https://api.github.com/user
-  response:
-    body: {string: '{"message":"Bad credentials","documentation_url":"https://developer.github.com/v3"}'}
-    headers:
-      Access-Control-Allow-Origin: ['*']
-      Access-Control-Expose-Headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      Content-Length: ['83']
-      Content-Security-Policy: [default-src 'none']
-      Content-Type: [application/json; charset=utf-8]
-      Date: ['Tue, 23 Apr 2019 16:50:23 GMT']
-      Referrer-Policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      Server: [GitHub.com]
-      Status: [401 Unauthorized]
-      Strict-Transport-Security: [max-age=31536000; includeSubdomains; preload]
-      X-Content-Type-Options: [nosniff]
-      X-Frame-Options: [deny]
-      X-GitHub-Media-Type: [github.v3; format=json]
-      X-GitHub-Request-Id: ['BCAC:52E1:63A2F5:DEE5BB:5CBF424F']
-      X-RateLimit-Limit: ['60']
-      X-RateLimit-Remaining: ['53']
-      X-RateLimit-Reset: ['1556041799']
-      X-XSS-Protection: [1; mode=block]
-    status: {code: 401, message: Unauthorized}
+    body:
+      string: '{"message":"Bad credentials","documentation_url":"https://docs.github.com/rest"}'
+    headers:
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Content-Length:
+      - '80'
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 19:57:38 GMT
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 401 Unauthorized
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Vary:
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - 98EC:3803:3CBF1E2:66CBDF8:5FCFDAB2
+      X-RateLimit-Limit:
+      - '60'
+      X-RateLimit-Remaining:
+      - '42'
+      X-RateLimit-Reset:
+      - '1607459252'
+      X-RateLimit-Used:
+      - '18'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 401
+      message: Unauthorized
 - request:
     body: null
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [token sometoken]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token fake2
+      Connection:
+      - keep-alive
+      User-Agent:
+      - PyGithub/Python
     method: GET
     uri: https://api.github.com/user
   response:
     body:
-      string: !!binary |
-        H4sIAAAAAAAAA51UTY/aMBD9Lz4D+SBlm0jVHraXHtrVSrSqeokcxwS3jm3ZDpSN+O99TsLSsitV
-        ChfweObN85t59ETqRihSkJp6Kmm99Nx5bsmCiJoUaZpn6/x9siBK17wMIfL549Pm2/cvkv38dHrc
-        Pj0/bpvfSKcHANiysxI5e++NK6JoDLpk1Qi/76rOccu08lz5FdNt1EWXBveHDxlAGjvBDJ0QuIEz
-        YkIaywHnolfE976VNzzG9kPRq/SdllIfgXTL/f/NopdaUB1/C9XMxkFtH2m/55ARTzsHQYTzc4gN
-        dX0UvjC1gOQwHcvrGeSmSlA7KrDqI8uNHiC7yjErjBdazSH5Tz3wtG2oEs90Lh7qHWACvTl0hjrU
-        8wP2cw7AWNhHxooDZacgkeWMiwNknw16gwBMfzIc7viKFQlDEJ6XtG6DiXdUOg6v0hYJqpNyQbDy
-        hqrT5VjB7pM/Yc/JCysIBySp2SA97h9OFQxhKONBj5YKmHrE2wvLaSVf8CuhL1emq6Rg5ShjkcQL
-        MkWGZSQFAle/XE/Y+uGOAdhDKepBII2TzTKJl0m+TfJiHRfr9Q9Q6Qwo/5WTL+P1Ms62cVakSLsL
-        OYP60OTa1Wv8tZWX+MQPHcM+12/Ea+F+wYG0wSuTNGgoJa20pV7b8R3+qMsdZTiXtINhlRcX7bzt
-        MAIjKXTsp1GQneVByVHRIr/bvNukWZ6/BX1DM4nxOZ//AM0PTWioBQAA
-    headers:
-      Access-Control-Allow-Origin: ['*']
-      Access-Control-Expose-Headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      Cache-Control: ['private, max-age=60, s-maxage=60']
-      Content-Encoding: [gzip]
-      Content-Security-Policy: [default-src 'none']
-      Content-Type: [application/json; charset=utf-8]
-      Date: ['Tue, 23 Apr 2019 16:50:23 GMT']
-      ETag: [W/"090ee3357e52cf73b31161d67a27b965"]
-      Last-Modified: ['Mon, 04 Mar 2019 04:29:37 GMT']
-      Referrer-Policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      Server: [GitHub.com]
-      Status: [200 OK]
-      Strict-Transport-Security: [max-age=31536000; includeSubdomains; preload]
-      Transfer-Encoding: [chunked]
-      Vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      X-Accepted-OAuth-Scopes: ['']
-      X-Content-Type-Options: [nosniff]
-      X-Frame-Options: [deny]
-      X-GitHub-Media-Type: [github.v3; format=json]
-      X-GitHub-Request-Id: ['1EEF:0789:800628:105ADF4:5CBF424F']
-      X-OAuth-Scopes: ['user, repo']
-      X-RateLimit-Limit: ['5000']
-      X-RateLimit-Remaining: ['4992']
-      X-RateLimit-Reset: ['1556041816']
-      X-XSS-Protection: [1; mode=block]
-    status: {code: 200, message: OK}
+      string: '{"message":"Bad credentials","documentation_url":"https://docs.github.com/rest"}'
+    headers:
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Content-Length:
+      - '80'
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 19:57:38 GMT
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 401 Unauthorized
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Vary:
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - 98EE:43EA:384C088:5F99217:5FCFDAB2
+      X-RateLimit-Limit:
+      - '60'
+      X-RateLimit-Remaining:
+      - '41'
+      X-RateLimit-Reset:
+      - '1607459252'
+      X-RateLimit-Used:
+      - '19'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 401
+      message: Unauthorized
 - request:
     body: null
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [token sometoken]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token secret-token
+      Connection:
+      - keep-alive
+      User-Agent:
+      - PyGithub/Python
     method: GET
     uri: https://api.github.com/orgs/datalad-tester-org
   response:
     body:
       string: !!binary |
-        H4sIAAAAAAAAA6VTyW7bMBT8F52jSFYdtzYQtIekRQ+FUSCHIhfiSXqSGVOkysWGa+TfO1qSKHGA
-        Au5NpDhDzvKOkTK11NEqKsmTojL27Dzb2Ng6uohkGa3my+Vs8SlLLyJtShbdVvTj5vaw3i4P99nX
-        QL/aTflN7fKHn1fru9tsffN9D2iwCgc33rdulSTUysta+k3ILwvTJGB3ybs3Wm6NE+eAkx6Km3nH
-        2p/JMWBBsjFmeyZHD+3Mcy7wmRwDFiQNNznbM1lG8DEZPh7B14ZcyUL8F+1rjik77dAi+za+ftOl
-        YwGCY1sY7RFS34WQPDXs8+56jieW7AorWy8NeqmDUp2VYsdWVpLRvoqUYyRETqBHpOUf6s6K1poH
-        LryLVt6G8UDfCemNPZz8HlUMrVnNnq2ppes40PfKKGX2cH+ykrruVxvfqDc6J/1+t9qFZfJcCvIY
-        jCydLeN0Hmcf7maLVZphzO67qWkB/ccZf2gZDOuJdiC9wfxCpITbLEZVeKjZa/Cd7j/tvMgtpduK
-        4KgGO4AF1FNuLMG9wYFcKgX9ghuS3XDDWI4H1fFrxV+MZhuck6S7jPtQKwrKDw8bA2HboOd9zBG8
-        KSd1L0iLwa8XhOTnaP3eiIoKvAy/fwdpuUGdBGvK1aQirSJwHyNNTedYZZlxh2upwHL5cXG1yNA9
-        JH/iWgWpsM0hMVw6B2j4Sh8f/wKjzBz6MwUAAA==
-    headers:
-      Access-Control-Allow-Origin: ['*']
-      Access-Control-Expose-Headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      Cache-Control: ['private, max-age=60, s-maxage=60']
-      Content-Encoding: [gzip]
-      Content-Security-Policy: [default-src 'none']
-      Content-Type: [application/json; charset=utf-8]
-      Date: ['Tue, 23 Apr 2019 16:50:23 GMT']
-      ETag: [W/"7e5228ad7342e648fc760e47f588e90c"]
-      Last-Modified: ['Tue, 23 Apr 2019 16:02:49 GMT']
-      Referrer-Policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      Server: [GitHub.com]
-      Status: [200 OK]
-      Strict-Transport-Security: [max-age=31536000; includeSubdomains; preload]
-      Transfer-Encoding: [chunked]
-      Vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      X-Accepted-OAuth-Scopes: ['admin:org, read:org, repo, user, write:org']
-      X-Content-Type-Options: [nosniff]
-      X-Frame-Options: [deny]
-      X-GitHub-Media-Type: [github.v3; format=json]
-      X-GitHub-Request-Id: ['C0CC:108E:5BEB4B:CCFFF9:5CBF424F']
-      X-OAuth-Scopes: ['user, repo']
-      X-RateLimit-Limit: ['5000']
-      X-RateLimit-Remaining: ['4991']
-      X-RateLimit-Reset: ['1556041816']
-      X-XSS-Protection: [1; mode=block]
-    status: {code: 200, message: OK}
+        H4sIAAAAAAAAA6VUy27bMBD8F57jSFZtNxYQtIekRQ+FUSCHIhdiJa1tJhTJkpQNN8i/d/SwozxO
+        rk/UkjPkzM76SWi7UUbkoqJImqpJ5BDZT6zfiAuhKpHPlsvp4ipLL4SxFcu2JH7e3B5Wj8vDffat
+        od9uW33Xu+Lh13x1d5utbn7sAW28xsFtjC7kSUJOXW5U3DbFZWnrBOwh+fBGz84GeQ446aC4mXds
+        4pkcPRYkW2sfz+TooK15ITR8JkePBUnNdcH+TJYB/JT0i2fwuabQqpT/RfuaY8xOO6TIv21fVwzp
+        EIAmsC+tiWhSl4UmOSbsy+56hidWHEqvXFQWuTSN1kge1XxcA+PIHI6fBQJ8XGtb0hjGNSmksOeI
+        exWRbNneP+ZTQe7Yq7ViJHtNOjC6T0Eio2TU345QOm8fuIxB5NE3w4Eubypaf3i3PTjUJzLPTrZv
+        VGg5MEtrq7Xdo7OjL2WgBHvbWOs3Ho5m58OxKT1T5EpSxNBl6XQ5SWeT7NPddJGnGUb4vp1IB+jH
+        Z+ZX+XTenokHB6PFaqS9rVr8N0CkQidZDqrwULs34HtfP1Ze5FYqPMJ52oB9eiFKqKfCeoJ7vQOF
+        0hr65dAyAWN50quevFb81Rr2TQiKTJufLjBranTsHzY0hH2NGeoiJOBNNRqlkozs/XpBKD61Nu6t
+        XFOJl2H7T6M814iqZEOFHkXkOEEjNgd5JxqnCXc/DdEVa8+MNwRHJSxYfl7MFxlyj2S8dnWa4od4
+        wA5YG9BVMM4A7Ffp8/M/4LAMALMFAAA=
+    headers:
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Cache-Control:
+      - private, max-age=60, s-maxage=60
+      Content-Encoding:
+      - gzip
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 19:57:38 GMT
+      ETag:
+      - W/"7711dafea6b07e5657560b779817d9544a5179daab89da1a3cee35f7edfd0fba"
+      Last-Modified:
+      - Tue, 23 Apr 2019 16:58:15 GMT
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 200 OK
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Transfer-Encoding:
+      - chunked
+      Vary:
+      - Accept, Authorization, Cookie, X-GitHub-OTP
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Accepted-OAuth-Scopes:
+      - admin:org, read:org, repo, user, write:org
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - 98F0:29B2:F99542:286DB27:5FCFDAB2
+      X-OAuth-Scopes:
+      - delete_repo, repo
+      X-RateLimit-Limit:
+      - '5000'
+      X-RateLimit-Remaining:
+      - '4991'
+      X-RateLimit-Reset:
+      - '1607460909'
+      X-RateLimit-Used:
+      - '9'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 200
+      message: OK
 - request:
     body: null
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [token sometoken]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token secret-token
+      Connection:
+      - keep-alive
+      User-Agent:
+      - PyGithub/Python
     method: GET
     uri: https://api.github.com/repos/datalad-tester-org/test_integration1
   response:
     body:
       string: !!binary |
-        H4sIAAAAAAAAA+2YwW7bOBCG38XXTULbTYLEQNE9pFt0gdbYRQ9FLwYl0RYTSdSSlF1HyLvvP6Rk
-        yY4bxy6PuSQyJX7DGc4Mh1MPZDKYjG7eDa9uRtfjs0GhEjGjscGXu4+rafZ3Fn+6feTf/13GxcPP
-        6d2X1ddvi59f7z+/H+Bjngt8aYWxM1lYsdDcSlWM8GpeZdmseZ9wyzOenNN3Qp8rvWD7ppRaLrkF
-        cM4zI84GalUIPZjUg0wtZAE5zzkQRGu9vL0dXd+MhzvLX08fbtc/xn9V/HuZJp+yZXT/z9X028fx
-        9O7zClM5xHE9q3QGeGptaSaM+UEzvFhIm1ZRZYSOFXQr7EWsclaxVtiH5ftLQKCzxzijYWAHV8qG
-        5KcDZ9heRVKbZztr8UtwE/dOmassUysQd3V4nVC2mU8b5liyWPwWC/NrpmwqYFao+kQGksaeukA3
-        t2b0D05JNIMd0yI5cZHNbCyRfOupZlqUymGryMRaluS+py52iwEm/JwX8tGFxKlMMAxQtMxTEW4u
-        GGIJHz4V4ifXzMVovCaTaRELucRW/BZ4hwKuXZeUVKY969EGSStmPMkpEbj88HSGkD0uYvZmnURs
-        Nn4wKZC1KBT0wyYLvRjOzrZ7YnOvJMIesP/reYhd0GCYB7EOByVYzfC3ibYYSYFHCmldHUoyRyx9
-        i1qz/k9yLCt4Hk4lRwM1VSqg9R0NVGlMJV4VAUfYx0ENa2OuqPLIp9LXRNoRcjwOWnBj5KIQIpzV
-        N8SatedApHkRpwFltMCa+SfnO3wRTgmCgRllKgoHxZnOHLFmJuX+gLSzoOsmEQTckqDFPKwSBNxI
-        sDqk9zgFiLjh4+C2cKRwGrRAVje7kPFiUfFFQBEbIh1fKFsW/PFgqXZE9HZI8KlE1TKqAufpDko6
-        +BoJuSjgNnTMToKrwl6u8I6xU6+0c5bKc3moDjoC3/C2Yi20DIqHXTn0+3BBd6QiBKxZd+D4460R
-        FWxHmvOt1aAvsLlqhXOwFsjqP0puU8q3kFtyLYKp0/BYHXGUpRcXF3UquLus5EKHTCgeBy7XcYrS
-        O5gGdQtEUZlz6+5Fc1IgwT0pUzwJtx8bIujeD4Jp4XF9bypRzodbuqP18bnM0NFQRcAzo0P2BRXK
-        yrmMX3OTPCLgt6j1ByOLWJxxXIAQHVbGEvGC6zy5Ae4AIqAhPQ4Kon3kb5KZQOiE2yktPLBmvmmQ
-        iDJT67DpsseknKIFWlfJjFtcXcfD0e358PJ8/O7b6HpyNUR/7Qe+qUo0cQ58U1Ym/fUnt4TBYdCE
-        DJ7QsHqxSfT8IkrdKFCMSTvKnx1j8rzR9EtGnMH3d8L3xNUsd8/7IznQKFW5KFHAtbd4Ix/xjJ5g
-        r/aKVVVghzC44haXEVQy3VBbr7WAlJuZzymbZgANlVrdi9iawcTqCm1KGuuyWtu8pNGVfJDbU6m+
-        3Iz4fkAnP5daq6Yd6RsRTVpGY7FpiSbS8CgT3YAqRdEssq+JjEVhNpbwrQLSuvf5lhXcj0TMeZXZ
-        mb9NwY9zTv1amLYUOoclqI9F/dimDePVJ49tTUEZ0j+jO4NMolYz81/F4Wru6Go/82/cEBZN5dj2
-        Gy3oJN2e02+mvfWEo7ee8FtP+K0nvKcnXAi7Qme0lwz719Y22T79D6vbxcj4GgAA
-    headers:
-      Access-Control-Allow-Origin: ['*']
-      Access-Control-Expose-Headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      Cache-Control: ['private, max-age=60, s-maxage=60']
-      Content-Encoding: [gzip]
-      Content-Security-Policy: [default-src 'none']
-      Content-Type: [application/json; charset=utf-8]
-      Date: ['Tue, 23 Apr 2019 16:50:24 GMT']
-      ETag: [W/"9a6bd71d4d28485de0be79b73fdf9478"]
-      Last-Modified: ['Tue, 23 Apr 2019 16:50:18 GMT']
-      Referrer-Policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      Server: [GitHub.com]
-      Status: [200 OK]
-      Strict-Transport-Security: [max-age=31536000; includeSubdomains; preload]
-      Transfer-Encoding: [chunked]
-      Vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      X-Accepted-OAuth-Scopes: [repo]
-      X-Content-Type-Options: [nosniff]
-      X-Frame-Options: [deny]
-      X-GitHub-Media-Type: [github.v3; format=json]
-      X-GitHub-Request-Id: ['C0CC:108E:5BEB5D:CD0016:5CBF424F']
-      X-OAuth-Scopes: ['user, repo']
-      X-RateLimit-Limit: ['5000']
-      X-RateLimit-Remaining: ['4990']
-      X-RateLimit-Reset: ['1556041816']
-      X-XSS-Protection: [1; mode=block]
-    status: {code: 200, message: OK}
+        H4sIAAAAAAAAA+2YUW/bNhDHv4tfl4Sxk7S1gaJ7SFdsQBZsyICuLwIt0RZrSdRIyoYj5Lvvf6Rk
+        yY4bxy4f85LIlPg73vHueLx6IJPB5Go4fn/97mZ4czYoVCIiGhvc3X5e3Wd/ZPGX8SP/+vcyLhaP
+        dw+Lqz9v/x3ePfzzcYCPeS7wpRXGRrKwYq65laoY4tWsyrKoeZ9wyzOenNN3Qp8rPWf7ppRaLrkF
+        cMYzI84GalUIPZjUg0zNZQE5zzkQRGu9Ho+H7z6MLneWv75fjNffRr9V/GuZJl+y5fT7Xzf3D59H
+        97e/rzCVQxzXUaUzwFNrSzNhzA+ay4u5tGk1rYzQsYJuhb2IVc4q1gr7tPx4DQh09hhnNAzs4ErZ
+        kPx04Azbq0hq82xnLX4JbuLeKTOVZWoF4q4OrxPKNvNpwxxLFvOfYmF+zZRNBcwKVZ/IQNLYUxfo
+        5taM/sEpiWawY1okJy6ymY0lkm891UyLUjlsNTWxliW576mL3WKACT/nhXx0IXEqEwwDFC3zVISb
+        C4ZYwodPhfjJNXMxGq/JZFrEQi6xFT8F3qGAa9clJZX7nvVog6QVEU9ySgQuPzydIWSPi5i9WScR
+        m40fTApkLQoFvdhkoRfD2dl2T2zulUTYA/Z/PQ+xCxoMsxDrcFCC1Qx/m2iLkRT4VCGtq0NJ5oil
+        b1Fr1v9JjmUFz8Op5GigpkoFtL6jgSqNqcSrIuAI+zioYW3MFVU+9an0NZF2hByPgxbcGDkvhAhn
+        9Q2xZu05MNW8iNOAMlpgzfyT8x0+D6cEwcCcZmoaDooznTlizUzK/QFpo6DrJhEE3JKgxSysEgTc
+        SLA6pPc4BYi44ePgtnCkcBq0QFY3u5DxYl7xeUARGyIdXyhb5vzxYKl2RPR2SPCpRNVyWgXO0x2U
+        dPA1EnJRwG3omJ0EV4W9XOEdY6deaecslefyUB10BL7hbcVaaBkUD7ty6Pfhgu5IRQhYs+7A8cdb
+        IyrYjjTnW6tBX2Bz1QrnYC2Q1b+U3KaUbyG35FoEU6fhsXrKUZZeXFzUqeDuspILHTKheBy4XMcp
+        Su9gGtQtEEVlzq27F81IgQT3pEzxJNx+bIigez8IpoXH9b2pRDkfbumO1sfnMkNHQxUBz4wO2RdU
+        KCtnMn7NTfKIgN+i1p+MLGJxxnEBQnRYGUvEC67z5Aa4A4iAhvQ4KIj2kb9JZgKhE26ntPDAmvmm
+        QSLKTK3Dpssek3KKFmhdJRG3uLqOLkeX58PR+eWHh+F4cvN+cnXzDd9UJZo4B74pK5P++JN3hMFh
+        0IQMntCwerFJ9PwiSt0oUIxJO8qvHWPyvNH0Q0acwfd3wvfE1Sx3z/sjOdAoVbkoUcC1t3gjH/GM
+        nmCv9opVVWCHMLjiFpcRVDLdUFuvtYCUm8jnlE0zgIZKrb6L2JrBxOoKbUoa67Ja27yk0ZVcyO2p
+        VF9uRnw/oJOfS61V0470jYgmLaOx2LREE2n4NBPdgCpF0Syyr4mMRWE2lvCtAtK69/mWFdyPRMx4
+        ldnI36bgxzlHt+VsUAqdww7UxaJubNOE8cqTv7aGoPzon9GbsSIvI+8gVi0EtW+BQnZRq8j8V3G4
+        nzvO2sn+jRuCIlSibb/Rgk7X7TkJwhxdIb/eCCVjQ2z7x/0O0lsb+a2N/NZGfmsj72kjF8Ku0Ezt
+        5c/+TbfNz0//A8gmg5ArGwAA
+    headers:
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Cache-Control:
+      - private, max-age=60, s-maxage=60
+      Content-Encoding:
+      - gzip
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 19:57:38 GMT
+      ETag:
+      - W/"a4f4a1f87a44847fb27ce97b583556dd52101f738a8eab2269e72ae83af202ba"
+      Last-Modified:
+      - Tue, 08 Dec 2020 19:57:35 GMT
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 200 OK
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Transfer-Encoding:
+      - chunked
+      Vary:
+      - Accept, Authorization, Cookie, X-GitHub-OTP
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Accepted-OAuth-Scopes:
+      - repo
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - 98F0:29B2:F9954A:286DB2E:5FCFDAB2
+      X-OAuth-Scopes:
+      - delete_repo, repo
+      X-RateLimit-Limit:
+      - '5000'
+      X-RateLimit-Remaining:
+      - '4990'
+      X-RateLimit-Reset:
+      - '1607460909'
+      X-RateLimit-Used:
+      - '10'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 200
+      message: OK
 version: 1
diff --git a/datalad/distribution/tests/vcr_cassettes/github_yarikoptic.yaml b/datalad/distribution/tests/vcr_cassettes/github_yarikoptic.yaml
index 11b33dba2..1d82f18cd 100644
--- a/datalad/distribution/tests/vcr_cassettes/github_yarikoptic.yaml
+++ b/datalad/distribution/tests/vcr_cassettes/github_yarikoptic.yaml
@@ -2,366 +2,612 @@ interactions:
 - request:
     body: null
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [!!python/unicode token TOKEN]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token secret-token
+      Connection:
+      - keep-alive
+      User-Agent:
+      - PyGithub/Python
     method: GET
     uri: https://api.github.com/user
   response:
     body:
       string: !!binary |
-        H4sIAAAAAAAAA52TX2/aMBTFvwrLMxASoAqRpnUqk/YwNiZ11dYXdOOYxKtjR7YTxFC/e48TVhUm
-        TYInHPue3z3cP4dA6kKoIA32ZMSTrp1gwTAQeZBOF0myGAZK53zjv4PV8vvNw8+vkv1ezb8tizni
-        qCVHZtMYiffSudqmYdhf2um4EK5sssZyw7RyXLkx01XYhB35Q/t+BkJhjowuBS7OWLU4YnotWDY8
-        sVq6Sp4Z6PN2gpPQrZZS70A4N/z/JOGrDvb6s1DFVQzoDqF2JUfN8FeefQGEdZca6jSH0P+gNZ5i
-        0QbD8wtNHVWwtFNwcwgNr3WHazLLjMA0aHWpuRMtWNoUpMQfuoYFrQXC27rURqeBlrcYvEvFvegQ
-        1ka0xPa+JIYzLlqU+CrgmRo8t685Jv4HxsAXXDi+obzyq7glaTkWjyof8IuMtpLawWeSrOTqSSMc
-        o12T2uN5ScZVunHl4A7TzQs+HNwueSZI+QO28wvlOK33q4f1Rxy2JGSckQIkw+qDsNvtxhrtb6yF
-        ym8N3qRmXcPwvpakuBt8QqLS17MCAdd5l+T2H2UpDKdMwrpqpEQWoRF9V3Ls3Tvo6yaTgm369qTx
-        Yv561U11kMbJ3y2DAp9R/GbrghSvDBkcOkEO5HgySUZRPIqi+yhJ51E6TR6RpqnztzHRYjSZjSbJ
-        fTRL45s0mjwGzy/u9Bc1/AQAAA==
+        H4sIAAAAAAAAA51UXW/TMBT9K8XPXfNROrJIiKEViQcKnQQT7KW6SdzEzLEj20lUqv13jpOC1iIh
+        tU91fc859/h+ZM+kLoViKduREU+6cSJnUyYKls5vkuRmypQu+Mb/Z6vl/fXD988y/7lafFmWC+Co
+        I0dm0xqJeOVcY9MgGC/tfFYKV7VZa7nJtXJcuVmu66ANBuV33dvXUCjNQWNIgYsTrUYcZEYutGxw
+        ZLVytTwxMOYdCEfQrZZS91A4Nfz/JMFfHuyNZ6HKizTA2wfaVRw1w1OefQGEdecaGjj7wP+gNV7F
+        og2GF2eaOrBgqVdwsw8Mb/Qg12Y2NwLToNW55o640NKmJCV+0SVa4FpIeFvn2hg44PIOg3cueSTt
+        g8aIjvKdL4nhORcdSnyR4Akbem7XcEz8N4yBL7hwfENF7VdxS9JyLB7VHvCDjLaSuslHknnF1ZMG
+        HKPdkNohvCTjat26anKH6eYln05ulzwTpPwB2/mJCpzWu9XD+j0OWxIyzkhBJMPqQ6Hv+5lG+1tr
+        wfJbg5jU+dAwxNeSFHeTD0hU+XrWUMB1MSS5/YdZCcMpk7CuWimRRWig7yqOvXvl390L5w7zPz5x
+        xDVtJkW+GduWzpM3U3a4GqYd36Pwz/ZBiaXxdfxiG1kaIZwjtUOLyCFlHIbJVRRfRdHXKEkXETQf
+        kb9tipeYOPSYMBkwIWCP7Pk324NnORUFAAA=
     headers:
-      access-control-allow-origin: ['*']
-      access-control-expose-headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      cache-control: ['private, max-age=60, s-maxage=60']
-      content-encoding: [gzip]
-      content-security-policy: [default-src 'none']
-      content-type: [application/json; charset=utf-8]
-      date: ['Mon, 22 Apr 2019 22:22:20 GMT']
-      etag: [W/"124a82f895a9c516ff34c113ec540eae"]
-      last-modified: ['Mon, 08 Apr 2019 14:26:10 GMT']
-      referrer-policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      server: [GitHub.com]
-      status: [200 OK]
-      strict-transport-security: [max-age=31536000; includeSubdomains; preload]
-      transfer-encoding: [chunked]
-      vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      x-accepted-oauth-scopes: ['']
-      x-content-type-options: [nosniff]
-      x-frame-options: [deny]
-      x-github-media-type: [github.v3; format=json]
-      x-github-request-id: ['AA5E:50A4:19BE69:37C74B:5CBE3E9C']
-      x-oauth-scopes: [repo]
-      x-ratelimit-limit: ['5000']
-      x-ratelimit-remaining: ['4969']
-      x-ratelimit-reset: ['1555973199']
-      x-xss-protection: [1; mode=block]
-    status: {code: 200, message: OK}
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Cache-Control:
+      - private, max-age=60, s-maxage=60
+      Content-Encoding:
+      - gzip
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 20:10:35 GMT
+      ETag:
+      - W/"96d8dc19a2f37b9b5792ed3748a6e56ca33c11d6e487325a399af9cf26183516"
+      Last-Modified:
+      - Tue, 08 Dec 2020 18:50:51 GMT
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 200 OK
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Transfer-Encoding:
+      - chunked
+      Vary:
+      - Accept, Authorization, Cookie, X-GitHub-OTP
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Accepted-OAuth-Scopes:
+      - ''
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - E0DE:43E9:200E30C:472176F:5FCFDDBB
+      X-OAuth-Scopes:
+      - delete_repo, repo
+      X-RateLimit-Limit:
+      - '5000'
+      X-RateLimit-Remaining:
+      - '4961'
+      X-RateLimit-Reset:
+      - '1607460836'
+      X-RateLimit-Used:
+      - '39'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 200
+      message: OK
 - request:
     body: null
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [!!python/unicode token TOKEN]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token secret-token
+      Connection:
+      - keep-alive
+      User-Agent:
+      - PyGithub/Python
     method: GET
     uri: https://api.github.com/repos/yarikoptic/test_integration1
   response:
     body:
       string: !!binary |
-        H4sIAAAAAAAAAw3JMQ6AIAwAwK+Yuho6uPEAR79gEBogAUqgsBj/rrfeA5l6N55Aw8myHDyKgw0c
-        25GpiJHI5Rot/R9EateIjiYlrtSUjxLGrSxnnDs2qtxx9STwfutuZdhYAAAA
+        H4sIAAAAAAAAAx3JQQqAIBBG4avEtK3cd4CWXSHMJhPSCed3EdHdkzaPD95DkVWtZxppFjSTlLRR
+        R5u4EjnBIkhaSj7rP4BLR2Pq08EHHGUdnESTWVGzc+bkuOoSbT2jt/3vAMk3vR/3hhbbawAAAA==
     headers:
-      access-control-allow-origin: ['*']
-      access-control-expose-headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      content-encoding: [gzip]
-      content-security-policy: [default-src 'none']
-      content-type: [application/json; charset=utf-8]
-      date: ['Mon, 22 Apr 2019 22:22:20 GMT']
-      referrer-policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      server: [GitHub.com]
-      status: [404 Not Found]
-      strict-transport-security: [max-age=31536000; includeSubdomains; preload]
-      transfer-encoding: [chunked]
-      x-accepted-oauth-scopes: [repo]
-      x-content-type-options: [nosniff]
-      x-frame-options: [deny]
-      x-github-media-type: [github.v3; format=json]
-      x-github-request-id: ['AA5E:50A4:19BE6D:37C755:5CBE3E9C']
-      x-oauth-scopes: [repo]
-      x-ratelimit-limit: ['5000']
-      x-ratelimit-remaining: ['4968']
-      x-ratelimit-reset: ['1555973199']
-      x-xss-protection: [1; mode=block]
-    status: {code: 404, message: Not Found}
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Content-Encoding:
+      - gzip
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 20:10:36 GMT
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 404 Not Found
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Transfer-Encoding:
+      - chunked
+      Vary:
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Accepted-OAuth-Scopes:
+      - repo
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - E0DE:43E9:200E312:472177A:5FCFDDBB
+      X-OAuth-Scopes:
+      - delete_repo, repo
+      X-RateLimit-Limit:
+      - '5000'
+      X-RateLimit-Remaining:
+      - '4960'
+      X-RateLimit-Reset:
+      - '1607460836'
+      X-RateLimit-Used:
+      - '40'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 404
+      message: Not Found
 - request:
-    body: !!python/unicode '{"has_issues": false, "auto_init": false, "has_wiki":
-      false, "name": "test_integration1", "has_downloads": false}'
+    body: '{"name": "test_integration1", "has_issues": false, "has_wiki": false, "has_downloads":
+      false, "auto_init": false}'
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [!!python/unicode token TOKEN]
-      Connection: [keep-alive]
-      Content-Length: ['113']
-      Content-Type: [application/json]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token secret-token
+      Connection:
+      - keep-alive
+      Content-Length:
+      - '113'
+      Content-Type:
+      - application/json
+      User-Agent:
+      - PyGithub/Python
     method: POST
     uri: https://api.github.com/user/repos
   response:
-    body: {string: !!python/unicode '{"id":182876873,"node_id":"MDEwOlJlcG9zaXRvcnkxODI4NzY4NzM=","name":"test_integration1","full_name":"yarikoptic/test_integration1","private":false,"owner":{"login":"yarikoptic","id":39889,"node_id":"MDQ6VXNlcjM5ODg5","avatar_url":"https://avatars3.githubusercontent.com/u/39889?v=4","gravatar_id":"","url":"https://api.github.com/users/yarikoptic","html_url":"https://github.com/yarikoptic","followers_url":"https://api.github.com/users/yarikoptic/followers","following_url":"https://api.github.com/users/yarikoptic/following{/other_user}","gists_url":"https://api.github.com/users/yarikoptic/gists{/gist_id}","starred_url":"https://api.github.com/users/yarikoptic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yarikoptic/subscriptions","organizations_url":"https://api.github.com/users/yarikoptic/orgs","repos_url":"https://api.github.com/users/yarikoptic/repos","events_url":"https://api.github.com/users/yarikoptic/events{/privacy}","received_events_url":"https://api.github.com/users/yarikoptic/received_events","type":"User","site_admin":false},"html_url":"https://github.com/yarikoptic/test_integration1","description":null,"fork":false,"url":"https://api.github.com/repos/yarikoptic/test_integration1","forks_url":"https://api.github.com/repos/yarikoptic/test_integration1/forks","keys_url":"https://api.github.com/repos/yarikoptic/test_integration1/keys{/key_id}","collaborators_url":"https://api.github.com/repos/yarikoptic/test_integration1/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/yarikoptic/test_integration1/teams","hooks_url":"https://api.github.com/repos/yarikoptic/test_integration1/hooks","issue_events_url":"https://api.github.com/repos/yarikoptic/test_integration1/issues/events{/number}","events_url":"https://api.github.com/repos/yarikoptic/test_integration1/events","assignees_url":"https://api.github.com/repos/yarikoptic/test_integration1/assignees{/user}","branches_url":"https://api.github.com/repos/yarikoptic/test_integration1/branches{/branch}","tags_url":"https://api.github.com/repos/yarikoptic/test_integration1/tags","blobs_url":"https://api.github.com/repos/yarikoptic/test_integration1/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/yarikoptic/test_integration1/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/yarikoptic/test_integration1/git/refs{/sha}","trees_url":"https://api.github.com/repos/yarikoptic/test_integration1/git/trees{/sha}","statuses_url":"https://api.github.com/repos/yarikoptic/test_integration1/statuses/{sha}","languages_url":"https://api.github.com/repos/yarikoptic/test_integration1/languages","stargazers_url":"https://api.github.com/repos/yarikoptic/test_integration1/stargazers","contributors_url":"https://api.github.com/repos/yarikoptic/test_integration1/contributors","subscribers_url":"https://api.github.com/repos/yarikoptic/test_integration1/subscribers","subscription_url":"https://api.github.com/repos/yarikoptic/test_integration1/subscription","commits_url":"https://api.github.com/repos/yarikoptic/test_integration1/commits{/sha}","git_commits_url":"https://api.github.com/repos/yarikoptic/test_integration1/git/commits{/sha}","comments_url":"https://api.github.com/repos/yarikoptic/test_integration1/comments{/number}","issue_comment_url":"https://api.github.com/repos/yarikoptic/test_integration1/issues/comments{/number}","contents_url":"https://api.github.com/repos/yarikoptic/test_integration1/contents/{+path}","compare_url":"https://api.github.com/repos/yarikoptic/test_integration1/compare/{base}...{head}","merges_url":"https://api.github.com/repos/yarikoptic/test_integration1/merges","archive_url":"https://api.github.com/repos/yarikoptic/test_integration1/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/yarikoptic/test_integration1/downloads","issues_url":"https://api.github.com/repos/yarikoptic/test_integration1/issues{/number}","pulls_url":"https://api.github.com/repos/yarikoptic/test_integration1/pulls{/number}","milestones_url":"https://api.github.com/repos/yarikoptic/test_integration1/milestones{/number}","notifications_url":"https://api.github.com/repos/yarikoptic/test_integration1/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/yarikoptic/test_integration1/labels{/name}","releases_url":"https://api.github.com/repos/yarikoptic/test_integration1/releases{/id}","deployments_url":"https://api.github.com/repos/yarikoptic/test_integration1/deployments","created_at":"2019-04-22T22:22:20Z","updated_at":"2019-04-22T22:22:20Z","pushed_at":"2019-04-22T22:22:21Z","git_url":"git://github.com/yarikoptic/test_integration1.git","ssh_url":"git@github.com:yarikoptic/test_integration1.git","clone_url":"https://github.com/yarikoptic/test_integration1.git","svn_url":"https://github.com/yarikoptic/test_integration1","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"network_count":0,"subscribers_count":1}'}
+    body:
+      string: '{"id":319749314,"node_id":"MDEwOlJlcG9zaXRvcnkzMTk3NDkzMTQ=","name":"test_integration1","full_name":"yarikoptic/test_integration1","private":false,"owner":{"login":"yarikoptic","id":39889,"node_id":"MDQ6VXNlcjM5ODg5","avatar_url":"https://avatars3.githubusercontent.com/u/39889?v=4","gravatar_id":"","url":"https://api.github.com/users/yarikoptic","html_url":"https://github.com/yarikoptic","followers_url":"https://api.github.com/users/yarikoptic/followers","following_url":"https://api.github.com/users/yarikoptic/following{/other_user}","gists_url":"https://api.github.com/users/yarikoptic/gists{/gist_id}","starred_url":"https://api.github.com/users/yarikoptic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yarikoptic/subscriptions","organizations_url":"https://api.github.com/users/yarikoptic/orgs","repos_url":"https://api.github.com/users/yarikoptic/repos","events_url":"https://api.github.com/users/yarikoptic/events{/privacy}","received_events_url":"https://api.github.com/users/yarikoptic/received_events","type":"User","site_admin":false},"html_url":"https://github.com/yarikoptic/test_integration1","description":null,"fork":false,"url":"https://api.github.com/repos/yarikoptic/test_integration1","forks_url":"https://api.github.com/repos/yarikoptic/test_integration1/forks","keys_url":"https://api.github.com/repos/yarikoptic/test_integration1/keys{/key_id}","collaborators_url":"https://api.github.com/repos/yarikoptic/test_integration1/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/yarikoptic/test_integration1/teams","hooks_url":"https://api.github.com/repos/yarikoptic/test_integration1/hooks","issue_events_url":"https://api.github.com/repos/yarikoptic/test_integration1/issues/events{/number}","events_url":"https://api.github.com/repos/yarikoptic/test_integration1/events","assignees_url":"https://api.github.com/repos/yarikoptic/test_integration1/assignees{/user}","branches_url":"https://api.github.com/repos/yarikoptic/test_integration1/branches{/branch}","tags_url":"https://api.github.com/repos/yarikoptic/test_integration1/tags","blobs_url":"https://api.github.com/repos/yarikoptic/test_integration1/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/yarikoptic/test_integration1/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/yarikoptic/test_integration1/git/refs{/sha}","trees_url":"https://api.github.com/repos/yarikoptic/test_integration1/git/trees{/sha}","statuses_url":"https://api.github.com/repos/yarikoptic/test_integration1/statuses/{sha}","languages_url":"https://api.github.com/repos/yarikoptic/test_integration1/languages","stargazers_url":"https://api.github.com/repos/yarikoptic/test_integration1/stargazers","contributors_url":"https://api.github.com/repos/yarikoptic/test_integration1/contributors","subscribers_url":"https://api.github.com/repos/yarikoptic/test_integration1/subscribers","subscription_url":"https://api.github.com/repos/yarikoptic/test_integration1/subscription","commits_url":"https://api.github.com/repos/yarikoptic/test_integration1/commits{/sha}","git_commits_url":"https://api.github.com/repos/yarikoptic/test_integration1/git/commits{/sha}","comments_url":"https://api.github.com/repos/yarikoptic/test_integration1/comments{/number}","issue_comment_url":"https://api.github.com/repos/yarikoptic/test_integration1/issues/comments{/number}","contents_url":"https://api.github.com/repos/yarikoptic/test_integration1/contents/{+path}","compare_url":"https://api.github.com/repos/yarikoptic/test_integration1/compare/{base}...{head}","merges_url":"https://api.github.com/repos/yarikoptic/test_integration1/merges","archive_url":"https://api.github.com/repos/yarikoptic/test_integration1/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/yarikoptic/test_integration1/downloads","issues_url":"https://api.github.com/repos/yarikoptic/test_integration1/issues{/number}","pulls_url":"https://api.github.com/repos/yarikoptic/test_integration1/pulls{/number}","milestones_url":"https://api.github.com/repos/yarikoptic/test_integration1/milestones{/number}","notifications_url":"https://api.github.com/repos/yarikoptic/test_integration1/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/yarikoptic/test_integration1/labels{/name}","releases_url":"https://api.github.com/repos/yarikoptic/test_integration1/releases{/id}","deployments_url":"https://api.github.com/repos/yarikoptic/test_integration1/deployments","created_at":"2020-12-08T20:10:36Z","updated_at":"2020-12-08T20:10:36Z","pushed_at":"2020-12-08T20:10:37Z","git_url":"git://github.com/yarikoptic/test_integration1.git","ssh_url":"git@github.com:yarikoptic/test_integration1.git","clone_url":"https://github.com/yarikoptic/test_integration1.git","svn_url":"https://github.com/yarikoptic/test_integration1","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"delete_branch_on_merge":false,"network_count":0,"subscribers_count":1}'
     headers:
-      access-control-allow-origin: ['*']
-      access-control-expose-headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      cache-control: ['private, max-age=60, s-maxage=60']
-      content-length: ['5370']
-      content-security-policy: [default-src 'none']
-      content-type: [application/json; charset=utf-8]
-      date: ['Mon, 22 Apr 2019 22:22:21 GMT']
-      etag: ['"b9488ea91df827cbd915d22f146216b6"']
-      location: ['https://api.github.com/repos/yarikoptic/test_integration1']
-      referrer-policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      server: [GitHub.com]
-      status: [201 Created]
-      strict-transport-security: [max-age=31536000; includeSubdomains; preload]
-      vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      x-accepted-oauth-scopes: ['public_repo, repo']
-      x-content-type-options: [nosniff]
-      x-frame-options: [deny]
-      x-github-media-type: [github.v3; format=json]
-      x-github-request-id: ['AA5E:50A4:19BE72:37C760:5CBE3E9C']
-      x-oauth-scopes: [repo]
-      x-ratelimit-limit: ['5000']
-      x-ratelimit-remaining: ['4967']
-      x-ratelimit-reset: ['1555973199']
-      x-xss-protection: [1; mode=block]
-    status: {code: 201, message: Created}
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Cache-Control:
+      - private, max-age=60, s-maxage=60
+      Content-Length:
+      - '5401'
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 20:10:37 GMT
+      ETag:
+      - '"7c004da9efa0ab46f9a0b12daa2bbafba636067447a619af7ed3afaac01c1bd6"'
+      Location:
+      - https://api.github.com/repos/yarikoptic/test_integration1
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 201 Created
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Vary:
+      - Accept, Authorization, Cookie, X-GitHub-OTP
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Accepted-OAuth-Scopes:
+      - public_repo, repo
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - E0DE:43E9:200E318:472178A:5FCFDDBC
+      X-OAuth-Scopes:
+      - delete_repo, repo
+      X-RateLimit-Limit:
+      - '5000'
+      X-RateLimit-Remaining:
+      - '4959'
+      X-RateLimit-Reset:
+      - '1607460836'
+      X-RateLimit-Used:
+      - '41'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 201
+      message: Created
 - request:
     body: null
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [!!python/unicode token TOKEN]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token secret-token
+      Connection:
+      - keep-alive
+      User-Agent:
+      - PyGithub/Python
     method: GET
     uri: https://api.github.com/user
   response:
     body:
       string: !!binary |
-        H4sIAAAAAAAAA52TXW/aMBSG/wrLNRASPhQiTetUJu1ibJ3UVVtv0IljEq+OHdlOEEP9732dsKow
-        aRJc4djnfc7L+TgEUhdCBWmwJyOedO0EC4aByIN0ukyS5TBQOucb/x2sV98XDz+/SvZ7Pf+2KuaI
-        o5YcmU1jJN5L52qbhmF/aafjQriyyRrLDdPKceXGTFdhE3bkD+37GQiFOTK6FLg4Y9XiiOm1YNnw
-        xGrpKnlmoM/bCU5Ct1pKvQPh3PD/k4SvOtjrz0IVVzGgO4TalRw1w1959gUQ1l1qqNMcQv+D1niK
-        RRsMzy80dVTB0k7BzSE0vNYdrsksMwLToNWl5k60YGlTkBJ/6BoWtBYIb+tSG50GWt5i8C4V96JD
-        WBvREtv7khjOuGhR4quAZ2rw3L7mmPgfGANfcOH4hvLKr+KWpOVYPKp8wC8y2kpqB59JspKrJ41w
-        jHZNao/nFRlX6caVg1tMNy/4cHCz4pkg5Q/Yzi+U43S3Xz/cfcRhS0LGGSlAMqw+CLvdbqzR/sZa
-        qPzW4E1q1jUM73eSFHeDT0hU+npWIOA675Lc/KMsheGUSVhXjZTIIjSib0uOvXsHfd1kUrBN3540
-        Xi5er7qpDtI4+btlUOAzit9sXZDilSGDQyfIgRxPJskoikdRdB8l6TxKp8kj0jR1/jYmWo4ms9Ek
-        uY9mabxIo8lj8PwCLTqSUfwEAAA=
+        H4sIAAAAAAAAA51UXW/TMBT9K8XPXfNROmWRJoZWJB4oFAkmtpfqJnETM8eObCdRqfbfOU4KWouE
+        1D7V9T3n3OP7kT2TuhSKpWxHRjzrxomcTZkoWDq/SZKbKVO64Bv/n62WX68ffnyW+c/V4suyXABH
+        HTkym9ZIxCvnGpsGwXhp57NSuKrNWstNrpXjys1yXQdtMCi/627fQqE0B40hBS5OtBpxkBm50LLB
+        kdXK1fLEwJh3IBxBt1pK3UPh1PD/kwR/ebA3noUqL9IAbx9oV3HUDE958QUQ1p1raODsA/+D1ngV
+        izYYXpxp6sCCpV7BzT4wvNGDXJvZ3AhMg1bnmjviQkubkpT4RZdogWsh4W2da2PggMs7DN655JG0
+        DxojOsp3viSG51x0KPFFgids6LldwzHx3zEGvuDC8Q0VtV/FLUnLsXhUe8AjGW0ldZOPJPOKq2cN
+        OEa7IbVDeEnG1bp11eQe081LPp3cLXkmSPkDtvMTFTitd6uH9XsctiRknJGCSIbVh0Lf9zON9rfW
+        guW3BjGp86FhiK8lKe4mH5Co8vWsoYDrYkhy9w+zEoZTJmFdtVIii9BA31cce/fGv7sXzh3mf3zi
+        iGvaTIp8M7YtnSfJlB2uhmnH9yj8s31QYml8Hb/aRpZGCOdI7dAickgZh2FyFcVXUfQtStJFBM0n
+        5G+b4jUmDj0mTAZMCNgTe/kND85KMxUFAAA=
     headers:
-      access-control-allow-origin: ['*']
-      access-control-expose-headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      cache-control: ['private, max-age=60, s-maxage=60']
-      content-encoding: [gzip]
-      content-security-policy: [default-src 'none']
-      content-type: [application/json; charset=utf-8]
-      date: ['Mon, 22 Apr 2019 22:22:22 GMT']
-      etag: [W/"a8fa37524fee015da76c68778eb7f335"]
-      last-modified: ['Mon, 08 Apr 2019 14:26:10 GMT']
-      referrer-policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      server: [GitHub.com]
-      status: [200 OK]
-      strict-transport-security: [max-age=31536000; includeSubdomains; preload]
-      transfer-encoding: [chunked]
-      vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      x-accepted-oauth-scopes: ['']
-      x-content-type-options: [nosniff]
-      x-frame-options: [deny]
-      x-github-media-type: [github.v3; format=json]
-      x-github-request-id: ['C116:0A12:FEB71:279699:5CBE3E9E']
-      x-oauth-scopes: [repo]
-      x-ratelimit-limit: ['5000']
-      x-ratelimit-remaining: ['4966']
-      x-ratelimit-reset: ['1555973199']
-      x-xss-protection: [1; mode=block]
-    status: {code: 200, message: OK}
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Cache-Control:
+      - private, max-age=60, s-maxage=60
+      Content-Encoding:
+      - gzip
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 20:10:39 GMT
+      ETag:
+      - W/"f1b2ec9f373a9f7e87118b120d6503406caff7a3768f12d7a5d21e5540a6f813"
+      Last-Modified:
+      - Tue, 08 Dec 2020 18:50:51 GMT
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 200 OK
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Transfer-Encoding:
+      - chunked
+      Vary:
+      - Accept, Authorization, Cookie, X-GitHub-OTP
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Accepted-OAuth-Scopes:
+      - ''
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - E0F8:04E4:3888E93:5EF56AC:5FCFDDBE
+      X-OAuth-Scopes:
+      - delete_repo, repo
+      X-RateLimit-Limit:
+      - '5000'
+      X-RateLimit-Remaining:
+      - '4958'
+      X-RateLimit-Reset:
+      - '1607460836'
+      X-RateLimit-Used:
+      - '42'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 200
+      message: OK
 - request:
     body: null
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [!!python/unicode token TOKEN]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token secret-token
+      Connection:
+      - keep-alive
+      User-Agent:
+      - PyGithub/Python
     method: GET
     uri: https://api.github.com/repos/yarikoptic/test_integration1
   response:
     body:
       string: !!binary |
-        H4sIAAAAAAAAA62YbW/bNhDHv4vfLg0TJ20TA0X3IsOwAWmxYRu6vTFoiZbYSKRGUvYSId99/yP1
-        6GWxXAnIg03xfjye7si7qxYyXqwub5Y379/dvL86WygdizWNLe7vfth/zn7Ooh9vn/iXX3eRevjn
-        891P15+e/sTv/YcFJvNcYKYT1q2lciIx3EmtLvFoW2bZun7+yI180IWTEXtpamHkjjuAtjyz4myh
-        90qYxapaZDqRCvxOHmDS7er25uZ2qOsv7/748imLvt6//XyXvMU8DiY369JkIKTOFXbFWBi0V+eJ
-        dGm5Ka0wkYbiyp1HOmcl8+SPuw/XIGA3geHNgYEDViFrTJAFy7KBqqnLswMFwrpeYDB1q7NM70E4
-        VPj1RVgrRyb3DKmSb2JArmLapQI2w1aeyQDSulMV8jIVo39wI6JYvAYj4hOVqqWgEnnDc8WMKLTH
-        lRsbGQlv0upU5QayYGmTcCWfvNOeyoKsBYLUOlXUy0BW7OB4pwoHoYr5qIkeySRGRELuYOJvAh5I
-        g+ceCwrr3+EGZHDpxJrHOYWij9DnM8TTOM9+Md5j0b7AxUrhnCDXNQ9t/L8aZt52vdh5cQXCHbHr
-        cQ5iCxQY4EE8TocRpGL4W0dFhGDlG40DUx8L+hGqDmgV638lB3GC59O34CmgpVrPYF1PAU1aW4pR
-        njvCDh5mWRMjqsw34SgbExkj+AEDrbm1MlFCTLdqS6pYc+5uDFdROgO7AVUsfPK+wJPpShMErE2m
-        N9NhuBOZJ1XMpjxcPG49i56EJtCAbMR2HqUJ1JKdmcMbvMJEarm4CB0cY7rGDYhVtZUzrpKSJzOg
-        WxJdF7juE/50NJUZEW0dClzK04zclDOdlx2MdA45Bc6KGczcsTqyz1Zez4DG2KOX+niL5Lk8lj+M
-        wNacQYzMxSZ/PuTT9+OJz0jFCVSx7qAP10m9xGSL1/dJo3F/obpumO4wDYhV3xXcpXT+Yb2CGzFZ
-        /ZrDqg1H2nZ+fl6lgvukPBdmjsAPGPC4iVKkoJM1rhoQkq+cO5/3b0nhGHVApnk83d4tCdTwfidr
-        HTB97yiQ1k5X1VP62FxmqLW1muHM7lD9BZR2ciujMRXRiAAd0KqPVqpInHEk/PBudAMk/B1lJ71e
-        5MJiBoMFDDaExkSojDIB15/+JowIoIqFojYWRaYf5znGeiyKfSPQDInX3KEEW15c3r65uH6zXP62
-        XK7o5+IvzCmL+OicorTp/2MuCYPDuXZ9fEJ35MXmxH8LLOp6QNratJP+vpNdvdbuqWWjDD58EHYn
-        rr47vE9HykPzVOeiQOLTVJ9WPuHzxSB3iXSp8AYwuOcOyTgyg26oyXcaQMrtOpwBbRFLQ4XRX0Xk
-        7GLlTInGFo11p0/T7qLRvXyQQ1HKy9qRUM926+fSGF33tkIBXR+baFTVTbRYWr7JRDegC6FqJfs7
-        kZFQtrVEKHlp173pAyv4L7HY8jJz61BVwE9zbp1vFhTC5LAE9VOog1e3DcL2ySMbU9DJFj6jm4AT
-        Qe/X9u+Sw6X8ldJMC0/8EJSmdGf4xAi62YYySrg9KvfeJvvpXW3Ey+d/AcPXEmL6FAAA
+        H4sIAAAAAAAAA62Y32/bNhDH/xe/Lg3tJG0TA0X3kGHAgLTo0BXFXgRaoiXWkqiRlI1EyP++75H6
+        6WWxXOklkSneh8fT3fF41UJGi/X16u79zd316uZikatIBDS2eLj/7fA5/SMNf7974t//3If57unh
+        6+760z39//Jhgck8E5hphbGBzK2INbdS5Su82pZpGtTvH7mWO1VYGbKXphZa7rkFaMtTIy4W6pAL
+        vVhXi1TFMge/kwfY6Xt3e3s31PXLu2/fP6Xhj4e3n+/jt5jHweQ6KHUKQmJtYdaM+UFzfRlLm5Sb
+        0ggdKiie28tQZaxkjvxx/+EGBOzGM5w5MHDEKmSN8bJgGTZQNbFZeqSAX9cJDKZuVZqqAwjHCr++
+        CGvlyOSOIfP4pxiQq5iyiYDNsJVnMoA09lyFnEzF6B/ciCgGn0GL6EylaimoRN7wXDEtCuVw5caE
+        WsKbVH6ucgNZsJSOeS6fnNOey4KsAYLUOlfUyUBW7OF45wp7oYq5qAkfySRahELuYeKfAh5Jg2cf
+        Cwrrv+AGZHBpRcCjjELRRejzBeJpnGe/GO+RaD/gYp0jT5Dr6l0b/6+GmbNdL3ZeXIFwJ+x6moPY
+        AgUG2InH6TCCVAx/66gIEax8o5Aw1amgH6HqgFax/k9yECt4Nn0LjgJaotQM1nUU0KQxpRjluSPs
+        4GCGNTGSl9nGp7IxkTGC7zHQmhsj41yI6VZtSRVr8u5G8zxMZmA3oIr5J+cLPJ6uNEHA2qRqMx2G
+        M5E5UsVMwv3BY4NZ9CQ0gQZkLbbzKE2glmz1HN7gFCZSy8VBaOEY0zVuQKyqrZzyPC55PAO6JdFx
+        geM+5k8nS5kR0dahwKU6TctNOVO+7GCks68pkCtmMHPH6siuWnm9Ahpjj17p4yySZfJU/TACW3MG
+        MTIXm/z5mE+/Txc+IxUnUMW6RO+Pk3qJyRavz5NG4/5C9b1husM0IFb9UnCbUP7DegXXYrL6NYdV
+        G46y7fLyskoEd0V5JvQcge8x4HEdJihBJ2tcNSAUXxm3ru7fksIR7gGp4tF0e7ckUP33nay1x/S9
+        o0BZO11VR+ljM5nirq3yGXJ2h+ovkCsrtzIccyMaEaADWvXRyDwUFxwFP7wb3QAJf8e1kz4vamEx
+        g8E8BhtCY8LfjFIB15/+JbTwoIr5S20kilQ9zpPGeiyKfS3QDIkCbnEFu1peLd+srt4sb79eLder
+        5fr63d+YUxbRyTlFaZL/x7wnDJJz7fp4QnfkxebEfy9Y1PWAtDFJJ/1rJ7t+rd1Ty4YpfPgo7M5c
+        fX98no6Uh+aJykSBwqe5fRr5hOfloHYJVZnjC2DwwC2KcVQG3VBT7zSAhJvA54D2EktDhVY/RGjN
+        Ym11icYWjXXZp2l30ehB7uRQlOqydsTfZ7v1M6m1qntb/gJdp000quomWiQN36SiG1CFyGsl+zuR
+        ochNawl/5aVd96YPrOB+RGLLy9QG/lYBP824sa5ZUAidwRLUT6EOXt028Nsnj2xMQZnNP6ObYEVW
+        BN4lrNoJavkBhTyhDoH5p+RwNHfQNML+jRvCVqgIGr7Rgs67oUyEAEYfw2scoBiribW5cmEPuO73
+        LNOvCWvLr57/BfiXHxMvFQAA
     headers:
-      access-control-allow-origin: ['*']
-      access-control-expose-headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      cache-control: ['private, max-age=60, s-maxage=60']
-      content-encoding: [gzip]
-      content-security-policy: [default-src 'none']
-      content-type: [application/json; charset=utf-8]
-      date: ['Mon, 22 Apr 2019 22:22:22 GMT']
-      etag: [W/"b9488ea91df827cbd915d22f146216b6"]
-      last-modified: ['Mon, 22 Apr 2019 22:22:20 GMT']
-      referrer-policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      server: [GitHub.com]
-      status: [200 OK]
-      strict-transport-security: [max-age=31536000; includeSubdomains; preload]
-      transfer-encoding: [chunked]
-      vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      x-accepted-oauth-scopes: [repo]
-      x-content-type-options: [nosniff]
-      x-frame-options: [deny]
-      x-github-media-type: [github.v3; format=json]
-      x-github-request-id: ['C116:0A12:FEB75:2796A4:5CBE3E9E']
-      x-oauth-scopes: [repo]
-      x-ratelimit-limit: ['5000']
-      x-ratelimit-remaining: ['4965']
-      x-ratelimit-reset: ['1555973199']
-      x-xss-protection: [1; mode=block]
-    status: {code: 200, message: OK}
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Cache-Control:
+      - private, max-age=60, s-maxage=60
+      Content-Encoding:
+      - gzip
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 20:10:39 GMT
+      ETag:
+      - W/"72f39de0d0b425f05912cf9768cde6543d7c38273137e6ff5ba41579745f131e"
+      Last-Modified:
+      - Tue, 08 Dec 2020 20:10:36 GMT
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 200 OK
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Transfer-Encoding:
+      - chunked
+      Vary:
+      - Accept, Authorization, Cookie, X-GitHub-OTP
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Accepted-OAuth-Scopes:
+      - repo
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - E0F8:04E4:3888EA3:5EF56BA:5FCFDDBF
+      X-OAuth-Scopes:
+      - delete_repo, repo
+      X-RateLimit-Limit:
+      - '5000'
+      X-RateLimit-Remaining:
+      - '4957'
+      X-RateLimit-Reset:
+      - '1607460836'
+      X-RateLimit-Used:
+      - '43'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 200
+      message: OK
 - request:
     body: null
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [!!python/unicode token TOKEN]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token secret-token
+      Connection:
+      - keep-alive
+      User-Agent:
+      - PyGithub/Python
     method: GET
     uri: https://api.github.com/user
   response:
     body:
       string: !!binary |
-        H4sIAAAAAAAAA52TXW/aMBSG/wrLNRASPhQiTetUJu1ibJ3UVVtv0IljEq+OHdlOEEP9732dsKow
-        aRJc4djnfc7L+TgEUhdCBWmwJyOedO0EC4aByIN0ukyS5TBQOucb/x2sV98XDz+/SvZ7Pf+2KuaI
-        o5YcmU1jJN5L52qbhmF/aafjQriyyRrLDdPKceXGTFdhE3bkD+37GQiFOTK6FLg4Y9XiiOm1YNnw
-        xGrpKnlmoM/bCU5Ct1pKvQPh3PD/k4SvOtjrz0IVVzGgO4TalRw1w1959gUQ1l1qqNMcQv+D1niK
-        RRsMzy80dVTB0k7BzSE0vNYdrsksMwLToNWl5k60YGlTkBJ/6BoWtBYIb+tSG50GWt5i8C4V96JD
-        WBvREtv7khjOuGhR4quAZ2rw3L7mmPgfGANfcOH4hvLKr+KWpOVYPKp8wC8y2kpqB59JspKrJ41w
-        jHZNao/nFRlX6caVg1tMNy/4cHCz4pkg5Q/Yzi+U43S3Xz/cfcRhS0LGGSlAMqw+CLvdbqzR/sZa
-        qPzW4E1q1jUM73eSFHeDT0hU+npWIOA675Lc/KMsheGUSVhXjZTIIjSib0uOvXsHfd1kUrBN3540
-        Xi5er7qpDtI4+btlUOAzit9sXZDilSGDQyfIgRxPJskoikdRdB8l6TxKp8kj0jR1/jYmWo4ms9Ek
-        uY9mabxIo8lj8PwCLTqSUfwEAAA=
+        H4sIAAAAAAAAA51UXW/TMBT9K8XPXfNROmWRJoZWJB4oFAkmtpfqJnETM8eObCdRqfbfOU4KWouE
+        1D7V9T3n3OP7kT2TuhSKpWxHRjzrxomcTZkoWDq/SZKbKVO64Bv/n62WX68ffnyW+c/V4suyXABH
+        HTkym9ZIxCvnGpsGwXhp57NSuKrNWstNrpXjys1yXQdtMCi/627fQqE0B40hBS5OtBpxkBm50LLB
+        kdXK1fLEwJh3IBxBt1pK3UPh1PD/kwR/ebA3noUqL9IAbx9oV3HUDE958QUQ1p1raODsA/+D1ngV
+        izYYXpxp6sCCpV7BzT4wvNGDXJvZ3AhMg1bnmjviQkubkpT4RZdogWsh4W2da2PggMs7DN655JG0
+        DxojOsp3viSG51x0KPFFgids6LldwzHx3zEGvuDC8Q0VtV/FLUnLsXhUe8AjGW0ldZOPJPOKq2cN
+        OEa7IbVDeEnG1bp11eQe081LPp3cLXkmSPkDtvMTFTitd6uH9XsctiRknJGCSIbVh0Lf9zON9rfW
+        guW3BjGp86FhiK8lKe4mH5Co8vWsoYDrYkhy9w+zEoZTJmFdtVIii9BA31cce/fGv7sXzh3mf3zi
+        iGvaTIp8M7YtnSfJlB2uhmnH9yj8s31QYml8Hb/aRpZGCOdI7dAickgZh2FyFcVXUfQtStJFBM0n
+        5G+b4jUmDj0mTAZMCNgTe/kND85KMxUFAAA=
     headers:
-      access-control-allow-origin: ['*']
-      access-control-expose-headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      cache-control: ['private, max-age=60, s-maxage=60']
-      content-encoding: [gzip]
-      content-security-policy: [default-src 'none']
-      content-type: [application/json; charset=utf-8]
-      date: ['Mon, 22 Apr 2019 22:22:22 GMT']
-      etag: [W/"a8fa37524fee015da76c68778eb7f335"]
-      last-modified: ['Mon, 08 Apr 2019 14:26:10 GMT']
-      referrer-policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      server: [GitHub.com]
-      status: [200 OK]
-      strict-transport-security: [max-age=31536000; includeSubdomains; preload]
-      transfer-encoding: [chunked]
-      vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      x-accepted-oauth-scopes: ['']
-      x-content-type-options: [nosniff]
-      x-frame-options: [deny]
-      x-github-media-type: [github.v3; format=json]
-      x-github-request-id: ['AA62:108E:17B94B:34ADC9:5CBE3E9E']
-      x-oauth-scopes: [repo]
-      x-ratelimit-limit: ['5000']
-      x-ratelimit-remaining: ['4964']
-      x-ratelimit-reset: ['1555973199']
-      x-xss-protection: [1; mode=block]
-    status: {code: 200, message: OK}
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Cache-Control:
+      - private, max-age=60, s-maxage=60
+      Content-Encoding:
+      - gzip
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 20:10:39 GMT
+      ETag:
+      - W/"f1b2ec9f373a9f7e87118b120d6503406caff7a3768f12d7a5d21e5540a6f813"
+      Last-Modified:
+      - Tue, 08 Dec 2020 18:50:51 GMT
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 200 OK
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Transfer-Encoding:
+      - chunked
+      Vary:
+      - Accept, Authorization, Cookie, X-GitHub-OTP
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Accepted-OAuth-Scopes:
+      - ''
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - E0FA:1940:3DD7E06:65F260E:5FCFDDBF
+      X-OAuth-Scopes:
+      - delete_repo, repo
+      X-RateLimit-Limit:
+      - '5000'
+      X-RateLimit-Remaining:
+      - '4956'
+      X-RateLimit-Reset:
+      - '1607460836'
+      X-RateLimit-Used:
+      - '44'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 200
+      message: OK
 - request:
     body: null
     headers:
-      Accept: ['*/*']
-      Accept-Encoding: ['gzip, deflate']
-      Authorization: [!!python/unicode token TOKEN]
-      Connection: [keep-alive]
-      User-Agent: [PyGithub/Python]
+      Accept:
+      - '*/*'
+      Accept-Encoding:
+      - gzip, deflate
+      Authorization:
+      - token secret-token
+      Connection:
+      - keep-alive
+      User-Agent:
+      - PyGithub/Python
     method: GET
     uri: https://api.github.com/repos/yarikoptic/test_integration1
   response:
     body:
       string: !!binary |
-        H4sIAAAAAAAAA62YbW/bNhDHv4vfLg0TJ20TA0X3IsOwAWmxYRu6vTFoiZbYSKRGUvYSId99/yP1
-        6GWxXAnIg03xfjye7si7qxYyXqwub5Y379/dvL86WygdizWNLe7vfth/zn7Ooh9vn/iXX3eRevjn
-        891P15+e/sTv/YcFJvNcYKYT1q2lciIx3EmtLvFoW2bZun7+yI180IWTEXtpamHkjjuAtjyz4myh
-        90qYxapaZDqRCvxOHmDS7er25uZ2qOsv7/748imLvt6//XyXvMU8DiY369JkIKTOFXbFWBi0V+eJ
-        dGm5Ka0wkYbiyp1HOmcl8+SPuw/XIGA3geHNgYEDViFrTJAFy7KBqqnLswMFwrpeYDB1q7NM70E4
-        VPj1RVgrRyb3DKmSb2JArmLapQI2w1aeyQDSulMV8jIVo39wI6JYvAYj4hOVqqWgEnnDc8WMKLTH
-        lRsbGQlv0upU5QayYGmTcCWfvNOeyoKsBYLUOlXUy0BW7OB4pwoHoYr5qIkeySRGRELuYOJvAh5I
-        g+ceCwrr3+EGZHDpxJrHOYWij9DnM8TTOM9+Md5j0b7AxUrhnCDXNQ9t/L8aZt52vdh5cQXCHbHr
-        cQ5iCxQY4EE8TocRpGL4W0dFhGDlG40DUx8L+hGqDmgV638lB3GC59O34CmgpVrPYF1PAU1aW4pR
-        njvCDh5mWRMjqsw34SgbExkj+AEDrbm1MlFCTLdqS6pYc+5uDFdROgO7AVUsfPK+wJPpShMErE2m
-        N9NhuBOZJ1XMpjxcPG49i56EJtCAbMR2HqUJ1JKdmcMbvMJEarm4CB0cY7rGDYhVtZUzrpKSJzOg
-        WxJdF7juE/50NJUZEW0dClzK04zclDOdlx2MdA45Bc6KGczcsTqyz1Zez4DG2KOX+niL5Lk8lj+M
-        wNacQYzMxSZ/PuTT9+OJz0jFCVSx7qAP10m9xGSL1/dJo3F/obpumO4wDYhV3xXcpXT+Yb2CGzFZ
-        /ZrDqg1H2nZ+fl6lgvukPBdmjsAPGPC4iVKkoJM1rhoQkq+cO5/3b0nhGHVApnk83d4tCdTwfidr
-        HTB97yiQ1k5X1VP62FxmqLW1muHM7lD9BZR2ciujMRXRiAAd0KqPVqpInHEk/PBudAMk/B1lJ71e
-        5MJiBoMFDDaExkSojDIB15/+JowIoIqFojYWRaYf5znGeiyKfSPQDInX3KEEW15c3r65uH6zXP62
-        XK7o5+IvzCmL+OicorTp/2MuCYPDuXZ9fEJ35MXmxH8LLOp6QNratJP+vpNdvdbuqWWjDD58EHYn
-        rr47vE9HykPzVOeiQOLTVJ9WPuHzxSB3iXSp8AYwuOcOyTgyg26oyXcaQMrtOpwBbRFLQ4XRX0Xk
-        7GLlTInGFo11p0/T7qLRvXyQQ1HKy9qRUM926+fSGF33tkIBXR+baFTVTbRYWr7JRDegC6FqJfs7
-        kZFQtrVEKHlp173pAyv4L7HY8jJz61BVwE9zbp1vFhTC5LAE9VOog1e3DcL2ySMbU9DJFj6jm4AT
-        Qe/X9u+Sw6X8ldJMC0/8EJSmdGf4xAi62YYySrg9KvfeJvvpXW3Ey+d/AcPXEmL6FAAA
+        H4sIAAAAAAAAA62Y32/bNhDH/xe/Lg3tJG0TA0X3kGHAgLTo0BXFXgRaoiXWkqiRlI1EyP++75H6
+        6WWxXOklkSneh8fT3fF41UJGi/X16u79zd316uZikatIBDS2eLj/7fA5/SMNf7974t//3If57unh
+        6+760z39//Jhgck8E5hphbGBzK2INbdS5Su82pZpGtTvH7mWO1VYGbKXphZa7rkFaMtTIy4W6pAL
+        vVhXi1TFMge/kwfY6Xt3e3s31PXLu2/fP6Xhj4e3n+/jt5jHweQ6KHUKQmJtYdaM+UFzfRlLm5Sb
+        0ggdKiie28tQZaxkjvxx/+EGBOzGM5w5MHDEKmSN8bJgGTZQNbFZeqSAX9cJDKZuVZqqAwjHCr++
+        CGvlyOSOIfP4pxiQq5iyiYDNsJVnMoA09lyFnEzF6B/ciCgGn0GL6EylaimoRN7wXDEtCuVw5caE
+        WsKbVH6ucgNZsJSOeS6fnNOey4KsAYLUOlfUyUBW7OF45wp7oYq5qAkfySRahELuYeKfAh5Jg2cf
+        Cwrrv+AGZHBpRcCjjELRRejzBeJpnGe/GO+RaD/gYp0jT5Dr6l0b/6+GmbNdL3ZeXIFwJ+x6moPY
+        AgUG2InH6TCCVAx/66gIEax8o5Aw1amgH6HqgFax/k9yECt4Nn0LjgJaotQM1nUU0KQxpRjluSPs
+        4GCGNTGSl9nGp7IxkTGC7zHQmhsj41yI6VZtSRVr8u5G8zxMZmA3oIr5J+cLPJ6uNEHA2qRqMx2G
+        M5E5UsVMwv3BY4NZ9CQ0gQZkLbbzKE2glmz1HN7gFCZSy8VBaOEY0zVuQKyqrZzyPC55PAO6JdFx
+        geM+5k8nS5kR0dahwKU6TctNOVO+7GCks68pkCtmMHPH6siuWnm9Ahpjj17p4yySZfJU/TACW3MG
+        MTIXm/z5mE+/Txc+IxUnUMW6RO+Pk3qJyRavz5NG4/5C9b1husM0IFb9UnCbUP7DegXXYrL6NYdV
+        G46y7fLyskoEd0V5JvQcge8x4HEdJihBJ2tcNSAUXxm3ru7fksIR7gGp4tF0e7ckUP33nay1x/S9
+        o0BZO11VR+ljM5nirq3yGXJ2h+ovkCsrtzIccyMaEaADWvXRyDwUFxwFP7wb3QAJf8e1kz4vamEx
+        g8E8BhtCY8LfjFIB15/+JbTwoIr5S20kilQ9zpPGeiyKfS3QDIkCbnEFu1peLd+srt4sb79eLder
+        5fr63d+YUxbRyTlFaZL/x7wnDJJz7fp4QnfkxebEfy9Y1PWAtDFJJ/1rJ7t+rd1Ty4YpfPgo7M5c
+        fX98no6Uh+aJykSBwqe5fRr5hOfloHYJVZnjC2DwwC2KcVQG3VBT7zSAhJvA54D2EktDhVY/RGjN
+        Ym11icYWjXXZp2l30ehB7uRQlOqydsTfZ7v1M6m1qntb/gJdp000quomWiQN36SiG1CFyGsl+zuR
+        ochNawl/5aVd96YPrOB+RGLLy9QG/lYBP824sa5ZUAidwRLUT6EOXt028Nsnj2xMQZnNP6ObYEVW
+        BN4lrNoJavkBhTyhDoH5p+RwNHfQNML+jRvCVqgIGr7Rgs67oUyEAEYfw2scoBiribW5cmEPuO73
+        LNOvCWvLr57/BfiXHxMvFQAA
     headers:
-      access-control-allow-origin: ['*']
-      access-control-expose-headers: ['ETag, Link, Location, Retry-After, X-GitHub-OTP,
-          X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
-          X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type']
-      cache-control: ['private, max-age=60, s-maxage=60']
-      content-encoding: [gzip]
-      content-security-policy: [default-src 'none']
-      content-type: [application/json; charset=utf-8]
-      date: ['Mon, 22 Apr 2019 22:22:22 GMT']
-      etag: [W/"b9488ea91df827cbd915d22f146216b6"]
-      last-modified: ['Mon, 22 Apr 2019 22:22:20 GMT']
-      referrer-policy: ['origin-when-cross-origin, strict-origin-when-cross-origin']
-      server: [GitHub.com]
-      status: [200 OK]
-      strict-transport-security: [max-age=31536000; includeSubdomains; preload]
-      transfer-encoding: [chunked]
-      vary: ['Accept, Authorization, Cookie, X-GitHub-OTP']
-      x-accepted-oauth-scopes: [repo]
-      x-content-type-options: [nosniff]
-      x-frame-options: [deny]
-      x-github-media-type: [github.v3; format=json]
-      x-github-request-id: ['AA62:108E:17B950:34ADD4:5CBE3E9E']
-      x-oauth-scopes: [repo]
-      x-ratelimit-limit: ['5000']
-      x-ratelimit-remaining: ['4963']
-      x-ratelimit-reset: ['1555973199']
-      x-xss-protection: [1; mode=block]
-    status: {code: 200, message: OK}
+      Access-Control-Allow-Origin:
+      - '*'
+      Access-Control-Expose-Headers:
+      - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
+        X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes,
+        X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
+      Cache-Control:
+      - private, max-age=60, s-maxage=60
+      Content-Encoding:
+      - gzip
+      Content-Security-Policy:
+      - default-src 'none'
+      Content-Type:
+      - application/json; charset=utf-8
+      Date:
+      - Tue, 08 Dec 2020 20:10:39 GMT
+      ETag:
+      - W/"72f39de0d0b425f05912cf9768cde6543d7c38273137e6ff5ba41579745f131e"
+      Last-Modified:
+      - Tue, 08 Dec 2020 20:10:36 GMT
+      Referrer-Policy:
+      - origin-when-cross-origin, strict-origin-when-cross-origin
+      Server:
+      - GitHub.com
+      Status:
+      - 200 OK
+      Strict-Transport-Security:
+      - max-age=31536000; includeSubdomains; preload
+      Transfer-Encoding:
+      - chunked
+      Vary:
+      - Accept, Authorization, Cookie, X-GitHub-OTP
+      - Accept-Encoding, Accept, X-Requested-With
+      X-Accepted-OAuth-Scopes:
+      - repo
+      X-Content-Type-Options:
+      - nosniff
+      X-Frame-Options:
+      - deny
+      X-GitHub-Media-Type:
+      - github.v3; format=json
+      X-GitHub-Request-Id:
+      - E0FA:1940:3DD7E17:65F262C:5FCFDDBF
+      X-OAuth-Scopes:
+      - delete_repo, repo
+      X-RateLimit-Limit:
+      - '5000'
+      X-RateLimit-Remaining:
+      - '4955'
+      X-RateLimit-Reset:
+      - '1607460836'
+      X-RateLimit-Used:
+      - '45'
+      X-XSS-Protection:
+      - 1; mode=block
+    status:
+      code: 200
+      message: OK
 version: 1
diff --git a/datalad/support/tests/test_github_.py b/datalad/support/tests/test_github_.py
index 808c51162..9d8b39f97 100644
--- a/datalad/support/tests/test_github_.py
+++ b/datalad/support/tests/test_github_.py
@@ -33,6 +33,7 @@ from .. import github_
 from ..github_ import (
     _gen_github_entity,
     _get_github_cred,
+    _token_str,
     get_repo_url,
 )
 
@@ -55,7 +56,6 @@ def test_get_repo_url():
 
 def test__make_github_repos():
     github_login = 'test'
-    github_passwd = 'fake'
     github_organization = 'fakeorg'
     rinfo = [
         # (ds, reponame) pairs
@@ -67,7 +67,6 @@ def test__make_github_repos():
     dryrun = False
     args = (
             github_login,
-            github_passwd,
             github_organization,
             rinfo,
             existing,
@@ -92,19 +91,14 @@ def test__make_github_repos():
     assert(all(len(x) > 1 for x in res))  # there is more than just a dataset
 
     #
-    # Now test the logic whenever first credential fails and we need to get
+    # Now test the logic whenever first token fails and we need to get
     # to the next one
     #
-    class FakeCred:
-        def __init__(self, name):
-            self.name = name
-
     # Let's test not blowing up whenever first credential is not good enough
     def _gen_github_entity(*args):
         return [
-            ("entity1", FakeCred("cred1")),
-            ("entity2", FakeCred("cred2")),
-            ("entity3", FakeCred("cred3"))
+            ("entity%d" % i, _token_str("%dtokensomethinglong" % i))
+            for i in range(1, 4)
         ]
 
     def _make_github_repo(github_login, entity, reponame, *args):
@@ -116,7 +110,7 @@ def test__make_github_repos():
             mock.patch.object(github_, '_make_github_repo', _make_github_repo), \
             swallow_logs(new_level=logging.INFO) as cml:
         res = github_._make_github_repos(*args)
-        assert_in('Authentication failed using cred1', cml.out)
+        assert_in('Failed to create repository while using token 1to...: very bad status', cml.out)
         eq_(res, [('/fakeds1', 'fakeds1'), ('/fakeds2', 'fakeds2')])
 
     def _make_github_repo(github_login, entity, reponame, *args):
@@ -136,7 +130,7 @@ def test__gen_github_entity_organization():
     # to test effectiveness of the fix, we need to provide some
     # token which would not work
     with patch_config({CONFIG_HUB_TOKEN_FIELD: "ed51111111111111111111111111111111111111"}):
-        org_cred = next(_gen_github_entity(None, None, 'datalad-collection-1'))
+        org_cred = next(_gen_github_entity(None, 'datalad-collection-1'))
     assert len(org_cred) == 2, "we return organization and credential"
     org, _ = org_cred
     assert org