1. 程式人生 > 其它 >【大倉自動化】廢棄依賴自動尋根指令碼

【大倉自動化】廢棄依賴自動尋根指令碼

[本文出自天外歸雲的部落格園]

問題是

gazelle: imports git.code.oa.com/atta/attaapi-go and git.code.oa.com/atta/attaapi_go resolve to the same repository rule name com_oa_code_git_atta_attaapi_go

原因是

廢棄庫,不讓引入大倉中

演算法是

當你執行 go mod graph | grep "xxx" 命令找廢棄依賴引入源的時候

程式碼是

import subprocess


def exec_cmd(cmd_str):
    p = subprocess.Popen(cmd_str, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    refs_bytes 
= p.stdout.read() refs_str = refs_bytes.decode('UTF-8') return refs_str def get_refs(ref_target, top_target): refs_str = exec_cmd(f'go mod graph | grep {ref_target}') refs = refs_str.split("\n") for ref in [ref for ref in refs if len(ref.split(" ")) == 2]: left_right = ref.split("
") left = left_right[0] right = left_right[1] if ref_target not in right: continue if top_target in left: print(right) continue get_refs(left, top_target) if __name__ == '__main__': get_refs("廢棄以來庫", "小倉地址")

之後是

去大倉的deps.bzl裡找到這些依賴的版本,更新到小倉的go.mod檔案裡,然後go mod tidy就可以了