docs: def create_migration(self, repos, lock_repositories=github.GithubObject.NotSet, exclude_attachments=github.GithubObject.NotSet):
          """
          :calls: `POST /user/migrations`_
          :param repos: list or tuple of str
          :param lock_repositories: bool
          :param exclude_attachments: bool
          :rtype: :class:`github.Migration.Migration`
          """
          assert isinstance(repos, (list, tuple)), repos
          assert all(isinstance(repo, (str, unicode)) for repo in repos), repos
          assert lock_repositories is github.GithubObject.NotSet or isinstance(lock_repositories, bool), lock_repositories
          assert exclude_attachments is github.GithubObject.NotSet or isinstance(exclude_attachments, bool), exclude_attachments
          post_parameters = {
              "repositories": repos
          }
          if lock_repositories is not github.GithubObject.NotSet:
              post_parameters["lock_repositories"] = lock_repositories
          if exclude_attachments is not github.GithubObject.NotSet:
              post_parameters["exclude_attachments"] = exclude_attachments
          headers, data = self._requester.requestJsonAndCheck(
              "POST",
              "/user/migrations",
              input=post_parameters,
              headers={
                  "Accept": Consts.mediaTypeMigrationPreview
              }
          )
          return github.Migration.Migration(self._requester, headers, data, completed=True)