【大倉自動化】廢棄依賴自動尋根指令碼
阿新 • • 發佈:2022-05-17
[本文出自天外歸雲的部落格園]
問題是
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就可以了