{"id":14155416,"url":"https://github.com/traefik/lobicornis","last_synced_at":"2025-04-10T01:21:55.811Z","repository":{"id":44924688,"uuid":"98757077","full_name":"traefik/lobicornis","owner":"traefik","description":"🤖 [Myrmica Lobicornis 🐜] Bot: Update and Merge Pull Request","archived":false,"fork":false,"pushed_at":"2024-08-30T12:22:03.000Z","size":218,"stargazers_count":27,"open_issues_count":0,"forks_count":7,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-03-24T03:03:43.673Z","etag":null,"topics":["github","github-bot","merge","pull-requests"],"latest_commit_sha":null,"homepage":"","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/traefik.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-29T20:25:55.000Z","updated_at":"2024-08-30T12:22:07.000Z","dependencies_parsed_at":"2024-09-29T00:21:44.630Z","dependency_job_id":"5fcf070d-2a3a-49ca-a14a-c36b923ca216","html_url":"https://github.com/traefik/lobicornis","commit_stats":{"total_commits":162,"total_committers":4,"mean_commits":40.5,"dds":0.191358024691358,"last_synced_commit":"2fd0ac345c19218903287ea19713ddaf426f1465"},"previous_names":["containous/lobicornis"],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traefik%2Flobicornis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traefik%2Flobicornis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traefik%2Flobicornis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traefik%2Flobicornis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/traefik","download_url":"https://codeload.github.com/traefik/lobicornis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248138257,"owners_count":21053839,"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","github-bot","merge","pull-requests"],"created_at":"2024-08-17T08:03:05.467Z","updated_at":"2025-04-10T01:21:55.760Z","avatar_url":"https://github.com/traefik.png","language":"Go","funding_links":[],"categories":["github"],"sub_categories":[],"readme":"# Myrmica Lobicornis - Update and Merge Pull Request\n\n[![GitHub release](https://img.shields.io/github/release/traefik/lobicornis.svg)](https://github.com/traefik/lobicornis/releases/latest)\n[![Build Status](https://github.com/traefik/lobicornis/workflows/Main/badge.svg?branch=master)](https://github.com/traefik/lobicornis/actions)\n[![Docker Image Version (latest semver)](https://img.shields.io/docker/v/traefik/lobicornis?label=Docker%20Image)](https://hub.docker.com/r/traefik/lobicornis/builds/)\n\n## Description\n\nThe bot:\n\n- find all open PRs with a specific label (`marker.needMerge`)\n- manage all the repositories of a user or an organization\n- take one PR\n    - with a specific label (`marker.mergeInProgress`) if exists\n    - or the least recently updated PR\n- verify:\n    - GitHub checks (CI, ...)\n    - \"Mergeability\"\n    - Reviews (`minReview`)\n- check if the PR need to be updated\n    - if yes: rebase or merge with the base PR branch (ex: `master`)\n- merge the PR with the chosen merge method. (`mergeMethod`, `marker.mergeMethodPrefix`)\n- closes related issues and add the same milestone as the PR\n- if errors occurs add a specific label (`marker.needHumanMerge`)\n- if the description of the PR contains a co-author (`Co-authored-by: login \u003cemail@email.com\u003e`) the co-author is set on the merge commit.\n\n```yaml\nMyrmica Lobicornis:\n  -config string\n        Path to the configuration file. (default \"./lobicornis.yml\")\n  -h    Show this help.\n  -server\n        Run as a web server.\n  -version\n        Display version information.\n```\n\n`GITHUB_TOKEN`: GitHub token\n\nConfiguration file overview:\n\n```yaml\ngithub:\n  # can be organization name or user name.\n  user: foo\n  # GitHub token.\n  token: XXXX\n  # optional only for GitHub Enterprise. \n  url: http://my-private-github.com\n\ngit:\n  # Git user email.\n  email: bot@example.com\n  # Git user name.\n  userName: botname\n  # if true, use SSH instead HTTPS.\n  ssh: false\n\nserver:\n  # server port. (only used in server mode)\n  port: 80\n\nextra:\n  # Debug mode.\n  debug: false\n  # Dry run mode.\n  dryRun: true\n\n# GitHub Labels.\nmarkers:\n  # Label use when a pull request need a lower minimal review as default.\n  lightReview: bot/light-review\n  # Label use when the bot update the PR (merge/rebase).\n  mergeInProgress: status/4-merge-in-progress\n  # Use to override default merge method for a PR.\n  mergeMethodPrefix: bot/merge-method-\n  # Use to manage merge retry.\n  mergeRetryPrefix: bot/merge-retry-\n  # Label use when the bot cannot perform a merge.\n  needHumanMerge: bot/need-human-merge\n  # Label use when you want the bot perform a merge.\n  needMerge: status/3-needs-merge\n  # Label use when a PR must not be merge.\n  noMerge: bot/no-merge\n\n# Merge retry configuration.\nretry:\n  # Time between retry.\n  interval: 1m0s\n  # Number of retry before failed.\n  number: 1\n  # Retry on PR mergeable state (GitHub information).\n  onMergeable: false\n  # Retry on GitHub checks (aka statuses).\n  onStatuses: false\n\n# default configuration used by all repositories of the user.\ndefault:\n  # Use GitHub repository configuration to check the need to be up-to-date.\n  checkNeedUpToDate: false\n  # Forcing need up-to-date. (checkNeedUpToDate must be false)\n  forceNeedUpToDate: true\n  # Default merge method. (merge|squash|rebase|ff)\n  mergeMethod: squash\n  # Minimal number of review (light review).\n  minLightReview: 0\n  # Minimal number of review.\n  minReview: 1\n  # Forcing PR to have a milestone.\n  needMilestone: true\n  # Add a comment in the pull request when an error occurs.\n  addErrorInComment: false\n  # When the merge method is squash, define the strategy to create the commit message. (github|empty|description)\n  commitMessage: empty\n\n# defines override of the default configuration by repository.\nrepositories:\n  'foo/myrepo1':\n    minLightReview: 1\n    minReview: 3\n    needMilestone: true\n  'foo/myrepo2':\n    minLightReview: 1\n    minReview: 1\n    needMilestone: false\n```\n\n## Examples\n \n```bash\nexport GITHUB_TOKEN=xxx\nlobicornis\n```\n\n```bash\nexport GITHUB_TOKEN=xxx\nlobicornis -server\n```\n\n```bash\nexport GITHUB_TOKEN=xxx\nlobicornis -config=\"./my-config.yml\"\n```\n\n## The Mymirca colony\n\n- [Myrmica Lobicornis](https://github.com/traefik/lobicornis) 🐜: Update and merge pull requests.\n- [Myrmica Aloba](https://github.com/traefik/aloba) 🐜: Add labels and milestone on pull requests and issues.\n- [Messor Structor](https://github.com/traefik/structor) 🐜: Manage multiple documentation versions with Mkdocs.\n- [Lasius Mixtus](https://github.com/traefik/mixtus) 🐜: Publish documentation to a GitHub repository from another.\n- [Myrmica Bibikoffi](https://github.com/traefik/bibikoffi) 🐜: Closes stale issues\n- [Chalepoxenus Kutteri](https://github.com/traefik/kutteri) 🐜: Track a GitHub repository and publish on Slack.\n- [Myrmica Gallienii](https://github.com/traefik/gallienii) 🐜: Keep Forks Synchronized\n\n## What does Myrmica Lobicornis mean?\n\n![Myrmica Lobicornis](http://www.antwiki.org/wiki/images/5/51/Myrmica_lobicornis_casent0172718_head_1.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftraefik%2Flobicornis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftraefik%2Flobicornis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftraefik%2Flobicornis/lists"}