{"id":18581892,"url":"https://github.com/coder/labeler","last_synced_at":"2025-07-12T17:36:48.875Z","repository":{"id":225214136,"uuid":"764287607","full_name":"coder/labeler","owner":"coder","description":"A GitHub app that labels your issues for you","archived":false,"fork":false,"pushed_at":"2024-12-11T23:58:35.000Z","size":118,"stargazers_count":28,"open_issues_count":4,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-10T10:21:22.075Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-02-27T20:10:03.000Z","updated_at":"2025-04-17T18:02:10.000Z","dependencies_parsed_at":"2024-05-28T19:03:13.249Z","dependency_job_id":"78627ac3-1ee5-4e71-8325-7d7fd724d363","html_url":"https://github.com/coder/labeler","commit_stats":null,"previous_names":["coder/labeler"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/coder/labeler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coder%2Flabeler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coder%2Flabeler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coder%2Flabeler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coder%2Flabeler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coder","download_url":"https://codeload.github.com/coder/labeler/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coder%2Flabeler/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265026093,"owners_count":23699886,"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","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":[],"created_at":"2024-11-07T00:08:08.297Z","updated_at":"2025-07-12T17:36:48.848Z","avatar_url":"https://github.com/coder.png","language":"Go","readme":"# labeler\n\n`labeler` is a GitHub app that automatically labels newly created issues for you\nbased on your past labelling decisions.\n\n\n\u003e [!IMPORTANT]\n\u003e You can install coder-labeler on your repo\n\u003e [**here**](https://github.com/marketplace/coder-labeler).\n\n![img](./img/example-label.png)\n\nWe currently use it on [`coder/coder`](https://github.com/coder/coder) and\n[`coder/code-server`](https://github.com/coder/code-server).\n\nThe labeler is well-suited to manage labels that _describe_ or _reduce_ the\nsemantic information of an issue. For example, labels like `bug`, `enhancement`,\nare self-evident from the contents of an issue. Often, a tracker will use labels\nthat add information to an issue, e.g. `wontfix`, `roadmap`. These _inscriptive_\nlabels should be disabled in your configuration.\n\n[#5](https://github.com/coder/labeler/issues/5) tracks the automatic disabling\nof inscriptive labels.\n\n## Configuration\n\nThe labeler's primary configuration is your label descriptions. This way, the labeler interprets your label system in the same way a human would.\n\nAdditionally, the `labeler` reads your `.github/labeler.yml`\nfile for a list of Regex exclusions. Here's an example:\n\n```yaml\n# .github/labeler.yml\nexclude:\n    - good first issue\n    - customer.*$\n```\n\n[#4](https://github.com/coder/labeler/issues/4) tracks the creation\nof a dashboard for debugging configuration.\n\n## Architecture\n\n```mermaid\nsequenceDiagram\n    participant GitHub\n    participant Labeler as @coder-labeler \n    participant AI as OpenAI\n    GitHub-\u003e\u003eLabeler: [Create|Reopen] Issue event\n    note over Labeler: Load repo data, all labeling is stateless\n    Labeler-\u003eGitHub: Get all repo issue labels\n    Labeler-\u003eGitHub: Get last 100 repo issues\n    Labeler-\u003eAI: Generate setLabels via GPT completion\n    Labeler -\u003e\u003e GitHub: Add labels to issue\n```\n\nThe labeler uses a GPT-4o completion with the past 100 opened issues instead of\na more complex vector DB / embedding system. This is because of the proven\naccuracy of @cdr-bot on coder/coder and the fact that the completion approach lets us remove\nthe need for a DB.\n\n### Context construction\n\nSee [aicontext.go](./aicontext.go) for the code that constructs the GPT context.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoder%2Flabeler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoder%2Flabeler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoder%2Flabeler/lists"}