grab_github 0.1.0

Obtain a list of files from a GitHub repository and download them to a folder using the GitHub API.
Documentation
use std::path::{Path, PathBuf};

use grab_github::{Error, GithubBranchPath, SourceTree, TreeEntryType};

#[tokio::test]
pub async fn hello_git_world() -> Result<(), Error> {
    let tree = SourceTree::get(&GithubBranchPath::new(
        "githubtraining",
        "hellogitworld",
        "master",
    ))
    .await?;

    assert_eq!(
    tree.resolve_blob(Path::new("build.gradle")),
    Some(&SourceTree {
        path: PathBuf::from("build.gradle"),
        mode: String::from("100644"),
        entry_type: TreeEntryType::Blob,
        size: 112,
        sha: String::from("6058be211566308428ca6dcab3f08cf270cd9568"),
        url: String::from("https://api.github.com/repos/githubtraining/hellogitworld/git/blobs/6058be211566308428ca6dcab3f08cf270cd9568"),
        children: Vec::new()
    }));

    let dir = tree
        .resolve_tree(Path::new("src/test/java/com/github"))
        .unwrap();
    assert_eq!(dir.children[0], SourceTree {
        path: PathBuf::from("src/test/java/com/github/AppTest.java"),
        mode: String::from("100644"),
        entry_type: TreeEntryType::Blob,
        size: 750,
        sha: String::from("43767197a768385d97ce751c421ee9e7ceeda5a7"),
        url: String::from("https://api.github.com/repos/githubtraining/hellogitworld/git/blobs/43767197a768385d97ce751c421ee9e7ceeda5a7"),
        children: Vec::new()
	});

    Ok(())
}