{"id":"gitconfig-parse","version":"1.0.0","description":"Parse git config text into ordered sections, subsections, and multivar entries.","supported_operations":["parse git config file text","read gitconfig sections and subsections","decode git config quotes escapes and continuations","keep ordered git config multivar entries","parse a git config without following includes","gitconfig syntax to structured sections","פענוח קובץ הגדרות גיט למקטעים ולציטוטים"],"unsupported_operations":["follow include or includeIf files","accept deprecated dotted subsection headers","canonicalize boolean integer or path values","preserve comments blank lines or key case"],"semantics":["Whitespace is only SP and HT. CRLF is one line break. A lone CR, NUL, DEL, or any other C0 control except HT, LF, and BS is invalid_input. A leading U+FEFF is not skipped.","Section and variable names are ASCII case-folded. A variable must start with a letter. A subsection is case-sensitive and is not folded. A dot in the unquoted section token is unsupported_input reason dotted_section_name.","Value escapes, inside or outside quotes, are only \\\" \\\\ \\n \\t and \\b. A backslash before LF continues the value. Quotes are delimiters, so adjacent quotes concatenate. # and ; comment only outside quotes. A bare name is implicit_bool true with a null value. Explicit values stay strings: yes, no, true, false, integers, paths, and the empty string are not canonicalized.","include and includeIf headers are unsupported_input reason include_not_supported. A truncated header is invalid_input even when the partial name looks like include.","Duplicate sections are not merged. Repeated variables stay in file order.","The entry line is the physical line of the terminating newline, which is the last line of a continued value. The section line is the line containing [. Output bytes are the UTF-8 size of the JSON result."],"limits":{"max_input_bytes":65536,"max_output_bytes":16384,"max_sections":128,"max_entries":512,"max_value_bytes":8192,"max_subsection_bytes":1024,"max_line_bytes":4096},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["text"],"properties":{"text":{"type":"string","maxLength":65536,"description":"Git config file text. UTF-8 byte length is enforced separately."}}},"output_schema":{"type":"object","additionalProperties":false,"required":["sections","section_count","entry_count"],"properties":{"sections":{"type":"array","maxItems":128,"items":{"type":"object","additionalProperties":false,"required":["name","subsection","line","entries"],"properties":{"name":{"type":"string","minLength":1,"maxLength":4096,"pattern":"^[a-z0-9-][a-z0-9-]*$"},"subsection":{"oneOf":[{"type":"string","maxLength":1024},{"type":"null"}]},"line":{"type":"integer","minimum":1},"entries":{"type":"array","maxItems":512,"items":{"type":"object","additionalProperties":false,"required":["key","value","implicit_bool","line"],"properties":{"key":{"type":"string","minLength":1,"maxLength":4096,"pattern":"^[a-z][a-z0-9-]*$"},"value":{"oneOf":[{"type":"string","maxLength":8192},{"type":"null"}]},"implicit_bool":{"type":"boolean"},"line":{"type":"integer","minimum":1}}}}}}},"section_count":{"type":"integer","minimum":0,"maximum":128},"entry_count":{"type":"integer","minimum":0,"maximum":512}}},"examples":[{"input":{"text":"[core]\n\tfilemode = false\n"},"output":{"sections":[{"name":"core","subsection":null,"line":1,"entries":[{"key":"filemode","value":"false","implicit_bool":false,"line":2}]}],"section_count":1,"entry_count":1}},{"input":{"text":"[branch \"devel\"]\n\tremote = origin\n"},"output":{"sections":[{"name":"branch","subsection":"devel","line":1,"entries":[{"key":"remote","value":"origin","implicit_bool":false,"line":2}]}],"section_count":1,"entry_count":1}},{"input":{"text":"[core]\n\tignore\n"},"output":{"sections":[{"name":"core","subsection":null,"line":1,"entries":[{"key":"ignore","value":null,"implicit_bool":true,"line":2}]}],"section_count":1,"entry_count":1}}],"execute_url":"/v1/tools/gitconfig-parse/versions/1.0.0/execute"}