带有 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 可能是您最好的选择,因为它们可以非常具体地确定范围并在必要时丢弃。)