{"id":23895490,"url":"https://github.com/michimani/go-esa","last_synced_at":"2026-07-03T12:36:32.180Z","repository":{"id":42220427,"uuid":"466225911","full_name":"michimani/go-esa","owner":"michimani","description":"Unofficial esa SDK for the Go programming language.","archived":false,"fork":false,"pushed_at":"2026-06-19T02:48:11.000Z","size":238,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-19T04:22:04.844Z","etag":null,"topics":["esapi","golang"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/michimani.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-03-04T18:12:49.000Z","updated_at":"2026-06-19T02:48:13.000Z","dependencies_parsed_at":"2024-02-13T15:15:49.637Z","dependency_job_id":"0a4ea49b-c6ee-4d40-823a-56581b642bb7","html_url":"https://github.com/michimani/go-esa","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/michimani/go-esa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michimani%2Fgo-esa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michimani%2Fgo-esa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michimani%2Fgo-esa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michimani%2Fgo-esa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michimani","download_url":"https://codeload.github.com/michimani/go-esa/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michimani%2Fgo-esa/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35086520,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-03T02:00:05.635Z","response_time":110,"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":["esapi","golang"],"created_at":"2025-01-04T15:57:29.699Z","updated_at":"2026-07-03T12:36:31.749Z","avatar_url":"https://github.com/michimani.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"go-esa\n===\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/michimani/go-esa.svg)](https://pkg.go.dev/github.com/michimani/go-esa)\n[![codecov](https://codecov.io/gh/michimani/go-esa/branch/main/graph/badge.svg?token=JL9T8F4GBX)](https://codecov.io/gh/michimani/go-esa)  \n\nUnofficial esa SDK for the Go programming language.\n\n- [esa - 自律的なチームのための情報共有サービス](https://esa.io/)\n- [dev/esa/api/v1 #noexpand - docs.esa.io](https://docs.esa.io/posts/102)\n\n# Supported APIs\n\nProgress of supporting APIs...\n\n- **OAuth**\n  - `GET /oauth/token/info`\n- **Team**\n  - `GET /v1/teams`\n  - `GET /v1/teams/:team_name`\n- **Stats**\n  - `GET /v1/teams/:team_name/stats`\n- **Member**\n  - `GET /v1/teams/:team_name/members`\n  - `DELETE /v1/teams/:team_name/members/:screen_name`\n- **Post**\n  - `GET /v1/teams/docs/posts`\n  - `GET /v1/teams/:team_name/posts/:post_number`\n  - `POST /v1/teams/:team_name/posts`\n  - `PATCH /v1/teams/:team_name/posts/:post_number`\n  - `DELETE /v1/teams/:team_name/posts/:post_number`\n- **Comment**\n  - `GET /v1/teams/:team_name/posts/:post_number/comments`\n  - `GET /v1/teams/:team_name/comments/:comment_id`\n  - `POST /v1/teams/:team_name/posts/:post_number/comments`\n  - `PATCH /v1/teams/:team_name/comments/:comment_id`\n  - `DELETE /v1/teams/:team_name/comments/:comment_id`\n  - `GET /v1/teams/:team_name/comments`\n- **Star**\n  - `GET /v1/teams/:team_name/posts/:post_number/stargazers`\n  - `POST /v1/teams/:team_name/posts/:post_number/star`\n  - `DELETE /v1/teams/:team_name/posts/:post_number/star`\n  - `GET /v1/teams/:team_name/comments/:comment_id/stargazers`\n  - `POST /v1/teams/:team_name/comments/:comment_id/star`\n  - `DELETE /v1/teams/:team_name/comments/:comment_id/star`\n- **Watch**\n  - `GET /v1/teams/:team_name/posts/:post_number/watchers`\n  - `POST /v1/teams/:team_name/posts/:post_number/watch`\n  - `DELETE /v1/teams/:team_name/posts/:post_number/watch`\n- **Tag**\n  - `GET v1/teams/:team_name/tags`\n- **Category**\n  - `POST v1/teams/:team_name/categories/batch_move`\n- **Emoji**\n  - `GET /v1/teams/:team_name/emojis`\n  - `POST /v1/teams/:team_name/emojis`\n  - `DELETE /v1/teams/:team_name/emojis/:code`\n- **User**\n  - `GET /v1/user`\n- **Invitation by shared URL**\n  - `GET /v1/teams/:team_name/invitation`\n  - `POST /v1/teams/:team_name/invitation_regenerator`\n- **Invitation by Email**\n  - `POST /v1/teams/:team_name/invitations`\n  - `GET /v1/teams/:team_name/invitations`\n  - `DELETE /v1/teams/:team_name/invitations/:code`\n\n# Sample\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/michimani/go-esa/esaapi/oauthtoken\"\n\t\"github.com/michimani/go-esa/esaapi/oauthtoken/types\"\n\t\"github.com/michimani/go-esa/gesa\"\n)\n\nfunc main() {\n\ttoken := \"your-access-token\"\n\tc, err := gesa.NewClient(\u0026gesa.NewClientInput{\n\t\tAccessToken: token,\n\t})\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tgetOAuthTokenInfo(c)\n}\n\nfunc getOAuthTokenInfo(c *gesa.Client) {\n\tr, err := oauthtoken.GetOAuthTokenInfo(context.Background(), c, \u0026types.GetOAuthTokenInfoInput{})\n\tif err != nil {\n\t\tfmt.Println(err)\n\n\t\tge := err.(*gesa.GesaError)\n\t\tif ge.OnAPI {\n\t\t\tfmt.Println(ge.EsaAPIError.StatusCode)\n\t\t\tfmt.Println(ge.EsaAPIError.Status)\n\t\t\tfmt.Println(ge.EsaAPIError.Error)\n\t\t\tfmt.Println(ge.EsaAPIError.Message)\n\n\t\t\tif ge.EsaAPIError.RateLimitInfo != nil {\n\t\t\t\tfmt.Println(ge.EsaAPIError.RateLimitInfo.Limit)\n\t\t\t\tfmt.Println(ge.EsaAPIError.RateLimitInfo.Remaining)\n\t\t\t\tfmt.Println(ge.EsaAPIError.RateLimitInfo.Reset)\n\t\t\t}\n\t\t}\n\n\t\treturn\n\t}\n\n\tfmt.Printf(\"Response: %+v \\n\", r)\n\n\tfmt.Println(gesa.IntValue(r.ResourceOwnerID))\n\tfmt.Println(r.Scope)\n\tfmt.Println(r.Application.UID)\n\tfmt.Println(r.CreatedAt.Time())\n\tfmt.Println(r.User.ID)\n\tfmt.Println(r.RateLimitInfo)\n}\n```\n\n## More examples\n\nSee [_examples](https://github.com/michimani/go-esa/tree/main/_examples) directory.\n\n# License\n\n[MIT](https://github.com/michimani/go-esa/blob/main/LICENSE)\n\n# Author\n\n[michimani210](https://twitter.com/michimani210)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichimani%2Fgo-esa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichimani%2Fgo-esa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichimani%2Fgo-esa/lists"}