using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ExtensiblePortfolioSite.SDK.Git
{
    /// <summary>
    /// A Git Repository
    /// </summary>
    public interface IRepository : IGitObject
    {
        /// <summary>
        /// Name of the repository
        /// </summary>
        public String Name { get; }
        /// <summary>
        /// Owner of the repository
        /// </summary>
        public IUser Owner { get; }

        /// <summary>
        /// Get a commit from the repository, defaults to latest
        /// </summary>
        /// <param name="HeadOffset">How far to go back in the commit tree (default 0)</param>
        /// <returns>A commit</returns>
        public ICommit GetCommit(uint HeadOffset = 0);
    }
}
