mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-10 07:18:27 +01:00
Merge pull request #695 from efiop/master
Use our server to check for updates and do so once a week
This commit is contained in:
+25
-8
@@ -1,19 +1,36 @@
|
||||
from github import Github
|
||||
import os
|
||||
import time
|
||||
import json
|
||||
import requests
|
||||
|
||||
from dvc import VERSION_BASE
|
||||
from dvc.logger import Logger
|
||||
|
||||
GITHUB_USER = 'dataversioncontrol'
|
||||
GITHUB_REPO = 'dvc'
|
||||
DVCAPI_URL = 'https://4ki8820rsf.execute-api.us-east-2.amazonaws.com/prod/latest-version'
|
||||
CHECK_UPDATES_FILE = '.check_updates'
|
||||
TIMEOUT = 7 * 24 * 60 * 60 #every week
|
||||
|
||||
def check_updates():
|
||||
def check_updates(dvc_dir):
|
||||
current = VERSION_BASE
|
||||
|
||||
if os.getenv('CI'):
|
||||
return
|
||||
|
||||
fname = os.path.join(dvc_dir, CHECK_UPDATES_FILE)
|
||||
if os.path.isfile(fname):
|
||||
ctime = os.path.getctime(fname)
|
||||
if time.time() - ctime < TIMEOUT:
|
||||
msg = '{} is not old enough to check for updates'
|
||||
Logger.debug(msg.format(CHECK_UPDATES_FILE))
|
||||
return
|
||||
|
||||
os.unlink(fname)
|
||||
|
||||
try:
|
||||
gh = Github()
|
||||
user = gh.get_user(GITHUB_USER)
|
||||
repo = user.get_repo(GITHUB_REPO)
|
||||
latest = repo.get_latest_release().title
|
||||
r = requests.get(DVCAPI_URL)
|
||||
j = json.loads(r.content)
|
||||
latest = j['version']
|
||||
open(fname, 'w+').close()
|
||||
except Exception as exc:
|
||||
Logger.debug('Failed to obtain latest version: {}'.format(str(exc)))
|
||||
return
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@ class Project(object):
|
||||
self.logger = Logger(self.config._config[Config.SECTION_CORE].get(Config.SECTION_CORE_LOGLEVEL, None))
|
||||
self.cloud = DataCloud(cache=self.cache, config=self.config._config)
|
||||
|
||||
check_updates()
|
||||
check_updates(self.dvc_dir)
|
||||
|
||||
@staticmethod
|
||||
def init(root_dir=os.curdir, no_scm=False):
|
||||
|
||||
+1
-1
@@ -20,4 +20,4 @@ paramiko>=2.4.1
|
||||
binaryornot==0.4.4
|
||||
jsonpath-rw==1.4.0
|
||||
reflink==0.2.0
|
||||
PyGithub>=1.39
|
||||
requests>=2.18.4
|
||||
|
||||
Reference in New Issue
Block a user