private Arguments Generate(TagCollection tags, string startTag = "", string endTag = "", string fileExtension = ".sql", string fileName = "updated-sql.csv") { var start = tags.FirstOrDefault(x => x.Name == startTag); var end = tags.FirstOrDefault(x => x.Name == endTag); return new Arguments { StartTag = start != null ? start.Target.Sha : tags.Last().Target.Sha, EndTag = end != null ? end.Target.Sha : tags.Reverse().Skip(1).First().Target.Sha, FileExtension = fileExtension, ExportFileName = fileName }; }