[
  {
    "filename": "attr.h",
    "ignore": true,
    "jsClassName": "Attr",
    "cppClassName": "Attr",
    "cType": "git_attr",
    "functions": [
      {
        "cFunctionName": "git_attr_get",
        "args": [
          {
            "name": "value_out",
            "cType": "const char **",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Output of the value of the attribute. Use the GIT_ATTR_... macros to test for TRUE, FALSE, UNSPECIFIED, etc. or just use the string value for attributes set to a value. You should NOT modify or free this value."
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "The repository containing the path."
          },
          {
            "name": "flags",
            "cType": "uint32_t",
            "cppClassName": "Uint32",
            "jsClassName": "Uint32",
            "comment": "A combination of GIT_ATTR_CHECK... flags."
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The path to check for attributes. Relative paths are interpreted relative to the repo root. The file does not have to exist, but if it does not, then it will be treated as a plain file (not a directory)."
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The name of the attribute to look up."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "get",
        "cppFunctionName": "Get",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Look up the value of one git attribute for path.</p>\n"
      },
      {
        "cFunctionName": "git_attr_get_many",
        "args": [
          {
            "name": "values_out",
            "cType": "const char **",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "An array of num_attr entries that will have string pointers written into it for the values of the attributes. You should not modify or free the values that are written into this array (although of course, you should free the array itself if you allocated it)."
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "The repository containing the path."
          },
          {
            "name": "flags",
            "cType": "uint32_t",
            "cppClassName": "Uint32",
            "jsClassName": "Uint32",
            "comment": "A combination of GIT_ATTR_CHECK... flags."
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The path inside the repo to check attributes. This does not have to exist, but if it does not, then it will be treated as a plain file (i.e. not a directory)."
          },
          {
            "name": "num_attr",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "The number of attributes being looked up"
          },
          {
            "name": "names",
            "cType": "const char **",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "An array of num_attr strings containing attribute names."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "getMany",
        "cppFunctionName": "GetMany",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Look up a list of git attributes for path.</p>\n"
      },
      {
        "cFunctionName": "git_attr_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "The repository containing the path."
          },
          {
            "name": "flags",
            "cType": "uint32_t",
            "cppClassName": "Uint32",
            "jsClassName": "Uint32",
            "comment": "A combination of GIT_ATTR_CHECK... flags."
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Path inside the repo to check attributes. This does not have to exist, but if it does not, then it will be treated as a plain file (i.e. not a directory)."
          },
          {
            "name": "callback",
            "cType": "git_attr_foreach_cb",
            "cppClassName": "AttrForeachCb",
            "jsClassName": "AttrForeachCb",
            "comment": "Function to invoke on each attribute name and value. The value may be NULL is the attribute is explicitly set to UNSPECIFIED using the '!' sign. Callback will be invoked only once per attribute name, even if there are multiple rules for a given file. The highest priority rule will be used. Return a non-zero value from this to stop looping."
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "Passed on as extra parameter to callback function."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUSER on non-zero callback, or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Loop over all the git attributes for a path.</p>\n"
      },
      {
        "cFunctionName": "git_attr_cache_flush",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "cacheFlush",
        "cppFunctionName": "CacheFlush",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Flush the gitattributes cache.</p>\n"
      },
      {
        "cFunctionName": "git_attr_add_macro",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "values",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "addMacro",
        "cppFunctionName": "AddMacro",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Add a macro definition.</p>\n"
      }
    ]
  },
  {
    "filename": "blob.h",
    "dependencies": [
      "../include/repo.h",
      "../include/oid.h",
      "../include/wrapper.h",
      "node_buffer.h"
    ],
    "jsClassName": "Blob",
    "cppClassName": "GitBlob",
    "cType": "git_blob",
    "freeFunctionName": "git_blob_free",
    "functions": [
      {
        "cFunctionName": "git_blob_free",
        "args": [
          {
            "name": "blob",
            "cType": "git_blob *",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob",
            "comment": "the blob to close"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Close an open blob</p>\n"
      },
      {
        "cFunctionName": "git_blob_id",
        "args": [
          {
            "name": "blob",
            "cType": "const git_blob *",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob",
            "isSelf": true,
            "comment": "a previously loaded blob."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "oid",
        "cppFunctionName": "Oid",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup",
          "comment": "SHA1 hash for this blob.",
          "jsClassName": "Oid"
        },
        "description": "<p>Get the id of a blob.</p>\n"
      },
      {
        "cFunctionName": "git_blob_rawcontent",
        "args": [
          {
            "name": "blob",
            "cType": "const git_blob *",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob",
            "isSelf": true,
            "comment": "pointer to the blob"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "content",
        "cppFunctionName": "Content",
        "return": {
          "cType": "const void *",
          "cppClassName": "Wrapper",
          "comment": "the pointer; NULL if the blob has no contents"
        },
        "description": "<p>Get a read-only buffer with the raw content of a blob.</p>\n"
      },
      {
        "cFunctionName": "git_blob_rawsize",
        "args": [
          {
            "name": "blob",
            "cType": "const git_blob *",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob",
            "isSelf": true,
            "comment": "pointer to the blob"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "size",
        "cppFunctionName": "Size",
        "return": {
          "cType": "git_off_t",
          "cppClassName": "Number",
          "comment": "size on bytes",
          "jsClassName": "Number"
        },
        "description": "<p>Get the size in bytes of the contents of a blob</p>\n"
      },
      {
        "cFunctionName": "git_blob_is_binary",
        "args": [
          {
            "name": "blob",
            "cType": "git_blob *",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob",
            "isSelf": true,
            "comment": "The blob which content should be analyzed"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "isBinary",
        "cppFunctionName": "IsBinary",
        "return": {
          "cType": "int",
          "cppClassName": "Boolean",
          "comment": "1 if the content of the blob is detected as binary; 0 otherwise.",
          "jsClassName": "Boolean"
        },
        "description": "<p>Determine if the blob content is most certainly binary or not.</p>\n"
      }
    ]
  },
  {
    "filename": "branch.h",
    "jsClassName": "Branch",
    "cppClassName": "Branch",
    "cType": "git_branch",
    "freeFunctionName": "git_branch_free",
    "functions": [
      {
        "cFunctionName": "git_branch_create",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "Pointer where to store the underlying reference."
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "branch_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Name for the branch; this name is validated for consistency. It should also not conflict with an already existing branch name."
          },
          {
            "name": "target",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "comment": "Commit to which this branch should point. This object must belong to the given `repo`."
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Overwrite existing branch."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "create",
        "cppFunctionName": "Create",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0, GIT_EINVALIDSPEC or an error code. A proper reference is written in the refs/heads namespace pointing to the provided target commit.",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new branch pointing at a target commit</p>\n"
      },
      {
        "cFunctionName": "git_branch_delete",
        "args": [
          {
            "name": "branch",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "A valid reference representing a branch"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "delete",
        "cppFunctionName": "Delete",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, or an error code.",
          "jsClassName": "Number"
        },
        "description": "<p>Delete an existing branch reference.</p>\n"
      },
      {
        "cFunctionName": "git_branch_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "Repository where to find the branches."
          },
          {
            "name": "list_flags",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "Filtering flags for the branch listing. Valid values are GIT_BRANCH_LOCAL, GIT_BRANCH_REMOTE or a combination of the two."
          },
          {
            "name": "branch_cb",
            "cType": "git_branch_foreach_cb",
            "cppClassName": "BranchForeachCb",
            "jsClassName": "BranchForeachCb",
            "comment": "Callback to invoke per found branch."
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "Extra parameter to callback function."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUSER on non-zero callback, or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Loop over all the branches and issue a callback for each one.</p>\n"
      },
      {
        "cFunctionName": "git_branch_move",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          },
          {
            "name": "branch",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "Current underlying reference of the branch."
          },
          {
            "name": "new_branch_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Target name of the branch once the move is performed; this name is validated for consistency."
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Overwrite existing branch."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "move",
        "cppFunctionName": "Move",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EINVALIDSPEC or an error code.",
          "jsClassName": "Number"
        },
        "description": "<p>Move/rename an existing local branch reference.</p>\n"
      },
      {
        "cFunctionName": "git_branch_lookup",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "pointer to the looked-up branch reference"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "the repository to look up the branch"
          },
          {
            "name": "branch_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Name of the branch to be looked-up; this name is validated for consistency."
          },
          {
            "name": "branch_type",
            "cType": "git_branch_t",
            "cppClassName": "BranchT",
            "jsClassName": "BranchT",
            "comment": "Type of the considered branch. This should be valued with either GIT_BRANCH_LOCAL or GIT_BRANCH_REMOTE."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "lookup",
        "cppFunctionName": "Lookup",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success; GIT_ENOTFOUND when no matching branch exists, GIT_EINVALIDSPEC, otherwise an error code.",
          "jsClassName": "Number"
        },
        "description": "<p>Lookup a branch by its name in a repository.</p>\n"
      },
      {
        "cFunctionName": "git_branch_name",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "const char **",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "where the pointer of branch name is stored; this is valid as long as the ref is not freed."
          },
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "the reference ideally pointing to a branch"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "name",
        "cppFunctionName": "Name",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success; otherwise an error code (e.g., if the ref is no local or remote branch).",
          "jsClassName": "Number"
        },
        "description": "<p>Return the name of the given local or remote branch.</p>\n"
      },
      {
        "cFunctionName": "git_branch_upstream",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "Pointer where to store the retrieved reference."
          },
          {
            "name": "branch",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "Current underlying reference of the branch."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "upstream",
        "cppFunctionName": "Upstream",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success; GIT_ENOTFOUND when no remote tracking reference exists, otherwise an error code.",
          "jsClassName": "Number"
        },
        "description": "<p>Return the reference supporting the remote tracking branch,\ngiven a local branch reference.</p>\n"
      },
      {
        "cFunctionName": "git_branch_set_upstream",
        "args": [
          {
            "name": "branch",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "the branch to configure"
          },
          {
            "name": "upstream_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "remote-tracking or local branch to set as upstream. Pass NULL to unset."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "setUpstream",
        "cppFunctionName": "SetUpstream",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Set the upstream configuration for a given local branch</p>\n"
      },
      {
        "cFunctionName": "git_branch_upstream_name",
        "args": [
          {
            "name": "tracking_branch_name_out",
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The user-allocated buffer which will be filled with the name of the reference. Pass NULL if you just want to get the needed size of the name of the reference as the output value."
          },
          {
            "name": "buffer_size",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "Size of the `out` buffer in bytes."
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "the repository where the branches live"
          },
          {
            "name": "canonical_branch_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "name of the local branch."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "upstreamName",
        "cppFunctionName": "UpstreamName",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "number of characters in the reference name including the trailing NUL byte; GIT_ENOTFOUND when no remote tracking reference exists, otherwise an error code.",
          "jsClassName": "Number"
        },
        "description": "<p>Return the name of the reference supporting the remote tracking branch,\ngiven the name of a local branch reference.</p>\n"
      },
      {
        "cFunctionName": "git_branch_is_head",
        "args": [
          {
            "name": "branch",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "Current underlying reference of the branch."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "isHead",
        "cppFunctionName": "IsHead",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "1 if HEAD points at the branch, 0 if it isn't, error code otherwise.",
          "jsClassName": "Number"
        },
        "description": "<p>Determine if the current local branch is pointed at by HEAD.</p>\n"
      },
      {
        "cFunctionName": "git_branch_remote_name",
        "args": [
          {
            "name": "remote_name_out",
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The user-allocated buffer which will be filled with the name of the remote. Pass NULL if you just want to get the needed size of the name of the remote as the output value."
          },
          {
            "name": "buffer_size",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "Size of the `out` buffer in bytes."
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "The repository where the branch lives."
          },
          {
            "name": "canonical_branch_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "name of the remote tracking branch."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "remoteName",
        "cppFunctionName": "RemoteName",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "Number of characters in the reference name including the trailing NUL byte; GIT_ENOTFOUND when no remote matching remote was found, GIT_EAMBIGUOUS when the branch maps to several remotes, otherwise an error code.",
          "jsClassName": "Number"
        },
        "description": "<p>Return the name of remote that the remote tracking branch belongs to.</p>\n"
      }
    ]
  },
  {
    "filename": "checkout.h",
    "ignore": true,
    "jsClassName": "Checkout",
    "cppClassName": "Checkout",
    "cType": "git_checkout",
    "freeFunctionName": "git_checkout_free",
    "functions": [
      {
        "cFunctionName": "git_checkout_head",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "repository to check out (must be non-bare)"
          },
          {
            "name": "opts",
            "cType": "git_checkout_opts *",
            "cppClassName": "CheckoutOpts",
            "jsClassName": "CheckoutOpts",
            "comment": "specifies checkout options (may be NULL)"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "head",
        "cppFunctionName": "Head",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EORPHANEDHEAD when HEAD points to a non existing branch, GIT_ERROR otherwise (use giterr_last for information about the error)",
          "jsClassName": "Number"
        },
        "description": "<p>Updates files in the index and the working tree to match the content of\nthe commit pointed at by HEAD.</p>\n"
      },
      {
        "cFunctionName": "git_checkout_index",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "repository into which to check out (must be non-bare)"
          },
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "comment": "index to be checked out (or NULL to use repository index)"
          },
          {
            "name": "opts",
            "cType": "git_checkout_opts *",
            "cppClassName": "CheckoutOpts",
            "jsClassName": "CheckoutOpts",
            "comment": "specifies checkout options (may be NULL)"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "index",
        "cppFunctionName": "Index",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_ERROR otherwise (use giterr_last for information about the error)",
          "jsClassName": "Number"
        },
        "description": "<p>Updates files in the working tree to match the content of the index.</p>\n"
      },
      {
        "cFunctionName": "git_checkout_tree",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "repository to check out (must be non-bare)"
          },
          {
            "name": "treeish",
            "cType": "const git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "comment": "a commit, tag or tree which content will be used to update the working directory"
          },
          {
            "name": "opts",
            "cType": "git_checkout_opts *",
            "cppClassName": "CheckoutOpts",
            "jsClassName": "CheckoutOpts",
            "comment": "specifies checkout options (may be NULL)"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "tree",
        "cppFunctionName": "Tree",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_ERROR otherwise (use giterr_last for information about the error)",
          "jsClassName": "Number"
        },
        "description": "<p>Updates files in the index and working tree to match the content of the\ntree pointed at by the treeish.</p>\n"
      }
    ]
  },
  {
    "filename": "commit.h",
    "dependencies": [
      "../include/oid.h",
      "../include/repo.h",
      "../include/signature.h",
      "../include/tree.h"
    ],
    "jsClassName": "Commit",
    "cppClassName": "GitCommit",
    "cType": "git_commit",
    "freeFunctionName": "git_commit_free",
    "functions": [
      {
        "cFunctionName": "git_commit_lookup_prefix",
        "args": [
          {
            "name": "commit",
            "cType": "git_commit **",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isReturn": true,
            "comment": "pointer to the looked up commit"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "the repo to use when locating the commit."
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "identity of the commit to locate. If the object is an annotated tag it will be peeled back to the commit."
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the length of the short identifier"
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "lookupPrefix",
        "cppFunctionName": "LookupPrefix",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Lookup a commit object from a repository,\ngiven a prefix of its identifier (short id).</p>\n"
      },
      {
        "cFunctionName": "git_commit_free",
        "args": [
          {
            "name": "commit",
            "cType": "git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true,
            "comment": "the commit to close"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Close an open commit</p>\n"
      },
      {
        "cFunctionName": "git_commit_id",
        "args": [
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true,
            "comment": "a previously loaded commit."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "oid",
        "cppFunctionName": "Oid",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup",
          "comment": "object identity for the commit.",
          "jsClassName": "Oid"
        },
        "description": "<p>Get the id of a commit.</p>\n"
      },
      {
        "cFunctionName": "git_commit_message_encoding",
        "args": [
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true,
            "comment": "a previously loaded commit."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "messageEncoding",
        "cppFunctionName": "MessageEncoding",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "NULL, or the encoding",
          "jsClassName": "String"
        },
        "description": "<p>Get the encoding for the message of a commit,\nas a string representing a standard encoding name.</p>\n"
      },
      {
        "cFunctionName": "git_commit_message",
        "args": [
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true,
            "comment": "a previously loaded commit."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "message",
        "cppFunctionName": "Message",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "the message of a commit",
          "jsClassName": "String"
        },
        "description": "<p>Get the full message of a commit.</p>\n"
      },
      {
        "cFunctionName": "git_commit_time",
        "args": [
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true,
            "comment": "a previously loaded commit."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "time",
        "cppFunctionName": "Time",
        "return": {
          "cType": "git_time_t",
          "cppClassName": "Number",
          "comment": "the time of a commit",
          "jsClassName": "Number"
        },
        "description": "<p>Get the commit time (i.e. committer time) of a commit.</p>\n"
      },
      {
        "cFunctionName": "git_commit_time_offset",
        "args": [
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true,
            "comment": "a previously loaded commit."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "offset",
        "cppFunctionName": "Offset",
        "return": {
          "cType": "int",
          "cppClassName": "Integer",
          "comment": "positive or negative timezone offset, in minutes from UTC",
          "jsClassName": "Number"
        },
        "description": "<p>Get the commit timezone offset (i.e. committer&#39;s preferred timezone) of a commit.</p>\n"
      },
      {
        "cFunctionName": "git_commit_committer",
        "args": [
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true,
            "comment": "a previously loaded commit."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "committer",
        "cppFunctionName": "Committer",
        "return": {
          "cType": "const git_signature *",
          "cppClassName": "GitSignature",
          "copy": "git_signature_dup",
          "comment": "the committer of a commit",
          "jsClassName": "Signature"
        },
        "description": "<p>Get the committer of a commit.</p>\n"
      },
      {
        "cFunctionName": "git_commit_author",
        "args": [
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true,
            "comment": "a previously loaded commit."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "author",
        "cppFunctionName": "Author",
        "return": {
          "cType": "const git_signature *",
          "cppClassName": "GitSignature",
          "copy": "git_signature_dup",
          "comment": "the author of a commit",
          "jsClassName": "Signature"
        },
        "description": "<p>Get the author of a commit.</p>\n"
      },
      {
        "cFunctionName": "git_commit_tree",
        "args": [
          {
            "name": "tree_out",
            "cType": "git_tree **",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isReturn": true,
            "comment": "pointer where to store the tree object"
          },
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true,
            "comment": "a previously loaded commit."
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getTree",
        "cppFunctionName": "GetTree",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Get the tree pointed to by a commit.</p>\n"
      },
      {
        "cFunctionName": "git_commit_tree_id",
        "args": [
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true,
            "comment": "a previously loaded commit."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "treeId",
        "cppFunctionName": "TreeId",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup",
          "comment": "the id of tree pointed to by commit.",
          "jsClassName": "Oid"
        },
        "description": "<p>Get the id of the tree pointed to by a commit. This differs from\n<code>git_commit_tree</code> in that no attempts are made to fetch an object\nfrom the ODB.</p>\n"
      },
      {
        "cFunctionName": "git_commit_parentcount",
        "args": [
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true,
            "comment": "a previously loaded commit."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "parentCount",
        "cppFunctionName": "ParentCount",
        "return": {
          "cType": "unsigned int",
          "cppClassName": "Uint32",
          "comment": "integer of count of parents",
          "jsClassName": "Number"
        },
        "description": "<p>Get the number of parents of this commit</p>\n"
      },
      {
        "cFunctionName": "git_commit_parent",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_commit **",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "comment": "Pointer where to store the parent commit"
          },
          {
            "name": "commit",
            "cType": "git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true,
            "comment": "a previously loaded commit."
          },
          {
            "name": "n",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the position of the parent (from 0 to `parentcount`)"
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "parent",
        "cppFunctionName": "Parent",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Get the specified parent of the commit.</p>\n"
      },
      {
        "cFunctionName": "git_commit_parent_id",
        "args": [
          {
            "name": "commit",
            "cType": "git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true,
            "comment": "a previously loaded commit."
          },
          {
            "name": "n",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the position of the parent (from 0 to `parentcount`)"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "parentId",
        "cppFunctionName": "ParentId",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup",
          "comment": "the id of the parent, NULL on error.",
          "jsClassName": "Oid"
        },
        "description": "<p>Get the oid of a specified parent for a commit. This is different from\n<code>git_commit_parent</code>, which will attempt to load the parent commit from\nthe ODB.</p>\n"
      },
      {
        "cFunctionName": "git_commit_nth_gen_ancestor",
        "args": [
          {
            "name": "ancestor",
            "cType": "git_commit **",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isReturn": true,
            "comment": "Pointer where to store the ancestor commit"
          },
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true,
            "comment": "a previously loaded commit."
          },
          {
            "name": "n",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the requested generation"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "nthGenAncestor",
        "cppFunctionName": "NthGenAncestor",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success; GIT_ENOTFOUND if no matching ancestor exists or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Get the commit object that is the <n>th generation ancestor\nof the named commit object, following only the first parents.\nThe returned commit has to be freed by the caller.</p>\n"
      },
      {
        "cFunctionName": "git_commit_create_v",
        "args": [
          {
            "name": "id",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "update_ref",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "author",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature"
          },
          {
            "name": "committer",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature"
          },
          {
            "name": "message_encoding",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "message",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "tree",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree"
          },
          {
            "name": "parent_count",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "createV",
        "cppFunctionName": "CreateV",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Create new commit in the repository using a variable argument list.</p>\n"
      }
    ]
  },
  {
    "filename": "common.h",
    "ignore": true,
    "jsClassName": "Common",
    "cppClassName": "Common",
    "cType": "git_common",
    "functions": [
      {
        "cFunctionName": "git_libgit2_version",
        "args": [
          {
            "name": "major",
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Store the major version number"
          },
          {
            "name": "minor",
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Store the minor version number"
          },
          {
            "name": "rev",
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Store the revision (patch) number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitLibgit2Version",
        "cppFunctionName": "GitLibgit2Version",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Return the version of the libgit2 library\nbeing currently used.</p>\n"
      },
      {
        "cFunctionName": "git_libgit2_capabilities",
        "args": [],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitLibgit2Capabilities",
        "cppFunctionName": "GitLibgit2Capabilities",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "A combination of GIT_CAP_* values. - GIT_CAP_THREADS Libgit2 was compiled with thread support. Note that thread support is still to be seen as a 'work in progress' - basic object lookups are believed to be threadsafe, but other operations may not be. - GIT_CAP_HTTPS Libgit2 supports the https:// protocol. This requires the openssl library to be found when compiling libgit2.",
          "jsClassName": "Number"
        },
        "description": "<p>Query compile time options for libgit2.</p>\n"
      },
      {
        "cFunctionName": "git_libgit2_opts",
        "args": [
          {
            "name": "option",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Option key"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitLibgit2Opts",
        "cppFunctionName": "GitLibgit2Opts",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, <0 on failure",
          "jsClassName": "Number"
        },
        "description": "<p>Set or query a library global option</p>\n"
      }
    ]
  },
  {
    "filename": "config.h",
    "ignore": true,
    "jsClassName": "Config",
    "cppClassName": "Config",
    "cType": "git_config",
    "freeFunctionName": "git_config_free",
    "functions": [
      {
        "cFunctionName": "git_config_find_global",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Buffer to store the path in"
          },
          {
            "name": "length",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "size of the buffer in bytes"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "findGlobal",
        "cppFunctionName": "FindGlobal",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 if a global configuration file has been found. Its path will be stored in `buffer`.",
          "jsClassName": "Number"
        },
        "description": "<p>Locate the path to the global configuration file</p>\n"
      },
      {
        "cFunctionName": "git_config_find_xdg",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Buffer to store the path in"
          },
          {
            "name": "length",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "size of the buffer in bytes"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "findXdg",
        "cppFunctionName": "FindXdg",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 if a xdg compatible configuration file has been found. Its path will be stored in `buffer`.",
          "jsClassName": "Number"
        },
        "description": "<p>Locate the path to the global xdg compatible configuration file</p>\n"
      },
      {
        "cFunctionName": "git_config_find_system",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Buffer to store the path in"
          },
          {
            "name": "length",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "size of the buffer in bytes"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "findSystem",
        "cppFunctionName": "FindSystem",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 if a system configuration file has been found. Its path will be stored in `buffer`.",
          "jsClassName": "Number"
        },
        "description": "<p>Locate the path to the system configuration file</p>\n"
      },
      {
        "cFunctionName": "git_config_open_default",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_config **",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "comment": "Pointer to store the config instance"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "openDefault",
        "cppFunctionName": "OpenDefault",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Open the global, XDG and system configuration files</p>\n"
      },
      {
        "cFunctionName": "git_config_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_config **",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "comment": "pointer to the new configuration"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "new",
        "cppFunctionName": "New",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Allocate a new configuration object</p>\n"
      },
      {
        "cFunctionName": "git_config_add_backend",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true,
            "comment": "the configuration to add the file to"
          },
          {
            "name": "file",
            "cType": "git_config_backend *",
            "cppClassName": "ConfigBackend",
            "jsClassName": "ConfigBackend",
            "comment": "the configuration file (backend) to add"
          },
          {
            "name": "level",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the priority level of the backend"
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "if a config file already exists for the given priority level, replace it"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addBackend",
        "cppFunctionName": "AddBackend",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EEXISTS when adding more than one file for a given priority level (and force_replace set to 0), or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Add a generic config file instance to an existing config</p>\n"
      },
      {
        "cFunctionName": "git_config_add_file_ondisk",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true,
            "comment": "the configuration to add the file to"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "path to the configuration file to add"
          },
          {
            "name": "level",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the priority level of the backend"
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "replace config file at the given priority level"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addFileOndisk",
        "cppFunctionName": "AddFileOndisk",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EEXISTS when adding more than one file for a given priority level (and force_replace set to 0), GIT_ENOTFOUND when the file doesn't exist or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Add an on-disk config file instance to an existing config</p>\n"
      },
      {
        "cFunctionName": "git_config_open_ondisk",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_config **",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "comment": "The configuration instance to create"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Path to the on-disk file to open"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "openOndisk",
        "cppFunctionName": "OpenOndisk",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_ENOTFOUND when the file doesn't exist or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new config instance containing a single on-disk file</p>\n"
      },
      {
        "cFunctionName": "git_config_open_level",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_config **",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "comment": "The configuration instance to create"
          },
          {
            "name": "parent",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "comment": "Multi-level config to search for the given level"
          },
          {
            "name": "level",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "Configuration level to search for"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "openLevel",
        "cppFunctionName": "OpenLevel",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0, GIT_ENOTFOUND if the passed level cannot be found in the multi-level parent config, or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Build a single-level focused config object from a multi-level one.</p>\n"
      },
      {
        "cFunctionName": "git_config_refresh",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true,
            "comment": "The configuration to refresh"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "refresh",
        "cppFunctionName": "Refresh",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Reload changed config files</p>\n"
      },
      {
        "cFunctionName": "git_config_free",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "comment": "the configuration to free"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Free the configuration and its associated memory and files</p>\n"
      },
      {
        "cFunctionName": "git_config_get_entry",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "const git_config_entry **",
            "cppClassName": "ConfigEntry",
            "jsClassName": "ConfigEntry",
            "comment": "pointer to the variable git_config_entry"
          },
          {
            "name": "cfg",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "comment": "where to look for the variable"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the variable's name"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "getEntry",
        "cppFunctionName": "GetEntry",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Get the git_config_entry of a config variable.</p>\n"
      },
      {
        "cFunctionName": "git_config_get_int32",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "int32_t *",
            "cppClassName": "int32_t",
            "jsClassName": "int32_t",
            "comment": "pointer to the variable where the value should be stored"
          },
          {
            "name": "cfg",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "comment": "where to look for the variable"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the variable's name"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "getInt32",
        "cppFunctionName": "GetInt32",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Get the value of an integer config variable.</p>\n"
      },
      {
        "cFunctionName": "git_config_get_int64",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "int64_t *",
            "cppClassName": "int64_t",
            "jsClassName": "int64_t",
            "comment": "pointer to the variable where the value should be stored"
          },
          {
            "name": "cfg",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "comment": "where to look for the variable"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the variable's name"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "getInt64",
        "cppFunctionName": "GetInt64",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Get the value of a long integer config variable.</p>\n"
      },
      {
        "cFunctionName": "git_config_get_bool",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "pointer to the variable where the value should be stored"
          },
          {
            "name": "cfg",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "comment": "where to look for the variable"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the variable's name"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "getBool",
        "cppFunctionName": "GetBool",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Get the value of a boolean config variable.</p>\n"
      },
      {
        "cFunctionName": "git_config_get_string",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "const char **",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "pointer to the variable's value"
          },
          {
            "name": "cfg",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "comment": "where to look for the variable"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the variable's name"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "getString",
        "cppFunctionName": "GetString",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Get the value of a string config variable.</p>\n"
      },
      {
        "cFunctionName": "git_config_get_multivar",
        "args": [
          {
            "name": "cfg",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true,
            "comment": "where to look for the variable"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the variable's name"
          },
          {
            "name": "regexp",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "regular expression to filter which variables we're interested in. Use NULL to indicate all"
          },
          {
            "name": "callback",
            "cType": "git_config_foreach_cb",
            "cppClassName": "ConfigForeachCb",
            "jsClassName": "ConfigForeachCb",
            "comment": "the function to be called on each value of the variable"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "opaque pointer to pass to the callback"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getMultivar",
        "cppFunctionName": "GetMultivar",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Get each value of a multivar.</p>\n"
      },
      {
        "cFunctionName": "git_config_set_int32",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true,
            "comment": "where to look for the variable"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the variable's name"
          },
          {
            "name": "value",
            "cType": "int32_t",
            "cppClassName": "int32_t",
            "jsClassName": "int32_t",
            "comment": "Integer value for the variable"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setInt32",
        "cppFunctionName": "SetInt32",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Set the value of an integer config variable in the config file\nwith the highest level (usually the local one).</p>\n"
      },
      {
        "cFunctionName": "git_config_set_int64",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true,
            "comment": "where to look for the variable"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the variable's name"
          },
          {
            "name": "value",
            "cType": "int64_t",
            "cppClassName": "int64_t",
            "jsClassName": "int64_t",
            "comment": "Long integer value for the variable"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setInt64",
        "cppFunctionName": "SetInt64",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Set the value of a long integer config variable in the config file\nwith the highest level (usually the local one).</p>\n"
      },
      {
        "cFunctionName": "git_config_set_bool",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true,
            "comment": "where to look for the variable"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the variable's name"
          },
          {
            "name": "value",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "the value to store"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setBool",
        "cppFunctionName": "SetBool",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Set the value of a boolean config variable in the config file\nwith the highest level (usually the local one).</p>\n"
      },
      {
        "cFunctionName": "git_config_set_string",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true,
            "comment": "where to look for the variable"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the variable's name"
          },
          {
            "name": "value",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the string to store."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setString",
        "cppFunctionName": "SetString",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Set the value of a string config variable in the config file\nwith the highest level (usually the local one).</p>\n"
      },
      {
        "cFunctionName": "git_config_set_multivar",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true,
            "comment": "where to look for the variable"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the variable's name"
          },
          {
            "name": "regexp",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "a regular expression to indicate which values to replace"
          },
          {
            "name": "value",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the new value."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setMultivar",
        "cppFunctionName": "SetMultivar",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Set a multivar in the local config file.</p>\n"
      },
      {
        "cFunctionName": "git_config_delete_entry",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true,
            "comment": "the configuration"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the variable to delete"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "deleteEntry",
        "cppFunctionName": "DeleteEntry",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Delete a config variable from the config file\nwith the highest level (usually the local one).</p>\n"
      },
      {
        "cFunctionName": "git_config_foreach",
        "args": [
          {
            "name": "cfg",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true,
            "comment": "where to get the variables from"
          },
          {
            "name": "callback",
            "cType": "git_config_foreach_cb",
            "cppClassName": "ConfigForeachCb",
            "jsClassName": "ConfigForeachCb",
            "comment": "the function to call on each variable"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "the data to pass to the callback"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUSER on non-zero callback, or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Perform an operation on each config variable.</p>\n"
      },
      {
        "cFunctionName": "git_config_foreach_match",
        "args": [
          {
            "name": "cfg",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true,
            "comment": "where to get the variables from"
          },
          {
            "name": "regexp",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "regular expression to match against config names"
          },
          {
            "name": "callback",
            "cType": "git_config_foreach_cb",
            "cppClassName": "ConfigForeachCb",
            "jsClassName": "ConfigForeachCb",
            "comment": "the function to call on each variable"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "the data to pass to the callback"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "foreachMatch",
        "cppFunctionName": "ForeachMatch",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or the return value of the callback which didn't return 0",
          "jsClassName": "Number"
        },
        "description": "<p>Perform an operation on each config variable matching a regular expression.</p>\n"
      },
      {
        "cFunctionName": "git_config_get_mapped",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "place to store the result of the mapping"
          },
          {
            "name": "cfg",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "comment": "config file to get the variables from"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "name of the config variable to lookup"
          },
          {
            "name": "maps",
            "cType": "const git_cvar_map *",
            "cppClassName": "CvarMap",
            "jsClassName": "CvarMap",
            "comment": "array of `git_cvar_map` objects specifying the possible mappings"
          },
          {
            "name": "map_n",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "number of mapping objects in `maps`"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "getMapped",
        "cppFunctionName": "GetMapped",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, error code otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Query the value of a config variable and return it mapped to\nan integer constant.</p>\n"
      },
      {
        "cFunctionName": "git_config_lookup_map_value",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "place to store the result of the parsing"
          },
          {
            "name": "maps",
            "cType": "const git_cvar_map *",
            "cppClassName": "CvarMap",
            "jsClassName": "CvarMap",
            "comment": "array of `git_cvar_map` objects specifying the possible mappings"
          },
          {
            "name": "map_n",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "number of mapping objects in `maps`"
          },
          {
            "name": "value",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "value to parse"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "lookupMapValue",
        "cppFunctionName": "LookupMapValue",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Maps a string value to an integer constant</p>\n"
      },
      {
        "cFunctionName": "git_config_parse_bool",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "place to store the result of the parsing"
          },
          {
            "name": "value",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "value to parse"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "parseBool",
        "cppFunctionName": "ParseBool",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Parse a string value as a bool.</p>\n"
      },
      {
        "cFunctionName": "git_config_parse_int32",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "int32_t *",
            "cppClassName": "int32_t",
            "jsClassName": "int32_t",
            "comment": "place to store the result of the parsing"
          },
          {
            "name": "value",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "value to parse"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "parseInt32",
        "cppFunctionName": "ParseInt32",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Parse a string value as an int32.</p>\n"
      },
      {
        "cFunctionName": "git_config_parse_int64",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "int64_t *",
            "cppClassName": "int64_t",
            "jsClassName": "int64_t",
            "comment": "place to store the result of the parsing"
          },
          {
            "name": "value",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "value to parse"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "parseInt64",
        "cppFunctionName": "ParseInt64",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Parse a string value as an int64.</p>\n"
      }
    ]
  },
  {
    "filename": "cred_helpers.h",
    "ignore": true,
    "jsClassName": "CredHelpers",
    "cppClassName": "CredHelpers",
    "cType": "git_cred_helpers",
    "freeFunctionName": "git_cred_helpers_free",
    "functions": [
      {
        "cFunctionName": "git_cred_userpass",
        "args": [
          {
            "name": "cred",
            "cType": "git_cred **",
            "cppClassName": "Cred",
            "jsClassName": "Cred",
            "comment": "The newly created credential object."
          },
          {
            "name": "url",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The resource for which we are demanding a credential."
          },
          {
            "name": "user_from_url",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The username that was embedded in a \"user@host\" remote url, or NULL if not included."
          },
          {
            "name": "allowed_types",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "A bitmask stating which cred types are OK to return."
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "The payload provided when specifying this callback. (This is interpreted as a `git_cred_userpass_payload*`.)"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitCredUserpass",
        "cppFunctionName": "GitCredUserpass",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Stock callback usable as a git_cred_acquire_cb.  This calls\ngit_cred_userpass_plaintext_new unless the protocol has not specified\n<code>GIT_CREDTYPE_USERPASS_PLAINTEXT</code> as an allowed type.</p>\n"
      }
    ]
  },
  {
    "filename": "patch.h",
    "dependencies": [
      "../include/delta.h",
      "../include/diff_range.h"
    ],
    "jsClassName": "Patch",
    "cppClassName": "GitPatch",
    "cType": "git_diff_patch",
    "freeFunctionName": "git_diff_patch_free",
    "functions": [
      {
        "cFunctionName": "git_diff_patch_free",
        "args": [
          {
            "name": "patch",
            "cType": "git_diff_patch *",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "isFree": true,
        "jsFunctionName": "patchFree",
        "cppFunctionName": "PatchFree",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Free a git_diff_patch object.</p>\n"
      },
      {
        "cFunctionName": "git_diff_patch_delta",
        "args": [
          {
            "name": "patch",
            "cType": "git_diff_patch *",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "delta",
        "cppFunctionName": "Delta",
        "return": {
          "cType": "const git_diff_delta *",
          "cppClassName": "GitDelta",
          "copy": "git_diff_delta_dup",
          "jsClassName": "Delta"
        },
        "description": "<p>Get the delta associated with a patch</p>\n"
      },
      {
        "cFunctionName": "git_diff_patch_num_hunks",
        "args": [
          {
            "name": "patch",
            "cType": "git_diff_patch *",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "size",
        "cppFunctionName": "Size",
        "return": {
          "cType": "size_t",
          "cppClassName": "Uint32",
          "jsClassName": "Number"
        },
        "description": "<p>Get the number of hunks in a patch</p>\n"
      },
      {
        "cFunctionName": "git_diff_patch_line_stats",
        "args": [
          {
            "name": "total_context",
            "cType": "size_t *",
            "cppClassName": "Integer",
            "jsClassName": "Number",
            "isReturn": true,
            "comment": "Count of context lines in output, can be NULL."
          },
          {
            "name": "total_additions",
            "cType": "size_t *",
            "cppClassName": "Integer",
            "jsClassName": "Number",
            "isReturn": true,
            "comment": "Count of addition lines in output, can be NULL."
          },
          {
            "name": "total_deletions",
            "cType": "size_t *",
            "cppClassName": "Integer",
            "jsClassName": "Number",
            "isReturn": true,
            "comment": "Count of deletion lines in output, can be NULL."
          },
          {
            "name": "patch",
            "cType": "const git_diff_patch *",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isSelf": true,
            "comment": "The git_diff_patch object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "stats",
        "cppFunctionName": "Stats",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, <0 on error",
          "jsClassName": "Number"
        },
        "description": "<p>Get line counts of each type in a patch.</p>\n"
      },
      {
        "cFunctionName": "git_diff_patch_get_hunk",
        "args": [
          {
            "name": "range",
            "jsName": "range",
            "cType": "const git_diff_range **",
            "cppClassName": "GitDiffRange",
            "jsClassName": "DiffRange",
            "isReturn": true,
            "copy": "git_diff_range_dup",
            "comment": "Output pointer to git_diff_range of hunk"
          },
          {
            "name": "header",
            "jsName": "header",
            "cType": "const char **",
            "cppClassName": "String",
            "jsClassName": "String",
            "isReturn": true,
            "comment": "Output pointer to header string for hunk. Unlike the content pointer for each line, this will be NUL-terminated"
          },
          {
            "name": "header_len",
            "jsName": "headerLength",
            "cType": "size_t *",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "isReturn": true,
            "comment": "Output value of characters in header string"
          },
          {
            "name": "lines_in_hunk",
            "jsName": "lines",
            "cType": "size_t *",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "isReturn": true,
            "comment": "Output count of total lines in this hunk"
          },
          {
            "name": "patch",
            "cType": "git_diff_patch *",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isSelf": true,
            "comment": "Input pointer to patch object"
          },
          {
            "name": "hunk_idx",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "Input index of hunk to get information about"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "hunk",
        "cppFunctionName": "Hunk",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_ENOTFOUND if hunk_idx out of range, <0 on error",
          "jsClassName": "Number"
        },
        "description": "<p>Get the information about a hunk in a patch</p>\n"
      },
      {
        "cFunctionName": "git_diff_patch_num_lines_in_hunk",
        "args": [
          {
            "name": "patch",
            "cType": "git_diff_patch *",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isSelf": true,
            "comment": "The git_diff_patch object"
          },
          {
            "name": "hunk_idx",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "Index of the hunk"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "lines",
        "cppFunctionName": "Lines",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "comment": "Number of lines in hunk or -1 if invalid hunk index",
          "jsClassName": "Number"
        },
        "description": "<p>Get the number of lines in a hunk.</p>\n"
      },
      {
        "cFunctionName": "git_diff_patch_get_line_in_hunk",
        "args": [
          {
            "name": "line_origin",
            "jsName": "lineOrigin",
            "cType": "char *",
            "cppClassName": "Integer",
            "jsClassName": "Number",
            "isReturn": true,
            "comment": "A GIT_DIFF_LINE constant from above"
          },
          {
            "name": "content",
            "jsName": "content",
            "size": "content_len",
            "cType": "const char **",
            "cppClassName": "String",
            "jsClassName": "String",
            "isReturn": true,
            "comment": "Pointer to content of diff line, not NUL-terminated"
          },
          {
            "name": "content_len",
            "jsName": "length",
            "cType": "size_t *",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "isReturn": true,
            "comment": "Number of characters in content"
          },
          {
            "name": "old_lineno",
            "jsName": "oldLineNumber",
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "isReturn": true,
            "comment": "Line number in old file or -1 if line is added"
          },
          {
            "name": "new_lineno",
            "jsName": "newLineNumber",
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "isReturn": true,
            "comment": "Line number in new file or -1 if line is deleted"
          },
          {
            "name": "patch",
            "cType": "git_diff_patch *",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isSelf": true,
            "comment": "The patch to look in"
          },
          {
            "name": "hunk_idx",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "The index of the hunk"
          },
          {
            "name": "line_of_hunk",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "The index of the line in the hunk"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "line",
        "cppFunctionName": "Line",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, <0 on failure",
          "jsClassName": "Number"
        },
        "description": "<p>Get data about a line in a hunk of a patch.</p>\n"
      },
      {
        "cFunctionName": "git_diff_patch_print",
        "args": [
          {
            "name": "patch",
            "cType": "git_diff_patch *",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isSelf": true,
            "comment": "A git_diff_patch representing changes to one file"
          },
          {
            "name": "print_cb",
            "cType": "git_diff_data_cb",
            "cppClassName": "DiffDataCb",
            "jsClassName": "DiffDataCb",
            "comment": "Callback function to output lines of the patch. Will be called for file headers, hunk headers, and diff lines."
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "Reference pointer that will be passed to your callbacks."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "patchPrint",
        "cppFunctionName": "PatchPrint",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUSER on non-zero callback, or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Serialize the patch to text via callback.</p>\n"
      },
      {
        "cFunctionName": "git_diff_patch_to_str",
        "args": [
          {
            "name": "string",
            "cType": "char **",
            "cppClassName": "String",
            "jsClassName": "String",
            "isReturn": true,
            "comment": "Allocated string; caller must free.",
            "freeFunctionName": "free"
          },
          {
            "name": "patch",
            "cType": "git_diff_patch *",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isSelf": true,
            "comment": "A git_diff_patch representing changes to one file"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "toString",
        "cppFunctionName": "ToString",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, <0 on failure.",
          "jsClassName": "Number"
        },
        "description": "<p>Get the content of a patch as a single diff text.</p>\n"
      }
    ]
  },
  {
    "filename": "clone_options.h",
    "dependencies": [],
    "jsClassName": "CloneOptions",
    "cppClassName": "GitCloneOptions",
    "cType": "git_clone_options",
    "freeFunctionName": "free",
    "fields": []
  },
  {
    "filename": "diff_options.h",
    "dependencies": [],
    "jsClassName": "DiffOptions",
    "cppClassName": "GitDiffOptions",
    "cType": "git_diff_options",
    "freeFunctionName": "free",
    "fields": []
  },
  {
    "filename": "diff_find_options.h",
    "dependencies": [],
    "jsClassName": "DiffFindOptions",
    "cppClassName": "GitDiffFindOptions",
    "cType": "git_diff_find_options",
    "freeFunctionName": "free",
    "fields": []
  },
  {
    "filename": "diff_range.h",
    "dependencies": [],
    "jsClassName": "DiffRange",
    "cppClassName": "GitDiffRange",
    "cType": "git_diff_range",
    "freeFunctionName": "free",
    "fields": [
      {
        "jsFunctionName": "oldStart",
        "cppFunctionName": "OldStart",
        "name": "old_start",
        "cType": "int",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "oldLines",
        "cppFunctionName": "OldLines",
        "name": "old_lines",
        "cType": "int",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "newStart",
        "cppFunctionName": "NewStart",
        "name": "new_start",
        "cType": "int",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "newLines",
        "cppFunctionName": "NewLines",
        "name": "new_lines",
        "cType": "int",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      }
    ]
  },
  {
    "filename": "diff_file.h",
    "dependencies": [
      "../include/oid.h"
    ],
    "jsClassName": "DiffFile",
    "cppClassName": "GitDiffFile",
    "cType": "git_diff_file",
    "freeFunctionName": "free",
    "fields": [
      {
        "jsFunctionName": "oid",
        "cppFunctionName": "Oid",
        "name": "oid",
        "cType": "git_oid",
        "cppClassName": "GitOid",
        "jsClassName": "Oid",
        "copy": "git_oid_dup"
      },
      {
        "jsFunctionName": "path",
        "cppFunctionName": "Path",
        "name": "path",
        "cType": "const char *",
        "cppClassName": "String",
        "jsClassName": "String"
      },
      {
        "jsFunctionName": "size",
        "cppFunctionName": "Size",
        "name": "size",
        "cType": "git_off_t",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "flags",
        "cppFunctionName": "Flags",
        "name": "flags",
        "cType": "uint32_t",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "mode",
        "cppFunctionName": "Mode",
        "name": "mode",
        "cType": "uint16_t",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      }
    ]
  },
  {
    "filename": "delta.h",
    "dependencies": [
      "../include/diff_file.h"
    ],
    "jsClassName": "Delta",
    "cppClassName": "GitDelta",
    "cType": "git_diff_delta",
    "freeFunctionName": "free",
    "fields": [
      {
        "jsFunctionName": "oldFile",
        "cppFunctionName": "OldFile",
        "name": "old_file",
        "cType": "git_diff_file",
        "cppClassName": "GitDiffFile",
        "jsClassName": "DiffFile",
        "copy": "git_diff_file_dup"
      },
      {
        "jsFunctionName": "newFile",
        "cppFunctionName": "NewFile",
        "name": "new_file",
        "cType": "git_diff_file",
        "cppClassName": "GitDiffFile",
        "jsClassName": "DiffFile",
        "copy": "git_diff_file_dup"
      },
      {
        "jsFunctionName": "status",
        "cppFunctionName": "Status",
        "name": "status",
        "cType": "git_delta_t",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "similarity",
        "cppFunctionName": "Similarity",
        "name": "similarity",
        "cType": "uint32_t",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "flags",
        "cppFunctionName": "Flags",
        "name": "flags",
        "cType": "uint32_t",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      }
    ]
  },
  {
    "filename": "diff_list.h",
    "dependencies": [
      "../include/diff_options.h",
      "../include/diff_find_options.h",
      "../include/repo.h",
      "../include/tree.h",
      "../include/index.h",
      "../include/patch.h",
      "../include/delta.h"
    ],
    "jsClassName": "DiffList",
    "cppClassName": "GitDiffList",
    "cType": "git_diff_list",
    "freeFunctionName": "git_diff_list_free",
    "functions": [
      {
        "cFunctionName": "git_diff_list_free",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "comment": "The previously created diff list; cannot be used after free."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "listFree",
        "cppFunctionName": "ListFree",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Deallocate a diff list.</p>\n"
      },
      {
        "cFunctionName": "git_diff_merge",
        "args": [
          {
            "name": "onto",
            "cType": "git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "isSelf": true,
            "comment": "Diff to merge into."
          },
          {
            "name": "from",
            "cType": "const git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "comment": "Diff to merge."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "merge",
        "cppFunctionName": "Merge",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Merge one diff list into another.</p>\n"
      },
      {
        "cFunctionName": "git_diff_find_similar",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "isSelf": true,
            "comment": "Diff list to run detection algorithms on"
          },
          {
            "name": "options",
            "cType": "git_diff_find_options *",
            "cppClassName": "GitDiffFindOptions",
            "jsClassName": "DiffFindOptions",
            "comment": "Control how detection should be run, NULL for defaults"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "findSimilar",
        "cppFunctionName": "FindSimilar",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, -1 on failure",
          "jsClassName": "Number"
        },
        "description": "<p>Transform a diff list marking file renames, copies, etc.</p>\n"
      },
      {
        "cFunctionName": "git_diff_foreach",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "comment": "A git_diff_list generated by one of the above functions."
          },
          {
            "name": "file_cb",
            "cType": "git_diff_file_cb",
            "cppClassName": "DiffFileCb",
            "jsClassName": "DiffFileCb",
            "comment": "Callback function to make per file in the diff."
          },
          {
            "name": "hunk_cb",
            "cType": "git_diff_hunk_cb",
            "cppClassName": "DiffHunkCb",
            "jsClassName": "DiffHunkCb",
            "comment": "Optional callback to make per hunk of text diff. This callback is called to describe a range of lines in the diff. It will not be issued for binary files."
          },
          {
            "name": "line_cb",
            "cType": "git_diff_data_cb",
            "cppClassName": "DiffDataCb",
            "jsClassName": "DiffDataCb",
            "comment": "Optional callback to make per line of diff text. This same callback will be made for context lines, added, and removed lines, and even for a deleted trailing newline."
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "Reference pointer that will be passed to your callbacks."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUSER on non-zero callback, or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Loop over all deltas in a diff list issuing callbacks.</p>\n"
      },
      {
        "cFunctionName": "git_diff_print_compact",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "comment": "A git_diff_list generated by one of the above functions."
          },
          {
            "name": "print_cb",
            "cType": "git_diff_data_cb",
            "cppClassName": "DiffDataCb",
            "jsClassName": "DiffDataCb",
            "comment": "Callback to make per line of diff text."
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "Reference pointer that will be passed to your callback."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "printCompact",
        "cppFunctionName": "PrintCompact",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUSER on non-zero callback, or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Iterate over a diff generating text output like &quot;git diff --name-status&quot;.</p>\n"
      },
      {
        "cFunctionName": "git_diff_status_char",
        "args": [
          {
            "name": "status",
            "cType": "git_delta_t",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "The git_delta_t value to look up"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "statusChar",
        "cppFunctionName": "StatusChar",
        "return": {
          "cType": "char",
          "cppClassName": "String",
          "comment": "The single character label for that code",
          "jsClassName": "String"
        },
        "description": "<p>Look up the single character abbreviation for a delta status code.</p>\n"
      },
      {
        "cFunctionName": "git_diff_print_patch",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "isSelf": true,
            "comment": "A git_diff_list generated by one of the above functions."
          },
          {
            "name": "print_cb",
            "cType": "git_diff_data_cb",
            "cppClassName": "DiffDataCb",
            "jsClassName": "DiffDataCb",
            "comment": "Callback function to output lines of the diff. This same function will be called for file headers, hunk headers, and diff lines. Fortunately, you can probably use various GIT_DIFF_LINE constants to determine what text you are given."
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "Reference pointer that will be passed to your callbacks."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "printPatch",
        "cppFunctionName": "PrintPatch",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUSER on non-zero callback, or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Iterate over a diff generating text output like &quot;git diff&quot;.</p>\n"
      },
      {
        "cFunctionName": "git_diff_num_deltas",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "isSelf": true,
            "comment": "A git_diff_list generated by one of the above functions"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "size",
        "cppFunctionName": "Size",
        "return": {
          "cType": "size_t",
          "cppClassName": "Uint32",
          "comment": "Count of number of deltas in the list",
          "jsClassName": "Number"
        },
        "description": "<p>Query how many diff records are there in a diff list.</p>\n"
      },
      {
        "cFunctionName": "git_diff_num_deltas_of_type",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "comment": "A git_diff_list generated by one of the above functions"
          },
          {
            "name": "type",
            "cType": "git_delta_t",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "A git_delta_t value to filter the count"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "numDeltasOfType",
        "cppFunctionName": "NumDeltasOfType",
        "return": {
          "cType": "size_t",
          "cppClassName": "Uint32",
          "comment": "Count of number of deltas matching delta_t type",
          "jsClassName": "Number"
        },
        "description": "<p>Query how many diff deltas are there in a diff list filtered by type.</p>\n"
      },
      {
        "cFunctionName": "git_diff_get_patch",
        "args": [
          {
            "name": "patch_out",
            "jsName": "patch",
            "cType": "git_diff_patch **",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isReturn": true,
            "comment": "Output parameter for the delta patch object"
          },
          {
            "name": "delta_out",
            "jsName": "delta",
            "cType": "const git_diff_delta **",
            "copy": "git_diff_delta_dup",
            "cppClassName": "GitDelta",
            "jsClassName": "Delta",
            "isReturn": true,
            "comment": "Output parameter for the delta object"
          },
          {
            "name": "diff",
            "cType": "git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "isSelf": true,
            "comment": "Diff list object"
          },
          {
            "name": "idx",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "Index into diff list"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "patch",
        "cppFunctionName": "Patch",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, other value < 0 on error",
          "jsClassName": "Number"
        },
        "description": "<p>Return the diff delta and patch for an entry in the diff list.</p>\n"
      },
      {
        "cFunctionName": "git_diff_blobs",
        "args": [
          {
            "name": "old_blob",
            "cType": "const git_blob *",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob",
            "comment": "Blob for old side of diff, or NULL for empty blob"
          },
          {
            "name": "new_blob",
            "cType": "const git_blob *",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob"
          },
          {
            "name": "options",
            "cType": "const git_diff_options *",
            "cppClassName": "GitDiffOptions",
            "jsClassName": "DiffOptions"
          },
          {
            "name": "file_cb",
            "cType": "git_diff_file_cb",
            "cppClassName": "DiffFileCb",
            "jsClassName": "DiffFileCb"
          },
          {
            "name": "hunk_cb",
            "cType": "git_diff_hunk_cb",
            "cppClassName": "DiffHunkCb",
            "jsClassName": "DiffHunkCb"
          },
          {
            "name": "line_cb",
            "cType": "git_diff_data_cb",
            "cppClassName": "DiffDataCb",
            "jsClassName": "DiffDataCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "blobs",
        "cppFunctionName": "Blobs",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUSER on non-zero callback return, or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Directly run a diff on two blobs.</p>\n"
      },
      {
        "cFunctionName": "git_diff_blob_to_buffer",
        "args": [
          {
            "name": "old_blob",
            "cType": "const git_blob *",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob",
            "comment": "Blob for old side of diff, or NULL for empty blob"
          },
          {
            "name": "buffer",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "buffer_len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "options",
            "cType": "const git_diff_options *",
            "cppClassName": "GitDiffOptions",
            "jsClassName": "DiffOptions"
          },
          {
            "name": "file_cb",
            "cType": "git_diff_file_cb",
            "cppClassName": "DiffFileCb",
            "jsClassName": "DiffFileCb"
          },
          {
            "name": "hunk_cb",
            "cType": "git_diff_hunk_cb",
            "cppClassName": "DiffHunkCb",
            "jsClassName": "DiffHunkCb"
          },
          {
            "name": "data_cb",
            "cType": "git_diff_data_cb",
            "cppClassName": "DiffDataCb",
            "jsClassName": "DiffDataCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "blobToBuffer",
        "cppFunctionName": "BlobToBuffer",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUSER on non-zero callback return, or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Directly run a diff between a blob and a buffer.</p>\n"
      }
    ]
  },
  {
    "filename": "error.h",
    "ignore": true,
    "jsClassName": "Error",
    "cppClassName": "GitError",
    "cType": "git_error",
    "freeFunctionName": "git_errors_free",
    "functions": [
      {
        "cFunctionName": "giterr_last",
        "args": [],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "lastError",
        "cppFunctionName": "LastError",
        "return": {
          "cType": "const git_error *",
          "cppClassName": "Error",
          "copy": "fixme",
          "comment": "A git_error object."
        },
        "description": "<p>Return the last <code>git_error</code> object that was generated for the\ncurrent thread or NULL if no error has occurred.</p>\n"
      },
      {
        "cFunctionName": "giterr_clear",
        "args": [],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "clear",
        "cppFunctionName": "Clear",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Clear the last library error that occurred for this thread.</p>\n"
      },
      {
        "cFunctionName": "giterr_set_str",
        "args": [
          {
            "name": "error_class",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "One of the `git_error_t` enum above describing the general subsystem that is responsible for the error."
          },
          {
            "name": "string",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The formatted error message to keep"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "setString",
        "cppFunctionName": "SetString",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Set the error message string for this thread.</p>\n"
      },
      {
        "cFunctionName": "giterr_set_oom",
        "args": [],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "setOOM",
        "cppFunctionName": "SetOOM",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Set the error message to a special value for memory allocation failure.</p>\n"
      }
    ]
  },
  {
    "filename": "graph.h",
    "ignore": true,
    "jsClassName": "Graph",
    "cppClassName": "Graph",
    "cType": "git_graph",
    "freeFunctionName": "git_graph_free",
    "functions": [
      {
        "cFunctionName": "git_graph_ahead_behind",
        "args": [
          {
            "name": "ahead",
            "cType": "size_t *",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "number of unique from commits in `upstream`"
          },
          {
            "name": "behind",
            "cType": "size_t *",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "number of unique from commits in `local`"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "the repository where the commits exist"
          },
          {
            "name": "local",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "the commit for local"
          },
          {
            "name": "upstream",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "the commit for upstream"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "aheadBehind",
        "cppFunctionName": "AheadBehind",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Count the number of unique commits between two commit objects</p>\n"
      }
    ]
  },
  {
    "filename": "ignore.h",
    "ignore": true,
    "jsClassName": "Ignore",
    "cppClassName": "Ignore",
    "cType": "git_ignore",
    "freeFunctionName": "git_ignore_free",
    "functions": [
      {
        "cFunctionName": "git_ignore_add_rule",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "The repository to add ignore rules to."
          },
          {
            "name": "rules",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Text of rules, a la the contents of a .gitignore file. It is okay to have multiple rules in the text; if so, each rule should be terminated with a newline."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "addRule",
        "cppFunctionName": "AddRule",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success",
          "jsClassName": "Number"
        },
        "description": "<p>Add ignore rules for a repository.</p>\n"
      },
      {
        "cFunctionName": "git_ignore_clear_internal_rules",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "The repository to remove ignore rules from."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "clearInternalRules",
        "cppFunctionName": "ClearInternalRules",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success",
          "jsClassName": "Number"
        },
        "description": "<p>Clear ignore rules that were explicitly added.</p>\n"
      },
      {
        "cFunctionName": "git_ignore_path_is_ignored",
        "args": [
          {
            "name": "ignored",
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "boolean returning 0 if the file is not ignored, 1 if it is"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "a repository object"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the file to check ignores for, relative to the repo's workdir."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "pathIsIgnored",
        "cppFunctionName": "PathIsIgnored",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 if ignore rules could be processed for the file (regardless of whether it exists or not), or an error < 0 if they could not.",
          "jsClassName": "Number"
        },
        "description": "<p>Test if the ignore rules apply to a given path.</p>\n"
      }
    ]
  },
  {
    "filename": "index_time.h",
    "jsClassName": "IndexTime",
    "cppClassName": "GitIndexTime",
    "cType": "git_index_time",
    "freeFunctionName": "free",
    "fields": [
      {
        "jsFunctionName": "seconds",
        "cppFunctionName": "Seconds",
        "name": "seconds",
        "cType": "git_time_t",
        "cppClassName": "Uint32",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "nanoseconds",
        "cppFunctionName": "Nanoseconds",
        "name": "nanoseconds",
        "cType": "unsigned int",
        "cppClassName": "Uint32",
        "jsClassName": "Number"
      }
    ]
  },
  {
    "filename": "index_entry.h",
    "dependencies": [
      "../include/index_time.h",
      "../include/oid.h"
    ],
    "jsClassName": "IndexEntry",
    "cppClassName": "GitIndexEntry",
    "cType": "git_index_entry",
    "freeFunctionName": "free",
    "fields": [
      {
        "jsFunctionName": "ctime",
        "cppFunctionName": "Ctime",
        "name": "ctime",
        "cType": "git_index_time",
        "cppClassName": "GitIndexTime",
        "jsClassName": "IndexTime",
        "copy": "git_index_time_dup"
      },
      {
        "jsFunctionName": "mtime",
        "cppFunctionName": "Mtime",
        "name": "mtime",
        "cType": "git_index_time",
        "cppClassName": "GitIndexTime",
        "jsClassName": "IndexTime",
        "copy": "git_index_time_dup"
      },
      {
        "jsFunctionName": "dev",
        "cppFunctionName": "Dev",
        "name": "dev",
        "cType": "unsigned int",
        "cppClassName": "Uint32",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "ino",
        "cppFunctionName": "Ino",
        "name": "ino",
        "cType": "unsigned int",
        "cppClassName": "Uint32",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "mode",
        "cppFunctionName": "Mode",
        "name": "mode",
        "cType": "uint16_t",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "uid",
        "cppFunctionName": "Uid",
        "name": "uid",
        "cType": "unsigned int",
        "cppClassName": "Uint32",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "gid",
        "cppFunctionName": "gid",
        "name": "gid",
        "cType": "unsigned int",
        "cppClassName": "Uint32",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "file_size",
        "cppFunctionName": "FileSize",
        "name": "file_size",
        "cType": "unsigned int",
        "cppClassName": "Uint32",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "oid",
        "cppFunctionName": "Oid",
        "name": "oid",
        "cType": "git_oid",
        "cppClassName": "GitOid",
        "jsClassName": "Oid",
        "copy": "git_oid_dup"
      },
      {
        "jsFunctionName": "flags",
        "cppFunctionName": "Flags",
        "name": "flags",
        "cType": "uint16_t",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "flags_extended",
        "cppFunctionName": "FlagsExtended",
        "name": "flags_extended",
        "cType": "uint16_t",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "path",
        "cppFunctionName": "Path",
        "name": "path",
        "cType": "char *",
        "cppClassName": "String",
        "jsClassName": "String"
      }
    ]
  },
  {
    "filename": "index.h",
    "dependencies": [
      "../include/oid.h",
      "../include/repo.h",
      "../include/tree.h",
      "../include/diff_list.h",
      "../include/diff_options.h",
      "../include/index_entry.h"
    ],
    "jsClassName": "Index",
    "cppClassName": "GitIndex",
    "cType": "git_index",
    "freeFunctionName": "git_index_free",
    "functions": [
      {
        "cFunctionName": "git_index_open",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_index **",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "comment": "the pointer for the new index"
          },
          {
            "name": "index_path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the path to the index file in disk"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "open",
        "cppFunctionName": "Open",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new bare Git index object as a memory representation\nof the Git index file in &#39;index_path&#39;, without a repository\nto back it.</p>\n"
      },
      {
        "cFunctionName": "git_index_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_index **",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "comment": "the pointer for the new index"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "new",
        "cppFunctionName": "New",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create an in-memory index object.</p>\n"
      },
      {
        "cFunctionName": "git_index_free",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "comment": "an existing index object"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Free an existing index object.</p>\n"
      },
      {
        "cFunctionName": "git_index_owner",
        "args": [
          {
            "name": "index",
            "cType": "const git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "The index"
          }
        ],
        "ignore": "Never make public for memory allocation reasons",
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "owner",
        "cppFunctionName": "Owner",
        "return": {
          "cType": "git_repository *",
          "cppClassName": "GitRepo",
          "comment": "A pointer to the repository",
          "jsClassName": "Repository"
        },
        "description": "<p>Get the repository this index relates to</p>\n"
      },
      {
        "cFunctionName": "git_index_caps",
        "args": [
          {
            "name": "index",
            "cType": "const git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "An existing index object"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "caps",
        "cppFunctionName": "Caps",
        "return": {
          "cType": "unsigned int",
          "cppClassName": "Uint32",
          "comment": "A combination of GIT_INDEXCAP values",
          "jsClassName": "Number"
        },
        "description": "<p>Read index capabilities flags.</p>\n"
      },
      {
        "cFunctionName": "git_index_set_caps",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "An existing index object"
          },
          {
            "name": "caps",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "A combination of GIT_INDEXCAP values"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setCaps",
        "cppFunctionName": "SetCaps",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, -1 on failure",
          "jsClassName": "Number"
        },
        "description": "<p>Set index capabilities flags.</p>\n"
      },
      {
        "cFunctionName": "git_index_read",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "read",
        "cppFunctionName": "Read",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Update the contents of an existing index object in memory\nby reading from the hard disk.</p>\n"
      },
      {
        "cFunctionName": "git_index_write",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "write",
        "cppFunctionName": "Write",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Write an existing index object from memory back to disk\nusing an atomic file lock.</p>\n"
      },
      {
        "cFunctionName": "git_index_read_tree",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          },
          {
            "name": "tree",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "comment": "tree to read"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "readTree",
        "cppFunctionName": "ReadTree",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Read a tree into the index file with stats</p>\n"
      },
      {
        "cFunctionName": "git_index_write_tree",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "comment": "Pointer where to store the OID of the written tree"
          },
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "Index to write"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "writeTree",
        "cppFunctionName": "WriteTree",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUNMERGED when the index is not clean or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Write the index as a tree</p>\n"
      },
      {
        "cFunctionName": "git_index_write_tree_to",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "comment": "Pointer where to store OID of the the written tree"
          },
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "comment": "Index to write"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "Repository where to write the tree"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "writeTreeTo",
        "cppFunctionName": "WriteTreeTo",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUNMERGED when the index is not clean or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Write the index as a tree to the given repository</p>\n"
      },
      {
        "cFunctionName": "git_index_entrycount",
        "args": [
          {
            "name": "index",
            "cType": "const git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "size",
        "cppFunctionName": "Size",
        "return": {
          "cType": "size_t",
          "cppClassName": "Uint32",
          "comment": "integer of count of current entries",
          "jsClassName": "Number"
        },
        "description": "<p>Get the count of entries currently in the index</p>\n"
      },
      {
        "cFunctionName": "git_index_clear",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "clear",
        "cppFunctionName": "Clear",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Clear the contents (all the entries) of an index object.\nThis clears the index object in memory; changes must be manually\nwritten to disk for them to take effect.</p>\n"
      },
      {
        "cFunctionName": "git_index_get_byindex",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          },
          {
            "name": "n",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the position of the entry"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "entry",
        "cppFunctionName": "Entry",
        "return": {
          "cType": "const git_index_entry *",
          "cppClassName": "GitIndexEntry",
          "copy": "git_index_entry_dup",
          "comment": "a pointer to the entry; NULL if out of bounds",
          "jsClassName": "IndexEntry"
        },
        "description": "<p>Get a pointer to one of the entries in the index</p>\n"
      },
      {
        "cFunctionName": "git_index_get_bypath",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "path to search"
          },
          {
            "name": "stage",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "stage to search"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getEntry",
        "cppFunctionName": "GetEntry",
        "return": {
          "cType": "const git_index_entry *",
          "cppClassName": "GitIndexEntry",
          "copy": "git_index_entry_dup",
          "comment": "a pointer to the entry; NULL if it was not found",
          "jsClassName": "IndexEntry"
        },
        "description": "<p>Get a pointer to one of the entries in the index</p>\n"
      },
      {
        "cFunctionName": "git_index_remove",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "path to search"
          },
          {
            "name": "stage",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "stage to search"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "remove",
        "cppFunctionName": "Remove",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Remove an entry from the index</p>\n"
      },
      {
        "cFunctionName": "git_index_remove_directory",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          },
          {
            "name": "dir",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "container directory path"
          },
          {
            "name": "stage",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "stage to search"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "removeDirectory",
        "cppFunctionName": "RemoveDirectory",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Remove all entries from the index under a given directory</p>\n"
      },
      {
        "cFunctionName": "git_index_add",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          },
          {
            "name": "source_entry",
            "cType": "const git_index_entry *",
            "cppClassName": "GitIndexEntry",
            "jsClassName": "IndexEntry",
            "comment": "new entry object"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "add",
        "cppFunctionName": "Add",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Add or update an index entry from an in-memory struct</p>\n"
      },
      {
        "cFunctionName": "git_index_entry_stage",
        "args": [
          {
            "name": "entry",
            "cType": "const git_index_entry *",
            "cppClassName": "GitIndexEntry",
            "jsClassName": "IndexEntry",
            "comment": "The entry"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "entryStage",
        "cppFunctionName": "EntryStage",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Return the stage number from a git index entry</p>\n"
      },
      {
        "cFunctionName": "git_index_add_bypath",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "filename to add"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addByPath",
        "cppFunctionName": "AddBypath",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Add or update an index entry from a file on disk</p>\n"
      },
      {
        "cFunctionName": "git_index_remove_bypath",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "filename to remove"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "removeByPath",
        "cppFunctionName": "RemoveBypath",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Remove an index entry corresponding to a file on disk</p>\n"
      },
      {
        "cFunctionName": "git_index_find",
        "args": [
          {
            "name": "at_pos",
            "isReturn": true,
            "cType": "size_t *",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the address to which the position of the index entry is written (optional)"
          },
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "path to search"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "find",
        "cppFunctionName": "Find",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "comment": "a zero-based position in the index if found; GIT_ENOTFOUND otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Find the first position of any entries which point to given\npath in the Git index.</p>\n"
      },
      {
        "cFunctionName": "git_index_conflict_add",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          },
          {
            "name": "ancestor_entry",
            "cType": "const git_index_entry *",
            "cppClassName": "GitIndexEntry",
            "jsClassName": "IndexEntry",
            "comment": "the entry data for the ancestor of the conflict"
          },
          {
            "name": "our_entry",
            "cType": "const git_index_entry *",
            "cppClassName": "GitIndexEntry",
            "jsClassName": "IndexEntry",
            "comment": "the entry data for our side of the merge conflict"
          },
          {
            "name": "their_entry",
            "cType": "const git_index_entry *",
            "cppClassName": "GitIndexEntry",
            "jsClassName": "IndexEntry",
            "comment": "the entry data for their side of the merge conflict"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "conflictAdd",
        "cppFunctionName": "ConflictAdd",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Add or update index entries to represent a conflict</p>\n"
      },
      {
        "cFunctionName": "git_index_conflict_get",
        "args": [
          {
            "name": "ancestor_out",
            "cType": "git_index_entry **",
            "cppClassName": "GitIndexEntry",
            "jsClassName": "IndexEntry",
            "comment": "Pointer to store the ancestor entry"
          },
          {
            "name": "our_out",
            "cType": "git_index_entry **",
            "cppClassName": "GitIndexEntry",
            "jsClassName": "IndexEntry",
            "comment": "Pointer to store the our entry"
          },
          {
            "name": "their_out",
            "cType": "git_index_entry **",
            "cppClassName": "GitIndexEntry",
            "jsClassName": "IndexEntry",
            "comment": "Pointer to store the their entry"
          },
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "comment": "an existing index object"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "path to search"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "conflictGet",
        "cppFunctionName": "ConflictGet",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Get the index entries that represent a conflict of a single file.</p>\n"
      },
      {
        "cFunctionName": "git_index_conflict_remove",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "to search"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "conflictRemove",
        "cppFunctionName": "ConflictRemove",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Removes the index entries that represent a conflict of a single file.</p>\n"
      },
      {
        "cFunctionName": "git_index_conflict_cleanup",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "conflictCleanup",
        "cppFunctionName": "ConflictCleanup",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Remove all conflicts in the index (entries with a stage greater than 0.)</p>\n"
      },
      {
        "cFunctionName": "git_index_has_conflicts",
        "args": [
          {
            "name": "index",
            "cType": "const git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "hasConflicts",
        "cppFunctionName": "HasConflicts",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "comment": "1 if at least one conflict is found, 0 otherwise.",
          "jsClassName": "Number"
        },
        "description": "<p>Determine if the index contains entries representing file conflicts.</p>\n"
      },
      {
        "cFunctionName": "git_index_reuc_entrycount",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "reucEntrycount",
        "cppFunctionName": "ReucEntrycount",
        "return": {
          "cType": "unsigned int",
          "cppClassName": "Uint32",
          "comment": "integer of count of current resolve undo entries",
          "jsClassName": "Number"
        },
        "description": "<p>Get the count of resolve undo entries currently in the index.</p>\n"
      },
      {
        "cFunctionName": "git_index_reuc_find",
        "args": [
          {
            "name": "at_pos",
            "cType": "size_t *",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the address to which the position of the reuc entry is written (optional)"
          },
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "comment": "an existing index object"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "path to search"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "reucFind",
        "cppFunctionName": "ReucFind",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 if found, < 0 otherwise (GIT_ENOTFOUND)",
          "jsClassName": "Number"
        },
        "description": "<p>Finds the resolve undo entry that points to the given path in the Git\nindex.</p>\n"
      },
      {
        "cFunctionName": "git_index_reuc_get_bypath",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "path to search"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "reucGetBypath",
        "cppFunctionName": "ReucGetBypath",
        "return": {
          "cType": "const git_index_reuc_entry *",
          "cppClassName": "IndexReucEntry",
          "copy": "fixme",
          "comment": "the resolve undo entry; NULL if not found"
        },
        "description": "<p>Get a resolve undo entry from the index.</p>\n"
      },
      {
        "cFunctionName": "git_index_reuc_get_byindex",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          },
          {
            "name": "n",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the position of the entry"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "reucGetByindex",
        "cppFunctionName": "ReucGetByindex",
        "return": {
          "cType": "const git_index_reuc_entry *",
          "cppClassName": "IndexReucEntry",
          "copy": "fixme",
          "comment": "a pointer to the resolve undo entry; NULL if out of bounds"
        },
        "description": "<p>Get a resolve undo entry from the index.</p>\n"
      },
      {
        "cFunctionName": "git_index_reuc_add",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "filename to add"
          },
          {
            "name": "ancestor_mode",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "mode of the ancestor file"
          },
          {
            "name": "ancestor_id",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "oid of the ancestor file"
          },
          {
            "name": "our_mode",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "mode of our file"
          },
          {
            "name": "our_id",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "oid of our file"
          },
          {
            "name": "their_mode",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "mode of their file"
          },
          {
            "name": "their_id",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "oid of their file"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "reucAdd",
        "cppFunctionName": "ReucAdd",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Adds a resolve undo entry for a file based on the given parameters.</p>\n"
      },
      {
        "cFunctionName": "git_index_reuc_remove",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          },
          {
            "name": "n",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "position of the resolve undo entry to remove"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "reucRemove",
        "cppFunctionName": "ReucRemove",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Remove an resolve undo entry from the index</p>\n"
      },
      {
        "cFunctionName": "git_index_reuc_clear",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true,
            "comment": "an existing index object"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "reucClear",
        "cppFunctionName": "ReucClear",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "comment": "0 or an error code",
          "jsClassName": "void"
        },
        "description": "<p>Remove all resolve undo entries from the index</p>\n"
      },
      {
        "cFunctionName": "git_diff_index_to_workdir",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list **",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "isReturn": true,
            "comment": "Output pointer to a git_diff_list pointer to be allocated."
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "The repository."
          },
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isOptional": true,
            "comment": "The index to diff from; repo index used if NULL."
          },
          {
            "name": "opts",
            "cType": "const git_diff_options *",
            "cppClassName": "GitDiffOptions",
            "jsClassName": "DiffOptions",
            "isOptional": true,
            "comment": "Structure with options to influence diff or NULL for defaults."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "indexToWorkdir",
        "cppFunctionName": "IndexToWorkdir",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Create a diff list between the repository index and the workdir directory.</p>\n"
      }
    ]
  },
  {
    "filename": "indexer.h",
    "ignore": true,
    "jsClassName": "Indexer",
    "cppClassName": "Indexer",
    "cType": "git_indexer",
    "freeFunctionName": "git_indexer_free",
    "functions": [
      {
        "cFunctionName": "git_indexer_stream_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_indexer_stream **",
            "cppClassName": "IndexerStream",
            "jsClassName": "IndexerStream",
            "comment": "where to store the indexer instance"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "to the directory where the packfile should be stored"
          },
          {
            "name": "progress_cb",
            "cType": "git_transfer_progress_callback",
            "cppClassName": "TransferProgressCallback",
            "jsClassName": "TransferProgressCallback",
            "comment": "function to call with progress information"
          },
          {
            "name": "progress_cb_payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "payload for the progress callback"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "streamNew",
        "cppFunctionName": "StreamNew",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Create a new streaming indexer instance</p>\n"
      },
      {
        "cFunctionName": "git_indexer_stream_add",
        "args": [
          {
            "name": "idx",
            "cType": "git_indexer_stream *",
            "cppClassName": "IndexerStream",
            "jsClassName": "IndexerStream",
            "comment": "the indexer"
          },
          {
            "name": "data",
            "cType": "const void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "the data to add"
          },
          {
            "name": "size",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the size of the data in bytes"
          },
          {
            "name": "stats",
            "cType": "git_transfer_progress *",
            "cppClassName": "TransferProgress",
            "jsClassName": "TransferProgress",
            "comment": "stat storage"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "streamAdd",
        "cppFunctionName": "StreamAdd",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Add data to the indexer</p>\n"
      },
      {
        "cFunctionName": "git_indexer_stream_finalize",
        "args": [
          {
            "name": "idx",
            "cType": "git_indexer_stream *",
            "cppClassName": "IndexerStream",
            "jsClassName": "IndexerStream",
            "comment": "the indexer"
          },
          {
            "name": "stats",
            "cType": "git_transfer_progress *",
            "cppClassName": "TransferProgress",
            "jsClassName": "TransferProgress"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "streamFinalize",
        "cppFunctionName": "StreamFinalize",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Finalize the pack and index</p>\n"
      },
      {
        "cFunctionName": "git_indexer_stream_hash",
        "args": [
          {
            "name": "idx",
            "cType": "const git_indexer_stream *",
            "cppClassName": "IndexerStream",
            "jsClassName": "IndexerStream",
            "comment": "the indexer instance"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "streamHash",
        "cppFunctionName": "StreamHash",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup",
          "jsClassName": "Oid"
        },
        "description": "<p>Get the packfile&#39;s hash</p>\n"
      },
      {
        "cFunctionName": "git_indexer_stream_free",
        "args": [
          {
            "name": "idx",
            "cType": "git_indexer_stream *",
            "cppClassName": "IndexerStream",
            "jsClassName": "IndexerStream",
            "comment": "the indexer to free"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "streamFree",
        "cppFunctionName": "StreamFree",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Free the indexer and its resources</p>\n"
      }
    ]
  },
  {
    "filename": "inttypes.h",
    "ignore": true,
    "jsClassName": "Inttypes",
    "cppClassName": "Inttypes",
    "cType": "git_inttypes",
    "freeFunctionName": "git_inttypes_free",
    "functions": []
  },
  {
    "filename": "merge.h",
    "ignore": true,
    "jsClassName": "Merge",
    "cppClassName": "Merge",
    "cType": "git_merge",
    "freeFunctionName": "git_merge_free",
    "functions": [
      {
        "cFunctionName": "git_merge_base",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "comment": "the OID of a merge base between 'one' and 'two'"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "the repository where the commits exist"
          },
          {
            "name": "one",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "one of the commits"
          },
          {
            "name": "two",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "the other commit"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "base",
        "cppFunctionName": "Base",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "Zero on success; GIT_ENOTFOUND or -1 on failure.",
          "jsClassName": "Number"
        },
        "description": "<p>Find a merge base between two commits</p>\n"
      },
      {
        "cFunctionName": "git_merge_base_many",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "comment": "the OID of a merge base considering all the commits"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "the repository where the commits exist"
          },
          {
            "name": "length",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "The number of commits in the provided `input_array`"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "baseMany",
        "cppFunctionName": "BaseMany",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "Zero on success; GIT_ENOTFOUND or -1 on failure.",
          "jsClassName": "Number"
        },
        "description": "<p>Find a merge base given a list of commits</p>\n"
      }
    ]
  },
  {
    "filename": "message.h",
    "ignore": true,
    "jsClassName": "Message",
    "cppClassName": "Message",
    "cType": "git_message",
    "freeFunctionName": "git_message_free",
    "functions": [
      {
        "cFunctionName": "git_message_prettify",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The user-allocated buffer which will be filled with the cleaned up message. Pass NULL if you just want to get the needed size of the prettified message as the output value."
          },
          {
            "name": "out_size",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "Size of the `out` buffer in bytes."
          },
          {
            "name": "message",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The message to be prettified."
          },
          {
            "name": "strip_comments",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Non-zero to remove lines starting with \"#\", 0 to leave them in."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "prettify",
        "cppFunctionName": "Prettify",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "-1 on error, else number of characters in prettified message including the trailing NUL byte",
          "jsClassName": "Number"
        },
        "description": "<p>Clean up message from excess whitespace and make sure that the last line\nends with a &#39;\\n&#39;.</p>\n"
      }
    ]
  },
  {
    "filename": "net.h",
    "ignore": true,
    "jsClassName": "Net",
    "cppClassName": "Net",
    "cType": "git_net",
    "freeFunctionName": "git_net_free",
    "functions": []
  },
  {
    "filename": "notes.h",
    "ignore": true,
    "jsClassName": "Notes",
    "cppClassName": "Notes",
    "cType": "git_notes",
    "freeFunctionName": "git_notes_free",
    "functions": [
      {
        "cFunctionName": "git_note_iterator_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_note_iterator **",
            "cppClassName": "NoteIterator",
            "jsClassName": "NoteIterator",
            "comment": "pointer to the iterator"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "repository where to look up the note"
          },
          {
            "name": "notes_ref",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "canonical name of the reference to use (optional); defaults to \"refs/notes/commits\""
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitNoteIteratorNew",
        "cppFunctionName": "GitNoteIteratorNew",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Creates a new iterator for notes</p>\n"
      },
      {
        "cFunctionName": "git_note_iterator_free",
        "args": [
          {
            "name": "it",
            "cType": "git_note_iterator *",
            "cppClassName": "NoteIterator",
            "jsClassName": "NoteIterator",
            "comment": "pointer to the iterator"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "gitNoteIteratorFree",
        "cppFunctionName": "GitNoteIteratorFree",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Frees an git_note_iterator</p>\n"
      },
      {
        "cFunctionName": "git_note_next",
        "args": [
          {
            "name": "note_id",
            "cType": "git_oid*",
            "cppClassName": "Oid*",
            "jsClassName": "Oid*",
            "comment": "id of blob containing the message"
          },
          {
            "name": "annotated_id",
            "cType": "git_oid*",
            "cppClassName": "Oid*",
            "jsClassName": "Oid*",
            "comment": "id of the git object being annotated"
          },
          {
            "name": "it",
            "cType": "git_note_iterator *",
            "cppClassName": "NoteIterator",
            "jsClassName": "NoteIterator",
            "comment": "pointer to the iterator"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitNoteNext",
        "cppFunctionName": "GitNoteNext",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 (no error), GIT_ITEROVER (iteration is done) or an error code (negative value)",
          "jsClassName": "Number"
        },
        "description": "<p>Returns the current item (note_id and annotated_id) and advance the iterator\ninternally to the next value</p>\n"
      },
      {
        "cFunctionName": "git_note_read",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_note **",
            "cppClassName": "Note",
            "jsClassName": "Note",
            "comment": "pointer to the read note; NULL in case of error"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "repository where to look up the note"
          },
          {
            "name": "notes_ref",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "canonical name of the reference to use (optional); defaults to \"refs/notes/commits\""
          },
          {
            "name": "oid",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "OID of the git object to read the note from"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitNoteRead",
        "cppFunctionName": "GitNoteRead",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Read the note for an object</p>\n"
      },
      {
        "cFunctionName": "git_note_message",
        "args": [
          {
            "name": "note",
            "cType": "const git_note *",
            "cppClassName": "Note",
            "jsClassName": "Note",
            "comment": ""
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitNoteMessage",
        "cppFunctionName": "GitNoteMessage",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "the note message",
          "jsClassName": "String"
        },
        "description": "<p>Get the note message</p>\n"
      },
      {
        "cFunctionName": "git_note_oid",
        "args": [
          {
            "name": "note",
            "cType": "const git_note *",
            "cppClassName": "Note",
            "jsClassName": "Note",
            "comment": ""
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitNoteOid",
        "cppFunctionName": "GitNoteOid",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup",
          "comment": "the note object OID",
          "jsClassName": "Oid"
        },
        "description": "<p>Get the note object OID</p>\n"
      },
      {
        "cFunctionName": "git_note_create",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "comment": "pointer to store the OID (optional); NULL in case of error"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "repository where to store the note"
          },
          {
            "name": "author",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature",
            "comment": "signature of the notes commit author"
          },
          {
            "name": "committer",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature",
            "comment": "signature of the notes commit committer"
          },
          {
            "name": "notes_ref",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "canonical name of the reference to use (optional); defaults to \"refs/notes/commits\""
          },
          {
            "name": "oid",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "OID of the git object to decorate"
          },
          {
            "name": "note",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "s_ref canonical name of the reference to use (optional); defaults to \"refs/notes/commits\""
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Overwrite existing note"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitNoteCreate",
        "cppFunctionName": "GitNoteCreate",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Add a note for an object</p>\n"
      },
      {
        "cFunctionName": "git_note_remove",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "repository where the note lives"
          },
          {
            "name": "notes_ref",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "canonical name of the reference to use (optional); defaults to \"refs/notes/commits\""
          },
          {
            "name": "author",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature",
            "comment": "signature of the notes commit author"
          },
          {
            "name": "committer",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature",
            "comment": "signature of the notes commit committer"
          },
          {
            "name": "oid",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "OID of the git object to remove the note from"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitNoteRemove",
        "cppFunctionName": "GitNoteRemove",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Remove the note for an object</p>\n"
      },
      {
        "cFunctionName": "git_note_free",
        "args": [
          {
            "name": "note",
            "cType": "git_note *",
            "cppClassName": "Note",
            "jsClassName": "Note",
            "comment": "git_note object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "gitNoteFree",
        "cppFunctionName": "GitNoteFree",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Free a git_note object</p>\n"
      },
      {
        "cFunctionName": "git_note_default_ref",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "const char **",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Pointer to the default notes reference"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "The Git repository"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitNoteDefaultRef",
        "cppFunctionName": "GitNoteDefaultRef",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Get the default notes reference for a repository</p>\n"
      },
      {
        "cFunctionName": "git_note_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "Repository where to find the notes."
          },
          {
            "name": "notes_ref",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Reference to read from (optional); defaults to \"refs/notes/commits\"."
          },
          {
            "name": "note_cb",
            "cType": "git_note_foreach_cb",
            "cppClassName": "NoteForeachCb",
            "jsClassName": "NoteForeachCb",
            "comment": "Callback to invoke per found annotation. Return non-zero to stop looping."
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "Extra parameter to callback function."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitNoteForeach",
        "cppFunctionName": "GitNoteForeach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUSER on non-zero callback, or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Loop over all the notes within a specified namespace\nand issue a callback for each one.</p>\n"
      }
    ]
  },
  {
    "filename": "object.h",
    "dependencies": [
      "../include/oid.h",
      "../include/repo.h"
    ],
    "jsClassName": "Object",
    "cppClassName": "GitObject",
    "cType": "git_object",
    "freeFunctionName": "git_object_free",
    "functions": [
      {
        "cFunctionName": "git_object_id",
        "args": [
          {
            "name": "obj",
            "cType": "const git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isSelf": true,
            "comment": "the repository object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "oid",
        "cppFunctionName": "Oid",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup",
          "comment": "the SHA1 id",
          "jsClassName": "Oid"
        },
        "description": "<p>Get the id (SHA1) of a repository object</p>\n"
      },
      {
        "cFunctionName": "git_object_type",
        "args": [
          {
            "name": "obj",
            "cType": "const git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isSelf": true,
            "comment": "the repository object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "type",
        "cppFunctionName": "Type",
        "return": {
          "cType": "git_otype",
          "cppClassName": "Number",
          "comment": "the object's type",
          "jsClassName": "Number"
        },
        "description": "<p>Get the object type of an object</p>\n"
      },
      {
        "cFunctionName": "git_object_owner",
        "args": [
          {
            "name": "obj",
            "cType": "const git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isSelf": true,
            "comment": "the object"
          }
        ],
        "ignore": "Never make public for memory allocation reasons",
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "owner",
        "cppFunctionName": "Owner",
        "return": {
          "cType": "git_repository *",
          "cppClassName": "GitRepo",
          "comment": "the repository who owns this object",
          "jsClassName": "Repository"
        },
        "description": "<p>Get the repository that owns this object</p>\n"
      },
      {
        "cFunctionName": "git_object_free",
        "args": [
          {
            "name": "object",
            "cType": "git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "comment": "the object to close"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Close an open object</p>\n"
      },
      {
        "cFunctionName": "git_object_type2string",
        "args": [
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Number",
            "jsClassName": "Number",
            "comment": "object type to convert."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "type2string",
        "cppFunctionName": "Type2string",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "the corresponding string representation.",
          "jsClassName": "String"
        },
        "description": "<p>Convert an object type to it&#39;s string representation.</p>\n"
      },
      {
        "cFunctionName": "git_object_string2type",
        "args": [
          {
            "name": "str",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the string to convert."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "string2type",
        "cppFunctionName": "String2type",
        "return": {
          "cType": "git_otype",
          "cppClassName": "Number",
          "comment": "the corresponding git_otype.",
          "jsClassName": "Number"
        },
        "description": "<p>Convert a string object type representation to it&#39;s git_otype.</p>\n"
      },
      {
        "cFunctionName": "git_object_typeisloose",
        "args": [
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Number",
            "jsClassName": "Number",
            "comment": "object type to test."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "typeisloose",
        "cppFunctionName": "Typeisloose",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "true if the type represents a valid loose object type, false otherwise.",
          "jsClassName": "Number"
        },
        "description": "<p>Determine if the given git_otype is a valid loose object type.</p>\n"
      },
      {
        "cFunctionName": "git_object__size",
        "args": [
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "object type to get its size"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "Size",
        "cppFunctionName": "Size",
        "return": {
          "cType": "size_t",
          "cppClassName": "Uint32",
          "comment": "size in bytes of the object",
          "jsClassName": "Number"
        },
        "description": "<p>Get the size in bytes for the structure which\nacts as an in-memory representation of any given\nobject type.</p>\n"
      },
      {
        "cFunctionName": "git_object_peel",
        "args": [
          {
            "name": "peeled",
            "cType": "git_object **",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isReturn": true,
            "comment": "Pointer to the peeled git_object"
          },
          {
            "name": "object",
            "cType": "const git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isSelf": true,
            "comment": "The object to be processed"
          },
          {
            "name": "target_type",
            "cType": "git_otype",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "The type of the requested object (GIT_OBJ_COMMIT, GIT_OBJ_TAG, GIT_OBJ_TREE, GIT_OBJ_BLOB or GIT_OBJ_ANY)."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "peel",
        "cppFunctionName": "Peel",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EAMBIGUOUS, GIT_ENOTFOUND or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Recursively peel an object until an object of the specified type is met.</p>\n"
      },
      {
        "cFunctionName": "git_object_dup",
        "args": [
          {
            "name": "dest",
            "cType": "git_object **",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isReturn": true,
            "comment": "Pointer to store the copy of the object"
          },
          {
            "name": "source",
            "cType": "git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "ignore": true,
            "isSelf": true,
            "comment": "Original object to copy"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "dup",
        "cppFunctionName": "Dup",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Create an in-memory copy of a Git object. The copy must be\nexplicitly free&#39;d or it will leak.</p>\n"
      }
    ]
  },
  {
    "filename": "odb.h",
    "dependencies": [
      "../include/oid.h",
      "../include/odb_object.h",
      "node_buffer.h"
    ],
    "jsClassName": "Odb",
    "cppClassName": "GitOdb",
    "cType": "git_odb",
    "freeFunctionName": "git_odb_free",
    "functions": [
      {
        "cFunctionName": "git_odb_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_odb **",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "comment": "location to store the database pointer, if opened. Set to NULL if the open failed."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "create()",
        "cppFunctionName": "Create",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new object database with no backends.</p>\n"
      },
      {
        "cFunctionName": "git_odb_open",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_odb **",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "comment": "location to store the database pointer, if opened. Set to NULL if the open failed."
          },
          {
            "name": "objects_dir",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "path of the backends' \"objects\" directory."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "open",
        "cppFunctionName": "Open",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new object database and automatically add\nthe two default backends:</p>\n"
      },
      {
        "cFunctionName": "git_odb_add_backend",
        "args": [
          {
            "name": "odb",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "isSelf": true,
            "comment": "database to add the backend to"
          },
          {
            "name": "backend",
            "cType": "git_odb_backend *",
            "cppClassName": "OdbBackend",
            "jsClassName": "OdbBackend",
            "comment": "pointer to a git_odb_backend instance"
          },
          {
            "name": "priority",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Value for ordering the backends queue"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addBackend",
        "cppFunctionName": "AddBackend",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success; error code otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Add a custom backend to an existing Object DB</p>\n"
      },
      {
        "cFunctionName": "git_odb_add_alternate",
        "args": [
          {
            "name": "odb",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "isSelf": true,
            "comment": "database to add the backend to"
          },
          {
            "name": "backend",
            "cType": "git_odb_backend *",
            "cppClassName": "OdbBackend",
            "jsClassName": "OdbBackend",
            "comment": "pointer to a git_odb_backend instance"
          },
          {
            "name": "priority",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Value for ordering the backends queue"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addAlternate",
        "cppFunctionName": "AddAlternate",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success; error code otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Add a custom backend to an existing Object DB; this\nbackend will work as an alternate.</p>\n"
      },
      {
        "cFunctionName": "git_odb_add_disk_alternate",
        "args": [
          {
            "name": "odb",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "isSelf": true,
            "comment": "database to add the backend to"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "path to the objects folder for the alternate"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addDiskAlternate",
        "cppFunctionName": "AddDiskAlternate",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success; error code otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Add an on-disk alternate to an existing Object DB.</p>\n"
      },
      {
        "cFunctionName": "git_odb_free",
        "args": [
          {
            "name": "db",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "comment": "database pointer to close. If NULL no action is taken."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Close an open object database.</p>\n"
      },
      {
        "cFunctionName": "git_odb_read",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_odb_object **",
            "cppClassName": "GitOdbObject",
            "jsClassName": "OdbObject",
            "comment": "pointer where to store the read object"
          },
          {
            "name": "db",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "isSelf": true,
            "comment": "database to search for the object in."
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "identity of the object to read."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "read",
        "cppFunctionName": "Read",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "- 0 if the object was read; - GIT_ENOTFOUND if the object is not in the database.",
          "jsClassName": "Number"
        },
        "description": "<p>Read an object from the database.</p>\n"
      },
      {
        "cFunctionName": "git_odb_read_prefix",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_odb_object **",
            "cppClassName": "GitOdbObject",
            "jsClassName": "OdbObject",
            "comment": "pointer where to store the read object"
          },
          {
            "name": "db",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "comment": "database to search for the object in."
          },
          {
            "name": "short_id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "a prefix of the id of the object to read."
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the length of the prefix"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "readPrefix",
        "cppFunctionName": "ReadPrefix",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "- 0 if the object was read; - GIT_ENOTFOUND if the object is not in the database. - GIT_EAMBIGUOUS if the prefix is ambiguous (several objects match the prefix)",
          "jsClassName": "Number"
        },
        "description": "<p>Read an object from the database, given a prefix\nof its identifier.</p>\n"
      },
      {
        "cFunctionName": "git_odb_read_header",
        "args": [
          {
            "name": "len_out",
            "isReturn": true,
            "cType": "size_t *",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "pointer where to store the length"
          },
          {
            "name": "type_out",
            "isReturn": true,
            "cType": "git_otype *",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "pointer where to store the type"
          },
          {
            "name": "db",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "comment": "database to search for the object in."
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "identity of the object to read."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "readHeader",
        "cppFunctionName": "ReadHeader",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "- 0 if the object was read; - GIT_ENOTFOUND if the object is not in the database.",
          "jsClassName": "Number"
        },
        "description": "<p>Read the header of an object from the database, without\nreading its full contents.</p>\n"
      },
      {
        "cFunctionName": "git_odb_exists",
        "args": [
          {
            "name": "db",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "isSelf": true,
            "comment": "database to be searched for the given object."
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "the object to search for."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "exists",
        "cppFunctionName": "Exists",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "- 1, if the object was found - 0, otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Determine if the given object can be found in the object database.</p>\n"
      },
      {
        "cFunctionName": "git_odb_refresh",
        "args": [
          {
            "name": "db",
            "cType": "struct git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "isSelf": true,
            "comment": "database to refresh"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "refresh",
        "cppFunctionName": "Refresh",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, error code otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Refresh the object database to load newly added files.</p>\n"
      },
      {
        "cFunctionName": "git_odb_foreach",
        "args": [
          {
            "name": "db",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "isSelf": true,
            "comment": "database to use"
          },
          {
            "name": "cb",
            "cType": "git_odb_foreach_cb",
            "cppClassName": "OdbForeachCb",
            "jsClassName": "OdbForeachCb",
            "comment": "the callback to call for each object"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "data to pass to the callback"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUSER on non-zero callback, or error code",
          "jsClassName": "Number"
        },
        "description": "<p>List all objects available in the database</p>\n"
      },
      {
        "cFunctionName": "git_odb_write",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "shouldAlloc": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "pointer to store the OID result of the write"
          },
          {
            "name": "odb",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "isSelf": true,
            "comment": "object database where to store the object"
          },
          {
            "name": "data",
            "cType": "const void *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "buffer with the data to store"
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "size of the buffer"
          },
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "type of the data to store"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "write",
        "cppFunctionName": "Write",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Write an object directly into the ODB</p>\n"
      },
      {
        "cFunctionName": "git_odb_open_wstream",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_odb_stream **",
            "cppClassName": "GitOdbStream",
            "jsClassName": "OdbStream",
            "comment": "pointer where to store the stream"
          },
          {
            "name": "db",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "comment": "object database where the stream will write"
          },
          {
            "name": "size",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "final size of the object that will be written"
          },
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "type of the object that will be written"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "openWstream",
        "cppFunctionName": "OpenWstream",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 if the stream was created; error code otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Open a stream to write an object into the ODB</p>\n"
      },
      {
        "cFunctionName": "git_odb_open_rstream",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_odb_stream **",
            "cppClassName": "GitOdbStream",
            "jsClassName": "OdbStream",
            "comment": "pointer where to store the stream"
          },
          {
            "name": "db",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "comment": "object database where the stream will read from"
          },
          {
            "name": "oid",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "oid of the object the stream will read from"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "openRstream",
        "cppFunctionName": "OpenRstream",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 if the stream was created; error code otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Open a stream to read an object from the ODB</p>\n"
      },
      {
        "cFunctionName": "git_odb_write_pack",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_odb_writepack **",
            "cppClassName": "OdbWritepack",
            "jsClassName": "OdbWritepack",
            "comment": "pointer to the writepack functions"
          },
          {
            "name": "db",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "comment": "object database where the stream will read from"
          },
          {
            "name": "progress_cb",
            "cType": "git_transfer_progress_callback",
            "cppClassName": "TransferProgressCallback",
            "jsClassName": "TransferProgressCallback",
            "comment": "function to call with progress information. Be aware that this is called inline with network and indexing operations, so performance may be affected."
          },
          {
            "name": "progress_payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "payload for the progress callback"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "writePack",
        "cppFunctionName": "WritePack",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Open a stream for writing a pack file to the ODB.</p>\n"
      },
      {
        "cFunctionName": "git_odb_hash",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "shouldAlloc": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "the resulting object-ID."
          },
          {
            "name": "data",
            "cType": "const void *",
            "cppClassName": "Buffer",
            "jsClassName": "Buffer",
            "comment": "data to hash"
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "size of the data"
          },
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "of the data to hash"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "hash",
        "cppFunctionName": "Hash",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Determine the object-ID (sha1 hash) of a data buffer</p>\n"
      },
      {
        "cFunctionName": "git_odb_hashfile",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "shouldAlloc": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "oid structure the result is written into."
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "file to read and determine object id for"
          },
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "the type of the object that will be hashed"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "hashfile",
        "cppFunctionName": "Hashfile",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Read a file from disk and fill a git_oid with the object id\nthat the file would have if it were written to the Object\nDatabase as an object of the given type (w/o applying filters).\nSimilar functionality to git.git&#39;s <code>git hash-object</code> without\nthe <code>-w</code> flag, however, with the --no-filters flag.\nIf you need filters, see git_repository_hashfile.</p>\n"
      }
    ]
  },
  {
    "filename": "odb_object.h",
    "dependencies": [
      "../include/wrapper.h",
      "../include/oid.h"
    ],
    "jsClassName": "OdbObject",
    "cppClassName": "GitOdbObject",
    "cType": "git_odb_object",
    "freeFunctionName": "git_odb_object_free",
    "functions": [
      {
        "cFunctionName": "git_odb_object_data",
        "args": [
          {
            "name": "object",
            "cType": "git_odb_object *",
            "cppClassName": "GitOdbObject",
            "jsClassName": "OdbObject",
            "isSelf": true,
            "comment": "the object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "data",
        "cppFunctionName": "Data",
        "return": {
          "cType": "const void *",
          "cppClassName": "Wrapper",
          "comment": "a pointer to the data"
        },
        "description": "<p>Return the data of an ODB object</p>\n"
      },
      {
        "cFunctionName": "git_odb_object_size",
        "args": [
          {
            "name": "object",
            "cType": "git_odb_object *",
            "cppClassName": "GitOdbObject",
            "jsClassName": "OdbObject",
            "isSelf": true,
            "comment": "the object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "size",
        "cppFunctionName": "Size",
        "return": {
          "cType": "size_t",
          "cppClassName": "Uint32",
          "comment": "the size",
          "jsClassName": "Number"
        },
        "description": "<p>Return the size of an ODB object</p>\n"
      },
      {
        "cFunctionName": "git_odb_object_type",
        "args": [
          {
            "name": "object",
            "cType": "git_odb_object *",
            "cppClassName": "GitOdbObject",
            "jsClassName": "OdbObject",
            "isSelf": true,
            "comment": "the object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "type",
        "cppFunctionName": "Type",
        "return": {
          "cType": "git_otype",
          "cppClassName": "Int32",
          "comment": "the type",
          "jsClassName": "Number"
        },
        "description": "<p>Return the type of an ODB object</p>\n"
      },
      {
        "cFunctionName": "git_odb_object_free",
        "args": [
          {
            "name": "object",
            "cType": "git_odb_object *",
            "cppClassName": "GitOdbObject",
            "jsClassName": "OdbObject",
            "isSelf": true,
            "comment": "object to close"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Close an ODB object</p>\n"
      },
      {
        "cFunctionName": "git_odb_object_id",
        "args": [
          {
            "name": "object",
            "cType": "git_odb_object *",
            "cppClassName": "GitOdbObject",
            "jsClassName": "OdbObject",
            "isSelf": true,
            "comment": "the object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "oid",
        "cppFunctionName": "Oid",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup",
          "comment": "a pointer to the OID",
          "jsClassName": "Oid"
        },
        "description": "<p>Return the OID of an ODB object</p>\n"
      }
    ]
  },
  {
    "filename": "odb_backend.h",
    "ignore": true,
    "jsClassName": "OdbBackend",
    "cppClassName": "OdbBackend",
    "cType": "git_odb_backend",
    "freeFunctionName": "git_odb_backend_free",
    "functions": [
      {
        "cFunctionName": "git_odb_backend_pack",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_odb_backend **",
            "cppClassName": "OdbBackend",
            "jsClassName": "OdbBackend",
            "comment": "location to store the odb backend pointer"
          },
          {
            "name": "objects_dir",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the Git repository's objects directory"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "pack",
        "cppFunctionName": "Pack",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create a backend for the packfiles.</p>\n"
      }
    ]
  },
  {
    "filename": "oid.h",
    "dependencies": [],
    "jsClassName": "Oid",
    "cppClassName": "GitOid",
    "cType": "git_oid",
    "freeFunctionName": "free",
    "functions": [
      {
        "cFunctionName": "git_oid_fromstr",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "shouldAlloc": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "oid structure the result is written into."
          },
          {
            "name": "str",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "input hex string; must be pointing at the start of the hex sequence and have at least the number of bytes needed for an oid encoded in hex (40 bytes)."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "fromString",
        "cppFunctionName": "FromString",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Parse a hex formatted object id into a git_oid.</p>\n"
      },
      {
        "cFunctionName": "git_oid_fromstrp",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "comment": "oid structure the result is written into."
          },
          {
            "name": "str",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "input hex string; must be at least 4 characters long and null-terminated."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "fromstrp",
        "cppFunctionName": "Fromstrp",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Parse a hex formatted null-terminated string into a git_oid.</p>\n"
      },
      {
        "cFunctionName": "git_oid_fromstrn",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "comment": "oid structure the result is written into."
          },
          {
            "name": "str",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "input hex string of at least size `length`"
          },
          {
            "name": "length",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "length of the input string"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "fromstrn",
        "cppFunctionName": "Fromstrn",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Parse N characters of a hex formatted object id into a git_oid</p>\n"
      },
      {
        "cFunctionName": "git_oid_fromraw",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "comment": "oid structure the result is written into."
          },
          {
            "name": "raw",
            "cType": "const unsigned char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the raw input bytes to be copied."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "fromraw",
        "cppFunctionName": "Fromraw",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Copy an already raw oid into a git_oid structure.</p>\n"
      },
      {
        "cFunctionName": "git_oid_fmt",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "output hex string; must be pointing at the start of the hex sequence and have at least the number of bytes needed for an oid encoded in hex (40 bytes). Only the oid digits are written; a '\\\\0' terminator must be added by the caller if it is required."
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isSelf": true,
            "comment": "oid structure to format."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "fmt",
        "cppFunctionName": "Fmt",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Format a git_oid into a hex string.</p>\n"
      },
      {
        "cFunctionName": "git_oid_pathfmt",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "output hex string; must be pointing at the start of the hex sequence and have at least the number of bytes needed for an oid encoded in hex (41 bytes). Only the oid digits are written; a '\\\\0' terminator must be added by the caller if it is required."
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "oid structure to format."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "pathfmt",
        "cppFunctionName": "Pathfmt",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Format a git_oid into a loose-object path string.</p>\n"
      },
      {
        "cFunctionName": "git_oid_allocfmt",
        "args": [
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isSelf": true,
            "comment": "the oid structure to format"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "sha",
        "cppFunctionName": "Sha",
        "return": {
          "cType": "char *",
          "cppClassName": "String",
          "comment": "the c-string; NULL if memory is exhausted. Caller must deallocate the string with git__free().",
          "jsClassName": "String",
          "freeFunctionName": "free"
        },
        "description": "<p>Format a git_oid into a newly allocated c-string.</p>\n"
      },
      {
        "cFunctionName": "git_oid_tostr",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the buffer into which the oid string is output."
          },
          {
            "name": "n",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the size of the out buffer."
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "the oid structure to format."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "sha",
        "cppFunctionName": "Sha",
        "return": {
          "cType": "char *",
          "cppClassName": "String",
          "comment": "the out buffer pointer, assuming no input parameter errors, otherwise a pointer to an empty string.",
          "jsClassName": "String"
        },
        "description": "<p>Format a git_oid into a buffer as a hex format c-string.</p>\n"
      },
      {
        "cFunctionName": "git_oid_cpy",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "comment": "oid structure the result is written into."
          },
          {
            "name": "src",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isSelf": true,
            "comment": "oid structure to copy from."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "cpy",
        "cppFunctionName": "Cpy",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Copy an oid from one structure to another.</p>\n"
      },
      {
        "cFunctionName": "git_oid_cmp",
        "args": [
          {
            "name": "a",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isSelf": true,
            "comment": "first oid structure."
          },
          {
            "name": "b",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "second oid structure."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "cmp",
        "cppFunctionName": "Cmp",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "<0, 0, >0 if a < b, a == b, a > b.",
          "jsClassName": "Number"
        },
        "description": "<p>Compare two oid structures.</p>\n"
      },
      {
        "cFunctionName": "git_oid_equal",
        "args": [
          {
            "name": "a",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isSelf": true,
            "comment": "first oid structure."
          },
          {
            "name": "b",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "second oid structure."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "equal",
        "cppFunctionName": "Equal",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "true if equal, false otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Compare two oid structures for equality</p>\n"
      },
      {
        "cFunctionName": "git_oid_ncmp",
        "args": [
          {
            "name": "a",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isSelf": true,
            "comment": "first oid structure."
          },
          {
            "name": "b",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "second oid structure."
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the number of hex chars to compare"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "ncmp",
        "cppFunctionName": "Ncmp",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 in case of a match",
          "jsClassName": "Number"
        },
        "description": "<p>Compare the first &#39;len&#39; hexadecimal characters (packets of 4 bits)\nof two oid structures.</p>\n"
      },
      {
        "cFunctionName": "git_oid_streq",
        "args": [
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isSelf": true,
            "comment": "oid structure."
          },
          {
            "name": "str",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "input hex string of an object id."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "streq",
        "cppFunctionName": "Streq",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "GIT_ENOTOID if str is not a valid hex string, 0 in case of a match, GIT_ERROR otherwise.",
          "jsClassName": "Number"
        },
        "description": "<p>Check if an oid equals an hex formatted object id.</p>\n"
      },
      {
        "cFunctionName": "git_oid_iszero",
        "args": [
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "iszero",
        "cppFunctionName": "Iszero",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "1 if all zeros, 0 otherwise.",
          "jsClassName": "Number"
        },
        "description": "<p>Check is an oid is all zeros.</p>\n"
      },
      {
        "cFunctionName": "git_oid_shorten_new",
        "args": [
          {
            "name": "min_length",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "The minimal length for all identifiers, which will be used even if shorter OIDs would still be unique."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "shortenNew",
        "cppFunctionName": "ShortenNew",
        "return": {
          "cType": "git_oid_shorten *",
          "cppClassName": "OidShorten",
          "copy": "fixme",
          "comment": "a `git_oid_shorten` instance, NULL if OOM",
          "jsClassName": "OidShorten"
        },
        "description": "<p>Create a new OID shortener.</p>\n"
      },
      {
        "cFunctionName": "git_oid_shorten_add",
        "args": [
          {
            "name": "os",
            "cType": "git_oid_shorten *",
            "cppClassName": "OidShorten",
            "jsClassName": "OidShorten",
            "comment": "a `git_oid_shorten` instance"
          },
          {
            "name": "text_id",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "an OID in text form"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "shortenAdd",
        "cppFunctionName": "ShortenAdd",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "the minimal length to uniquely identify all OIDs added so far to the set; or an error code (<0) if an error occurs.",
          "jsClassName": "Number"
        },
        "description": "<p>Add a new OID to set of shortened OIDs and calculate\nthe minimal length to uniquely identify all the OIDs in\nthe set.</p>\n"
      },
      {
        "cFunctionName": "git_oid_shorten_free",
        "args": [
          {
            "name": "os",
            "cType": "git_oid_shorten *",
            "cppClassName": "OidShorten",
            "jsClassName": "OidShorten",
            "comment": "a `git_oid_shorten` instance"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "shortenFree",
        "cppFunctionName": "ShortenFree",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Free an OID shortener instance</p>\n"
      }
    ]
  },
  {
    "filename": "pack.h",
    "ignore": true,
    "jsClassName": "Pack",
    "cppClassName": "Pack",
    "cType": "git_pack",
    "freeFunctionName": "git_pack_free",
    "functions": [
      {
        "cFunctionName": "git_packbuilder_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_packbuilder **",
            "cppClassName": "Packbuilder",
            "jsClassName": "Packbuilder",
            "comment": "The new packbuilder object"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "The repository"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitPackbuilderNew",
        "cppFunctionName": "GitPackbuilderNew",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Initialize a new packbuilder</p>\n"
      },
      {
        "cFunctionName": "git_packbuilder_set_threads",
        "args": [
          {
            "name": "pb",
            "cType": "git_packbuilder *",
            "cppClassName": "Packbuilder",
            "jsClassName": "Packbuilder",
            "comment": "The packbuilder"
          },
          {
            "name": "n",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "Number of threads to spawn"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitPackbuilderSetThreads",
        "cppFunctionName": "GitPackbuilderSetThreads",
        "return": {
          "cType": "unsigned int",
          "cppClassName": "Uint32",
          "comment": "number of actual threads to be used",
          "jsClassName": "Number"
        },
        "description": "<p>Set number of threads to spawn</p>\n"
      },
      {
        "cFunctionName": "git_packbuilder_insert",
        "args": [
          {
            "name": "pb",
            "cType": "git_packbuilder *",
            "cppClassName": "Packbuilder",
            "jsClassName": "Packbuilder",
            "comment": "The packbuilder"
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "The oid of the commit"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The name; might be NULL"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitPackbuilderInsert",
        "cppFunctionName": "GitPackbuilderInsert",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Insert a single object</p>\n"
      },
      {
        "cFunctionName": "git_packbuilder_insert_tree",
        "args": [
          {
            "name": "pb",
            "cType": "git_packbuilder *",
            "cppClassName": "Packbuilder",
            "jsClassName": "Packbuilder",
            "comment": "The packbuilder"
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "The oid of the root tree"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitPackbuilderInsertTree",
        "cppFunctionName": "GitPackbuilderInsertTree",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Insert a root tree object</p>\n"
      },
      {
        "cFunctionName": "git_packbuilder_write",
        "args": [
          {
            "name": "pb",
            "cType": "git_packbuilder *",
            "cppClassName": "Packbuilder",
            "jsClassName": "Packbuilder",
            "comment": "The packbuilder"
          },
          {
            "name": "file",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitPackbuilderWrite",
        "cppFunctionName": "GitPackbuilderWrite",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Write the new pack and corresponding index file to path.</p>\n"
      },
      {
        "cFunctionName": "git_packbuilder_foreach",
        "args": [
          {
            "name": "pb",
            "cType": "git_packbuilder *",
            "cppClassName": "Packbuilder",
            "jsClassName": "Packbuilder",
            "comment": "the packbuilder"
          },
          {
            "name": "cb",
            "cType": "git_packbuilder_foreach_cb",
            "cppClassName": "PackbuilderForeachCb",
            "jsClassName": "PackbuilderForeachCb",
            "comment": "the callback to call with each packed object's buffer"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "the callback's data"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitPackbuilderForeach",
        "cppFunctionName": "GitPackbuilderForeach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create the new pack and pass each object to the callback</p>\n"
      },
      {
        "cFunctionName": "git_packbuilder_object_count",
        "args": [
          {
            "name": "pb",
            "cType": "git_packbuilder *",
            "cppClassName": "Packbuilder",
            "jsClassName": "Packbuilder",
            "comment": "the packbuilder"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitPackbuilderObjectCount",
        "cppFunctionName": "GitPackbuilderObjectCount",
        "return": {
          "cType": "uint32_t",
          "cppClassName": "Uint32",
          "jsClassName": "Number"
        },
        "description": "<p>Get the total number of objects the packbuilder will write out</p>\n"
      },
      {
        "cFunctionName": "git_packbuilder_written",
        "args": [
          {
            "name": "pb",
            "cType": "git_packbuilder *",
            "cppClassName": "Packbuilder",
            "jsClassName": "Packbuilder",
            "comment": "the packbuilder"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitPackbuilderWritten",
        "cppFunctionName": "GitPackbuilderWritten",
        "return": {
          "cType": "uint32_t",
          "cppClassName": "Uint32",
          "jsClassName": "Number"
        },
        "description": "<p>Get the number of objects the packbuilder has already written out</p>\n"
      },
      {
        "cFunctionName": "git_packbuilder_free",
        "args": [
          {
            "name": "pb",
            "cType": "git_packbuilder *",
            "cppClassName": "Packbuilder",
            "jsClassName": "Packbuilder",
            "comment": "The packbuilder"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "gitPackbuilderFree",
        "cppFunctionName": "GitPackbuilderFree",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Free the packbuilder and all associated data</p>\n"
      }
    ]
  },
  {
    "filename": "push.h",
    "ignore": true,
    "jsClassName": "Push",
    "cppClassName": "Push",
    "cType": "git_push",
    "freeFunctionName": "git_push_free",
    "functions": [
      {
        "cFunctionName": "git_push_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_push **",
            "cppClassName": "Push",
            "jsClassName": "Push",
            "comment": "New push object"
          },
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "comment": "Remote instance"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "new",
        "cppFunctionName": "New",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new push object</p>\n"
      },
      {
        "cFunctionName": "git_push_set_options",
        "args": [
          {
            "name": "push",
            "cType": "git_push *",
            "cppClassName": "Push",
            "jsClassName": "Push",
            "isSelf": true,
            "comment": "The push object"
          },
          {
            "name": "opts",
            "cType": "const git_push_options *",
            "cppClassName": "PushOptions",
            "jsClassName": "PushOptions",
            "comment": "The options to set on the push object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setOptions",
        "cppFunctionName": "SetOptions",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Set options on a push object</p>\n"
      },
      {
        "cFunctionName": "git_push_add_refspec",
        "args": [
          {
            "name": "push",
            "cType": "git_push *",
            "cppClassName": "Push",
            "jsClassName": "Push",
            "isSelf": true,
            "comment": "The push object"
          },
          {
            "name": "refspec",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Refspec string"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addRefspec",
        "cppFunctionName": "AddRefspec",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Add a refspec to be pushed</p>\n"
      },
      {
        "cFunctionName": "git_push_update_tips",
        "args": [
          {
            "name": "push",
            "cType": "git_push *",
            "cppClassName": "Push",
            "jsClassName": "Push",
            "isSelf": true,
            "comment": "The push object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "updateTips",
        "cppFunctionName": "UpdateTips",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Update remote tips after a push</p>\n"
      },
      {
        "cFunctionName": "git_push_finish",
        "args": [
          {
            "name": "push",
            "cType": "git_push *",
            "cppClassName": "Push",
            "jsClassName": "Push",
            "isSelf": true,
            "comment": "The push object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "finish",
        "cppFunctionName": "Finish",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Actually push all given refspecs</p>\n"
      },
      {
        "cFunctionName": "git_push_unpack_ok",
        "args": [
          {
            "name": "push",
            "cType": "git_push *",
            "cppClassName": "Push",
            "jsClassName": "Push",
            "isSelf": true,
            "comment": "The push object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "unpackOk",
        "cppFunctionName": "UnpackOk",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "true if equal, false otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Check if remote side successfully unpacked</p>\n"
      },
      {
        "cFunctionName": "git_push_status_foreach",
        "args": [
          {
            "name": "push",
            "cType": "git_push *",
            "cppClassName": "Push",
            "jsClassName": "Push",
            "isSelf": true,
            "comment": "The push object"
          },
          {
            "name": "cb",
            "cType": "int (*)(const char *ref, const char *msg, void *data)",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "The callback to call on each object"
          },
          {
            "name": "data",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "statusForeach",
        "cppFunctionName": "StatusForeach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUSER on non-zero callback, or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Call callback `cb&#39; on each status</p>\n"
      },
      {
        "cFunctionName": "git_push_free",
        "args": [
          {
            "name": "push",
            "cType": "git_push *",
            "cppClassName": "Push",
            "jsClassName": "Push",
            "comment": "The push object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Free the given push object</p>\n"
      }
    ]
  },
  {
    "filename": "refdb.h",
    "jsClassName": "RefDb",
    "cppClassName": "GitRefDb",
    "cType": "git_refdb",
    "note": "this should be git_refdb_free, but it's not available",
    "freeFunctionName": "free",
    "functions": [
      {
        "cFunctionName": "git_reference__alloc",
        "args": [
          {
            "name": "refdb",
            "cType": "git_refdb *",
            "cppClassName": "GitRefDb",
            "jsClassName": "RefDb",
            "isSelf": true
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "oid",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "symbolic",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "gitReference_Alloc",
        "cppFunctionName": "GitReference_Alloc",
        "return": {
          "cType": "git_reference *",
          "cppClassName": "GitReference",
          "copy": "fixme",
          "comment": "the created git_reference or NULL on error",
          "jsClassName": "Reference"
        },
        "description": "<p>Create a new direct reference from an OID.</p>\n"
      },
      {
        "cFunctionName": "git_refdb_compress",
        "args": [
          {
            "name": "refdb",
            "cType": "git_refdb *",
            "cppClassName": "GitRefDb",
            "jsClassName": "RefDb",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "compress",
        "cppFunctionName": "Compress",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Suggests that the given refdb compress or optimize its references.\nThis mechanism is implementation specific.  For on-disk reference\ndatabases, for example, this may pack all loose references.</p>\n"
      },
      {
        "cFunctionName": "git_refdb_free",
        "args": [
          {
            "name": "refdb",
            "cType": "git_refdb *",
            "cppClassName": "GitRefDb",
            "jsClassName": "RefDb",
            "comment": "reference database pointer or NULL"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Close an open reference database.</p>\n"
      },
      {
        "cFunctionName": "git_refdb_set_backend",
        "args": [
          {
            "name": "refdb",
            "cType": "git_refdb *",
            "cppClassName": "GitRefDb",
            "jsClassName": "RefDb",
            "isSelf": true,
            "comment": "database to add the backend to"
          },
          {
            "name": "backend",
            "cType": "git_refdb_backend *",
            "cppClassName": "RefdbBackend",
            "jsClassName": "RefdbBackend",
            "comment": "pointer to a git_refdb_backend instance"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setBackend",
        "cppFunctionName": "SetBackend",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success; error code otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Sets the custom backend to an existing reference DB</p>\n"
      }
    ]
  },
  {
    "filename": "refdb_backend.h",
    "ignore": true,
    "jsClassName": "RefdbBackend",
    "cppClassName": "RefdbBackend",
    "cType": "git_refdb_backend",
    "freeFunctionName": "git_refdb_backend_free",
    "functions": []
  },
  {
    "filename": "reflog.h",
    "ignore": true,
    "jsClassName": "Reflog",
    "cppClassName": "Reflog",
    "cType": "git_reflog",
    "freeFunctionName": "git_reflog_free",
    "functions": [
      {
        "cFunctionName": "git_reflog_read",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reflog **",
            "cppClassName": "Reflog",
            "jsClassName": "Reflog",
            "comment": "pointer to reflog"
          },
          {
            "name": "ref",
            "cType": "const git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "reference to read the reflog for"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "read",
        "cppFunctionName": "Read",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Read the reflog for the given reference</p>\n"
      },
      {
        "cFunctionName": "git_reflog_write",
        "args": [
          {
            "name": "reflog",
            "cType": "git_reflog *",
            "cppClassName": "Reflog",
            "jsClassName": "Reflog",
            "isSelf": true,
            "comment": "an existing reflog object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "write",
        "cppFunctionName": "Write",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Write an existing in-memory reflog object back to disk\nusing an atomic file lock.</p>\n"
      },
      {
        "cFunctionName": "git_reflog_append",
        "args": [
          {
            "name": "reflog",
            "cType": "git_reflog *",
            "cppClassName": "Reflog",
            "jsClassName": "Reflog",
            "isSelf": true,
            "comment": "an existing reflog object"
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "the OID the reference is now pointing to"
          },
          {
            "name": "committer",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature",
            "comment": "the signature of the committer"
          },
          {
            "name": "msg",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the reflog message"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "append",
        "cppFunctionName": "Append",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Add a new entry to the reflog.</p>\n"
      },
      {
        "cFunctionName": "git_reflog_rename",
        "args": [
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "the reference"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the new name of the reference"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "rename",
        "cppFunctionName": "Rename",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EINVALIDSPEC or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Rename the reflog for the given reference</p>\n"
      },
      {
        "cFunctionName": "git_reflog_delete",
        "args": [
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "the reference"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "delete",
        "cppFunctionName": "Delete",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Delete the reflog for the given reference</p>\n"
      },
      {
        "cFunctionName": "git_reflog_entrycount",
        "args": [
          {
            "name": "reflog",
            "cType": "git_reflog *",
            "cppClassName": "Reflog",
            "jsClassName": "Reflog",
            "isSelf": true,
            "comment": "the previously loaded reflog"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "entrycount",
        "cppFunctionName": "Entrycount",
        "return": {
          "cType": "size_t",
          "cppClassName": "Uint32",
          "comment": "the number of log entries",
          "jsClassName": "Number"
        },
        "description": "<p>Get the number of log entries in a reflog</p>\n"
      },
      {
        "cFunctionName": "git_reflog_entry_byindex",
        "args": [
          {
            "name": "reflog",
            "cType": "git_reflog *",
            "cppClassName": "Reflog",
            "jsClassName": "Reflog",
            "isSelf": true,
            "comment": "a previously loaded reflog"
          },
          {
            "name": "idx",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the position of the entry to lookup. Should be greater than or equal to 0 (zero) and less than `git_reflog_entrycount()`."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "entryByindex",
        "cppFunctionName": "EntryByindex",
        "return": {
          "cType": "const git_reflog_entry *",
          "cppClassName": "ReflogEntry",
          "copy": "fixme",
          "comment": "the entry; NULL if not found",
          "jsClassName": "ReflogEntry"
        },
        "description": "<p>Lookup an entry by its index</p>\n"
      },
      {
        "cFunctionName": "git_reflog_drop",
        "args": [
          {
            "name": "reflog",
            "cType": "git_reflog *",
            "cppClassName": "Reflog",
            "jsClassName": "Reflog",
            "isSelf": true,
            "comment": "a previously loaded reflog."
          },
          {
            "name": "idx",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the position of the entry to remove. Should be greater than or equal to 0 (zero) and less than `git_reflog_entrycount()`."
          },
          {
            "name": "rewrite_previous_entry",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "1 to rewrite the history; 0 otherwise."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "drop",
        "cppFunctionName": "Drop",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_ENOTFOUND if the entry doesn't exist or an error code.",
          "jsClassName": "Number"
        },
        "description": "<p>Remove an entry from the reflog by its index</p>\n"
      },
      {
        "cFunctionName": "git_reflog_entry_id_old",
        "args": [
          {
            "name": "entry",
            "cType": "const git_reflog_entry *",
            "cppClassName": "ReflogEntry",
            "jsClassName": "ReflogEntry",
            "comment": "a reflog entry"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "entryIdOld",
        "cppFunctionName": "EntryIdOld",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup",
          "comment": "the old oid",
          "jsClassName": "Oid"
        },
        "description": "<p>Get the old oid</p>\n"
      },
      {
        "cFunctionName": "git_reflog_entry_id_new",
        "args": [
          {
            "name": "entry",
            "cType": "const git_reflog_entry *",
            "cppClassName": "ReflogEntry",
            "jsClassName": "ReflogEntry",
            "comment": "a reflog entry"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "entryIdNew",
        "cppFunctionName": "EntryIdNew",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup",
          "comment": "the new oid at this time",
          "jsClassName": "Oid"
        },
        "description": "<p>Get the new oid</p>\n"
      },
      {
        "cFunctionName": "git_reflog_entry_committer",
        "args": [
          {
            "name": "entry",
            "cType": "const git_reflog_entry *",
            "cppClassName": "ReflogEntry",
            "jsClassName": "ReflogEntry",
            "comment": "a reflog entry"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "entryCommitter",
        "cppFunctionName": "EntryCommitter",
        "return": {
          "cType": "const git_signature *",
          "cppClassName": "GitSignature",
          "copy": "git_signature_dup",
          "comment": "the committer",
          "jsClassName": "Signature"
        },
        "description": "<p>Get the committer of this entry</p>\n"
      },
      {
        "cFunctionName": "git_reflog_entry_message",
        "args": [
          {
            "name": "entry",
            "cType": "const git_reflog_entry *",
            "cppClassName": "ReflogEntry",
            "jsClassName": "ReflogEntry",
            "comment": "a reflog entry"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "entryMessage",
        "cppFunctionName": "EntryMessage",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "the log msg",
          "jsClassName": "String"
        },
        "description": "<p>Get the log message</p>\n"
      },
      {
        "cFunctionName": "git_reflog_free",
        "args": [
          {
            "name": "reflog",
            "cType": "git_reflog *",
            "cppClassName": "Reflog",
            "jsClassName": "Reflog",
            "comment": "reflog to free"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Free the reflog</p>\n"
      }
    ]
  },
  {
    "filename": "reference.h",
    "dependencies": [
      "../include/repo.h",
      "../include/oid.h",
      "../include/object.h"
    ],
    "jsClassName": "Reference",
    "cppClassName": "GitReference",
    "cType": "git_reference",
    "freeFunctionName": "git_reference_free",
    "functions": [
      {
        "cFunctionName": "git_reference_name_to_id",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "comment": "Pointer to oid to be filled in"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "The repository in which to look up the reference"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The long name for the reference (e.g. HEAD, refs/heads/master, refs/tags/v0.1.0, ...)"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "oidForName",
        "cppFunctionName": "OidForName",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, ENOTFOUND, EINVALIDSPEC or an error code.",
          "jsClassName": "Number"
        },
        "description": "<p>Lookup a reference by name and resolve immediately to OID.</p>\n"
      },
      {
        "cFunctionName": "git_reference_target",
        "args": [
          {
            "name": "ref",
            "cType": "const git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true,
            "comment": "The reference"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "target",
        "cppFunctionName": "Target",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup",
          "comment": "a pointer to the oid if available, NULL otherwise",
          "jsClassName": "Oid"
        },
        "description": "<p>Get the OID pointed to by a direct reference.</p>\n"
      },
      {
        "cFunctionName": "git_reference_symbolic_target",
        "args": [
          {
            "name": "ref",
            "cType": "const git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true,
            "comment": "The reference"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "symbolicTarget",
        "cppFunctionName": "SymbolicTarget",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "a pointer to the name if available, NULL otherwise",
          "jsClassName": "String"
        },
        "description": "<p>Get full name to the reference pointed to by a symbolic reference.</p>\n"
      },
      {
        "cFunctionName": "git_reference_type",
        "args": [
          {
            "name": "ref",
            "cType": "const git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true,
            "comment": "The reference"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "type",
        "cppFunctionName": "Type",
        "return": {
          "cType": "git_ref_t",
          "cppClassName": "Number",
          "comment": "the type",
          "jsClassName": "Number"
        },
        "description": "<p>Get the type of a reference.</p>\n"
      },
      {
        "cFunctionName": "git_reference_name",
        "args": [
          {
            "name": "ref",
            "cType": "const git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true,
            "comment": "The reference"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "name",
        "cppFunctionName": "Name",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "the full name for the ref",
          "jsClassName": "String"
        },
        "description": "<p>Get the full name of a reference.</p>\n"
      },
      {
        "cFunctionName": "git_reference_resolve",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "Pointer to the peeled reference"
          },
          {
            "name": "ref",
            "cType": "const git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true,
            "comment": "The reference"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "resolve",
        "cppFunctionName": "Resolve",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Resolve a symbolic reference to a direct reference.</p>\n"
      },
      {
        "cFunctionName": "git_reference_owner",
        "args": [
          {
            "name": "ref",
            "cType": "const git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true,
            "comment": "The reference"
          }
        ],
        "ignore": "Never make public for memory allocation reasons",
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "owner",
        "cppFunctionName": "owner",
        "return": {
          "cType": "git_repository *",
          "cppClassName": "GitRepo",
          "comment": "a pointer to the repo",
          "jsClassName": "Repository"
        },
        "description": "<p>Get the repository where a reference resides.</p>\n"
      },
      {
        "cFunctionName": "git_reference_symbolic_set_target",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "Pointer to the newly created reference"
          },
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true,
            "comment": "The reference"
          },
          {
            "name": "target",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The new target for the reference"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setSymbolicTarget",
        "cppFunctionName": "SetSymbolicTarget",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, EINVALIDSPEC or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new reference with the same name as the given reference but a\ndifferent symbolic target. The reference must be a symbolic reference,\notherwise this will fail.</p>\n"
      },
      {
        "cFunctionName": "git_reference_set_target",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "Pointer to the newly created reference"
          },
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true,
            "comment": "The reference"
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "The new target OID for the reference"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setTarget",
        "cppFunctionName": "setTarget",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new reference with the same name as the given reference but a\ndifferent OID target. The reference must be a direct reference, otherwise\nthis will fail.</p>\n"
      },
      {
        "cFunctionName": "git_reference_rename",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          },
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true,
            "comment": "The reference to rename"
          },
          {
            "name": "new_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The new name for the reference"
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Overwrite an existing reference"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "rename",
        "cppFunctionName": "Rename",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, EINVALIDSPEC, EEXISTS or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Rename an existing reference.</p>\n"
      },
      {
        "cFunctionName": "git_reference_delete",
        "args": [
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true,
            "comment": "The reference to remove"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "delete",
        "cppFunctionName": "Delete",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Delete an existing reference.</p>\n"
      },
      {
        "cFunctionName": "git_reference_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "Repository where to find the refs"
          },
          {
            "name": "list_flags",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "callback",
            "cType": "git_reference_foreach_cb",
            "cppClassName": "ReferenceForeachCb",
            "jsClassName": "ReferenceForeachCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUSER on non-zero callback, or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Perform a callback on each reference in the repository.</p>\n"
      },
      {
        "cFunctionName": "git_reference_free",
        "args": [
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "git_reference"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "gitReferenceFree",
        "cppFunctionName": "GitReferenceFree",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Free the given reference.</p>\n"
      },
      {
        "cFunctionName": "git_reference_cmp",
        "args": [
          {
            "name": "ref1",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true,
            "comment": "The first git_reference"
          },
          {
            "name": "ref2",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "The second git_reference"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "compare",
        "cppFunctionName": "Compare",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 if the same, else a stable but meaningless ordering.",
          "jsClassName": "Number"
        },
        "description": "<p>Compare two references.</p>\n"
      },
      {
        "cFunctionName": "git_reference_foreach_glob",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "Repository where to find the refs"
          },
          {
            "name": "glob",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Pattern to match (fnmatch-style) against reference name."
          },
          {
            "name": "list_flags",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "callback",
            "cType": "git_reference_foreach_cb",
            "cppClassName": "ReferenceForeachCb",
            "jsClassName": "ReferenceForeachCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreachGlob",
        "cppFunctionName": "ForeachGlob",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUSER on non-zero callback, or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Perform a callback on each reference in the repository whose name\nmatches the given pattern.</p>\n"
      },
      {
        "cFunctionName": "git_reference_has_log",
        "args": [
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true,
            "comment": "A git reference"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "hasLog",
        "cppFunctionName": "HasLog",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 when no reflog can be found, 1 when it exists; otherwise an error code.",
          "jsClassName": "Number"
        },
        "description": "<p>Check if a reflog exists for the specified reference.</p>\n"
      },
      {
        "cFunctionName": "git_reference_is_branch",
        "args": [
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true,
            "comment": "A git reference"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "isBranch",
        "cppFunctionName": "IsBranch",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "1 when the reference lives in the refs/heads namespace; 0 otherwise.",
          "jsClassName": "Number"
        },
        "description": "<p>Check if a reference is a local branch.</p>\n"
      },
      {
        "cFunctionName": "git_reference_is_remote",
        "args": [
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true,
            "comment": "A git reference"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "isRemote",
        "cppFunctionName": "IsRemote",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "1 when the reference lives in the refs/remotes namespace; 0 otherwise.",
          "jsClassName": "Number"
        },
        "description": "<p>Check if a reference is a remote tracking branch</p>\n"
      },
      {
        "cFunctionName": "git_reference_normalize_name",
        "args": [
          {
            "name": "buffer_out",
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "isSelf": true,
            "comment": "User allocated buffer to store normalized name"
          },
          {
            "name": "buffer_size",
            "cType": "size_t",
            "cppClassName": "Integer",
            "jsClassName": "Number",
            "comment": "Size of buffer_out"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Reference name to be checked."
          },
          {
            "name": "flags",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "Flags to constrain name validation rules - see the GIT_REF_FORMAT constants above."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "normalizeName",
        "cppFunctionName": "NormalizeName",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EBUFS if buffer is too small, EINVALIDSPEC or an error code.",
          "jsClassName": "Number"
        },
        "description": "<p>Normalize reference name and check validity.</p>\n"
      },
      {
        "cFunctionName": "git_reference_peel",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_object **",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "comment": "Pointer to the peeled git_object"
          },
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true,
            "comment": "The reference to be processed"
          },
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "The type of the requested object (GIT_OBJ_COMMIT, GIT_OBJ_TAG, GIT_OBJ_TREE, GIT_OBJ_BLOB or GIT_OBJ_ANY)."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "peel",
        "cppFunctionName": "Peel",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EAMBIGUOUS, GIT_ENOTFOUND or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Recursively peel reference until object of the specified type is found.</p>\n"
      },
      {
        "cFunctionName": "git_reference_is_valid_name",
        "args": [
          {
            "name": "refname",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "name to be checked."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "isValidName",
        "cppFunctionName": "IsValidName",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "1 if the reference name is acceptable; 0 if it isn't",
          "jsClassName": "Number"
        },
        "description": "<p>Ensure the reference name is well-formed.</p>\n"
      }
    ]
  },
  {
    "filename": "refspec.h",
    "ignore": true,
    "jsClassName": "Refspec",
    "cppClassName": "Refspec",
    "cType": "git_refspec",
    "freeFunctionName": "git_refspec_free",
    "functions": [
      {
        "cFunctionName": "git_refspec_src",
        "args": [
          {
            "name": "refspec",
            "cType": "const git_refspec *",
            "cppClassName": "Refspec",
            "jsClassName": "Refspec",
            "isSelf": true,
            "comment": "the refspec"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "src",
        "cppFunctionName": "Src",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "the refspec's source specifier",
          "jsClassName": "String"
        },
        "description": "<p>Get the source specifier</p>\n"
      },
      {
        "cFunctionName": "git_refspec_dst",
        "args": [
          {
            "name": "refspec",
            "cType": "const git_refspec *",
            "cppClassName": "Refspec",
            "jsClassName": "Refspec",
            "isSelf": true,
            "comment": "the refspec"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "dst",
        "cppFunctionName": "Dst",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "the refspec's destination specifier",
          "jsClassName": "String"
        },
        "description": "<p>Get the destination specifier</p>\n"
      },
      {
        "cFunctionName": "git_refspec_force",
        "args": [
          {
            "name": "refspec",
            "cType": "const git_refspec *",
            "cppClassName": "Refspec",
            "jsClassName": "Refspec",
            "isSelf": true,
            "comment": "the refspec"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "force",
        "cppFunctionName": "Force",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "1 if force update has been set, 0 otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Get the force update setting</p>\n"
      },
      {
        "cFunctionName": "git_refspec_src_matches",
        "args": [
          {
            "name": "refspec",
            "cType": "const git_refspec *",
            "cppClassName": "Refspec",
            "jsClassName": "Refspec",
            "isSelf": true,
            "comment": "the refspec"
          },
          {
            "name": "refname",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the name of the reference to check"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "srcMatches",
        "cppFunctionName": "SrcMatches",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "1 if the refspec matches, 0 otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Check if a refspec&#39;s source descriptor matches a reference</p>\n"
      },
      {
        "cFunctionName": "git_refspec_dst_matches",
        "args": [
          {
            "name": "refspec",
            "cType": "const git_refspec *",
            "cppClassName": "Refspec",
            "jsClassName": "Refspec",
            "isSelf": true,
            "comment": "the refspec"
          },
          {
            "name": "refname",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the name of the reference to check"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "dstMatches",
        "cppFunctionName": "DstMatches",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "1 if the refspec matches, 0 otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Check if a refspec&#39;s destination descriptor matches a reference</p>\n"
      },
      {
        "cFunctionName": "git_refspec_transform",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "where to store the target name"
          },
          {
            "name": "outlen",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the size of the `out` buffer"
          },
          {
            "name": "spec",
            "cType": "const git_refspec *",
            "cppClassName": "Refspec",
            "jsClassName": "Refspec",
            "comment": "the refspec"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the name of the reference to transform"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "transform",
        "cppFunctionName": "Transform",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0, GIT_EBUFS or another error",
          "jsClassName": "Number"
        },
        "description": "<p>Transform a reference to its target following the refspec&#39;s rules</p>\n"
      },
      {
        "cFunctionName": "git_refspec_rtransform",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "where to store the source reference name"
          },
          {
            "name": "outlen",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the size of the `out` buffer"
          },
          {
            "name": "spec",
            "cType": "const git_refspec *",
            "cppClassName": "Refspec",
            "jsClassName": "Refspec",
            "comment": "the refspec"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the name of the reference to transform"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "rtransform",
        "cppFunctionName": "Rtransform",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0, GIT_EBUFS or another error",
          "jsClassName": "Number"
        },
        "description": "<p>Transform a target reference to its source reference following the refspec&#39;s rules</p>\n"
      }
    ]
  },
  {
    "filename": "remote.h",
    "dependencies": [
      "git2/net.h"
    ],
    "jsClassName": "Remote",
    "cppClassName": "GitRemote",
    "cType": "git_remote",
    "freeFunctionName": "git_remote_free",
    "functions": [
      {
        "cFunctionName": "git_remote_save",
        "args": [
          {
            "name": "remote",
            "cType": "const git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote to save to config"
          }
        ],
        "ignore": "called automatically by git_remote_create",
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "save",
        "cppFunctionName": "Save",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0, GIT_EINVALIDSPEC or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Save a remote to its repository&#39;s configuration</p>\n"
      },
      {
        "cFunctionName": "git_remote_name",
        "args": [
          {
            "name": "remote",
            "cType": "const git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "name",
        "cppFunctionName": "Name",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "a pointer to the name or NULL for in-memory remotes",
          "jsClassName": "String"
        },
        "description": "<p>Get the remote&#39;s name</p>\n"
      },
      {
        "cFunctionName": "git_remote_url",
        "args": [
          {
            "name": "remote",
            "cType": "const git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "url",
        "cppFunctionName": "Url",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "a pointer to the url",
          "jsClassName": "String"
        },
        "description": "<p>Get the remote&#39;s url</p>\n"
      },
      {
        "cFunctionName": "git_remote_pushurl",
        "args": [
          {
            "name": "remote",
            "cType": "const git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "pushUrl",
        "cppFunctionName": "PushUrl",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "a pointer to the url or NULL if no special url for pushing is set",
          "jsClassName": "String"
        },
        "description": "<p>Get the remote&#39;s url for pushing</p>\n"
      },
      {
        "cFunctionName": "git_remote_set_url",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote"
          },
          {
            "name": "url",
            "cType": "const char*",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the url to set"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setUrl",
        "cppFunctionName": "SetUrl",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error value",
          "jsClassName": "Number"
        },
        "description": "<p>Set the remote&#39;s url</p>\n"
      },
      {
        "cFunctionName": "git_remote_set_pushurl",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote"
          },
          {
            "name": "url",
            "cType": "const char*",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the url to set or NULL to clear the pushurl"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setPushUrl",
        "cppFunctionName": "SetPushUrl",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error value",
          "jsClassName": "Number"
        },
        "description": "<p>Set the remote&#39;s url for pushing</p>\n"
      },
      {
        "cFunctionName": "git_remote_set_fetchspec",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          },
          {
            "name": "spec",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setFetchspec",
        "cppFunctionName": "SetFetchspec",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        }
      },
      {
        "cFunctionName": "git_remote_fetchspec",
        "args": [
          {
            "name": "remote",
            "cType": "const git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "fetchspec",
        "cppFunctionName": "Fetchspec",
        "return": {
          "cType": "const git_refspec *",
          "cppClassName": "Refspec",
          "copy": "fixme",
          "jsClassName": "Refspec"
        }
      },
      {
        "cFunctionName": "git_remote_set_pushspec",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          },
          {
            "name": "spec",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setPushspec",
        "cppFunctionName": "SetPushspec",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        }
      },
      {
        "cFunctionName": "git_remote_pushspec",
        "args": [
          {
            "name": "remote",
            "cType": "const git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "pushspec",
        "cppFunctionName": "Pushspec",
        "return": {
          "cType": "const git_refspec *",
          "cppClassName": "Refspec",
          "copy": "fixme",
          "jsClassName": "Refspec"
        }
      },
      {
        "cFunctionName": "git_remote_connect",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote to connect to"
          },
          {
            "name": "direction",
            "cType": "git_direction",
            "cppClassName": "Number",
            "jsClassName": "Number",
            "comment": "GIT_DIRECTION_FETCH if you want to fetch or GIT_DIRECTION_PUSH if you want to push",
            "additionalCast": "(int)"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "connect",
        "cppFunctionName": "Connect",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Open a connection to a remote</p>\n"
      },
      {
        "cFunctionName": "git_remote_ls",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote"
          },
          {
            "name": "list_cb",
            "cType": "git_headlist_cb",
            "cppClassName": "HeadlistCb",
            "jsClassName": "HeadlistCb",
            "comment": "function to call with each ref discovered at the remote"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "additional data to pass to the callback"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "ls",
        "cppFunctionName": "Ls",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Get a list of refs at the remote</p>\n"
      },
      {
        "cFunctionName": "git_remote_download",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote to download from"
          },
          {
            "name": "progress_cb",
            "cType": "git_transfer_progress_callback",
            "cppClassName": "Function",
            "jsClassName": "Function",
            "isOptional": true,
            "comment": "function to call with progress information. Be aware that this is called inline with network and indexing operations, so performance may be affected."
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "isPayload": true,
            "comment": "payload for the progress callback"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "download",
        "cppFunctionName": "Download",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Download the packfile</p>\n"
      },
      {
        "cFunctionName": "git_remote_connected",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "connected",
        "cppFunctionName": "Connected",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Check whether the remote is connected</p>\n"
      },
      {
        "cFunctionName": "git_remote_stop",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "stop",
        "cppFunctionName": "Stop",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Cancel the operation</p>\n"
      },
      {
        "cFunctionName": "git_remote_disconnect",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote to disconnect from"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "disconnect",
        "cppFunctionName": "Disconnect",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Disconnect from the remote</p>\n"
      },
      {
        "cFunctionName": "git_remote_free",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "comment": "the remote to free"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Free the memory associated with a remote</p>\n"
      },
      {
        "cFunctionName": "git_remote_update_tips",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote to update"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "updateTips",
        "cppFunctionName": "UpdateTips",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Update the tips to the new state</p>\n"
      },
      {
        "cFunctionName": "git_remote_valid_url",
        "args": [
          {
            "name": "url",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the url to check"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "validUrl",
        "cppFunctionName": "ValidUrl",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Return whether a string is a valid remote URL</p>\n"
      },
      {
        "cFunctionName": "git_remote_supported_url",
        "args": [
          {
            "name": "url",
            "cType": "const char*",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the url to check"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "supportedUrl",
        "cppFunctionName": "SupportedUrl",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Return whether the passed URL is supported by this version of the library.</p>\n"
      },
      {
        "cFunctionName": "git_remote_check_cert",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote to configure"
          },
          {
            "name": "check",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "whether to check the server's certificate (defaults to yes)"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "checkCert",
        "cppFunctionName": "CheckCert",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Choose whether to check the server&#39;s certificate (applies to HTTPS only)</p>\n"
      },
      {
        "cFunctionName": "git_remote_set_cred_acquire_cb",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote to configure"
          },
          {
            "name": "cred_acquire_cb",
            "cType": "git_cred_acquire_cb",
            "cppClassName": "CredAcquireCb",
            "jsClassName": "CredAcquireCb",
            "comment": "The credentials acquisition callback to use (defaults to NULL)"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setCredAcquireCb",
        "cppFunctionName": "SetCredAcquireCb",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Set a credentials acquisition callback for this remote. If the remote is\nnot available for anonymous access, then you must set this callback in order\nto provide credentials to the transport at the time of authentication\nfailure so that retry can be performed.</p>\n"
      },
      {
        "cFunctionName": "git_remote_set_transport",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote to configure"
          },
          {
            "name": "transport",
            "cType": "git_transport *",
            "cppClassName": "Transport",
            "jsClassName": "Transport",
            "comment": "the transport object for the remote to use"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setTransport",
        "cppFunctionName": "SetTransport",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Sets a custom transport for the remote. The caller can use this function\nto bypass the automatic discovery of a transport by URL scheme (i.e.\nhttp://, https://, git://) and supply their own transport to be used\ninstead. After providing the transport to a remote using this function,\nthe transport object belongs exclusively to that remote, and the remote will\nfree it when it is freed with git_remote_free.</p>\n"
      },
      {
        "cFunctionName": "git_remote_set_callbacks",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote to configure"
          },
          {
            "name": "callbacks",
            "cType": "git_remote_callbacks *",
            "cppClassName": "RemoteCallbacks",
            "jsClassName": "RemoteCallbacks",
            "comment": "a pointer to the user's callback settings"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setCallbacks",
        "cppFunctionName": "SetCallbacks",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Set the callbacks for a remote</p>\n"
      },
      {
        "cFunctionName": "git_remote_stats",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "stats",
        "cppFunctionName": "Stats",
        "return": {
          "cType": "const git_transfer_progress *",
          "cppClassName": "TransferProgress",
          "jsClassName": "TransferProgress"
        },
        "description": "<p>Get the statistics structure that is filled in by the fetch operation.</p>\n"
      },
      {
        "cFunctionName": "git_remote_autotag",
        "args": [],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "autotag",
        "cppFunctionName": "Autotag",
        "return": {
          "cType": "GIT_EXTERN(",
          "cppClassName": "GIT_EXTERN("
        },
        "description": "<p>Retrieve the tag auto-follow setting</p>\n"
      },
      {
        "cFunctionName": "git_remote_set_autotag",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote to configure"
          },
          {
            "name": "value",
            "cType": "git_remote_autotag_option_t",
            "cppClassName": "RemoteAutotagOptionT",
            "jsClassName": "RemoteAutotagOptionT",
            "comment": "a GIT_REMOTE_DOWNLOAD_TAGS value"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setAutotag",
        "cppFunctionName": "SetAutotag",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Set the tag auto-follow setting</p>\n"
      },
      {
        "cFunctionName": "git_remote_rename",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote to rename"
          },
          {
            "name": "new_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the new name the remote should bear"
          },
          {
            "name": "callback",
            "cType": "git_remote_rename_problem_cb",
            "cppClassName": "RemoteRenameProblemCb",
            "jsClassName": "RemoteRenameProblemCb",
            "comment": "Optional callback to notify the consumer of fetch refspecs that haven't been automatically updated and need potential manual tweaking."
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "Additional data to pass to the callback"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "rename",
        "cppFunctionName": "Rename",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Give the remote a new name</p>\n"
      },
      {
        "cFunctionName": "git_remote_update_fetchhead",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote to query"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "updateFetchhead",
        "cppFunctionName": "UpdateFetchhead",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Retrieve the update FETCH_HEAD setting.</p>\n"
      },
      {
        "cFunctionName": "git_remote_set_update_fetchhead",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true,
            "comment": "the remote to configure"
          },
          {
            "name": "value",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "0 to disable updating FETCH_HEAD"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setUpdateFetchhead",
        "cppFunctionName": "SetUpdateFetchhead",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Sets the update FETCH_HEAD setting.  By default, FETCH_HEAD will be\nupdated on every fetch.  Set to 0 to disable.</p>\n"
      },
      {
        "cFunctionName": "git_remote_is_valid_name",
        "args": [
          {
            "name": "remote_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "name to be checked."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "isValidName",
        "cppFunctionName": "IsValidName",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Ensure the remote name is well-formed.</p>\n"
      }
    ]
  },
  {
    "filename": "repository.h",
    "dependencies": [
      "../include/oid.h",
      "../include/commit.h",
      "../include/blob.h",
      "../include/object.h",
      "../include/reference.h",
      "../include/submodule.h",
      "../include/refdb.h",
      "../include/revwalk.h",
      "../include/tag.h",
      "../include/signature.h",
      "../include/tree.h",
      "../include/odb.h",
      "../include/index.h",
      "../include/remote.h",
      "../include/clone_options.h",
      "node_buffer.h"
    ],
    "jsClassName": "Repo",
    "cppClassName": "GitRepo",
    "cType": "git_repository",
    "freeFunctionName": "git_repository_free",
    "functions": [
      {
        "cFunctionName": "git_repository_open",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_repository **",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "pointer to the repo which will be opened"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the path to the repository"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "open",
        "cppFunctionName": "Open",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Open a git repository.</p>\n"
      },
      {
        "cFunctionName": "git_repository_wrap_odb",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_repository **",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "pointer to the repo"
          },
          {
            "name": "odb",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "comment": "the object database to wrap"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "wrapOdb",
        "cppFunctionName": "WrapOdb",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create a &quot;fake&quot; repository to wrap an object database</p>\n"
      },
      {
        "cFunctionName": "git_repository_discover",
        "args": [
          {
            "name": "path_out",
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The user allocated buffer which will contain the found path."
          },
          {
            "name": "path_size",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "repository_path size"
          },
          {
            "name": "start_path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The base path where the lookup starts."
          },
          {
            "name": "across_fs",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "If true, then the lookup will not stop when a filesystem device change is detected while exploring parent directories."
          },
          {
            "name": "ceiling_dirs",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "A GIT_PATH_LIST_SEPARATOR separated list of absolute symbolic link free paths. The lookup will stop when any of this paths is reached. Note that the lookup always performs on start_path no matter start_path appears in ceiling_dirs ceiling_dirs might be NULL (which is equivalent to an empty string)"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "discover",
        "cppFunctionName": "Discover",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Look for a git repository and copy its path in the given buffer.\nThe lookup start from base_path and walk across parent directories\nif nothing has been found. The lookup ends when the first repository\nis found, or when reaching a directory referenced in ceiling_dirs\nor when the filesystem changes (in case across_fs is true).</p>\n"
      },
      {
        "cFunctionName": "git_repository_open_ext",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_repository **",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "Pointer to the repo which will be opened. This can actually be NULL if you only want to use the error code to see if a repo at this path could be opened."
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Path to open as git repository. If the flags permit \"searching\", then this can be a path to a subdirectory inside the working directory of the repository."
          },
          {
            "name": "flags",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "A combination of the GIT_REPOSITORY_OPEN flags above."
          },
          {
            "name": "ceiling_dirs",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "A GIT_PATH_LIST_SEPARATOR delimited list of path prefixes at which the search for a containing repository should terminate."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "openExt",
        "cppFunctionName": "OpenExt",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_ENOTFOUND if no repository could be found, or -1 if there was a repository but open failed for some reason (such as repo corruption or system errors).",
          "jsClassName": "Number"
        },
        "description": "<p>Find and open a repository with extended controls.</p>\n"
      },
      {
        "cFunctionName": "git_repository_free",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "repository handle to close. If NULL nothing occurs."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Free a previously allocated repository</p>\n"
      },
      {
        "cFunctionName": "git_repository_init",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_repository **",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "pointer to the repo which will be created or reinitialized"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the path to the repository"
          },
          {
            "name": "is_bare",
            "cType": "unsigned",
            "cppClassName": "Boolean",
            "jsClassName": "Boolean",
            "comment": "if true, a Git repository without a working directory is created at the pointed path. If false, provided path will be considered as the working directory into which the .git directory will be created."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "init",
        "cppFunctionName": "Init",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Creates a new Git repository in the given folder.</p>\n"
      },
      {
        "cFunctionName": "git_repository_init_ext",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_repository **",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "Pointer to the repo which will be created or reinitialized."
          },
          {
            "name": "repo_path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The path to the repository."
          },
          {
            "name": "opts",
            "cType": "git_repository_init_options *",
            "cppClassName": "RepositoryInitOptions",
            "jsClassName": "RepositoryInitOptions",
            "comment": "Pointer to git_repository_init_options struct."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "initExt",
        "cppFunctionName": "InitExt",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code on failure.",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new Git repository in the given folder with extended controls.</p>\n"
      },
      {
        "cFunctionName": "git_repository_head",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "pointer to the reference which will be retrieved"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "a repository object"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "head",
        "cppFunctionName": "Head",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EORPHANEDHEAD when HEAD points to a non existing branch, GIT_ENOTFOUND when HEAD is missing; an error code otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Retrieve and resolve the reference pointed at by HEAD.</p>\n"
      },
      {
        "cFunctionName": "git_repository_head_detached",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "Repo to test"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "headDetached",
        "cppFunctionName": "HeadDetached",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "1 if HEAD is detached, 0 if it's not; error code if there was an error.",
          "jsClassName": "Number"
        },
        "description": "<p>Check if a repository&#39;s HEAD is detached</p>\n"
      },
      {
        "cFunctionName": "git_repository_head_orphan",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "Repo to test"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "headOrphan",
        "cppFunctionName": "HeadOrphan",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "1 if the current branch is an orphan, 0 if it's not; error code if there was an error",
          "jsClassName": "Number"
        },
        "description": "<p>Check if the current branch is an orphan</p>\n"
      },
      {
        "cFunctionName": "git_repository_is_empty",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "Repo to test"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "isEmpty",
        "cppFunctionName": "IsEmpty",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "1 if the repository is empty, 0 if it isn't, error code if the repository is corrupted",
          "jsClassName": "Number"
        },
        "description": "<p>Check if a repository is empty</p>\n"
      },
      {
        "cFunctionName": "git_repository_path",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "A repository object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "path",
        "cppFunctionName": "Path",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "the path to the repository",
          "jsClassName": "String"
        },
        "description": "<p>Get the path of this repository</p>\n"
      },
      {
        "cFunctionName": "git_repository_workdir",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "A repository object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "workdir",
        "cppFunctionName": "Workdir",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "the path to the working dir, if it exists",
          "jsClassName": "String"
        },
        "description": "<p>Get the path of the working directory for this repository</p>\n"
      },
      {
        "cFunctionName": "git_repository_set_workdir",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "A repository object"
          },
          {
            "name": "workdir",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The path to a working directory"
          },
          {
            "name": "update_gitlink",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Create/update gitlink in workdir and set config \"core.worktree\" (if workdir is not the parent of the .git directory)"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setWorkdir",
        "cppFunctionName": "SetWorkdir",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0, or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Set the path to the working directory for this repository</p>\n"
      },
      {
        "cFunctionName": "git_repository_is_bare",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "Repo to test"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "isBare",
        "cppFunctionName": "IsBare",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "1 if the repository is bare, 0 otherwise.",
          "jsClassName": "Number"
        },
        "description": "<p>Check if a repository is bare</p>\n"
      },
      {
        "cFunctionName": "git_repository_config",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_config **",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "comment": "Pointer to store the loaded config file"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "A repository object"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "config",
        "cppFunctionName": "Config",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0, or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Get the configuration file for this repository.</p>\n"
      },
      {
        "cFunctionName": "git_repository_set_config",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "A repository object"
          },
          {
            "name": "config",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "comment": "A Config object"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setConfig",
        "cppFunctionName": "SetConfig",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Set the configuration file for this repository</p>\n"
      },
      {
        "cFunctionName": "git_repository_odb",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_odb **",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "comment": "Pointer to store the loaded ODB"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "A repository object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "odb",
        "cppFunctionName": "Odb",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0, or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Get the Object Database for this repository.</p>\n"
      },
      {
        "cFunctionName": "git_repository_set_odb",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "A repository object"
          },
          {
            "name": "odb",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "comment": "An ODB object"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setOdb",
        "cppFunctionName": "SetOdb",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Set the Object Database for this repository</p>\n"
      },
      {
        "cFunctionName": "git_repository_refdb",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_refdb **",
            "cppClassName": "GitRefDb",
            "jsClassName": "RefDb",
            "comment": "Pointer to store the loaded refdb"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "A repository object"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "refdb",
        "cppFunctionName": "Refdb",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0, or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Get the Reference Database Backend for this repository.</p>\n"
      },
      {
        "cFunctionName": "git_repository_set_refdb",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "A repository object"
          },
          {
            "name": "refdb",
            "cType": "git_refdb *",
            "cppClassName": "GitRefDb",
            "jsClassName": "RefDb",
            "comment": "An refdb object"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setRefdb",
        "cppFunctionName": "SetRefdb",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Set the Reference Database Backend for this repository</p>\n"
      },
      {
        "cFunctionName": "git_repository_index",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_index **",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "comment": "Pointer to store the loaded index"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "A repository object"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "openIndex",
        "cppFunctionName": "openIndex",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0, or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Get the Index file for this repository.</p>\n"
      },
      {
        "cFunctionName": "git_repository_set_index",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "A repository object"
          },
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "comment": "An index object"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setIndex",
        "cppFunctionName": "SetIndex",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Set the index file for this repository</p>\n"
      },
      {
        "cFunctionName": "git_repository_message",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Buffer to write data into or NULL to just read required size"
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "Length of `out` buffer in bytes"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "Repository to read prepared message from"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "message",
        "cppFunctionName": "Message",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "GIT_ENOUTFOUND if no message exists, other value < 0 for other errors, or total bytes in message (may be > `len`) on success",
          "jsClassName": "Number"
        },
        "description": "<p>Retrieve git&#39;s prepared message</p>\n"
      },
      {
        "cFunctionName": "git_repository_message_remove",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "messageRemove",
        "cppFunctionName": "MessageRemove",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Remove git&#39;s prepared message.</p>\n"
      },
      {
        "cFunctionName": "git_repository_merge_cleanup",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "A repository object"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "mergeCleanup",
        "cppFunctionName": "MergeCleanup",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, or error",
          "jsClassName": "Number"
        },
        "description": "<p>Remove all the metadata associated with an ongoing git merge, including\nMERGE_HEAD, MERGE_MSG, etc.</p>\n"
      },
      {
        "cFunctionName": "git_repository_fetchhead_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "A repository object"
          },
          {
            "name": "callback",
            "cType": "git_repository_fetchhead_foreach_cb",
            "cppClassName": "RepositoryFetchheadForeachCb",
            "jsClassName": "RepositoryFetchheadForeachCb",
            "comment": "Callback function"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "Pointer to callback data (optional)"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "fetchheadForeach",
        "cppFunctionName": "FetchheadForeach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_ENOTFOUND, GIT_EUSER or error",
          "jsClassName": "Number"
        },
        "description": "<p>Call callback &#39;callback&#39; for each entry in the given FETCH_HEAD file.</p>\n"
      },
      {
        "cFunctionName": "git_repository_mergehead_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "A repository object"
          },
          {
            "name": "callback",
            "cType": "git_repository_mergehead_foreach_cb",
            "cppClassName": "RepositoryMergeheadForeachCb",
            "jsClassName": "RepositoryMergeheadForeachCb",
            "comment": "Callback function"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "Pointer to callback data (optional)"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "mergeheadForeach",
        "cppFunctionName": "MergeheadForeach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_ENOTFOUND, GIT_EUSER or error",
          "jsClassName": "Number"
        },
        "description": "<p>If a merge is in progress, call callback &#39;cb&#39; for each commit ID in the\nMERGE_HEAD file.</p>\n"
      },
      {
        "cFunctionName": "git_repository_hashfile",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "comment": "Output value of calculated SHA"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "Repository pointer"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Path to file on disk whose contents should be hashed. If the repository is not NULL, this can be a relative path."
          },
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Int32",
            "jsClassName": "Otype",
            "comment": "The object type to hash as (e.g. GIT_OBJ_BLOB)"
          },
          {
            "name": "as_path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The path to use to look up filtering rules. If this is NULL, then the `path` parameter will be used instead. If this is passed as the empty string, then no filters will be applied when calculating the hash."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "hashfile",
        "cppFunctionName": "Hashfile",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Calculate hash of file using repository filtering rules.</p>\n"
      },
      {
        "cFunctionName": "git_repository_set_head",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository*",
            "cppClassName": "Repository*",
            "jsClassName": "Repository*",
            "comment": "Repository pointer"
          },
          {
            "name": "refname",
            "cType": "const char*",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Canonical name of the reference the HEAD should point at"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "setHead",
        "cppFunctionName": "SetHead",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Make the repository HEAD point to the specified reference.</p>\n"
      },
      {
        "cFunctionName": "git_repository_set_head_detached",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository*",
            "cppClassName": "Repository*",
            "jsClassName": "Repository*",
            "comment": "Repository pointer"
          },
          {
            "name": "commitish",
            "cType": "const git_oid*",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Object id of the Commit the HEAD should point to"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "setHeadDetached",
        "cppFunctionName": "SetHeadDetached",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Make the repository HEAD directly point to the Commit.</p>\n"
      },
      {
        "cFunctionName": "git_repository_detach_head",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository*",
            "cppClassName": "Repository*",
            "jsClassName": "Repository*",
            "comment": "Repository pointer"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "detachHead",
        "cppFunctionName": "DetachHead",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EORPHANEDHEAD when HEAD points to a non existing branch or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Detach the HEAD.</p>\n"
      },
      {
        "cFunctionName": "git_repository_state",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "Repository pointer"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "state",
        "cppFunctionName": "State",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "The state of the repository",
          "jsClassName": "Number"
        },
        "description": "<p>Determines the status of a git repository - ie, whether an operation\n(merge, cherry-pick, etc) is in progress.</p>\n"
      },
      {
        "cFunctionName": "git_blob_lookup",
        "args": [
          {
            "name": "blob",
            "cType": "git_blob **",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob",
            "isReturn": true,
            "comment": "pointer to the looked up blob"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "the repo to use when locating the blob."
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "identity of the blob to locate."
          }
        ],
        "isAsync": true,
        "isFree": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getBlob",
        "cppFunctionName": "GetBlob",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Lookup a blob object from a repository.</p>\n"
      },
      {
        "cFunctionName": "git_blob_lookup_prefix",
        "args": [
          {
            "name": "blob",
            "cType": "git_blob **",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob",
            "isReturn": true,
            "comment": "pointer to the looked up blob"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "the repo to use when locating the blob."
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "identity of the blob to locate."
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the length of the short identifier"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getBlobByPrefix",
        "cppFunctionName": "GetBlobByPrefix",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Lookup a blob object from a repository,\ngiven a prefix of its identifier (short id).</p>\n"
      },
      {
        "cFunctionName": "git_commit_lookup",
        "args": [
          {
            "name": "commit",
            "cType": "git_commit **",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isReturn": true,
            "comment": "pointer to the looked up commit"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "the repo to use when locating the commit."
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "identity of the commit to locate. If the object is an annotated tag it will be peeled back to the commit."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getCommit",
        "cppFunctionName": "GetCommit",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Lookup a commit object from a repository.</p>\n"
      },
      {
        "cFunctionName": "git_commit_create",
        "args": [
          {
            "name": "id",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isReturn": true,
            "shouldAlloc": true,
            "comment": "Pointer in which to store the OID of the newly created commit"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "Repository where to store the commit"
          },
          {
            "name": "update_ref",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "isOptional": true,
            "comment": "If not NULL, name of the reference that will be updated to point to this commit. If the reference is not direct, it will be resolved to a direct reference. Use \"HEAD\" to update the HEAD of the current branch and make it point to this commit. If the reference doesn't exist yet, it will be created."
          },
          {
            "name": "author",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature",
            "comment": "Signature with author and author time of commit"
          },
          {
            "name": "committer",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature",
            "comment": "Signature with committer and * commit time of commit"
          },
          {
            "name": "message_encoding",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "isOptional": true,
            "comment": "The encoding for the message in the commit, represented with a standard encoding name. E.g. \"UTF-8\". If NULL, no encoding header is written and UTF-8 is assumed."
          },
          {
            "name": "message",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "_encoding The encoding for the message in the commit, represented with a standard encoding name. E.g. \"UTF-8\". If NULL, no encoding header is written and UTF-8 is assumed."
          },
          {
            "name": "tree",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "comment": "An instance of a `git_tree` object that will be used as the tree for the commit. This tree object must also be owned by the given `repo`."
          },
          {
            "name": "parent_count",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Number of parents for this commit"
          },
          {
            "name": "parents",
            "cType": "const git_commit **",
            "cppClassName": "Array",
            "arrayElementCppClassName": "GitCommit",
            "jsClassName": "Array"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "createCommit",
        "cppFunctionName": "CreateCommit",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code The created commit will be written to the Object Database and the given reference will be updated to point to it",
          "jsClassName": "Number"
        },
        "description": "<p>Create new commit in the repository from a list of <code>git_object</code> pointers</p>\n"
      },
      {
        "cFunctionName": "git_object_lookup",
        "args": [
          {
            "name": "object",
            "cType": "git_object **",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isReturn": true,
            "comment": "pointer to the looked-up object"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "the repository to look up the object"
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "the unique identifier for the object"
          },
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "the type of the object"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getObject",
        "cppFunctionName": "GetObject",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "a reference to the object",
          "jsClassName": "Number"
        },
        "description": "<p>Lookup a reference to one of the objects in a repository.</p>\n"
      },
      {
        "cFunctionName": "git_object_lookup_prefix",
        "args": [
          {
            "name": "object_out",
            "cType": "git_object **",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isReturn": true,
            "comment": "pointer where to store the looked-up object"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "the repository to look up the object"
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "a short identifier for the object"
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the length of the short identifier"
          },
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Number",
            "jsClassName": "Number",
            "comment": "the type of the object"
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getObjectByPrefix",
        "cppFunctionName": "GetObjectByPrefix",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Lookup a reference to one of the objects in a repository,\ngiven a prefix of its identifier (short id).</p>\n"
      },
      {
        "cFunctionName": "git_refdb_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_refdb **",
            "cppClassName": "GitRefDb",
            "jsClassName": "RefDb",
            "comment": "location to store the database pointer, if opened. Set to NULL if the open failed."
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "the repository"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "newRefDbWithoutBackends",
        "cppFunctionName": "NewRefDbWithoutBackends",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new reference database with no backends.</p>\n"
      },
      {
        "cFunctionName": "git_refdb_open",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_refdb **",
            "cppClassName": "GitRefDb",
            "jsClassName": "RefDb",
            "comment": "location to store the database pointer, if opened. Set to NULL if the open failed."
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "the repository"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "openRefDb",
        "cppFunctionName": "OpenRefDb",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new reference database and automatically add\nthe default backends:</p>\n"
      },
      {
        "cFunctionName": "git_refdb_backend_fs",
        "args": [
          {
            "name": "backend_out",
            "cType": "struct git_refdb_backend **",
            "cppClassName": "RefdbBackend",
            "jsClassName": "RefdbBackend",
            "isReturn": true,
            "comment": "Output pointer to the git_refdb_backend object"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "Git repository to access"
          },
          {
            "name": "refdb",
            "cType": "git_refdb *",
            "cppClassName": "GitRefDb",
            "jsClassName": "RefDb"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "openRefDbBackend",
        "cppFunctionName": "OpenRefDbBackend",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, <0 error code on failure",
          "jsClassName": "Number"
        },
        "description": "<p>Constructors for default filesystem-based refdb backend</p>\n"
      },
      {
        "cFunctionName": "git_reference_lookup",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "pointer to the looked-up reference"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "the repository to look up the reference"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the long name for the reference (e.g. HEAD, refs/heads/master, refs/tags/v0.1.0, ...)"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getReference",
        "cppFunctionName": "GetReference",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, ENOTFOUND, EINVALIDSPEC or an error code.",
          "jsClassName": "Number"
        },
        "description": "<p>Lookup a reference by name in a repository.</p>\n"
      },
      {
        "cFunctionName": "git_reference_symbolic_create",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "Pointer to the newly created reference"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "Repository where that reference will live"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The name of the reference"
          },
          {
            "name": "target",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The target of the reference"
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Overwrite existing references"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "createSymbolicReference",
        "cppFunctionName": "CreateSymbolicReference",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, EEXISTS, EINVALIDSPEC or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new symbolic reference.</p>\n"
      },
      {
        "cFunctionName": "git_reference_create",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "comment": "Pointer to the newly created reference"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "Repository where that reference will live"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The name of the reference"
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "The object id pointed to by the reference."
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Overwrite existing references"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "createReference",
        "cppFunctionName": "CreateReference",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, EEXISTS, EINVALIDSPEC or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new direct reference.</p>\n"
      },
      {
        "cFunctionName": "git_remote_create",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_remote **",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "comment": "the resulting remote"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "the repository in which to create the remote"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the remote's name"
          },
          {
            "name": "url",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the remote's url"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addRemote",
        "cppFunctionName": "AddRemote",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0, GIT_EINVALIDSPEC, GIT_EEXISTS or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Add a remote with the default fetch refspec to the repository&#39;s configuration.  This\ncalls git_remote_save before returning.</p>\n"
      },
      {
        "cFunctionName": "git_remote_create_inmemory",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_remote **",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "comment": "pointer to the new remote object"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "the associated repository"
          },
          {
            "name": "fetch",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the fetch refspec to use for this remote. May be NULL for defaults."
          },
          {
            "name": "url",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the remote repository's URL"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addRemoteInMemory",
        "cppFunctionName": "AddRemoteInMemory",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create a remote in memory</p>\n"
      },
      {
        "cFunctionName": "git_revwalk_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_revwalk **",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "comment": "pointer to the new revision walker"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "the repo to walk through"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "createRevWalk",
        "cppFunctionName": "CreateRevWalk",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Allocate a new revision walker to iterate through a repo.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_lookup",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule **",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isReturn": true,
            "comment": "Pointer to submodule description object pointer.."
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "The repository."
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The name of the submodule. Trailing slashes will be ignored."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getSubmodule",
        "cppFunctionName": "GetSubmodule",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_ENOTFOUND if submodule does not exist, GIT_EEXISTS if submodule exists in working directory only, -1 on other errors.",
          "jsClassName": "Number"
        },
        "description": "<p>Lookup submodule information by name or path.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_add_setup",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule **",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isReturn": true,
            "comment": "The newly created submodule ready to open for clone"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "Superproject repository to contain the new submodule"
          },
          {
            "name": "url",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "URL for the submodules remote"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Path at which the submodule should be created"
          },
          {
            "name": "use_gitlink",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Should workdir contain a gitlink to the repo in .git/modules vs. repo directly in workdir."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addSubmodule",
        "cppFunctionName": "AddSubmodule",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EEXISTS if submodule already exists, -1 on other errors.",
          "jsClassName": "Number"
        },
        "description": "<p>Set up a new git submodule for checkout.</p>\n"
      },
      {
        "cFunctionName": "git_tag_lookup",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_tag **",
            "cppClassName": "GitTag",
            "jsClassName": "Tag",
            "comment": "pointer to the looked up tag"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "the repo to use when locating the tag."
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "identity of the tag to locate."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getTag",
        "cppFunctionName": "GetTag",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Lookup a tag object from the repository.</p>\n"
      },
      {
        "cFunctionName": "git_tag_lookup_prefix",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_tag **",
            "cppClassName": "GitTag",
            "jsClassName": "Tag",
            "comment": "pointer to the looked up tag"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "the repo to use when locating the tag."
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "identity of the tag to locate."
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the length of the short identifier"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getTagByPrefix",
        "cppFunctionName": "GetTagByPrefix",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Lookup a tag object from the repository,\ngiven a prefix of its identifier (short id).</p>\n"
      },
      {
        "cFunctionName": "git_tag_create",
        "args": [
          {
            "name": "oid",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isReturn": true,
            "shouldAlloc": true,
            "comment": "Pointer where to store the OID of the newly created tag. If the tag already exists, this parameter will be the oid of the existing tag, and the function will return a GIT_EEXISTS error code."
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "Repository where to store the tag"
          },
          {
            "name": "tag_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Name for the tag; this name is validated for consistency. It should also not conflict with an already existing tag name"
          },
          {
            "name": "target",
            "cType": "const git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "comment": "Object to which this tag points. This object must belong to the given `repo`."
          },
          {
            "name": "tagger",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature",
            "comment": "Signature of the tagger for this tag, and of the tagging time"
          },
          {
            "name": "message",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Full message for this tag"
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Overwrite existing references"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "createTag",
        "cppFunctionName": "CreateTag",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EINVALIDSPEC or an error code A tag object is written to the ODB, and a proper reference is written in the /refs/tags folder, pointing to it",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new tag in the repository from an object</p>\n"
      },
      {
        "cFunctionName": "git_tag_create_lightweight",
        "args": [
          {
            "name": "oid",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isReturn": true,
            "shouldAlloc": true,
            "comment": "Pointer where to store the OID of the provided target object. If the tag already exists, this parameter will be filled with the oid of the existing pointed object and the function will return a GIT_EEXISTS error code."
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "Repository where to store the lightweight tag"
          },
          {
            "name": "tag_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Name for the tag; this name is validated for consistency. It should also not conflict with an already existing tag name"
          },
          {
            "name": "target",
            "cType": "const git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "comment": "Object to which this tag points. This object must belong to the given `repo`."
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Overwrite existing references"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "createLightweightTag",
        "cppFunctionName": "CreateLightweightTag",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EINVALIDSPEC or an error code A proper reference is written in the /refs/tags folder, pointing to the provided target object",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new lightweight tag pointing at a target object</p>\n"
      },
      {
        "cFunctionName": "git_tree_lookup",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_tree **",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "comment": "Pointer to the looked up tree"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "The repo to use when locating the tree."
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "Identity of the tree to locate."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getTree",
        "cppFunctionName": "GetTree",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Lookup a tree object from the repository.</p>\n"
      },
      {
        "cFunctionName": "git_tree_lookup_prefix",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_tree **",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "comment": "pointer to the looked up tree"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "the repo to use when locating the tree."
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "identity of the tree to locate."
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the length of the short identifier"
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getTreeByPrefix",
        "cppFunctionName": "GetTreeByPrefix",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Lookup a tree object from the repository,\ngiven a prefix of its identifier (short id).</p>\n"
      },
      {
        "cFunctionName": "git_submodule_reload_all",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "reloadSubmodules",
        "cppFunctionName": "ReloadSubmodules",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Reread all submodule info.</p>\n"
      },
      {
        "cFunctionName": "git_tag_delete",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "Repository where lives the tag"
          },
          {
            "name": "tag_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Name of the tag to be deleted; this name is validated for consistency."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "delete",
        "cppFunctionName": "Delete",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EINVALIDSPEC or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Delete an existing tag reference.</p>\n"
      },
      {
        "cFunctionName": "git_tag_list",
        "args": [
          {
            "name": "tag_names",
            "cType": "git_strarray *",
            "cppClassName": "Array",
            "jsClassName": "Array",
            "isReturn": true,
            "comment": "Pointer to a git_strarray structure where the tag names will be stored"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "Repository where to find the tags"
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "listTags",
        "cppFunctionName": "ListTags",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Fill a list with all the tags in the Repository</p>\n"
      },
      {
        "cFunctionName": "git_tag_list_match",
        "args": [
          {
            "name": "tag_names",
            "cType": "git_strarray *",
            "cppClassName": "Strarray",
            "jsClassName": "Strarray",
            "isReturn": true,
            "comment": "Pointer to a git_strarray structure where the tag names will be stored"
          },
          {
            "name": "pattern",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Standard fnmatch pattern"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "Repository where to find the tags"
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "listMatch",
        "cppFunctionName": "ListMatch",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Fill a list with all the tags in the Repository\nwhich name match a defined pattern</p>\n"
      },
      {
        "cFunctionName": "git_tag_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "Repository"
          },
          {
            "name": "callback",
            "cType": "git_tag_foreach_cb",
            "cppClassName": "TagForeachCb",
            "jsClassName": "TagForeachCb",
            "comment": "Callback function"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "Pointer to callback data (optional)"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Call callback `cb&#39; for each tag in the repository</p>\n"
      },
      {
        "cFunctionName": "git_reference_list",
        "args": [
          {
            "name": "array",
            "cType": "git_strarray *",
            "cppClassName": "Array",
            "jsClassName": "Array",
            "freeFunctionName": "git_strarray_free",
            "size": "count",
            "key": "strings",
            "shouldAlloc": true,
            "isReturn": true,
            "comment": "Pointer to a git_strarray structure where the reference names will be stored"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "Repository where to find the refs"
          },
          {
            "name": "list_flags",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "isOptional": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getReferences",
        "cppFunctionName": "GetReferences",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Fill a list with all the references that can be found in a repository.</p>\n"
      },
      {
        "cFunctionName": "git_blob_create_frombuffer",
        "args": [
          {
            "name": "oid",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "isReturn": true,
            "comment": "return the oid of the written blob"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "repository where to blob will be written"
          },
          {
            "name": "buffer",
            "cType": "const void *",
            "cppClassName": "Buffer",
            "jsClassName": "Buffer",
            "comment": "data to be written into the blob"
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Number",
            "jsClassName": "Number",
            "comment": "length of the data"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "createBlobFromBuffer",
        "cppFunctionName": "CreateBlobFromBuffer",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Write an in-memory buffer to the ODB as a blob</p>\n"
      },
      {
        "cFunctionName": "git_blob_create_fromworkdir",
        "args": [
          {
            "name": "id",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "isReturn": true,
            "comment": "return the id of the written blob"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "repository where the blob will be written. this repository cannot be bare"
          },
          {
            "name": "relative_path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "file from which the blob will be created, relative to the repository's working dir"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "createBlobFromWorkdir",
        "cppFunctionName": "CreateBlobFromWorkdir",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Read a file from the working folder of a repository\nand write it to the Object Database as a loose blob</p>\n"
      },
      {
        "cFunctionName": "git_blob_create_fromdisk",
        "args": [
          {
            "name": "id",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "isReturn": true,
            "comment": "return the id of the written blob"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "repository where the blob will be written. this repository can be bare or not"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "file from which the blob will be created"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "createBlobFromFile",
        "cppFunctionName": "CreateBlobFromFile",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Read a file from the filesystem and write its content\nto the Object Database as a loose blob</p>\n"
      },
      {
        "cFunctionName": "git_blob_create_fromchunks",
        "args": [
          {
            "name": "id",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "isReturn": true,
            "comment": "Return the id of the written blob"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "repository where the blob will be written. This repository can be bare or not."
          },
          {
            "name": "hintpath",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "if not NULL, will help selecting the filters to apply onto the content of the blob to be created."
          },
          {
            "name": "callback",
            "cType": "git_blob_chunk_cb",
            "cppClassName": "BlobChunkCb",
            "jsClassName": "BlobChunkCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "createBlobFromChunks",
        "cppFunctionName": "CreateBlobFromChunks",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Write a loose blob to the Object Database from a\nprovider of chunks of data.</p>\n"
      },
      {
        "cFunctionName": "git_remote_list",
        "args": [
          {
            "name": "out",
            "cType": "git_strarray *",
            "cppClassName": "Array",
            "jsClassName": "Array",
            "freeFunctionName": "git_strarray_free",
            "size": "count",
            "key": "strings",
            "shouldAlloc": true,
            "isReturn": true,
            "comment": "a string array which receives the names of the remotes"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "the repository to query"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getRemotes",
        "cppFunctionName": "GetRemotes",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Get a list of the configured remotes for a repo</p>\n"
      },
      {
        "cFunctionName": "git_clone",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_repository **",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "pointer that will receive the resulting repository object"
          },
          {
            "name": "url",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the remote repository to clone"
          },
          {
            "name": "local_path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "local directory to clone to"
          },
          {
            "name": "options",
            "cType": "const git_clone_options *",
            "cppClassName": "GitCloneOptions",
            "jsClassName": "CloneOptions",
            "isOptional": true,
            "comment": "configuration options for the clone. If NULL, the function works as though GIT_OPTIONS_INIT were passed."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "clone",
        "cppFunctionName": "Clone",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_ERROR otherwise (use giterr_last for information about the error)",
          "jsClassName": "Number"
        },
        "description": "<p>Clone a remote repository, and checkout the branch pointed to by the remote\nHEAD.</p>\n"
      },
      {
        "cFunctionName": "git_remote_load",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_remote **",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "comment": "pointer to the new remote object"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true,
            "comment": "the associated repository"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the remote's name"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getRemote",
        "cppFunctionName": "GetRemote",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0, GIT_ENOTFOUND, GIT_EINVALIDSPEC or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Get the information for a particular remote</p>\n"
      }
    ]
  },
  {
    "filename": "reset.h",
    "ignore": true,
    "jsClassName": "Reset",
    "cppClassName": "Reset",
    "cType": "git_reset",
    "freeFunctionName": "git_reset_free",
    "functions": [
      {
        "cFunctionName": "git_reset",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "Repository where to perform the reset operation."
          },
          {
            "name": "target",
            "cType": "git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "comment": "Committish to which the Head should be moved to. This object must belong to the given `repo` and can either be a git_commit or a git_tag. When a git_tag is being passed, it should be dereferencable to a git_commit which oid will be used as the target of the branch."
          },
          {
            "name": "reset_type",
            "cType": "git_reset_t",
            "cppClassName": "ResetT",
            "jsClassName": "ResetT",
            "comment": "Kind of reset operation to perform."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitReset",
        "cppFunctionName": "GitReset",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Sets the current head to the specified commit oid and optionally\nresets the index and working tree to match.</p>\n"
      },
      {
        "cFunctionName": "git_reset_default",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "Repository where to perform the reset operation."
          },
          {
            "name": "target",
            "cType": "git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "comment": "The committish which content will be used to reset the content of the index."
          },
          {
            "name": "pathspecs",
            "cType": "git_strarray*",
            "cppClassName": "Strarray*",
            "jsClassName": "Strarray*",
            "comment": "List of pathspecs to operate on."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "default",
        "cppFunctionName": "Default",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success or an error code < 0",
          "jsClassName": "Number"
        },
        "description": "<p>Updates some entries in the index from the target commit tree.</p>\n"
      }
    ]
  },
  {
    "filename": "revparse.h",
    "ignore": true,
    "jsClassName": "Revparse",
    "cppClassName": "Revparse",
    "cType": "git_revparse",
    "freeFunctionName": "git_revparse_free",
    "functions": [
      {
        "cFunctionName": "git_revparse_single",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_object **",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "comment": "pointer to output object"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "the repository to search in"
          },
          {
            "name": "spec",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the textual specification for an object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "single",
        "cppFunctionName": "Single",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_ENOTFOUND, GIT_EAMBIGUOUS, GIT_EINVALIDSPEC or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Find a single object, as specified by a revision string. See <code>man gitrevisions</code>,\nor http://git-scm.com/docs/git-rev-parse.html#_specifying_revisions for\ninformation on the syntax accepted.</p>\n"
      },
      {
        "cFunctionName": "git_revparse",
        "args": [
          {
            "name": "revspec",
            "cType": "git_revspec *",
            "cppClassName": "Revspec",
            "jsClassName": "Revspec",
            "comment": "Pointer to an user-allocated git_revspec struct where the result of the rev-parse will be stored"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "the repository to search in"
          },
          {
            "name": "spec",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the rev-parse spec to parse"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitRevparse",
        "cppFunctionName": "GitRevparse",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_INVALIDSPEC, GIT_ENOTFOUND, GIT_EAMBIGUOUS or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Parse a revision string for <code>from</code>, <code>to</code>, and intent. See <code>man gitrevisions</code> or\nhttp://git-scm.com/docs/git-rev-parse.html#_specifying_revisions for information\non the syntax accepted.</p>\n"
      }
    ]
  },
  {
    "filename": "revwalk.h",
    "dependencies": [
      "../include/oid.h",
      "../include/repo.h"
    ],
    "jsClassName": "RevWalk",
    "cppClassName": "GitRevWalk",
    "cType": "git_revwalk",
    "freeFunctionName": "git_revwalk_free",
    "functions": [
      {
        "cFunctionName": "git_revwalk_reset",
        "args": [
          {
            "name": "walker",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true,
            "comment": "handle to reset."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "reset",
        "cppFunctionName": "Reset",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Reset the revision walker for reuse.</p>\n"
      },
      {
        "cFunctionName": "git_revwalk_push",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true,
            "comment": "the walker being used for the traversal."
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "the oid of the commit to start from."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "push",
        "cppFunctionName": "Push",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Mark a commit to start traversal from.</p>\n"
      },
      {
        "cFunctionName": "git_revwalk_push_glob",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true,
            "comment": "the walker being used for the traversal"
          },
          {
            "name": "glob",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the glob pattern references should match"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "pushGlob",
        "cppFunctionName": "PushGlob",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Push matching references</p>\n"
      },
      {
        "cFunctionName": "git_revwalk_push_head",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true,
            "comment": "the walker being used for the traversal"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "pushHead",
        "cppFunctionName": "PushHead",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Push the repository&#39;s HEAD</p>\n"
      },
      {
        "cFunctionName": "git_revwalk_hide",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true,
            "comment": "the walker being used for the traversal."
          },
          {
            "name": "commit_id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "the oid of commit that will be ignored during the traversal"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "hide",
        "cppFunctionName": "Hide",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Mark a commit (and its ancestors) uninteresting for the output.</p>\n"
      },
      {
        "cFunctionName": "git_revwalk_hide_glob",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true,
            "comment": "the walker being used for the traversal"
          },
          {
            "name": "glob",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the glob pattern references should match"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "hideGlob",
        "cppFunctionName": "HideGlob",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Hide matching references.</p>\n"
      },
      {
        "cFunctionName": "git_revwalk_hide_head",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true,
            "comment": "the walker being used for the traversal"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "hideHead",
        "cppFunctionName": "HideHead",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Hide the repository&#39;s HEAD</p>\n"
      },
      {
        "cFunctionName": "git_revwalk_push_ref",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true,
            "comment": "the walker being used for the traversal"
          },
          {
            "name": "refname",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the reference to push"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "pushRef",
        "cppFunctionName": "PushRef",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Push the OID pointed to by a reference</p>\n"
      },
      {
        "cFunctionName": "git_revwalk_hide_ref",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true,
            "comment": "the walker being used for the traversal"
          },
          {
            "name": "refname",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the reference to hide"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "hideRef",
        "cppFunctionName": "HideRef",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Hide the OID pointed to by a reference</p>\n"
      },
      {
        "cFunctionName": "git_revwalk_next",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "shouldAlloc": true,
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "Pointer where to store the oid of the next commit"
          },
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true,
            "comment": "the walker to pop the commit from."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "next",
        "cppFunctionName": "Next",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 if the next commit was found; GIT_ITEROVER if there are no commits left to iterate",
          "jsClassName": "Number"
        },
        "description": "<p>Get the next commit from the revision walk.</p>\n"
      },
      {
        "cFunctionName": "git_revwalk_sorting",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true,
            "comment": "the walker being used for the traversal."
          },
          {
            "name": "sort_mode",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "combination of GIT_SORT_XXX flags"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "sorting",
        "cppFunctionName": "Sorting",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Change the sorting mode when iterating through the\nrepository&#39;s contents.</p>\n"
      },
      {
        "cFunctionName": "git_revwalk_push_range",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true,
            "comment": "the walker being used for the traversal"
          },
          {
            "name": "range",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the range"
          }
        ],
        "ignore": "This is in the documentation, but doesn't seem to exist!",
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "pushRange",
        "cppFunctionName": "PushRange",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Push and hide the respective endpoints of the given range.</p>\n"
      },
      {
        "cFunctionName": "git_revwalk_free",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "comment": "traversal handle to close. If NULL nothing occurs."
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Free a revision walker previously allocated.</p>\n"
      },
      {
        "cFunctionName": "git_revwalk_repository",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true,
            "comment": "the revision walker"
          }
        ],
        "ignore": "Never make public for memory allocation reasons",
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "repository",
        "cppFunctionName": "Repository",
        "return": {
          "cType": "git_repository *",
          "cppClassName": "GitRepo",
          "comment": "the repository being walked",
          "jsClassName": "Repository"
        },
        "description": "<p>Return the repository on which this walker\nis operating.</p>\n"
      }
    ]
  },
  {
    "filename": "time.h",
    "dependencies": [],
    "jsClassName": "Time",
    "cppClassName": "GitTime",
    "cType": "git_time",
    "freeFunctionName": "free",
    "fields": [
      {
        "jsFunctionName": "time",
        "cppFunctionName": "Time",
        "name": "time",
        "cType": "git_time_t",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "offset",
        "cppFunctionName": "Offset",
        "name": "offset",
        "cType": "int",
        "cppClassName": "Int32",
        "jsClassName": "Number"
      }
    ]
  },
  {
    "filename": "signature.h",
    "dependencies": [
      "../include/time.h"
    ],
    "jsClassName": "Signature",
    "cppClassName": "GitSignature",
    "cType": "git_signature",
    "freeFunctionName": "git_signature_free",
    "fields": [
      {
        "jsFunctionName": "name",
        "cppFunctionName": "Name",
        "name": "name",
        "cType": "const char *",
        "cppClassName": "String",
        "jsClassName": "String"
      },
      {
        "jsFunctionName": "email",
        "cppFunctionName": "Email",
        "name": "email",
        "cType": "const char *",
        "cppClassName": "String",
        "jsClassName": "String"
      },
      {
        "jsFunctionName": "time",
        "cppFunctionName": "Time",
        "name": "when",
        "cType": "git_time",
        "cppClassName": "GitTime",
        "jsClassName": "Time",
        "copy": "git_time_dup"
      }
    ],
    "functions": [
      {
        "cFunctionName": "git_signature_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_signature **",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature",
            "comment": "new signature, in case of error NULL"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "name of the person"
          },
          {
            "name": "email",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "email of the person"
          },
          {
            "name": "time",
            "cType": "git_time_t",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "time when the action happened"
          },
          {
            "name": "offset",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "timezone offset in minutes for the time"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "create",
        "cppFunctionName": "Create",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new action signature.</p>\n"
      },
      {
        "cFunctionName": "git_signature_now",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_signature **",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature",
            "comment": "new signature, in case of error NULL"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "name of the person"
          },
          {
            "name": "email",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "email of the person"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "now",
        "cppFunctionName": "Now",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new action signature with a timestamp of &#39;now&#39;.</p>\n"
      },
      {
        "cFunctionName": "git_signature_dup",
        "args": [
          {
            "name": "sig",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature",
            "isSelf": true,
            "comment": "signature to duplicated"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "dup",
        "cppFunctionName": "Dup",
        "return": {
          "cType": "git_signature *",
          "cppClassName": "GitSignature",
          "comment": "a copy of sig, NULL on out of memory",
          "jsClassName": "Signature"
        },
        "description": "<p>Create a copy of an existing signature.  All internal strings are also\nduplicated.</p>\n"
      },
      {
        "cFunctionName": "git_signature_free",
        "args": [
          {
            "name": "sig",
            "cType": "git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature",
            "comment": "signature to free"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Free an existing signature.</p>\n"
      }
    ]
  },
  {
    "filename": "stash.h",
    "ignore": true,
    "jsClassName": "Stash",
    "cppClassName": "Stash",
    "cType": "git_stash",
    "freeFunctionName": "git_stash_free",
    "functions": [
      {
        "cFunctionName": "git_stash_save",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "comment": "Object id of the commit containing the stashed state. This commit is also the target of the direct reference refs/stash."
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "The owning repository."
          },
          {
            "name": "stasher",
            "cType": "git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature",
            "comment": "The identity of the person performing the stashing."
          },
          {
            "name": "message",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Optional description along with the stashed state."
          },
          {
            "name": "flags",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "Flags to control the stashing process. (see GIT_STASH_* above)"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "save",
        "cppFunctionName": "Save",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_ENOTFOUND where there's nothing to stash, or error code.",
          "jsClassName": "Number"
        },
        "description": "<p>Save the local modifications to a new stash.</p>\n"
      },
      {
        "cFunctionName": "git_stash_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "Repository where to find the stash."
          },
          {
            "name": "callback",
            "cType": "git_stash_cb",
            "cppClassName": "StashCb",
            "jsClassName": "StashCb",
            "comment": "Callback to invoke per found stashed state. The most recent stash state will be enumerated first."
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "Extra parameter to callback function."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUSER on non-zero callback, or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Loop over all the stashed states and issue a callback for each one.</p>\n"
      },
      {
        "cFunctionName": "git_stash_drop",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "The owning repository."
          },
          {
            "name": "index",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "The position within the stash list. 0 points to the most recent stashed state."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "drop",
        "cppFunctionName": "Drop",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Remove a single stashed state from the stash list.</p>\n"
      }
    ]
  },
  {
    "filename": "status.h",
    "ignore": true,
    "jsClassName": "Status",
    "cppClassName": "Status",
    "cType": "git_status",
    "freeFunctionName": "git_status_free",
    "functions": [
      {
        "cFunctionName": "git_status_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "A repository object"
          },
          {
            "name": "callback",
            "cType": "git_status_cb",
            "cppClassName": "StatusCb",
            "jsClassName": "StatusCb",
            "comment": "The function to call on each file"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "Pointer to pass through to callback function"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUSER on non-zero callback, or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Gather file statuses and run a callback for each one.</p>\n"
      },
      {
        "cFunctionName": "git_status_foreach_ext",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "Repository object"
          },
          {
            "name": "opts",
            "cType": "const git_status_options *",
            "cppClassName": "StatusOptions",
            "jsClassName": "StatusOptions",
            "comment": "Status options structure"
          },
          {
            "name": "callback",
            "cType": "git_status_cb",
            "cppClassName": "StatusCb",
            "jsClassName": "StatusCb",
            "comment": "The function to call on each file"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "Pointer to pass through to callback function"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreachExt",
        "cppFunctionName": "ForeachExt",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_EUSER on non-zero callback, or error code",
          "jsClassName": "Number"
        },
        "description": "<p>Gather file status information and run callbacks as requested.</p>\n"
      },
      {
        "cFunctionName": "git_status_file",
        "args": [
          {
            "name": "status_flags",
            "cType": "unsigned int *",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "The status value for the file"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "A repository object"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The file to retrieve status for, rooted at the repo's workdir"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "file",
        "cppFunctionName": "File",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, GIT_ENOTFOUND if the file is not found in the HEAD, index, and work tree, GIT_EINVALIDPATH if `path` points at a folder, GIT_EAMBIGUOUS if \"path\" matches multiple files, -1 on other error.",
          "jsClassName": "Number"
        },
        "description": "<p>Get file status for a single file.</p>\n"
      },
      {
        "cFunctionName": "git_status_should_ignore",
        "args": [
          {
            "name": "ignored",
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Boolean returning 0 if the file is not ignored, 1 if it is"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "A repository object"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The file to check ignores for, rooted at the repo's workdir."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "shouldIgnore",
        "cppFunctionName": "ShouldIgnore",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 if ignore rules could be processed for the file (regardless of whether it exists or not), or an error < 0 if they could not.",
          "jsClassName": "Number"
        },
        "description": "<p>Test if the ignore rules apply to a given file.</p>\n"
      }
    ]
  },
  {
    "filename": "stdint.h",
    "ignore": true,
    "jsClassName": "Stdint",
    "cppClassName": "Stdint",
    "cType": "git_stdint",
    "freeFunctionName": "git_stdint_free",
    "functions": []
  },
  {
    "filename": "strarray.h",
    "ignore": true,
    "jsClassName": "Strarray",
    "cppClassName": "Strarray",
    "cType": "git_strarray",
    "freeFunctionName": "git_strarray_free",
    "functions": [
      {
        "cFunctionName": "git_strarray_free",
        "args": [
          {
            "name": "array",
            "cType": "git_strarray *",
            "cppClassName": "Strarray",
            "jsClassName": "Strarray",
            "comment": "git_strarray from which to free string data"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Close a string array object</p>\n"
      },
      {
        "cFunctionName": "git_strarray_copy",
        "args": [
          {
            "name": "tgt",
            "cType": "git_strarray *",
            "cppClassName": "Strarray",
            "jsClassName": "Strarray",
            "isSelf": true,
            "comment": "target"
          },
          {
            "name": "src",
            "cType": "const git_strarray *",
            "cppClassName": "Strarray",
            "jsClassName": "Strarray",
            "comment": "source"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "copy",
        "cppFunctionName": "Copy",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, < 0 on allocation failure",
          "jsClassName": "Number"
        },
        "description": "<p>Copy a string array object from source to target.</p>\n"
      }
    ]
  },
  {
    "filename": "submodule.h",
    "dependencies": [
      "../include/oid.h",
      "../include/repo.h"
    ],
    "jsClassName": "Submodule",
    "cppClassName": "GitSubmodule",
    "cType": "git_submodule",
    "freeFunctionName": "free",
    "functions": [
      {
        "cFunctionName": "git_submodule_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "The repository"
          },
          {
            "name": "callback",
            "cType": "int (*)(git_submodule *sm, const char *name, void *payload)",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Function to be called with the name of each submodule. Return a non-zero value to terminate the iteration."
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "Extra data to pass to callback"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, -1 on error, or non-zero return value of callback",
          "jsClassName": "Number"
        },
        "description": "<p>Iterate over all tracked submodules of a repository.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_add_finalize",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true,
            "comment": "The submodule to finish adding."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addFinalize",
        "cppFunctionName": "AddFinalize",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Resolve the setup of a new git submodule.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_add_to_index",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true,
            "comment": "The submodule to add to the index"
          },
          {
            "name": "write_index",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Boolean if this should immediately write the index file. If you pass this as false, you will have to get the git_index and explicitly call `git_index_write()` on it to save the change."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addToIndex",
        "cppFunctionName": "AddToIndex",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, <0 on failure",
          "jsClassName": "Number"
        },
        "description": "<p>Add current submodule HEAD commit to index of superproject.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_save",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true,
            "comment": "The submodule to write."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "save",
        "cppFunctionName": "Save",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, <0 on failure.",
          "jsClassName": "Number"
        },
        "description": "<p>Write submodule settings to .gitmodules file.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_owner",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true,
            "comment": "Pointer to submodule object"
          }
        ],
        "ignore": "Never make public for memory allocation reasons",
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "owner",
        "cppFunctionName": "Owner",
        "return": {
          "cType": "git_repository *",
          "cppClassName": "GitRepo",
          "comment": "Pointer to `git_repository`",
          "jsClassName": "Repository"
        },
        "description": "<p>Get the containing repository for a submodule.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_name",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true,
            "comment": "Pointer to submodule object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "name",
        "cppFunctionName": "Name",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "Pointer to the submodule name",
          "jsClassName": "String"
        },
        "description": "<p>Get the name of submodule.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_path",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true,
            "comment": "Pointer to submodule object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "path",
        "cppFunctionName": "Path",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "Pointer to the submodule path",
          "jsClassName": "String"
        },
        "description": "<p>Get the path to the submodule.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_url",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true,
            "comment": "Pointer to submodule object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "url",
        "cppFunctionName": "Url",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "Pointer to the submodule url",
          "jsClassName": "String"
        },
        "description": "<p>Get the URL for the submodule.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_set_url",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true,
            "comment": "Pointer to the submodule object"
          },
          {
            "name": "url",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "URL that should be used for the submodule"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setUrl",
        "cppFunctionName": "SetUrl",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, <0 on failure",
          "jsClassName": "Number"
        },
        "description": "<p>Set the URL for the submodule.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_index_id",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true,
            "comment": "Pointer to submodule object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "indexId",
        "cppFunctionName": "IndexId",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup",
          "comment": "Pointer to git_oid or NULL if submodule is not in index.",
          "jsClassName": "Oid"
        },
        "description": "<p>Get the OID for the submodule in the index.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_head_id",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true,
            "comment": "Pointer to submodule object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "headId",
        "cppFunctionName": "HeadId",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup",
          "comment": "Pointer to git_oid or NULL if submodule is not in the HEAD.",
          "jsClassName": "Oid"
        },
        "description": "<p>Get the OID for the submodule in the current HEAD tree.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_wd_id",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true,
            "comment": "Pointer to submodule object"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "wdId",
        "cppFunctionName": "WdId",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup",
          "comment": "Pointer to git_oid or NULL if submodule is not checked out.",
          "jsClassName": "Oid"
        },
        "description": "<p>Get the OID for the submodule in the current working directory.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_ignore",
        "args": [],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "ignore",
        "cppFunctionName": "Ignore",
        "return": {
          "cType": "GIT_EXTERN(",
          "cppClassName": "GIT_EXTERN("
        },
        "description": "<p>Get the ignore rule for the submodule.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_set_ignore",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          },
          {
            "name": "ignore",
            "cType": "git_submodule_ignore_t",
            "cppClassName": "Uint32",
            "jsClassName": "Uint32"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setIgnore",
        "cppFunctionName": "SetIgnore",
        "return": {
          "cType": "git_submodule_ignore_t",
          "cppClassName": "Uint32",
          "comment": "old value for ignore",
          "jsClassName": "Number"
        },
        "description": "<p>Set the ignore rule for the submodule.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_update",
        "ignore": true,
        "args": [],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "update",
        "cppFunctionName": "Update",
        "return": {
          "cType": "GIT_EXTERN(",
          "cppClassName": "GIT_EXTERN("
        },
        "description": "<p>Get the update rule for the submodule.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_set_update",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          },
          {
            "name": "update",
            "cType": "git_submodule_update_t",
            "cppClassName": "Uint32",
            "jsClassName": "Uint32"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setUpdate",
        "cppFunctionName": "SetUpdate",
        "return": {
          "cType": "git_submodule_update_t",
          "cppClassName": "SubmoduleUpdateT",
          "comment": "old value for update"
        },
        "description": "<p>Set the update rule for the submodule.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_fetch_recurse_submodules",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "fetchRecurseSubmodules",
        "cppFunctionName": "FetchRecurseSubmodules",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 if fetchRecurseSubmodules is false, 1 if true",
          "jsClassName": "Number"
        },
        "description": "<p>Read the fetchRecurseSubmodules rule for a submodule.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_set_fetch_recurse_submodules",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true,
            "comment": "The submodule to modify"
          },
          {
            "name": "fetch_recurse_submodules",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Boolean value"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setFetchRecurseSubmodules",
        "cppFunctionName": "SetFetchRecurseSubmodules",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "old value for fetchRecurseSubmodules",
          "jsClassName": "Number"
        },
        "description": "<p>Set the fetchRecurseSubmodules rule for a submodule.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_init",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true,
            "comment": "The submodule to write into the superproject config"
          },
          {
            "name": "overwrite",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "By default, existing entries will not be overwritten, but setting this to true forces them to be updated."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "init",
        "cppFunctionName": "Init",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, <0 on failure.",
          "jsClassName": "Number"
        },
        "description": "<p>Copy submodule info into &quot;.git/config&quot; file.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_sync",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "sync",
        "cppFunctionName": "Sync",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Copy submodule remote info into submodule repo.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_open",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository **",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isReturn": true,
            "comment": "Pointer to the submodule repo which was opened"
          },
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true,
            "comment": "Submodule to be opened"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "open",
        "cppFunctionName": "Open",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, <0 if submodule repo could not be opened.",
          "jsClassName": "Number"
        },
        "description": "<p>Open the repository for a submodule.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_reload",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "reload",
        "cppFunctionName": "Reload",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Reread submodule info from config, index, and HEAD.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_status",
        "args": [
          {
            "name": "status",
            "cType": "unsigned int *",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Combination of `GIT_SUBMODULE_STATUS` flags"
          },
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true,
            "comment": "Submodule for which to get status"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "status",
        "cppFunctionName": "Status",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, <0 on error",
          "jsClassName": "Number"
        },
        "description": "<p>Get the status for a submodule.</p>\n"
      },
      {
        "cFunctionName": "git_submodule_location",
        "args": [
          {
            "name": "location_status",
            "cType": "unsigned int *",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Combination of first four `GIT_SUBMODULE_STATUS` flags"
          },
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "comment": "Submodule for which to get status"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "location",
        "cppFunctionName": "Location",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success, <0 on error",
          "jsClassName": "Number"
        },
        "description": "<p>Get the locations of submodule information.</p>\n"
      }
    ]
  },
  {
    "filename": "tag.h",
    "dependencies": [
      "../include/oid.h",
      "../include/repo.h",
      "../include/object.h",
      "../include/signature.h"
    ],
    "jsClassName": "Tag",
    "cppClassName": "GitTag",
    "cType": "git_tag",
    "freeFunctionName": "git_tag_free",
    "functions": [
      {
        "cFunctionName": "git_tag_free",
        "args": [
          {
            "name": "tag",
            "cType": "git_tag *",
            "cppClassName": "GitTag",
            "jsClassName": "Tag",
            "comment": "the tag to close"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Close an open tag</p>\n"
      },
      {
        "cFunctionName": "git_tag_id",
        "args": [
          {
            "name": "tag",
            "cType": "const git_tag *",
            "cppClassName": "GitTag",
            "jsClassName": "Tag",
            "isSelf": true,
            "comment": "a previously loaded tag."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "oid",
        "cppFunctionName": "Oid",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup",
          "comment": "object identity for the tag.",
          "jsClassName": "Oid"
        },
        "description": "<p>Get the id of a tag.</p>\n"
      },
      {
        "cFunctionName": "git_tag_target",
        "args": [
          {
            "name": "target_out",
            "cType": "git_object **",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isReturn": true,
            "comment": "pointer where to store the target"
          },
          {
            "name": "tag",
            "cType": "const git_tag *",
            "cppClassName": "GitTag",
            "jsClassName": "Tag",
            "isSelf": true,
            "comment": "a previously loaded tag."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getTarget",
        "cppFunctionName": "GetTarget",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Get the tagged object of a tag</p>\n"
      },
      {
        "cFunctionName": "git_tag_target_id",
        "args": [
          {
            "name": "tag",
            "cType": "const git_tag *",
            "cppClassName": "GitTag",
            "jsClassName": "Tag",
            "isSelf": true,
            "comment": "a previously loaded tag."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "targetId",
        "cppFunctionName": "TargetId",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup",
          "comment": "pointer to the OID",
          "jsClassName": "Oid"
        },
        "description": "<p>Get the OID of the tagged object of a tag</p>\n"
      },
      {
        "cFunctionName": "git_tag_target_type",
        "args": [
          {
            "name": "tag",
            "cType": "const git_tag *",
            "cppClassName": "GitTag",
            "jsClassName": "Tag",
            "isSelf": true,
            "comment": "a previously loaded tag."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "targetType",
        "cppFunctionName": "TargetType",
        "return": {
          "cType": "git_otype",
          "cppClassName": "Int32",
          "comment": "type of the tagged object",
          "jsClassName": "Number"
        },
        "description": "<p>Get the type of a tag&#39;s tagged object</p>\n"
      },
      {
        "cFunctionName": "git_tag_name",
        "args": [
          {
            "name": "tag",
            "cType": "const git_tag *",
            "cppClassName": "GitTag",
            "jsClassName": "Tag",
            "isSelf": true,
            "comment": "a previously loaded tag."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "name",
        "cppFunctionName": "Name",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "name of the tag",
          "jsClassName": "String"
        },
        "description": "<p>Get the name of a tag</p>\n"
      },
      {
        "cFunctionName": "git_tag_tagger",
        "args": [
          {
            "name": "tag",
            "cType": "const git_tag *",
            "cppClassName": "GitTag",
            "jsClassName": "Tag",
            "isSelf": true,
            "comment": "a previously loaded tag."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "tagger",
        "cppFunctionName": "Tagger",
        "return": {
          "cType": "const git_signature *",
          "cppClassName": "GitSignature",
          "copy": "git_signature_dup",
          "comment": "reference to the tag's author or NULL when unspecified",
          "jsClassName": "Signature"
        },
        "description": "<p>Get the tagger (author) of a tag</p>\n"
      },
      {
        "cFunctionName": "git_tag_message",
        "args": [
          {
            "name": "tag",
            "cType": "const git_tag *",
            "cppClassName": "GitTag",
            "jsClassName": "Tag",
            "isSelf": true,
            "comment": "a previously loaded tag."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "message",
        "cppFunctionName": "Message",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "message of the tag or NULL when unspecified",
          "jsClassName": "String"
        },
        "description": "<p>Get the message of a tag</p>\n"
      },
      {
        "cFunctionName": "git_tag_create_frombuffer",
        "args": [
          {
            "name": "oid",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "Pointer where to store the OID of the newly created tag"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "Repository where to store the tag"
          },
          {
            "name": "buffer",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Raw tag data"
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "comment": "Overwrite existing tags"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "createFrombuffer",
        "cppFunctionName": "CreateFrombuffer",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success; error code otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new tag in the repository from a buffer</p>\n"
      },
      {
        "cFunctionName": "git_tag_peel",
        "args": [
          {
            "name": "tag_target_out",
            "cType": "git_object **",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isReturn": true,
            "comment": "Pointer to the peeled git_object"
          },
          {
            "name": "tag",
            "cType": "const git_tag *",
            "cppClassName": "GitTag",
            "jsClassName": "Tag",
            "comment": "_target_out Pointer to the peeled git_object"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "peel",
        "cppFunctionName": "Peel",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Recursively peel a tag until a non tag git_object is found</p>\n"
      }
    ]
  },
  {
    "filename": "threads.h",
    "dependencies": [],
    "jsClassName": "Threads",
    "cppClassName": "GitThreads",
    "functions": [
      {
        "cFunctionName": "git_threads_init",
        "args": [],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "init",
        "cppFunctionName": "Init",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Init the threading system.</p>\n"
      },
      {
        "cFunctionName": "git_threads_shutdown",
        "args": [],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "shutdown",
        "cppFunctionName": "Shutdown",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Shutdown the threading system.</p>\n"
      }
    ]
  },
  {
    "filename": "trace.h",
    "ignore": true,
    "jsClassName": "Trace",
    "cppClassName": "Trace",
    "cType": "git_trace",
    "freeFunctionName": "git_trace_free",
    "functions": [
      {
        "cFunctionName": "git_trace_set",
        "args": [
          {
            "name": "level",
            "cType": "git_trace_level_t",
            "cppClassName": "TraceLevelT",
            "jsClassName": "TraceLevelT",
            "comment": "Level to set tracing to"
          },
          {
            "name": "cb",
            "cType": "git_trace_callback",
            "cppClassName": "TraceCallback",
            "jsClassName": "TraceCallback",
            "comment": "Function to call with trace data"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "set",
        "cppFunctionName": "Set",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Sets the system tracing configuration to the specified level with the\nspecified callback.  When system events occur at a level equal to, or\nlower than, the given level they will be reported to the given callback.</p>\n"
      }
    ]
  },
  {
    "filename": "transport.h",
    "ignore": true,
    "jsClassName": "Transport",
    "cppClassName": "Transport",
    "cType": "git_transport",
    "freeFunctionName": "git_transport_free",
    "functions": [
      {
        "cFunctionName": "git_cred_userpass_plaintext_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_cred **",
            "cppClassName": "Cred",
            "jsClassName": "Cred",
            "comment": "The newly created credential object."
          },
          {
            "name": "username",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The username of the credential."
          },
          {
            "name": "password",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The password of the credential."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitCredUserpassPlaintextNew",
        "cppFunctionName": "GitCredUserpassPlaintextNew",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 for success or an error code for failure",
          "jsClassName": "Number"
        },
        "description": "<p>Creates a new plain-text username and password credential object.\nThe supplied credential parameter will be internally duplicated.</p>\n"
      },
      {
        "cFunctionName": "git_transport_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_transport **",
            "cppClassName": "Transport",
            "jsClassName": "Transport",
            "comment": "The newly created transport (out)"
          },
          {
            "name": "owner",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "comment": "The git_remote which will own this transport"
          },
          {
            "name": "url",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "The URL to connect to"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "new",
        "cppFunctionName": "New",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Function to use to create a transport from a URL. The transport database\nis scanned to find a transport that implements the scheme of the URI (i.e.\ngit:// or http://) and a transport object is returned to the caller.</p>\n"
      },
      {
        "cFunctionName": "git_transport_dummy",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_transport **",
            "cppClassName": "Transport",
            "jsClassName": "Transport",
            "comment": "The newly created transport (out)"
          },
          {
            "name": "owner",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "comment": "The git_remote which will own this transport"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "You must pass NULL for this parameter."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "dummy",
        "cppFunctionName": "Dummy",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create an instance of the dummy transport.</p>\n"
      },
      {
        "cFunctionName": "git_transport_local",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_transport **",
            "cppClassName": "Transport",
            "jsClassName": "Transport",
            "comment": "The newly created transport (out)"
          },
          {
            "name": "owner",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "comment": "The git_remote which will own this transport"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "You must pass NULL for this parameter."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "local",
        "cppFunctionName": "Local",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create an instance of the local transport.</p>\n"
      },
      {
        "cFunctionName": "git_transport_smart",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_transport **",
            "cppClassName": "Transport",
            "jsClassName": "Transport",
            "comment": "The newly created transport (out)"
          },
          {
            "name": "owner",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "comment": "The git_remote which will own this transport"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "A pointer to a git_smart_subtransport_definition"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "smart",
        "cppFunctionName": "Smart",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create an instance of the smart transport.</p>\n"
      },
      {
        "cFunctionName": "git_smart_subtransport_http",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_smart_subtransport **",
            "cppClassName": "SmartSubtransport",
            "jsClassName": "SmartSubtransport",
            "comment": "The newly created subtransport"
          },
          {
            "name": "owner",
            "cType": "git_transport*",
            "cppClassName": "Transport*",
            "jsClassName": "Transport*",
            "comment": "The smart transport to own this subtransport"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitSmartSubtransportHttp",
        "cppFunctionName": "GitSmartSubtransportHttp",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create an instance of the http subtransport. This subtransport\nalso supports https. On Win32, this subtransport may be implemented\nusing the WinHTTP library.</p>\n"
      },
      {
        "cFunctionName": "git_smart_subtransport_git",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_smart_subtransport **",
            "cppClassName": "SmartSubtransport",
            "jsClassName": "SmartSubtransport",
            "comment": "The newly created subtransport"
          },
          {
            "name": "owner",
            "cType": "git_transport*",
            "cppClassName": "Transport*",
            "jsClassName": "Transport*",
            "comment": "The smart transport to own this subtransport"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitSmartSubtransportGit",
        "cppFunctionName": "GitSmartSubtransportGit",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Create an instance of the git subtransport.</p>\n"
      }
    ]
  },
  {
    "filename": "tree_entry.h",
    "dependencies": [
      "../include/oid.h",
      "../include/repo.h",
      "../include/object.h"
    ],
    "jsClassName": "TreeEntry",
    "cppClassName": "GitTreeEntry",
    "cType": "git_tree_entry",
    "freeFunctionName": "git_tree_entry_free",
    "functions": [
      {
        "cFunctionName": "git_tree_entry_dup",
        "args": [
          {
            "name": "entry",
            "cType": "const git_tree_entry *",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "isSelf": true,
            "comment": "A tree entry to duplicate"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "dup",
        "cppFunctionName": "Dup",
        "return": {
          "cType": "git_tree_entry *",
          "cppClassName": "GitTreeEntry",
          "comment": "a copy of the original entry or NULL on error (alloc failure)",
          "jsClassName": "TreeEntry"
        },
        "description": "<p>Duplicate a tree entry</p>\n"
      },
      {
        "cFunctionName": "git_tree_entry_free",
        "args": [
          {
            "name": "entry",
            "cType": "git_tree_entry *",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "isSelf": true,
            "comment": "The entry to free"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Free a user-owned tree entry</p>\n"
      },
      {
        "cFunctionName": "git_tree_entry_name",
        "args": [
          {
            "name": "entry",
            "cType": "const git_tree_entry *",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "isSelf": true,
            "comment": "a tree entry"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "name",
        "cppFunctionName": "Name",
        "return": {
          "cType": "const char *",
          "cppClassName": "String",
          "comment": "the name of the file",
          "jsClassName": "String"
        },
        "description": "<p>Get the filename of a tree entry</p>\n"
      },
      {
        "cFunctionName": "git_tree_entry_id",
        "args": [
          {
            "name": "entry",
            "cType": "const git_tree_entry *",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "isSelf": true,
            "comment": "a tree entry"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "oid",
        "cppFunctionName": "Oid",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup",
          "comment": "the oid of the object",
          "jsClassName": "Oid"
        },
        "description": "<p>Get the id of the object pointed by the entry</p>\n"
      },
      {
        "cFunctionName": "git_tree_entry_type",
        "args": [
          {
            "name": "entry",
            "cType": "const git_tree_entry *",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "isSelf": true,
            "comment": "a tree entry"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "type",
        "cppFunctionName": "Type",
        "return": {
          "cType": "git_otype",
          "cppClassName": "Number",
          "comment": "the type of the pointed object",
          "jsClassName": "Number"
        },
        "description": "<p>Get the type of the object pointed by the entry</p>\n"
      },
      {
        "cFunctionName": "git_tree_entry_filemode",
        "args": [
          {
            "name": "entry",
            "cType": "const git_tree_entry *",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "isSelf": true,
            "comment": "a tree entry"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "filemode",
        "cppFunctionName": "filemode",
        "return": {
          "cType": "git_filemode_t",
          "cppClassName": "Number",
          "comment": "filemode as an integer",
          "jsClassName": "Number"
        },
        "description": "<p>Get the UNIX file attributes of a tree entry</p>\n"
      },
      {
        "cFunctionName": "git_tree_entry_cmp",
        "args": [
          {
            "name": "e1",
            "cType": "const git_tree_entry *",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "isSelf": true,
            "comment": "first tree entry"
          },
          {
            "name": "e2",
            "cType": "const git_tree_entry *",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "comment": "second tree entry"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "compare",
        "cppFunctionName": "Compare",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "<0 if e1 is before e2, 0 if e1 == e2, >0 if e1 is after e2",
          "jsClassName": "Number"
        },
        "description": "<p>Compare two tree entries</p>\n"
      },
      {
        "cFunctionName": "git_tree_entry_to_object",
        "args": [
          {
            "name": "object_out",
            "cType": "git_object **",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isReturn": true,
            "comment": "pointer to the converted object"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "repository where to lookup the pointed object"
          },
          {
            "name": "entry",
            "cType": "const git_tree_entry *",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "isSelf": true,
            "comment": "a tree entry"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getObject",
        "cppFunctionName": "GetObject",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Convert a tree entry to the git_object it points too.</p>\n"
      }
    ]
  },
  {
    "filename": "tree.h",
    "dependencies": [
      "../include/repo.h",
      "../include/oid.h",
      "../include/tree_entry.h",
      "../include/diff_list.h",
      "../include/diff_options.h",
      "../include/tree_builder.h",
      "../include/index.h"
    ],
    "jsClassName": "Tree",
    "cppClassName": "GitTree",
    "cType": "git_tree",
    "freeFunctionName": "git_tree_free",
    "functions": [
      {
        "cFunctionName": "git_tree_free",
        "args": [
          {
            "name": "tree",
            "cType": "git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "comment": "The tree to close"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Close an open tree</p>\n"
      },
      {
        "cFunctionName": "git_tree_id",
        "args": [
          {
            "name": "tree",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true,
            "comment": "a previously loaded tree."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "oid",
        "cppFunctionName": "Oid",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup",
          "comment": "object identity for the tree.",
          "jsClassName": "Oid"
        },
        "description": "<p>Get the id of a tree.</p>\n"
      },
      {
        "cFunctionName": "git_tree_owner",
        "args": [
          {
            "name": "tree",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true,
            "comment": "A previously loaded tree."
          }
        ],
        "ignore": "Never make public for memory allocation reasons",
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "owner",
        "cppFunctionName": "Owner",
        "return": {
          "cType": "git_repository *",
          "cppClassName": "GitRepo",
          "comment": "Repository that contains this tree.",
          "jsClassName": "Repository"
        },
        "description": "<p>Get the repository that contains the tree.</p>\n"
      },
      {
        "cFunctionName": "git_tree_entrycount",
        "args": [
          {
            "name": "tree",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true,
            "comment": "a previously loaded tree."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "size",
        "cppFunctionName": "Size",
        "return": {
          "cType": "size_t",
          "cppClassName": "Uint32",
          "comment": "the number of entries in the tree",
          "jsClassName": "Number"
        },
        "description": "<p>Get the number of entries listed in a tree</p>\n"
      },
      {
        "cFunctionName": "git_tree_entry_byname",
        "args": [
          {
            "name": "tree",
            "cType": "git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true,
            "comment": "a previously loaded tree."
          },
          {
            "name": "filename",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "the filename of the desired entry"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "entryByName",
        "cppFunctionName": "EntryByName",
        "return": {
          "cType": "const git_tree_entry *",
          "cppClassName": "GitTreeEntry",
          "copy": "git_tree_entry_dup",
          "comment": "the tree entry; NULL if not found",
          "jsClassName": "TreeEntry"
        },
        "description": "<p>Lookup a tree entry by its filename</p>\n"
      },
      {
        "cFunctionName": "git_tree_entry_byindex",
        "args": [
          {
            "name": "tree",
            "cType": "git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true,
            "comment": "a previously loaded tree."
          },
          {
            "name": "idx",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "comment": "the position in the entry list"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "entryByIndex",
        "cppFunctionName": "EntryByIndex",
        "return": {
          "cType": "const git_tree_entry *",
          "cppClassName": "GitTreeEntry",
          "copy": "git_tree_entry_dup",
          "comment": "the tree entry; NULL if not found",
          "jsClassName": "TreeEntry"
        },
        "description": "<p>Lookup a tree entry by its position in the tree</p>\n"
      },
      {
        "cFunctionName": "git_tree_entry_byoid",
        "args": [
          {
            "name": "tree",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true,
            "comment": "a previously loaded tree."
          },
          {
            "name": "oid",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "the sha being looked for"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "entryByOid",
        "cppFunctionName": "EntryByOid",
        "return": {
          "cType": "const git_tree_entry *",
          "cppClassName": "GitTreeEntry",
          "copy": "git_tree_entry_dup",
          "comment": "the tree entry; NULL if not found",
          "jsClassName": "TreeEntry"
        },
        "description": "<p>Lookup a tree entry by SHA value.</p>\n"
      },
      {
        "cFunctionName": "git_tree_entry_bypath",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_tree_entry **",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "comment": "Pointer where to store the tree entry"
          },
          {
            "name": "root",
            "cType": "git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true,
            "comment": "Previously loaded tree which is the root of the relative path"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Path to the contained entry"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getEntry",
        "cppFunctionName": "GetEntry",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success; GIT_ENOTFOUND if the path does not exist",
          "jsClassName": "Number"
        },
        "description": "<p>Retrieve a tree entry contained in a tree or in any of its subtrees,\ngiven its relative path.</p>\n"
      },
      {
        "cFunctionName": "git_treebuilder_create",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_treebuilder **",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder",
            "comment": "Pointer where to store the tree builder"
          },
          {
            "name": "source",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true,
            "comment": "Source tree to initialize the builder (optional)"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "builder",
        "cppFunctionName": "Builder",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success; error code otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new tree builder.</p>\n"
      },
      {
        "cFunctionName": "git_tree_walk",
        "args": [
          {
            "name": "tree",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true,
            "comment": "The tree to walk"
          },
          {
            "name": "mode",
            "cType": "git_treewalk_mode",
            "cppClassName": "TreewalkMode",
            "jsClassName": "TreewalkMode",
            "comment": "Traversal mode (pre or post-order)"
          },
          {
            "name": "callback",
            "cType": "git_treewalk_cb",
            "cppClassName": "TreewalkCb",
            "jsClassName": "TreewalkCb",
            "comment": "Function to call on each tree entry"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "Opaque pointer to be passed on each callback"
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "walk",
        "cppFunctionName": "Walk",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Traverse the entries in a tree and its subtrees in post or pre order.</p>\n"
      },
      {
        "cFunctionName": "git_diff_tree_to_tree",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list **",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "isReturn": true,
            "comment": "Output pointer to a git_diff_list pointer to be allocated."
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "The repository containing the trees."
          },
          {
            "name": "old_tree",
            "cType": "git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true,
            "comment": "A git_tree object to diff from, or NULL for empty tree."
          },
          {
            "name": "new_tree",
            "cType": "git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "comment": "A git_tree object to diff to, or NULL for empty tree."
          },
          {
            "name": "opts",
            "cType": "const git_diff_options *",
            "cppClassName": "GitDiffOptions",
            "jsClassName": "DiffOptions",
            "isOptional": true,
            "comment": "Structure with options to influence diff or NULL for defaults."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "diffTree",
        "cppFunctionName": "DiffTree",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Create a diff list with the difference between two tree objects.</p>\n"
      },
      {
        "cFunctionName": "git_diff_tree_to_index",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list **",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "isReturn": true,
            "comment": "Output pointer to a git_diff_list pointer to be allocated."
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "The repository containing the tree and index."
          },
          {
            "name": "old_tree",
            "cType": "git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true,
            "comment": "A git_tree object to diff from, or NULL for empty tree."
          },
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isOptional": true,
            "comment": "The index to diff with; repo index used if NULL."
          },
          {
            "name": "opts",
            "cType": "const git_diff_options *",
            "cppClassName": "GitDiffOptions",
            "jsClassName": "DiffOptions",
            "isOptional": true,
            "comment": "Structure with options to influence diff or NULL for defaults."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "diffIndex",
        "cppFunctionName": "DiffIndex",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Create a diff list between a tree and repository index.</p>\n"
      },
      {
        "cFunctionName": "git_diff_tree_to_workdir",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list **",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "isReturn": true,
            "comment": "A pointer to a git_diff_list pointer that will be allocated."
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "The repository containing the tree."
          },
          {
            "name": "old_tree",
            "cType": "git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true,
            "comment": "A git_tree object to diff from, or NULL for empty tree."
          },
          {
            "name": "opts",
            "cType": "const git_diff_options *",
            "cppClassName": "GitDiffOptions",
            "jsClassName": "DiffOptions",
            "isOptional": true,
            "comment": "Structure with options to influence diff or NULL for defaults."
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "diffWorkDir",
        "cppFunctionName": "DiffWorkDir",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Create a diff list between a tree and the working directory.</p>\n"
      }
    ]
  },
  {
    "filename": "tree_builder.h",
    "dependencies": [
      "../include/repo.h",
      "../include/oid.h",
      "../include/tree_entry.h",
      "../include/tree.h",
      "../include/diff_list.h",
      "../include/diff_options.h",
      "../include/index.h"
    ],
    "jsClassName": "TreeBuilder",
    "cppClassName": "GitTreeBuilder",
    "cType": "git_treebuilder",
    "freeFunctionName": "git_treebuilder_free",
    "functions": [
      {
        "cFunctionName": "git_treebuilder_create",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_treebuilder **",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder",
            "comment": "Pointer where to store the tree builder"
          },
          {
            "name": "source",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isOptional": true,
            "comment": "Source tree to initialize the builder (optional)"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "create",
        "cppFunctionName": "Create",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 on success; error code otherwise",
          "jsClassName": "Number"
        },
        "description": "<p>Create a new tree builder.</p>\n"
      },
      {
        "cFunctionName": "git_treebuilder_clear",
        "args": [
          {
            "name": "bld",
            "cType": "git_treebuilder *",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder",
            "comment": "Builder to clear"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "clear",
        "cppFunctionName": "Clear",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Clear all the entires in the builder</p>\n"
      },
      {
        "cFunctionName": "git_treebuilder_entrycount",
        "args": [
          {
            "name": "bld",
            "cType": "git_treebuilder *",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder",
            "isSelf": true,
            "comment": "a previously loaded treebuilder."
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "size",
        "cppFunctionName": "Size",
        "return": {
          "cType": "unsigned int",
          "cppClassName": "Uint32",
          "comment": "the number of entries in the treebuilder",
          "jsClassName": "Number"
        },
        "description": "<p>Get the number of entries listed in a treebuilder</p>\n"
      },
      {
        "cFunctionName": "git_treebuilder_free",
        "args": [
          {
            "name": "bld",
            "cType": "git_treebuilder *",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder",
            "comment": "Builder to free"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "treebuilderFree",
        "cppFunctionName": "GitTreebuilderFree",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Free a tree builder</p>\n"
      },
      {
        "cFunctionName": "git_treebuilder_get",
        "args": [
          {
            "name": "bld",
            "cType": "git_treebuilder *",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder",
            "isSelf": true,
            "comment": "Tree builder"
          },
          {
            "name": "filename",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Name of the entry"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "get",
        "cppFunctionName": "Get",
        "return": {
          "cType": "const git_tree_entry *",
          "cppClassName": "GitTreeEntry",
          "copy": "git_tree_entry_dup",
          "comment": "pointer to the entry; NULL if not found",
          "jsClassName": "TreeEntry"
        },
        "description": "<p>Get an entry from the builder from its filename</p>\n"
      },
      {
        "cFunctionName": "git_treebuilder_insert",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "const git_tree_entry **",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "copy": "git_tree_entry_dup",
            "comment": "Pointer to store the entry (optional)"
          },
          {
            "name": "bld",
            "cType": "git_treebuilder *",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder",
            "isSelf": true,
            "comment": "Tree builder"
          },
          {
            "name": "filename",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Filename of the entry"
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "comment": "SHA1 oid of the entry"
          },
          {
            "name": "filemode",
            "cType": "git_filemode_t",
            "cppClassName": "Number",
            "jsClassName": "Number",
            "comment": "Folder attributes of the entry. This parameter must be valued with one of the following entries: 0040000, 0100644, 0100755, 0120000 or 0160000.",
            "additionalCast": "(int)"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "insert",
        "cppFunctionName": "Insert",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "comment": "0 or an error code",
          "jsClassName": "Number"
        },
        "description": "<p>Add or update an entry to the builder</p>\n"
      },
      {
        "cFunctionName": "git_treebuilder_remove",
        "args": [
          {
            "name": "bld",
            "cType": "git_treebuilder *",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder",
            "isSelf": true,
            "comment": "Tree builder"
          },
          {
            "name": "filename",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "comment": "Filename of the entry to remove"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "gitTreebuilderRemove",
        "cppFunctionName": "GitTreebuilderRemove",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number"
        },
        "description": "<p>Remove an entry from the builder by its filename</p>\n"
      },
      {
        "cFunctionName": "git_treebuilder_filter",
        "args": [
          {
            "name": "bld",
            "cType": "git_treebuilder *",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder",
            "isSelf": true,
            "comment": "Tree builder"
          },
          {
            "name": "filter",
            "cType": "git_treebuilder_filter_cb",
            "cppClassName": "TreebuilderFilterCb",
            "jsClassName": "TreebuilderFilterCb",
            "comment": "Callback to filter entries"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void",
            "comment": "Extra data to pass to filter"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "filter",
        "cppFunctionName": "Filter",
        "return": {
          "cType": "void",
          "cppClassName": "void",
          "jsClassName": "void"
        },
        "description": "<p>Filter the entries in the tree</p>\n"
      },
      {
        "cFunctionName": "git_treebuilder_write",
        "args": [
          {
            "name": "id",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "isReturn": true,
            "comment": "Pointer to store the OID of the newly written tree"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "comment": "Repository in which to store the object"
          },
          {
            "name": "bld",
            "cType": "git_treebuilder *",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder",
            "isSelf": true,
            "comment": "Tree builder to write"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "write",
        "cppFunctionName": "Write",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true,
          "jsClassName": "Number",
          "comment": "0 or an error code"
        },
        "description": "<p>Write the contents of the tree builder as a tree object</p>\n"
      }
    ]
  }
]
