{"record":{"id":"f062dcfb4d264bab","repo":"AlistGo/alist","slug":"committer-name-is-required","errorCode":null,"errorMessage":"committer name is required","messagePattern":"committer name is required","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"drivers/github/driver.go","lineNumber":54,"sourceCode":"\tcommitMutex   sync.Mutex\n\tpgpEntity     *openpgp.Entity\n}\n\nfunc (d *Github) Config() driver.Config {\n\treturn config\n}\n\nfunc (d *Github) GetAddition() driver.Additional {\n\treturn &d.Addition\n}\n\nfunc (d *Github) Init(ctx context.Context) error {\n\td.RootFolderPath = utils.FixAndCleanPath(d.RootFolderPath)\n\tif d.CommitterName != \"\" && d.CommitterEmail == \"\" {\n\t\treturn errors.New(\"committer email is required\")\n\t}\n\tif d.CommitterName == \"\" && d.CommitterEmail != \"\" {\n\t\treturn errors.New(\"committer name is required\")\n\t}\n\tif d.AuthorName != \"\" && d.AuthorEmail == \"\" {\n\t\treturn errors.New(\"author email is required\")\n\t}\n\tif d.AuthorName == \"\" && d.AuthorEmail != \"\" {\n\t\treturn errors.New(\"author name is required\")\n\t}\n\tvar err error\n\td.mkdirMsgTmpl, err = template.New(\"mkdirCommitMsgTemplate\").Parse(d.MkdirCommitMsg)\n\tif err != nil {\n\t\treturn err\n\t}\n\td.deleteMsgTmpl, err = template.New(\"deleteCommitMsgTemplate\").Parse(d.DeleteCommitMsg)\n\tif err != nil {\n\t\treturn err\n\t}\n\td.putMsgTmpl, err = template.New(\"putCommitMsgTemplate\").Parse(d.PutCommitMsg)\n\tif err != nil {","sourceCodeStart":36,"sourceCodeEnd":72,"githubUrl":"https://github.com/AlistGo/alist/blob/843d9dc8149126976b2625911e45a4d3ffd6f2f5/drivers/github/driver.go#L36-L72","documentation":"The mirror-image validation of error 166: CommitterEmail is set while CommitterName is empty, so Init fails because a git committer identity cannot be constructed from an email alone. Checked at drivers/github/driver.go:54.","triggerScenarios":"Storage configuration where committer_email is filled and committer_name is blank.","commonSituations":"User pastes only the email when configuring commit identity; form auto-fill populating the email field but not the name.","solutions":["Set committer_name to match the email (e.g. the GitHub username).","Or clear committer_email so both committer fields are empty.","Re-save the storage configuration."],"exampleFix":"// before\nCommitterName: \"\"\nCommitterEmail: \"alice@example.com\"\n\n// after\nCommitterName: \"alice\"\nCommitterEmail: \"alice@example.com\"","handlingStrategy":"validation","validationCode":"if cfg.CommitterEmail != \"\" && strings.TrimSpace(cfg.CommitterName) == \"\" {\n    return errors.New(\"committer name is required when committer email is set\")\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Validate name/email pairs in the config form before submit.","Default the name from the GitHub username when only an email is given.","Disable browser auto-fill on these fields to avoid half-filled pairs."],"tags":["github","config","validation","commit","go"],"backgroundTag":null,"analyzedSha":"843d9dc8149126976b2625911e45a4d3ffd6f2f5","analyzedAt":"2026-08-15T12:14:11.722Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}