• Lv0
    粉丝0

积分2 / 贡献0

提问1答案被采纳0文章0

作者动态

    ohpm publish xxx.har 发布第三方库,无法自动化发布

    xiehui 显示全部楼层 发表于 2024-5-16 19:27:50
    【问题描述】
    发布第三方库需求部署jenkins上
    ohpm publish xxx.har 需要输入密码,如何自动输入密码或者免密发布


    手动发布,正常上传
    fakename.png

    自动化脚本输入密码,报错:
    fakename.png


    自动上传脚本:
    output, error = subprocess.run(["ohpm", "publish", har_file], input="abcd\n", text=True)

    您尚未登录,无法参与评论,登录后可以:
    参与开源共建问题交流
    认同或收藏高质量问答
    获取积分成为开源共建先驱

    精彩评论6

    xiehui

    沙发 发表于 2024-5-17 10:09:58
    或者使用这个脚本也不行
    1. import pexpect

    2. password_key = '.*assphrase of the private ke.*'
    3. password = "abcd"
    4. command = f'ohpm  publish /xxx/xxx/xxx.har'

    5. execute = pexpect.spawn(command)
    6. execute.expect(password_key)
    7. execute.sendline(password)
    8. execute.expect(pexpect.EOF)
    复制代码

    椰青

    板凳 发表于 2024-5-22 09:05:30
    由于公开仓推包后是所有用户都能下载使用的,所以当前并不建议使用自动化的方式进行推包

    如果确实有自动化推包的需求,可以尝试在输入密钥时,一个一个字符输入,每个字符输入的间隔穿插1s的等待,让程序能够正确读取到密码

    1. execute.expect(password_key)
    2. sleep 1
    3. execute.sendline(a)
    4. sleep 1
    5. execute.sendline(b)
    6. sleep 1
    7. execute.sendline(c)
    8. sleep 1
    9. execute.sendline(d)
    10. sleep 1
    复制代码

    xiehui

    发表于 2024-5-22 16:08  IP属地: 江苏省扬州市

    回复 椰青: 嗯嗯,谢谢,我已经解决了,我也发现要sleep了,不过没有所以python模块

    1. #!/usr/bin/expect

    2. set har_file [lindex $argv 0]
    3. set passwd  [lindex $argv 1]

    4. #spawn ohpm  publish
    5. spawn ohpm  publish $har_file
    6. expect "*what is your passphrase of the private key:*"
    7. send $passwd
    8. sleep 2
    9. send "\r"
    10. sleep 10
    11. send "exit\r"
    12. expect eof
    复制代码

    lord_voldemort

    发表于 2024-8-1 16:38  IP属地: 天津市

    回复 椰青: 能给一份详细的吗?我发现Python版本的不行,楼下shell的可以

    椰青

    发表于 2024-8-5 09:10  IP属地: 广东省广州市

    回复 lord_voldemort: python我也不会哦,这里我只是给出一个解决问题的方案(输入密码之间需要停顿),具体的实现脚本还需要你自己去写下

    【3 条回复】

    lord_voldemort

    地板 发表于 2024-8-16 16:25:12
    发现了一种新的方式AccessToken,可以跳过输入密码

    Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

    返回顶部