octocrate 0.1.6

A library of github API
Documentation
use crate::{GithubCommit, GithubCommitCombinedStatuses, GithubCommitStatus};
use octocrate_api_builder::github_api;

github_api! {
  GithubCommitAPI {
    get_commit {
      path "/repos/{}/{}/commits/{}"
      params {
        owner String
        repo String
        sha String
      }
      response GithubCommit
      test {
        params {
          envs.repo_owner
          envs.repo_name
          envs.commit_sha.clone()
        }
        assert assert_eq!(res.sha, envs.commit_sha)
      }
    }

    list_commits {
      path "/repos/{}/{}/commits"
      params {
        owner String
        repo String
      }
      response Vec<GithubCommit>
      test {
        params {
          envs.repo_owner
          envs.repo_name
        }
        assert assert!(res.len() > 1)
      }
    }

    get_commit_status {
      path "/repos/{}/{}/commits/{}/status"
      params {
        owner String
        repo String
        ref_name String
      }
      response GithubCommitCombinedStatuses
      test {
        params {
          envs.repo_owner
          envs.repo_name
          envs.commit_sha.clone()
        }
        assert println!("{:#?}", res)
      }
    }

    list_commit_statuses {
      path "/repos/{}/{}/commits/{}/statuses"
      params {
        owner String
        repo String
        ref_name String
      }
      response Vec<GithubCommitStatus>
      test {
        params {
          envs.repo_owner
          envs.repo_name
          envs.commit_sha.clone()
        }
        assert println!("{:#?}", res)
      }
    }

    create_commit_status {
      path "/repos/{}/{}/statuses/{}"
      method POST
      params {
        owner String
        repo String
        sha String
      }
      response GithubCommitStatus
      test {
        params {
          envs.repo_owner
          envs.repo_name
          envs.commit_sha.clone()
        }
        body {
          state "success"
          target_url "https://www.panghu.tech"
          description "test"
          context "coodev/test"
        }
        assert assert_eq!(res.state, "success")
      }
    }
  }
}