• 大小: 30.68M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-16
  • 语言: 其他
  • 标签: 其他  

资源简介

depotTools.zip

资源截图

代码片段和文件信息

# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

“““Google OAuth2 related functions.“““

from __future__ import print_function

import collections
import datetime
import functools
import httplib2
import json
import logging
import os

import subprocess2


# This is what most GAE apps require for authentication.
OAUTH_SCOPE_EMAIL = ‘https://www.googleapis.com/auth/userinfo.email‘
# Gerrit and Git on *.googlesource.com require this scope.
OAUTH_SCOPE_GERRIT = ‘https://www.googleapis.com/auth/gerritcodereview‘
# Deprecated. Use OAUTH_SCOPE_EMAIL instead.
OAUTH_SCOPES = OAUTH_SCOPE_EMAIL


# Mockable datetime.datetime.utcnow for testing.
def datetime_now():
  return datetime.datetime.utcnow()


# OAuth access token with its expiration time (UTC datetime or None if unknown).
class AccessToken(collections.namedtuple(‘AccessToken‘ [
    ‘token‘
    ‘expires_at‘
  ])):

  def needs_refresh(self):
    “““True if this AccessToken should be refreshed.“““
    if self.expires_at is not None:
      # Allow 30s of clock skew between client and backend.
      return datetime_now() + datetime.timedelta(seconds=30) >= self.expires_at
    # Token without expiration time never expires.
    return False


class LoginRequiredError(Exception):
  “““Interaction with the user is required to authenticate.“““

  def __init__(self scopes=OAUTH_SCOPE_EMAIL):
    msg = (
        ‘You are not logged in. Please login first by running:\n‘
        ‘  luci-auth login -scopes %s‘ % scopes)
    super(LoginRequiredError self).__init__(msg)


def has_luci_context_local_auth():
  “““Returns whether LUCI_CONTEXT should be used for ambient authentication.“““
  ctx_path = os.environ.get(‘LUCI_CONTEXT‘)
  if not ctx_path:
    return False
  try:
    with open(ctx_path) as f:
      loaded = json.load(f)
  except (OSError IOError ValueError):
    return False
  return loaded.get(‘local_auth‘ {}).get(‘default_account_id‘) is not None


class Authenticator(object):
  “““object that knows how to refresh access tokens when needed.

  Args:
    scopes: space separated oauth scopes. Defaults to OAUTH_SCOPE_EMAIL.
  “““

  def __init__(self scopes=OAUTH_SCOPE_EMAIL):
    self._access_token = None
    self._scopes = scopes

  def has_cached_credentials(self):
    “““Returns True if credentials can be obtained.

    If returns False get_access_token() later will probably ask for interactive
    login by raising LoginRequiredError.

    If returns True get_access_token() won‘t ask for interactive login.
    “““
    return bool(self._get_luci_auth_token())

  def get_access_token(self):
    “““Returns AccessToken refreshing it if necessary.

    Raises:
      LoginRequiredError if user interaction is required.
    “““
    if self._access_token and not self._access_token.needs_refresh(

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-01-08 17:48  depotTools\
     目录           0  2020-01-08 17:48  depotTools\.git\
     文件          23  2020-01-08 17:48  depotTools\.git\HEAD
     文件         327  2020-01-08 17:48  depotTools\.git\config
     文件          73  2020-01-08 17:48  depotTools\.git\description
     目录           0  2020-01-08 17:48  depotTools\.git\hooks\
     文件         478  2020-01-08 17:48  depotTools\.git\hooks\applypatch-msg.sample
     文件         896  2020-01-08 17:48  depotTools\.git\hooks\commit-msg.sample
     文件        3327  2020-01-08 17:48  depotTools\.git\hooks\fsmonitor-watchman.sample
     文件         189  2020-01-08 17:48  depotTools\.git\hooks\post-update.sample
     文件         424  2020-01-08 17:48  depotTools\.git\hooks\pre-applypatch.sample
     文件        1638  2020-01-08 17:48  depotTools\.git\hooks\pre-commit.sample
     文件        1348  2020-01-08 17:48  depotTools\.git\hooks\pre-push.sample
     文件        4898  2020-01-08 17:48  depotTools\.git\hooks\pre-rebase.sample
     文件         544  2020-01-08 17:48  depotTools\.git\hooks\pre-receive.sample
     文件        1492  2020-01-08 17:48  depotTools\.git\hooks\prepare-commit-msg.sample
     文件        3610  2020-01-08 17:48  depotTools\.git\hooks\update.sample
     文件       70577  2020-01-08 17:48  depotTools\.git\index
     目录           0  2020-01-08 17:48  depotTools\.git\info\
     文件         240  2020-01-08 17:48  depotTools\.git\info\exclude
     目录           0  2020-01-08 17:48  depotTools\.git\logs\
     文件         210  2020-01-08 17:48  depotTools\.git\logs\HEAD
     目录           0  2020-01-08 17:48  depotTools\.git\logs\refs\
     目录           0  2020-01-08 17:48  depotTools\.git\logs\refs\heads\
     文件         210  2020-01-08 17:48  depotTools\.git\logs\refs\heads\master
     目录           0  2020-01-08 17:48  depotTools\.git\logs\refs\remotes\
     目录           0  2020-01-08 17:48  depotTools\.git\logs\refs\remotes\origin\
     文件         210  2020-01-08 17:48  depotTools\.git\logs\refs\remotes\origin\HEAD
     目录           0  2020-01-08 17:48  depotTools\.git\objects\
     目录           0  2020-01-08 17:48  depotTools\.git\objects\info\
     目录           0  2020-01-08 17:48  depotTools\.git\objects\pack\
............此处省略769个文件信息

评论

共有 条评论