{"id":19134062,"url":"https://github.com/umbrellio/gbot","last_synced_at":"2025-06-30T17:34:25.022Z","repository":{"id":45447295,"uuid":"288761100","full_name":"umbrellio/gbot","owner":"umbrellio","description":"Gitlab bot platform","archived":false,"fork":false,"pushed_at":"2025-03-21T10:19:09.000Z","size":121,"stargazers_count":11,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-09T20:49:35.344Z","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/umbrellio.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,"zenodo":null}},"created_at":"2020-08-19T14:56:39.000Z","updated_at":"2025-03-21T10:19:13.000Z","dependencies_parsed_at":"2024-06-06T12:02:34.789Z","dependency_job_id":"0de47df0-8797-4100-9013-a32d52d076a9","html_url":"https://github.com/umbrellio/gbot","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/umbrellio/gbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umbrellio%2Fgbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umbrellio%2Fgbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umbrellio%2Fgbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umbrellio%2Fgbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/umbrellio","download_url":"https://codeload.github.com/umbrellio/gbot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umbrellio%2Fgbot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262819387,"owners_count":23369463,"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-09T06:25:17.901Z","updated_at":"2025-06-30T17:34:24.874Z","avatar_url":"https://github.com/umbrellio.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @umbrellio/gbot\n\nGitlab bot platform.\n\n## Installation\n\n```sh\n$ yarn add @umbrellio/gbot\n```\n\nor\n\n```sh\n$ npm i @umbrellio/gbot\n```\n\n## Usage\n\n### `unapproved`\n\nSends unapproved MRs to mattermost / slack. MR will be ignored if it has `Draft`/`WIP` mark.\n\n```sh\n$ gbot unapproved -c /path/to/config/gbot.yaml\n```\n\n## Configuration\n\nEach setting can be set via environment variables.\nEach variable must start with `GBOT_` prefix. Double underscore is interpreted as nesting, for example:\n\n```sh\nGBOT_GITLAB_TOKEN=token # { \"gitlabToken\": \"token\" }\nGBOT_GITLAB__TOKEN=token # {\"gitlab\": { \"token\": \"token\" } }\n```\n\nExample of the config file:\n\n```yml\nmessenger:\n  url: \"\u003cchat.postMessage URL\u003e\"        # Slack chat.postMessage endpoint\n  token: \"\u003cTOKEN\u003e\"                     # Slack token with chat:write scope\n  channel: \"\u003cCHANNEL\u003e\"                 # Mattermost / Slack channel where will be messages sent\n  markup: \"slack\"                      # Messenger markup (default - \"markdown\").\n                                       # Possible values:\n                                       # - \"markdown\" (for Mattermost)\n                                       # - \"slack\" (for Slack)\n  sender:\n    username: \"@umbrellio/gbot\"        # Sender's display name\n    icon: \"\u003cicon url\u003e\"                 # Sender's icon url\n  slack:\n    usernameMapping:\n      pavel: \"U020DSB741G\"             # Mapping of Gitlab username to Slack ID\ngitlab:\n  token: \"\u003cTOKEN\u003e\"                     # GitLab Private Access Token\n  url: \"\u003cgitlab api url\u003e\"              # Gitlab API base url\n  groups:                              # List of your project’s groups (optional if projects are defined)\n  - id: 4                              # Group id\n    excluded: [1, 2, 3]                # List of projects to exclude from the current group projects (optional)\n  - id: 5\n  projects:                            # List of your project (optional if groups are defined)\n  - id: 42                             # Project id\n    paths:                             # List of paths that should be changed in merge requests\n    - src/**/*\n  - id: 43\n\n# tasks config\nunapproved:                            # Config for `unapproved` command\n  emoji:                               # Emoji which will be set for each MR (optional)\n    24h: \":emoji1:\"                    # If MR's last update time more than 24 hours\n                                       # Time interval can be set in seconds, minutes,\n                                       # hours and days (30s, 10m, 5h, 2d)\n    12h: \":emoji2:\"                    # If MR's last update time more than 12 hours\n    default: \":emoji3:\"                # Default emoji (if other ones wasn't matched)\n  tag:                                 # Specify who will be tagged in messenger\n    approvers: false                   # Tag approvers or not (default - false)\n    author: false                      # Tag author of PR or not (default - false)\n    commenters: false                  # Tag thread commenters or not (default - false)\n    onThreadsOpen: false               # Whether to tag thread authors and PR author when threads are present\n    onConflict: false                  # Whether to tag PR author if there are conflicts\n  diffs: false                         # Show changed lines count or not (default - false)\n  splitByReviewProgress: false         # Whether to split the requests into those completely without review, those that under review and those with conflicts\n  requestsPerMessage: 15               # Merge requests count per message\n  checkConflicts: false                # Whether to check PR conflicts\n```\n\nGroups in the config are [Gitlab project groups](https://docs.gitlab.com/ee/user/group/). You must specify the group or the project, or both.\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/umbrellio/gbot.\n\n## License\n\nReleased under MIT License.\n\n## Authors\n\nCreated by [Aleksei Bespalov](https://github.com/nulldef).\n\n\u003ca href=\"https://github.com/umbrellio/\"\u003e\n\u003cimg style=\"float: left;\" src=\"https://umbrellio.github.io/Umbrellio/supported_by_umbrellio.svg\" alt=\"Supported by Umbrellio\" width=\"439\" height=\"72\"\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumbrellio%2Fgbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fumbrellio%2Fgbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumbrellio%2Fgbot/lists"}