{"id":13565762,"url":"https://github.com/wip/app","last_synced_at":"2026-04-14T07:04:42.028Z","repository":{"id":38816637,"uuid":"95924889","full_name":"wip/app","owner":"wip","description":"The WIP GitHub App","archived":false,"fork":false,"pushed_at":"2025-04-08T17:23:31.000Z","size":6622,"stargazers_count":737,"open_issues_count":10,"forks_count":129,"subscribers_count":26,"default_branch":"main","last_synced_at":"2025-04-12T21:18:48.947Z","etag":null,"topics":["github-app","probot-app"],"latest_commit_sha":null,"homepage":"https://wip.vercel.app/","language":"JavaScript","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/wip.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"github":"gr2m"}},"created_at":"2017-06-30T21:22:36.000Z","updated_at":"2025-04-08T17:23:34.000Z","dependencies_parsed_at":"2023-12-26T23:32:01.421Z","dependency_job_id":"d4b1a328-3c83-4e9f-9654-e80149e870d5","html_url":"https://github.com/wip/app","commit_stats":{"total_commits":747,"total_committers":34,"mean_commits":"21.970588235294116","dds":"0.46318607764390896","last_synced_commit":"9cc4229ee156637672c46dcc85b35d97e9d5a7ae"},"previous_names":[],"tags_count":138,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wip%2Fapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wip%2Fapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wip%2Fapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wip%2Fapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wip","download_url":"https://codeload.github.com/wip/app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248631824,"owners_count":21136572,"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":["github-app","probot-app"],"created_at":"2024-08-01T13:01:54.992Z","updated_at":"2026-04-14T07:04:42.022Z","avatar_url":"https://github.com/wip.png","language":"JavaScript","funding_links":["https://github.com/sponsors/gr2m"],"categories":["JavaScript","Bots"],"sub_categories":["Probot bots"],"readme":"\u003cp align=center\u003e\u003ca href=\"https://github.com/wip/app/tree/main/assets\"\u003e\u003cimg src=\"https://github.com/wip/app/raw/main/assets/wip-logo.png\" alt=\"\" width=\"200\" height=\"200\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eDO NOT MERGE – as a service.\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://stats.uptimerobot.com/Dq46zf6PY\" rel=\"nofollow\"\u003e\u003cimg src=\"https://img.shields.io/uptimerobot/status/m779429441-a6394a1f5546b634ac6b52f8.svg\" alt=\"Uptime Robot status\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/octokit/app.js/actions?workflow=Test\" rel=\"nofollow\"\u003e\u003cimg alt=\"Build Status\" src=\"https://github.com/octokit/app.js/workflows/Test/badge.svg\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n![WIP bot screencast](https://github.com/wip/app/raw/main/assets/wip.gif)\n\nBy default, WIP is setting a pull request status to pending if it finds one of the following terms in the pull request titles\n\n- wip\n- work in progress\n- :construction:\n\nThe pro plan allows for [configuration](#configuration) of both the terms and the locations that the app is looking for the terms. The pending status can be overwritten by adding `@wip ready for review` to the pull request body.\n\n:robot::postal_horn: If you use the WIP app we strongly recommend to [subscribe to the updates](https://github.com/wip/app/issues/89)\n\n## Configuration\n\nRepositories belonging to an account or organization with a Pro plan subscription can be configured by creating a `.github/wip.yml` file:\n\n1. In the repository you want the configuration to be applied in or\n2. In a repository with the name `.github` to apply the configuration to all repositories.\n\nTwo options can be configured\n\n1. **locations**: any of `title` (pull request title), `label_name` and `commit_subject` (1st line of the pull request’s commit messages). Default: `title`\n2. **terms**: list of strings to look for in the defined locations. All terms are case-insensitive. Default: \"wip\", \"work in progress\" and \":construction:\"\n\nExample:\n\n```yaml\nlocations:\n  - title\n  - label_name\n  - commit_subject\nterms:\n  - do not merge\n  - ⛔\n```\n\nThe above configuration makes WIP look for \"do not merge\" and \":no_entry:\" in the pull request title, all assigned label names and all commit subjects.\n\nYou can also configure different terms for different locations:\n\n```yaml\n- terms: ⛔\n  locations:\n    - title\n    - label_name\n- terms:\n    - fixup!\n    - squash!\n  locations: commit_subject\n- terms: \"- [ ]\"\n  locations: body\n```\n\nThe above configuration looks first for :no_entry: in the pull request title and assigned label names. After that it looks for `fixup!` and `squash!` in the commit subjects. Finally, it looks for unchecked checkboxes (`- [ ]`) in the pull request body.\n\n**A Note About Term Matching:**  \nTerms which contain only non-word characters as defined by JS RegExp [^a-za-z0-9_] are matched regardless of word boundaries. Any other terms (which may contain a mix of word and non-word characters will only match when surrounded by start/end OR non-word characters.\n\n## About WIP\n\nBesides being a hopefully useful GitHub application, the WIP app is also meant as a reference implementation of a GitHub app built with [Probot](https://probot.github.io/) ([source code](https://github.com/wip/app)). I try to keep the complexity low and the code easy to follow. If you are thinking of creating your own GitHub app, the WIP might be a good starting point for you.\n\nBesides the code, I also made our [policies](https://github.com/wip/policies) good templates for your app.\n\nThe WIP is deployed as serverless application to [Vercel](https://vercel.com/?utm_source=wip\u0026utm_campaign=oss). The logs are drained to [Logflare](https://logflare.app/), which also provides the data source for the dashboard you see on [wip.vercel.app](https://wip.vercel.app).\n\nAll revenue from the \"pro\" plan will be donated to [Processing | p5.js](https://p5js.org/download/support.html) – one of the most diverse and impactful Open Source community there is. I only added the paid plan to make the WIP a real-life GitHub App example. If you cannot pay but depend on the pro features you can add your account with an explanation to the [`pro-plan-for-free.js` file](pro-plan-for-free.js).\n\nIf you have any questions, please don’t hesitate to create an issue.\n\n## Credits\n\nThe WIP app was created by [Gregor Martynus](https://github.com/gr2m). You can follow him on twitter at [@gr2m](https://twitter.com/gr2m).\n\nThe logo was created by [Micah Ilbery](https://github.com/micahilbery).\n\n## Legal\n\nLicense: [Apache 2.0](LICENSE). [Privacy Policy](https://github.com/wip/policies/blob/master/PRIVACY.md). [Security Policy](https://github.com/wip/policies/blob/master/SECURITY.md). [Code of Conduct](CODE_OF_CONDUCT.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwip%2Fapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwip%2Fapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwip%2Fapp/lists"}