{"id":21512462,"url":"https://github.com/containerum/cherry","last_synced_at":"2025-08-02T02:34:52.611Z","repository":{"id":57505012,"uuid":"131274210","full_name":"containerum/cherry","owner":"containerum","description":null,"archived":false,"fork":false,"pushed_at":"2018-08-01T08:53:29.000Z","size":3239,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-09T18:44:53.578Z","etag":null,"topics":["platform"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/containerum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-27T09:16:22.000Z","updated_at":"2019-12-10T14:24:56.000Z","dependencies_parsed_at":"2022-09-19T11:12:02.876Z","dependency_job_id":null,"html_url":"https://github.com/containerum/cherry","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/containerum/cherry","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/containerum%2Fcherry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/containerum%2Fcherry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/containerum%2Fcherry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/containerum%2Fcherry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/containerum","download_url":"https://codeload.github.com/containerum/cherry/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/containerum%2Fcherry/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268327911,"owners_count":24232771,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["platform"],"created_at":"2024-11-23T22:35:55.347Z","updated_at":"2025-08-02T02:34:52.554Z","avatar_url":"https://github.com/containerum.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"```go\ntype Err struct {\n    Message    string            `json:\"message\"`\n    StatusHTTP int               `json:\"-\"`\n    ID         string            `json:\"id\"`\n    Details    []string          `json:\"details,omitempty\"`\n    Fields     map[string]string `json:\"fields,omitempty\"\n}\n```\n    Err -- standart serializable API error Message -- constant error\n    message:\n\n\t+ \"invalid username\"\n\t+ \"quota exceeded\"\n\t+ \"validation error\"\n\t...etc...\n\n    ID -- unique error identification code Details -- optional context error\n    messages kinda\n\n\t+ \"field 'Replicas' must be non-zero value\"\n\t+ \"not enough tights to feed gopher\"\n\t+ \"resource 'God' does't exist\"\n\n```go\nfunc BuildErr(prefix string) func(string, int, string) *Err\n```\nBuildErr -- produces Err constructor with custom ID prefix Example:\n\n\n```go\n\tMyErr := BuildErr(\"42\")\n\tErrNotEnoughCheese = MyErr(\"not enough cheese\", 404, \"666\")\n```\n     \t--\u003e \"[42666] HTTP 400 not enough cheese \"\n\n```go\nfunc NewErr(msg string, status int, ID string) *Err\n``` \nNewErr -- constructs Err struct with provided message and ID\n\n```go\nfunc (err *Err) AddDetailF(formatS string, args ...interface{}) *Err\n```    \nAddDetailF --adds formatted message to Err, chainable\n\n```go\nfunc (err *Err) AddDetails(details ...string) *Err\n```\nAddDetails -- adds detail messages to Err, chainable\n\n```go\nfunc (err *Err) AddDetailsErr(details ...error) *Err\n```\nAddDetailsErr -- adds errors as detail messages to Err,chainable\n\n```go\nfunc (err *Err) WithField(name, value string) *Err\n```\nWithField -- adds field to Err, chainable\n\n```go\nfunc (err *Err) WithFields(fields Fields) *Err\n```\nWithFields -- adds fields to Err, chainable\n\n```go\nfunc (err *Err) Error() string\n```\nReturns text representation kinda \"unable to parse quota []\"\n\n```go\nfunc (err *Err) Gonic(ctx *gin.Context)\n```\nGonic -- aborts gin HTTP request with StatusHTTP and provides json representation of error\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontainerum%2Fcherry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcontainerum%2Fcherry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontainerum%2Fcherry/lists"}