代码之家  ›  专栏  ›  技术社区  ›  user9155788

带有github/bitbucket私有repos的pyinstaller更新程序

  •  16
  • user9155788  · 技术社区  · 7 年前

    我正试图将pyinstaller与私有repo的更新功能集成在一起。我的问题是,有没有一种方法可以将pyupdater与诸如bitbucket私有repo之类的免费替代品集成在一起?Pyupdater倾向于为公共回购服务,但我无法确定如何为私有回购服务实现这一点。

    配置文件:

    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"

    所以

    主要的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://stackoverflow.com')
     
     
    if __name__ == "__main__":
        main()
    
    1 回复  |  直到 3 年前
        1
  •  2
  •   Jim Redmond    7 年前

    无法通过SSH访问下载部分。您需要通过HTTPS使用其他形式的身份验证来检索这些文件。( Application passwords 这可能是您的最佳选择,因为它们可以非常具体地确定范围,并在必要时丢弃。)