带有 github / bitbucket private repos 的 pyinstaller 更新程序
pyinstaller updater with github / bitbucket private repos
我正在尝试将 pyinstaller 与私人仓库的更新功能集成。我的问题是,有没有办法将 pyupdater 与免费替代品集成,例如:bitbucket private repos? Pyupdater 倾向于为 public 回购工作,但我不知道如何为私人回购实现这一目标。
配置文件:
class ClientConfig(object):
PUBLIC_KEY = 'None'
APP_NAME = 'dad123'
COMPANY_NAME = 'dad123'
UPDATE_URLS = ['ssh://git@bitbucket.org/Tysondogerz/ssh/download']
MAX_DOWNLOAD_RETRIES = 3
创建 ssh 非常简单:
ssh-keygen -t rsa -C "youremail@example.com"
所以……
Main.py
#!/usr/bin/env python3
from __future__ import print_function
import time
import argparse
import os
import signal
import sys
import logging
from selenium import webdriver
logging.basicConfig(level=logging.DEBUG)
from client_config import ClientConfig
from pyupdater.client import Client, AppUpdate, LibUpdate
Ssh_key = DWDJKWNADKJWANDJKWANDWJKDNAWJKDNWAKDNWAJDKWANDJKWANDWAJKDNWAKJDWNADKJWANDWAJKDNAWJKDNWAJKDNWAJKDWNADJKWANDJKWANDKJWADNWAJKDNWAJKNWQWQDWQNDJKQWNDJKWQNDWQJKDNWQJKDNWKJDNWKJANDWJKNDWJKNDWDUWDNWDHDUIWHDIUWHDUIWHDUIWHDIUWHDUIWHDWUDHWUIHDWUDHUhottyouremail@example.com
client = Client(ClientConfig(), ssh={'ssh_key'})
from pyupdater.client import Client
from client_config import ClientConfig
def print_status_info(info):
total = info.get(u'total')
downloaded = info.get(u'downloaded')
status = info.get(u'status')
print downloaded, total, status
client = Client(ClientConfig())
client.refresh()
client.add_progress_hook(print_status_info)
client = Client(ClientConfig(), refresh=True,
progress_hooks=[print_status_info])
lib_update = client.update_check(ASSET_NAME, ASSET_VERSION)
lib_update = client.update_check(ASSET_NAME, ASSET_VERSION, channel='beta')
if lib_update is not None:
lib_update.download()
driver = webdriver.Firefox()
driver.get('http://whosebug.com')
if __name__ == "__main__":
main()
无法通过 SSH 访问下载部分。您需要通过 HTTPS 使用其他形式的身份验证来检索这些文件。 (Application passwords 可能是您最好的选择,因为它们可以非常具体地确定范围并在必要时丢弃。)
我正在尝试将 pyinstaller 与私人仓库的更新功能集成。我的问题是,有没有办法将 pyupdater 与免费替代品集成,例如:bitbucket private repos? Pyupdater 倾向于为 public 回购工作,但我不知道如何为私人回购实现这一目标。
配置文件:
class ClientConfig(object):
PUBLIC_KEY = 'None'
APP_NAME = 'dad123'
COMPANY_NAME = 'dad123'
UPDATE_URLS = ['ssh://git@bitbucket.org/Tysondogerz/ssh/download']
MAX_DOWNLOAD_RETRIES = 3
创建 ssh 非常简单:
ssh-keygen -t rsa -C "youremail@example.com"
所以……
Main.py
#!/usr/bin/env python3
from __future__ import print_function
import time
import argparse
import os
import signal
import sys
import logging
from selenium import webdriver
logging.basicConfig(level=logging.DEBUG)
from client_config import ClientConfig
from pyupdater.client import Client, AppUpdate, LibUpdate
Ssh_key = DWDJKWNADKJWANDJKWANDWJKDNAWJKDNWAKDNWAJDKWANDJKWANDWAJKDNWAKJDWNADKJWANDWAJKDNAWJKDNWAJKDNWAJKDWNADJKWANDJKWANDKJWADNWAJKDNWAJKNWQWQDWQNDJKQWNDJKWQNDWQJKDNWQJKDNWKJDNWKJANDWJKNDWJKNDWDUWDNWDHDUIWHDIUWHDUIWHDUIWHDIUWHDUIWHDWUDHWUIHDWUDHUhottyouremail@example.com
client = Client(ClientConfig(), ssh={'ssh_key'})
from pyupdater.client import Client
from client_config import ClientConfig
def print_status_info(info):
total = info.get(u'total')
downloaded = info.get(u'downloaded')
status = info.get(u'status')
print downloaded, total, status
client = Client(ClientConfig())
client.refresh()
client.add_progress_hook(print_status_info)
client = Client(ClientConfig(), refresh=True,
progress_hooks=[print_status_info])
lib_update = client.update_check(ASSET_NAME, ASSET_VERSION)
lib_update = client.update_check(ASSET_NAME, ASSET_VERSION, channel='beta')
if lib_update is not None:
lib_update.download()
driver = webdriver.Firefox()
driver.get('http://whosebug.com')
if __name__ == "__main__":
main()
无法通过 SSH 访问下载部分。您需要通过 HTTPS 使用其他形式的身份验证来检索这些文件。 (Application passwords 可能是您最好的选择,因为它们可以非常具体地确定范围并在必要时丢弃。)