repo.h (1371B)
1 #ifndef GITOUT_GIT_REPO_H_ 2 #define GITOUT_GIT_REPO_H_ 3 4 #include "git/commit.h" 5 #include "git/file.h" 6 #include "git/reference.h" 7 8 typedef struct GitRepo GitRepo; 9 10 GitRepo* gitrepo_create(const char* path); 11 void gitrepo_free(GitRepo* repo); 12 13 const char* gitrepo_name(const GitRepo* repo); 14 const char* gitrepo_short_name(const GitRepo* repo); 15 const char* gitrepo_owner(const GitRepo* repo); 16 const char* gitrepo_description(const GitRepo* repo); 17 const char* gitrepo_clone_url(const GitRepo* repo); 18 const char* gitrepo_submodules(const GitRepo* repo); 19 const char* gitrepo_readme(const GitRepo* repo); 20 const char* gitrepo_license(const GitRepo* repo); 21 22 typedef void (*CommitCallback)(const GitCommit* ci, void* user_data); 23 void gitrepo_for_commit(GitRepo* repo, 24 const char* spec, 25 CommitCallback cb, 26 void* user_data); 27 28 void gitrepo_for_each_commit(GitRepo* repo, CommitCallback cb, void* user_data); 29 30 typedef void (*ReferenceCallback)(const GitReference* ref, void* user_data); 31 void gitrepo_for_each_reference(GitRepo* repo, 32 ReferenceCallback cb, 33 void* user_data); 34 35 typedef void (*FileCallback)(const GitFile* file, void* user_data); 36 void gitrepo_for_each_file(GitRepo* repo, FileCallback cb, void* user_data); 37 38 #endif // GITOUT_GIT_REPO_H_