ost << html::table();
}
void write_branch_table(std::ostream& ost,
const startgit::repository& repo,
const std::string& branch_name)
{
using namespace hemplate; // NOLINT
ost << html::table();
ost << html::thead();
ost << html::tr()
.add(html::td(" "))
.add(html::td("Name"))
.add(html::td("Last commit date"))
.add(html::td("Author"));
ost << html::thead();
ost << html::tbody();
for (const auto& branch : repo.get_branches()) {
const git2wrap::object obj = repo.get().revparse(branch.get_name().c_str());
const git2wrap::commit commit = repo.get().commit_lookup(obj.get_id());
ost << html::tr()
.add(html::td(branch.get_name() == branch_name ? "*" : " "))
.add(html::td(branch.get_name()))
.add(html::td(long_to_string(commit.get_time())))
.add(html::td(commit.get_author().get_name()))
.add(html::td(""));
}
ost << html::tbody();
ost << html::table();
}
void write_tag_table(std::ostream& ost, const startgit::repository& repo)
{
using namespace hemplate; // NOLINT
ost << html::table();
ost << html::thead();
ost << html::tr()
.add(html::td(" "))
.add(html::td("Name"))
.add(html::td("Last commit date"))
.add(html::td("Author"));
ost << html::thead();
ost << html::tbody();
struct payload_t
{
std::ostream& ost; // NOLINT
const startgit::repository& repo; // NOLINT
} payload(ost, repo);
auto callback = +[](const char*, git_oid* objid, void* payload_p)
{
auto payload = *reinterpret_cast<payload_t*>(payload_p); // NOLINT
const auto tag = payload.repo.get().tag_lookup(objid);
payload.ost << html::tr()
.add(html::td(" "))
.add(html::td(tag.get_name()))
.add(html::td(
long_to_string(tag.get_tagger().get_time().time)))
.add(html::td(tag.get_tagger().get_name()));
return 0;
};
repo.get().tag_foreach(callback, &payload);
ost << html::tbody();
ost << html::table();
}
void write_footer(std::ostream& ost)
{
using namespace hemplate; // NOLINT