add option for file cache dir
add try_mkdir
github_repo use github_helper, helper use local file cache dir