Packages
crawley_ex
0.1.0
Crawley is an elixir package that mine the Github API searching for repos to download and then zip and upload them to a S3 bucket.
Current section
Files
Jump to
Current section
Files
lib/crawley.ex
defmodule Crawley do
def run(%{lang: lang, per_page: per_page, page: page}) do
repos = Crawley.RepoUtils.get_repositories(%{
lang: lang,
per_page: per_page,
page: page
})
download_repos(repos)
end
defp download_repos(repos), do: Enum.map(repos, &git_clone_async/1)
defp git_clone_async(repo) do
repo_id = repo["id"]
repo_clone_url = repo["clone_url"]
spawn fn ->
Crawley.RepoUtils.clone_repo(repo_id, repo_clone_url)
Crawley.S3.upload_repo("crawley-repos", repo_id)
Crawley.RepoUtils.delete_repo(repo_id)
end
end
end