{"id":26294627,"url":"https://github.com/afiore/divergebot","last_synced_at":"2026-04-14T17:31:49.918Z","repository":{"id":137467223,"uuid":"327997121","full_name":"afiore/divergebot","owner":"afiore","description":"Github action to nag your collegues about diverging branches and unmerged commits","archived":false,"fork":false,"pushed_at":"2021-01-12T09:11:06.000Z","size":1081,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-03T10:29:44.814Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/afiore.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":"2021-01-08T19:45:19.000Z","updated_at":"2021-02-25T13:01:25.000Z","dependencies_parsed_at":"2023-07-18T22:30:39.834Z","dependency_job_id":null,"html_url":"https://github.com/afiore/divergebot","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/afiore/divergebot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afiore%2Fdivergebot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afiore%2Fdivergebot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afiore%2Fdivergebot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afiore%2Fdivergebot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/afiore","download_url":"https://codeload.github.com/afiore/divergebot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afiore%2Fdivergebot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31808505,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T11:13:53.975Z","status":"ssl_error","status_checked_at":"2026-04-14T11:13:53.299Z","response_time":153,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2025-03-15T03:31:14.435Z","updated_at":"2026-04-14T17:31:49.912Z","avatar_url":"https://github.com/afiore.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Divergebot-action\n\nA Github action that nags your colleagues about diverging branches and unmerged commits.\n\nGiven a list of head...base branches to compare, Divergebot notifies a Slack webhook with a breakdown\nof the umerged commit counts whenever it detect that the two branches have diverged. \nIn projects where multiple, long-lived branches (e.g. `release/2.3`, `release/2.4`) exist, this can be \nan effective mechanism to encourage contributors to merge their commits across all the relevant branches\nin a timely and proactive fashion.\n\n## Usage\n\n```yaml\n\nname: Run Divergebot\non:\n  schedule:\n    - cron: 0 8 * * *\n  workflow_dispatch:\njobs:\n  divergebot:\n    runs-on: ubuntu-latest\n    steps:\n      - run: echo \"running divergebot\"\n      - uses: afiore/divergebot@v0.9.0\n        with:\n          branches_to_compare: '[\"main...release/2.0.x\", \"main...release/3.0.x\"]'\n          github_api_token: ${{ secrets.GITHUB_TOKEN }}\n          github_owner_repo: ${{ env.GITHUB_REPOSITORY }}\n          slack_webhook_url: ${{ secret.DIVERGEBOT_SLACK_WEBHOOK_URL }}\n          slack_user_ids: '{\"bob-github-login\": \"UP9ZKK410\", \"jane-github-login\": \"UB1ZGG221\", ...}'\n```\n\nHere we configure the action to be run as part of a workflow scheduled daily a 8am, comparing the `main` branch with two release branches of the current repository.\nWe add the `workflow_dispatch` event, we will also be able to trigger this workflow manually from the Github UI.\n### Inputs\n\n##### branches_to_compare\n\nThis is a json encoded list of branches to be compared. Each list item is a string representing a pair of branches separated by `...`.\n\n##### slack_webhook_url\n\nThis the a Slack webhook URL that the action will hit should the compared branches \nhave diverged.\n\n##### github_api_token\n\nThe Github API token to be used in order to compare the two branches.\n\n##### github_owner_repo\n\nA string identifying the Github owner and repository, separated by a slash (e.g. `afiore/divergebot`).\n\n##### slack_user_ids\n\nA json object allowing to resolve Slack user/member ids by their Github login. If supplied, this optional input will be used to enhance the generated slack message\nwith an explicit mention of the user associated to the commit. \n\n## Local development\n\nGithub action inputs are implemented as environment variables, so it is possible to test this action locally as follows:\n\n```bash\nINPUT_BRANCHES_TO_COMPARE='[\"release/other...main\"]' INPUT_GITHUB_API_TOKEN=$MY_TOKEN INPUT_SLACK_WEBHOOK_URL=$MY_WEBHOOK_URL INPUT_GITHUB_OWNER_REPO=owner/repo node index.js\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafiore%2Fdivergebot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fafiore%2Fdivergebot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafiore%2Fdivergebot/lists"}