using System;
namespace ExtensiblePortfolioSite.SDK.Git
{
///
/// A Git Repository
///
public interface IRepository : IGitObject
{
///
/// Name of the repository
///
public String Name { get; }
///
/// Owner of the repository
///
public IUser Owner { get; }
///
/// Get a commit from the repository, defaults to latest
///
/// How far to go back in the commit tree (default 0)
/// A commit
public ICommit? GetCommit(uint HeadOffset = 0);
///
/// Get a commit from the repository, defaults to latest
///
/// How far to go back in the commit tree (default 0)
/// Reference to the commit
/// If the commit could be found
public bool TryGetCommit(uint HeadOffset, out ICommit? Commit);
///
/// Get a commit from the repository by it's hash
///
/// Which commit to get from the repo
/// A commit
public ICommit? GetCommitByRef(string Reference);
///
/// Get a commit from the repository, defaults to latest
///
/// Which commit to get from the repo
/// Reference to the commit
/// If the commit could be found
public bool TryGetCommitByRef(string Reference, out ICommit? Commit);
}
}