using System; using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using Octokit.Internal; namespace Octokit { /// /// Searching Repositories /// http://developer.github.com/v3/search/#search-repositories /// [DebuggerDisplay("{DebuggerDisplay,nq}")] public class SearchRepositoriesRequest : BaseSearchRequest { /// /// Initializes a new instance of the class. /// public SearchRepositoriesRequest() { Order = SortDirection.Descending; } /// /// Initializes a new instance of the class. /// /// The search term. public SearchRepositoriesRequest(string term) : base(term) { Order = SortDirection.Descending; } /// /// For https://help.github.com/articles/searching-repositories#sorting /// Optional Sort field. One of stars, forks, or updated. If not provided, results are sorted by best match. /// public RepoSearchSort? SortField { get; set; } public override string Sort { get { return SortField.ToParameter(); } } private IEnumerable _inQualifier; /// /// The in qualifier limits what fields are searched. With this qualifier you can restrict the search to just the repository name, description, README, or any combination of these. /// Without the qualifier, only the name and description are searched. /// https://help.github.com/articles/searching-repositories#search-in /// public IEnumerable In { get { return _inQualifier; } set { if (value != null && value.Any()) _inQualifier = value.Distinct().ToList(); } } /// /// Filters repositories based on the number of forks, and/or whether forked repositories should be included in the results at all. /// https://help.github.com/articles/searching-repositories#forks /// public Range Forks { get; set; } /// /// Filters repositories based whether forked repositories should be included in the results at all. /// Defaults to ExcludeForks /// https://help.github.com/articles/searching-repositories#forks /// public ForkQualifier? Fork { get; set; } /// /// The size qualifier finds repository's that match a certain size (in kilobytes). /// https://help.github.com/articles/searching-repositories#size /// public Range Size { get; set; } /// /// Searches repositories based on the language they’re written in. /// https://help.github.com/articles/searching-repositories#languages /// public Language? Language { get; set; } /// /// Searches repositories based on the number of stars. /// https://help.github.com/articles/searching-repositories#stars /// public Range Stars { get; set; } /// /// Limits searches to a specific user or repository. /// https://help.github.com/articles/searching-repositories#users-organizations-and-repositories /// public string User { get; set; } /// /// Filters repositories based on times of creation. /// https://help.github.com/articles/searching-repositories#created-and-last-updated /// public DateRange Created { get; set; } /// /// Filters repositories based on when they were last updated. /// https://help.github.com/articles/searching-repositories#created-and-last-updated /// public DateRange Updated { get; set; } public override IReadOnlyList MergedQualifiers() { var parameters = new List(); if (In != null) { parameters.Add(string.Format(CultureInfo.InvariantCulture, "in:{0}", string.Join(",", In))); } if (Size != null) { parameters.Add(string.Format(CultureInfo.InvariantCulture, "size:{0}", Size)); } if (Forks != null) { parameters.Add(string.Format(CultureInfo.InvariantCulture, "forks:{0}", Forks)); } if (Fork != null) { parameters.Add(string.Format(CultureInfo.InvariantCulture, "fork:{0}", Fork)); } if (Stars != null) { parameters.Add(string.Format(CultureInfo.InvariantCulture, "stars:{0}", Stars)); } if (Language != null) { parameters.Add(string.Format(CultureInfo.InvariantCulture, "language:{0}", Language)); } if (User.IsNotBlank()) { parameters.Add(string.Format(CultureInfo.InvariantCulture, "user:{0}", User)); } if (Created != null) { parameters.Add(string.Format(CultureInfo.InvariantCulture, "created:{0}", Created)); } if (Updated != null) { parameters.Add(string.Format(CultureInfo.InvariantCulture, "pushed:{0}", Updated)); } return parameters; } internal string DebuggerDisplay { get { return string.Format(CultureInfo.InvariantCulture, "Term: {0} Sort: {1}", Term, Sort); } } } /// /// https://help.github.com/articles/searching-repositories#search-in /// The in qualifier limits what fields are searched. With this qualifier you can restrict the search to just the /// repository name, description, README, or any combination of these. /// public enum InQualifier { Name, Description, Readme } /// /// Helper class in generating the range values for a qualifer e.g. In or Size qualifiers /// [DebuggerDisplay("{DebuggerDisplay,nq}")] public class Range { private readonly string query = string.Empty; /// /// Matches repositories that are size MB exactly /// [SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Int32.ToString")] public Range(int size) { query = size.ToString(CultureInfo.InvariantCulture); } /// /// Matches repositories that are between and KB /// public Range(int minSize, int maxSize) { query = string.Format(CultureInfo.InvariantCulture, "{0}..{1}", minSize, maxSize); } /// /// Matches repositories with regards to the size /// We will use the to see what operator will be applied to the size qualifier /// public Range(int size, SearchQualifierOperator op) { switch (op) { case SearchQualifierOperator.GreaterThan: query = string.Format(CultureInfo.InvariantCulture, ">{0}", size); break; case SearchQualifierOperator.LessThan: query = string.Format(CultureInfo.InvariantCulture, "<{0}", size); break; case SearchQualifierOperator.LessThanOrEqualTo: query = string.Format(CultureInfo.InvariantCulture, "<={0}", size); break; case SearchQualifierOperator.GreaterThanOrEqualTo: query = string.Format(CultureInfo.InvariantCulture, ">={0}", size); break; } } internal string DebuggerDisplay { get { return string.Format(CultureInfo.InvariantCulture, "Query: {0}", query); } } /// /// Helper class that build a with a LessThan comparator used for filtering results /// public static Range LessThan(int size) { return new Range(size, SearchQualifierOperator.LessThan); } /// /// Helper class that build a with a LessThanOrEqual comparator used for filtering results /// public static Range LessThanOrEquals(int size) { return new Range(size, SearchQualifierOperator.LessThanOrEqualTo); } /// /// Helper class that build a with a GreaterThan comparator used for filtering results /// public static Range GreaterThan(int size) { return new Range(size, SearchQualifierOperator.GreaterThan); } /// /// Helper class that build a with a GreaterThanOrEqualTo comparator used for filtering results /// public static Range GreaterThanOrEquals(int size) { return new Range(size, SearchQualifierOperator.GreaterThanOrEqualTo); } public override string ToString() { return query; } } /// /// helper class in generating the date range values for the date qualifier e.g. /// https://help.github.com/articles/searching-repositories#created-and-last-updated /// [DebuggerDisplay("{DebuggerDisplay,nq}")] public class DateRange { private readonly string query = string.Empty; /// /// Matches repositories with regards to the . /// We will use the to see what operator will be applied to the date qualifier /// public DateRange(DateTime date, SearchQualifierOperator op) { switch (op) { case SearchQualifierOperator.GreaterThan: query = string.Format(CultureInfo.InvariantCulture, ">{0:yyyy-MM-dd}", date); break; case SearchQualifierOperator.LessThan: query = string.Format(CultureInfo.InvariantCulture, "<{0:yyyy-MM-dd}", date); break; case SearchQualifierOperator.LessThanOrEqualTo: query = string.Format(CultureInfo.InvariantCulture, "<={0:yyyy-MM-dd}", date); break; case SearchQualifierOperator.GreaterThanOrEqualTo: query = string.Format(CultureInfo.InvariantCulture, ">={0:yyyy-MM-dd}", date); break; } } /// /// Matches repositories with regards to both the and dates. /// public DateRange(DateTime from, DateTime to) { query = string.Format(CultureInfo.InvariantCulture, "{0:yyyy-MM-dd}..{1:yyyy-MM-dd}", from, to); } internal string DebuggerDisplay { get { return string.Format(CultureInfo.InvariantCulture, "Query: {0}", query); } } /// /// helper method to create a LessThan Date Comparison /// e.g. < 2011 /// /// date to be used for comparison (times are ignored) /// public static DateRange LessThan(DateTime date) { return new DateRange(date, SearchQualifierOperator.LessThan); } /// /// helper method to create a LessThanOrEqualTo Date Comparison /// e.g. <= 2011 /// /// date to be used for comparison (times are ignored) /// public static DateRange LessThanOrEquals(DateTime date) { return new DateRange(date, SearchQualifierOperator.LessThanOrEqualTo); } /// /// helper method to create a GreaterThan Date Comparison /// e.g. > 2011 /// /// date to be used for comparison (times are ignored) /// public static DateRange GreaterThan(DateTime date) { return new DateRange(date, SearchQualifierOperator.GreaterThan); } /// /// helper method to create a GreaterThanOrEqualTo Date Comparison /// e.g. >= 2011 /// /// date to be used for comparison (times are ignored) /// public static DateRange GreaterThanOrEquals(DateTime date) { return new DateRange(date, SearchQualifierOperator.GreaterThanOrEqualTo); } /// /// helper method to create a bounded Date Comparison /// e.g. 2015-08-01..2015-10-31 /// /// earlier date of the two /// latter date of the two /// public static DateRange Between(DateTime from, DateTime to) { return new DateRange(from, to); } public override string ToString() { return query; } } /// /// lanuages that can be searched on in github /// https://help.github.com/articles/searching-repositories#languages /// public enum Language { #pragma warning disable 1591 [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Abap")] Abap, [Parameter(Value = "ActionScript")] ActionScript, Ada, Apex, [Parameter(Value = "AppleScript")] AppleScript, Arc, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Arduino")] Arduino, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Conf")] [Parameter(Value = "ApacheConf")] ApacheConf, Asp, Assembly, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Augeas")] Augeas, [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "HotKey")] [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "HotKey")] [Parameter(Value = "AutoHotkey")] AutoHotKey, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Awk")] Awk, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Batchfile")] Batchfile, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Befunge")] Befunge, [Parameter(Value = "BlitzMax")] BlitzMax, Boo, Bro, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "C")] C, [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "hs")] [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "hs")] [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "hs")] [Parameter(Value = "C2HS Haskell")] C2hsHaskell, Ceylon, Chuck, Clips, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Clojure")] Clojure, Cobol, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Cmake")] Cmake, [Parameter(Value = "C-ObjDump")] CObjDump, [Parameter(Value = "CoffeeScript")] CoffeeScript, [Parameter(Value = "ColdFusion")] ColdFusion, CommonLisp, Coq, [Parameter(Value = "C++")] CPlusPlus, [Parameter(Value = "C#")] CSharp, Css, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Cpp")] [Parameter(Value = "Cpp-ObjDump")] CppObjDump, Cucumber, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Cython")] Cython, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "D")] D, [Parameter(Value = "D-ObjDump")] DObjDump, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Darcs")] [Parameter(Value = "DarcsPatch")] DarcsPatch, Dart, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Dcpu")] [Parameter(Value = "DCPU-16 ASM")] Dcpu16Asm, Dot, Dylan, [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Ec")] [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Ec")] Ec, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Ecere")] [Parameter(Value = "Ecere Projects")] EcereProjects, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Ecl")] Ecl, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Edn")] Edn, Eiffel, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Elixir")] [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Elixir")] Elixir, [Obsolete("This item is incorrect and will be removed in a future update. Use Elixir instead.")] [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Elixer")] [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Elixer")] Elixer, Elm, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Emacs")] [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Emacs")] EmacsLisp, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Erlang")] [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Erlang")] Erlang, [Parameter(Value = "F#")] FSharp, Factor, Fancy, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Fantom")] [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Fantom")] Fantom, Fish, Forth, Fortran, Gas, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Genshi")] [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Genshi")] Genshi, [Parameter(Value = "Gentoo Build")] GentooBuild, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Eclass")] [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Eclass")] [Parameter(Value = "Gentoo Eclass")] GentooEclass, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Gettext")] [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Gettext")] [Parameter(Value = "Gettext Catalog")] GettextCatalog, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Glsl")] [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Glsl")] Glsl, Go, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Gosu")] [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Gosu")] Gosu, Groff, Groovy, [Parameter(Value = "Groovy Server Pages")] GroovyServerPages, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Haml")] [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Haml")] Haml, [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "HandleBars")] [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "HandleBars")] [Parameter(Value = "HandleBars")] HandleBars, Haskell, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Haxe")] Haxe, Http, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Ini")] Ini, [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Io")] Io, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Ioke")] Ioke, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Irc")] [Parameter(Value = "IRC log")] IrcLog, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "J")] J, Java, [Parameter(Value = "Java Server Pages")] JavaServerPages, JavaScript, Json, Julia, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Kotlin")] Kotlin, Lasso, Less, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Lfe")] Lfe, [Parameter(Value = "LillyPond")] LillyPond, [Parameter(Value = "Literate CoffeeScript")] LiterateCoffeeScript, [Parameter(Value = "Literate Haskell")] LiterateHaskell, [Parameter(Value = "LiveScript")] LiveScript, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Llvm")] Llvm, Logos, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Logtalk")] Logtalk, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Lua")] Lua, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "M")] M, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Makefile")] Makefile, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Mako")] Mako, Markdown, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Matlab")] Matlab, Max, [Parameter(Value = "MiniD")] MiniD, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Mirah")] Mirah, Monkey, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Moocode")] Moocode, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Moonscript")] Moonscript, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Mupad")] Mupad, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Myghty")] Myghty, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Nemerle")] Nemerle, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Nginx")] Nginx, Nimrod, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Nsis")] Nsis, [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Nu")] Nu, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Num")] [Parameter(Value = "NumPY")] NumPY, [Parameter(Value = "ObjDump")] ObjDump, ObjectiveC, ObjectiveJ, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Caml")] [Parameter(Value = "OCaml")] OCaml, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Omgrofl")] Omgrofl, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Ooc")] Ooc, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Opa")] Opa, [Parameter(Value = "OpenCL")] OpenCL, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Abl")] [Parameter(Value = "OpenEdge ABL")] OpenEdgeAbl, Parrot, [Parameter(Value = "Parrot Assembly")] ParrotAssembly, [Parameter(Value = "Parrot Internal Representation")] ParrotInternalRepresentation, Pascal, Perl, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Php")] Php, Pike, [Parameter(Value = "PogoScript")] PogoScript, [Parameter(Value = "PowerShell")] PowerShell, Processing, Prolog, Puppet, [Parameter(Value = "Pure Data")] PureData, Python, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Traceback")] [Parameter(Value = "Python traceback")] PythonTraceback, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "R")] R, Racket, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Ragel")] [Parameter(Value = "Ragel in Ruby Host")] RagelInRubyHost, [Parameter(Value = "Raw token data")] RawTokenData, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Rebol")] Rebol, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Redcode")] Redcode, [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "ReStructured")] [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Re")] [Parameter(Value = "reStructuredText")] ReStructuredText, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Rhtml")] Rhtml, Rouge, Ruby, Rust, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Scala")] Scala, Scheme, Sage, Sass, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Scilab")] Scilab, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Scss")] Scss, Self, Shell, Slash, Smalltalk, Smarty, Squirrel, [Parameter(Value = "Standard ML")] StandardML, [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "SuperCollider")] [Parameter(Value = "SuperCollider")] SuperCollider, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Tcl")] Tcl, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Tcsh")] Tcsh, Tea, [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Te")] [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Te")] [Parameter(Value = "TeX")] TeX, Textile, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Toml")] Toml, Turing, Twig, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Txl")] Txl, [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "TypeScript")] [Parameter(Value = "TypeScript")] TypeScript, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Parallel")] [Parameter(Value = "Unified Parallel C")] UnifiedParallelC, [Obsolete("This item is incorrect and will be removed in a future update. Use UnifiedParallelC instead.")] [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Paralel")] [Parameter(Value = "Unified Paralel C")] UnifiedParalelC, Unknown, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Vala")] Vala, Verilog, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Vhdl")] Vhdl, [Parameter(Value = "VimL")] VimL, VisualBasic, Volt, Wisp, [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Xc")] [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Xc")] Xc, Xml, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Proc")] [Parameter(Value = "XProc")] XProc, [Parameter(Value = "XQuery")] XQuery, [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Xs")] [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Xs")] Xs, Xslt, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Xtend")] Xtend, [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Yaml")] Yaml #pragma warning restore 1591 } /// /// sorting repositories by any of below /// https://help.github.com/articles/searching-repositories#sorting /// public enum RepoSearchSort { /// /// search by number of stars /// [Parameter(Value = "stars")] Stars, /// /// search by number of forks /// [Parameter(Value = "forks")] Forks, /// /// search by last updated /// [Parameter(Value = "updated")] Updated } /// /// https://help.github.com/articles/searching-repositories#forks /// Specifying whether forked repositories should be included in results or not. /// public enum ForkQualifier { /// /// only search for forked repos /// [Parameter(Value = "Only")] OnlyForks, /// /// include forked repos into the search /// [Parameter(Value = "True")] IncludeForks } }