{"_id":"@cadolabs/gbot","_rev":"13-cc41b01912ef3a5d975f7b56eb26e09d","name":"@cadolabs/gbot","dist-tags":{"latest":"2.7.1"},"versions":{"2.1.2":{"name":"@cadolabs/gbot","version":"2.1.2","author":{"name":"Aleksei Bespalov","email":"nulldefiner@gmail.com"},"license":"MIT","_id":"@cadolabs/gbot@2.1.2","maintainers":[{"name":"cadolabs","email":"oss@cadolabs.io"}],"homepage":"https://github.com/Cado-Labs/gbot","bugs":{"url":"https://github.com/Cado-Labs/gbot/issues"},"bin":{"gbot":"gbot"},"dist":{"shasum":"8d5e513bc66d1daa61b96a063475dba301b84e66","tarball":"https://registry.npmjs.org/@cadolabs/gbot/-/gbot-2.1.2.tgz","fileCount":19,"integrity":"sha512-QrteyIfrq05CDbQlddutJ0TSIkEtohEknY3Vof3rsjZBZFtnXhx7vWS8Cy686KssbYfuNu35QBCeHwd6a43t/A==","signatures":[{"sig":"MEUCIQCZuBHe0P3ufL8eEeVJ1kinoFij/jx90br1omT8/NN0CgIgSrocpO4TOE0UXd+jmxnJcuV/pvGKbdy3vWSfyLLeAm4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32626},"gitHead":"5cc390838ceea0cb26c9d0531fa9e8aa08595783","scripts":{"lint":"eslint .","lint:fix":"eslint . --fix"},"_npmUser":{"name":"cadolabs","email":"oss@cadolabs.io"},"repository":{"url":"git+https://github.com/Cado-Labs/gbot.git","type":"git"},"_npmVersion":"8.19.4","description":"Gitlab bot platform.","directories":{},"_nodeVersion":"16.20.2","dependencies":{"yargs":"^17.3.0","lodash":"^4.17.21","js-yaml":"^4.1.0","winston":"^3.3.3","minimatch":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.4.1","@babel/core":"^7.14.6","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.16.3","eslint-plugin-import":"^2.25.3","eslint-plugin-promise":"^5.2.0","eslint-config-umbrellio":"^5.0.1","eslint-plugin-prefer-object-spread":"^1.2.1"},"_npmOperationalInternal":{"tmp":"tmp/gbot_2.1.2_1720463487064_0.6004757827874381","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"@cadolabs/gbot","version":"2.2.0","author":{"name":"Aleksei Bespalov","email":"nulldefiner@gmail.com"},"license":"MIT","_id":"@cadolabs/gbot@2.2.0","maintainers":[{"name":"cadolabs","email":"oss@cadolabs.io"}],"homepage":"https://github.com/Cado-Labs/gbot","bugs":{"url":"https://github.com/Cado-Labs/gbot/issues"},"bin":{"gbot":"gbot"},"dist":{"shasum":"1fa238d75d68fc01568703df09d47161216dcf9f","tarball":"https://registry.npmjs.org/@cadolabs/gbot/-/gbot-2.2.0.tgz","fileCount":21,"integrity":"sha512-KpUujVdHPxi4B2YI/3HarIYwKrQbbB56CH2KyRF3hopVfvGOmrBMZ/EYCmEU1dy6uHMjy/TW1jOLNfjp4/Vm1A==","signatures":[{"sig":"MEUCIF1cPlBziYI08zfLHK46hO3FlusTRmHlFYjk96Def6/8AiEAmuqRWPkbno8FHzsobJK4w6jlQJ+UGIRE6+RPrScd0e4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34286},"gitHead":"cc72e90213ca475b0b53228448836d6c4413d0f5","scripts":{"lint":"eslint .","lint:fix":"eslint . --fix"},"_npmUser":{"name":"cadolabs","email":"oss@cadolabs.io"},"repository":{"url":"git+https://github.com/Cado-Labs/gbot.git","type":"git"},"_npmVersion":"8.19.4","description":"Gitlab bot platform.","directories":{},"_nodeVersion":"16.20.2","dependencies":{"yargs":"^17.3.0","lodash":"^4.17.21","js-yaml":"^4.1.0","winston":"^3.3.3","minimatch":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.4.1","@babel/core":"^7.14.6","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.16.3","eslint-plugin-import":"^2.25.3","eslint-plugin-promise":"^5.2.0","eslint-config-umbrellio":"^5.0.1","eslint-plugin-prefer-object-spread":"^1.2.1"},"_npmOperationalInternal":{"tmp":"tmp/gbot_2.2.0_1742806357045_0.88332493937226","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@cadolabs/gbot","version":"2.3.0","author":{"name":"Aleksei Bespalov","email":"nulldefiner@gmail.com"},"license":"MIT","_id":"@cadolabs/gbot@2.3.0","maintainers":[{"name":"cadolabs","email":"oss@cadolabs.io"}],"homepage":"https://github.com/Cado-Labs/gbot","bugs":{"url":"https://github.com/Cado-Labs/gbot/issues"},"bin":{"gbot":"gbot"},"dist":{"shasum":"6b06b3039e314843912c097e7b89457914bedbdd","tarball":"https://registry.npmjs.org/@cadolabs/gbot/-/gbot-2.3.0.tgz","fileCount":21,"integrity":"sha512-XSWp14mbdV7yRe+pzXlfFzuRzGqBZ1+wRDYZOTNa1/Du9Z7aveT7EZEq+l1OaS7iZsuHv85WcvilpsLfJuK0tQ==","signatures":[{"sig":"MEQCIGIKzx9WbIr9pkhJCnKAzz1LF6dBFcvpfjV76X9LDVupAiB8dCM0zeC3ptQeGeSY9TvZEwSM2PmHM3lqlGaBYJYIWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34547},"gitHead":"2c6c8057eb4280817bc73aea863799a49214b661","scripts":{"lint":"eslint .","lint:fix":"eslint . --fix"},"_npmUser":{"name":"cadolabs","actor":{"name":"cadolabs","type":"user","email":"oss@cadolabs.io"},"email":"oss@cadolabs.io"},"repository":{"url":"git+https://github.com/Cado-Labs/gbot.git","type":"git"},"_npmVersion":"10.8.2","description":"Gitlab bot platform.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"yargs":"^17.3.0","lodash":"^4.17.21","js-yaml":"^4.1.0","winston":"^3.3.3","minimatch":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.4.1","@babel/core":"^7.14.6","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.16.3","eslint-plugin-import":"^2.25.3","eslint-plugin-promise":"^5.2.0","eslint-config-umbrellio":"^5.0.1","eslint-plugin-prefer-object-spread":"^1.2.1"},"_npmOperationalInternal":{"tmp":"tmp/gbot_2.3.0_1750255715707_0.00457808426507289","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@cadolabs/gbot","version":"2.3.1","author":{"name":"Aleksei Bespalov","email":"nulldefiner@gmail.com"},"license":"MIT","_id":"@cadolabs/gbot@2.3.1","maintainers":[{"name":"cadolabs","email":"oss@cadolabs.io"}],"homepage":"https://github.com/Cado-Labs/gbot","bugs":{"url":"https://github.com/Cado-Labs/gbot/issues"},"bin":{"gbot":"gbot"},"dist":{"shasum":"6cbb4aeb89b0681c2d20d6f3694b9725870400f4","tarball":"https://registry.npmjs.org/@cadolabs/gbot/-/gbot-2.3.1.tgz","fileCount":20,"integrity":"sha512-Odlo7h4EmTtcR3rR3Aqth+lugGk58Lv7oxJDUkduWuA+y5h85GKWjCMVKjS2QF6v5CAggK7HROUiKMtHZTpAhA==","signatures":[{"sig":"MEUCIQD8qt1BuasbHUbe2Nzh0em80stKxj0K71vTRueI+xqmdgIgPnCDTjONeY9vp2C0GbvIBtFjYaLDCY6/45CyBA2a6QA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30921},"gitHead":"ba9ef5ca9ad6b4f57c21e3f6c8a268566e59fb71","scripts":{"lint":"eslint .","lint:fix":"eslint . --fix"},"_npmUser":{"name":"cadolabs","actor":{"name":"cadolabs","type":"user","email":"oss@cadolabs.io"},"email":"oss@cadolabs.io"},"repository":{"url":"git+https://github.com/Cado-Labs/gbot.git","type":"git"},"_npmVersion":"10.8.2","description":"Gitlab bot platform.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"axios":"^1.10.0","yargs":"^17.3.0","lodash":"^4.17.21","js-yaml":"^4.1.0","winston":"^3.3.3","minimatch":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.4.1","@babel/core":"^7.14.6","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.16.3","eslint-plugin-import":"^2.25.3","eslint-plugin-promise":"^5.2.0","eslint-config-umbrellio":"^5.0.1","eslint-plugin-prefer-object-spread":"^1.2.1"},"_npmOperationalInternal":{"tmp":"tmp/gbot_2.3.1_1751375477297_0.6346923847818577","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"@cadolabs/gbot","version":"2.3.2","author":{"name":"Aleksei Bespalov","email":"nulldefiner@gmail.com"},"license":"MIT","_id":"@cadolabs/gbot@2.3.2","maintainers":[{"name":"cadolabs","email":"oss@cadolabs.io"}],"homepage":"https://github.com/Cado-Labs/gbot","bugs":{"url":"https://github.com/Cado-Labs/gbot/issues"},"bin":{"gbot":"gbot"},"dist":{"shasum":"c64cb6bb1f815d62532d5d8322fd464e104e83c4","tarball":"https://registry.npmjs.org/@cadolabs/gbot/-/gbot-2.3.2.tgz","fileCount":22,"integrity":"sha512-Jfk+LO9/nOa6mcxdxTAkupLsow4RyMlkdVEjWaBCp2tvxQ2JW8Js6CkjCA2HJHFIm7+RXK2Nhgsi8YuoPrYg0w==","signatures":[{"sig":"MEUCIG6wN5fyHE4WxEQPY+aK+VYcz0aoYgnFhgtwMq0ujrA2AiEAxraRf11Yshw2dSVYTCzUle8i3i5YPNhjuI67eK6uxdA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31655},"gitHead":"91b70bb18bb1595c2c18a32119074a8e581bf5a1","scripts":{"lint":"eslint .","lint:fix":"eslint . --fix"},"_npmUser":{"name":"cadolabs","email":"oss@cadolabs.io"},"repository":{"url":"git+https://github.com/Cado-Labs/gbot.git","type":"git"},"_npmVersion":"10.8.2","description":"Gitlab bot platform.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"axios":"^1.10.0","yargs":"^17.3.0","lodash":"^4.17.21","js-yaml":"^4.1.0","winston":"^3.3.3","minimatch":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.4.1","@babel/core":"^7.14.6","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.16.3","eslint-plugin-import":"^2.25.3","eslint-plugin-promise":"^5.2.0","eslint-config-umbrellio":"^5.0.1","eslint-plugin-prefer-object-spread":"^1.2.1"},"_npmOperationalInternal":{"tmp":"tmp/gbot_2.3.2_1752659376965_0.9548341072276272","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@cadolabs/gbot","version":"2.4.0","author":{"name":"Aleksei Bespalov","email":"nulldefiner@gmail.com"},"license":"MIT","_id":"@cadolabs/gbot@2.4.0","maintainers":[{"name":"cadolabs","email":"oss@cadolabs.io"}],"homepage":"https://github.com/Cado-Labs/gbot","bugs":{"url":"https://github.com/Cado-Labs/gbot/issues"},"bin":{"gbot":"gbot"},"dist":{"shasum":"76e54fd32eb6364fdf13f9420bd1f0b1c90a1caa","tarball":"https://registry.npmjs.org/@cadolabs/gbot/-/gbot-2.4.0.tgz","fileCount":22,"integrity":"sha512-VhKOca00C6hqOpnm4mH1BttD1Fmv3taRkbuiyq+B8/BnevRlOYvKm6TnUm+Q6DD8BCx3HHQgWVoJ4sQRWQug1g==","signatures":[{"sig":"MEYCIQCwkesoOZF/O+2OdOa5nrxIldYswt2u0z81hPjrPGoalAIhALO130iyc8DPd9UhUpiqR99L+2/n1JcISzbwsngnIeVg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31872},"gitHead":"d4422af904a3d0c236a360b90f3ed5d214671a38","scripts":{"lint":"eslint .","lint:fix":"eslint . --fix"},"_npmUser":{"name":"cadolabs","email":"oss@cadolabs.io"},"repository":{"url":"git+https://github.com/Cado-Labs/gbot.git","type":"git"},"_npmVersion":"10.8.2","description":"Gitlab bot platform.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"axios":"^1.10.0","yargs":"^17.3.0","lodash":"^4.17.21","js-yaml":"^4.1.0","winston":"^3.3.3","minimatch":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.4.1","@babel/core":"^7.14.6","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.16.3","eslint-plugin-import":"^2.25.3","eslint-plugin-promise":"^5.2.0","eslint-config-umbrellio":"^5.0.1","eslint-plugin-prefer-object-spread":"^1.2.1"},"_npmOperationalInternal":{"tmp":"tmp/gbot_2.4.0_1756893163406_0.6087709220374613","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@cadolabs/gbot","version":"2.5.0","author":{"name":"Aleksei Bespalov","email":"nulldefiner@gmail.com"},"license":"MIT","_id":"@cadolabs/gbot@2.5.0","maintainers":[{"name":"cadolabs","email":"oss@cadolabs.io"},{"name":"alexander.baz","email":"alexander.baz@cadolabs.io"}],"homepage":"https://github.com/Cado-Labs/gbot","bugs":{"url":"https://github.com/Cado-Labs/gbot/issues"},"bin":{"gbot":"gbot"},"dist":{"shasum":"4034235e36d8132afa29fd5294032a5981129dac","tarball":"https://registry.npmjs.org/@cadolabs/gbot/-/gbot-2.5.0.tgz","fileCount":22,"integrity":"sha512-iKP4XdqOMw+0H8s2QUuvYSYhRYBF1ToGo65wshxOTjTaO9U9ykvBN7NWGprIEbswCrqqWo6NnnjPIubbIdS3Vg==","signatures":[{"sig":"MEYCIQDhm1VRjzEFElHPjHwVI7zApa9nUM+oEKoGayUMBNa7hwIhANh/Uig5s0JRweT5gh2NAgjk8WDoE9hh5uMHFb56e15k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33008},"gitHead":"151473a5b640ae7b163fe9dd8e5067b8e4fb4131","scripts":{"lint":"eslint .","lint:fix":"eslint . --fix"},"_npmUser":{"name":"alexander.baz","email":"alexander.baz@cadolabs.io"},"repository":{"url":"git+https://github.com/Cado-Labs/gbot.git","type":"git"},"_npmVersion":"10.8.2","description":"Gitlab bot platform.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"axios":"^1.10.0","yargs":"^17.3.0","lodash":"^4.17.21","js-yaml":"^4.1.0","winston":"^3.3.3","minimatch":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.4.1","@babel/core":"^7.14.6","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.16.3","eslint-plugin-import":"^2.25.3","eslint-plugin-promise":"^5.2.0","eslint-config-umbrellio":"^5.0.1","eslint-plugin-prefer-object-spread":"^1.2.1"},"_npmOperationalInternal":{"tmp":"tmp/gbot_2.5.0_1766579775467_0.6217374584284685","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@cadolabs/gbot","version":"2.6.0","author":{"name":"Aleksei Bespalov","email":"nulldefiner@gmail.com"},"license":"MIT","_id":"@cadolabs/gbot@2.6.0","maintainers":[{"name":"cadolabs","email":"oss@cadolabs.io"},{"name":"alexander.baz","email":"alexander.baz@cadolabs.io"}],"homepage":"https://github.com/Cado-Labs/gbot","bugs":{"url":"https://github.com/Cado-Labs/gbot/issues"},"bin":{"gbot":"gbot"},"dist":{"shasum":"35f7b0f2072748d8388c995277d674547df5206b","tarball":"https://registry.npmjs.org/@cadolabs/gbot/-/gbot-2.6.0.tgz","fileCount":23,"integrity":"sha512-u1xIKynSauL6/hYLoq5bP+SZmdPMWXLaoNYYdTtzhJ6AwSj9DMLGwSpphzqmdP8TAoAeW5ZJW1dOdu7UWiuEAg==","signatures":[{"sig":"MEUCIB5xHCotiyyLpgumLfTlYVwDJ7PdWWFTwOpxNt4athuqAiEAiHn6eIPj5oTGV7qaY1+L0IQPsBGY/AQx7vRxIrzttmA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33361},"gitHead":"d4355f0fcbd86c5275af54c76e7aaef3f8958344","scripts":{"lint":"eslint .","lint:fix":"eslint . --fix"},"_npmUser":{"name":"alexander.baz","email":"alexander.baz@cadolabs.io"},"repository":{"url":"git+https://github.com/Cado-Labs/gbot.git","type":"git"},"_npmVersion":"10.8.2","description":"Gitlab bot platform.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"axios":"^1.10.0","yargs":"^17.3.0","lodash":"^4.17.21","js-yaml":"^4.1.0","winston":"^3.3.3","minimatch":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.4.1","@babel/core":"^7.14.6","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.16.3","eslint-plugin-import":"^2.25.3","eslint-plugin-promise":"^5.2.0","eslint-config-umbrellio":"^5.0.1","eslint-plugin-prefer-object-spread":"^1.2.1"},"_npmOperationalInternal":{"tmp":"tmp/gbot_2.6.0_1786024277115_0.07181586919928962","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"@cadolabs/gbot","version":"2.6.1","author":{"name":"Aleksei Bespalov","email":"nulldefiner@gmail.com"},"license":"MIT","_id":"@cadolabs/gbot@2.6.1","maintainers":[{"name":"cadolabs","email":"oss@cadolabs.io"},{"name":"alexander.baz","email":"alexander.baz@cadolabs.io"}],"homepage":"https://github.com/Cado-Labs/gbot","bugs":{"url":"https://github.com/Cado-Labs/gbot/issues"},"bin":{"gbot":"gbot"},"dist":{"shasum":"54714800f67e5c93af3aed38d4bb307ee7ddf17e","tarball":"https://registry.npmjs.org/@cadolabs/gbot/-/gbot-2.6.1.tgz","fileCount":25,"integrity":"sha512-4wpo2Sb12a58DA7RdLJBNmS6V/wV+g1g7bxGKNl1bk13+nc1LbYfP3pkpqRsHU9ozwY+5FUXsH2Iy0UdLZegWg==","signatures":[{"sig":"MEUCIQDK/9xnH2k2nxt/YpO1DVoDxoJKycAFGKt/yWTHTcmIKQIgM5LBON45OwGCDmZN1sLunowndMFlHFfl1a4mIcvqgPQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35983},"gitHead":"6d51d73ac904d10d72f0079f5280f7e4f136ab7f","scripts":{"lint":"eslint .","lint:fix":"eslint . --fix"},"_npmUser":{"name":"alexander.baz","email":"alexander.baz@cadolabs.io"},"repository":{"url":"git+https://github.com/Cado-Labs/gbot.git","type":"git"},"_npmVersion":"10.8.2","description":"Gitlab bot platform.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"axios":"^1.10.0","yargs":"^17.3.0","lodash":"^4.17.21","js-yaml":"^4.1.0","winston":"^3.3.3","minimatch":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.4.1","@babel/core":"^7.14.6","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.16.3","eslint-plugin-import":"^2.25.3","eslint-plugin-promise":"^5.2.0","eslint-config-umbrellio":"^5.0.1","eslint-plugin-prefer-object-spread":"^1.2.1"},"_npmOperationalInternal":{"tmp":"tmp/gbot_2.6.1_1786030573925_0.7684123122010602","host":"s3://npm-registry-packages-npm-production"}},"2.6.2":{"name":"@cadolabs/gbot","version":"2.6.2","author":{"name":"Aleksei Bespalov","email":"nulldefiner@gmail.com"},"license":"MIT","_id":"@cadolabs/gbot@2.6.2","maintainers":[{"name":"cadolabs","email":"oss@cadolabs.io"},{"name":"alexander.baz","email":"alexander.baz@cadolabs.io"}],"homepage":"https://github.com/Cado-Labs/gbot","bugs":{"url":"https://github.com/Cado-Labs/gbot/issues"},"bin":{"gbot":"gbot"},"dist":{"shasum":"fcec3aeaf6bae95c405610dafe96814d432f41d5","tarball":"https://registry.npmjs.org/@cadolabs/gbot/-/gbot-2.6.2.tgz","fileCount":22,"integrity":"sha512-Y54dZO0aORkg2ogiwppygUNDfJnHPba0wnWgWK0G1V3Xuqu5bqtZr09Lf3lzrzRCMDlJJ8DzdSvUkNrvskuslQ==","signatures":[{"sig":"MEUCIQCnb6eFKw5in2bSFEp+b1ZXNyGv4zACT3QOyekued8ZFwIgNFuMPjwk16qwoDaPvErqAGEdeCw5/GByD7YklajJfFw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35335},"gitHead":"f32bdffaa4b99bf0d4a9598b118ef9b8d319cbfb","scripts":{"lint":"eslint .","lint:fix":"eslint . --fix"},"_npmUser":{"name":"cadolabs","email":"oss@cadolabs.io"},"repository":{"url":"git+https://github.com/Cado-Labs/gbot.git","type":"git"},"_npmVersion":"10.8.2","description":"Gitlab bot platform.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"axios":"^1.10.0","yargs":"^17.3.0","lodash":"^4.17.21","js-yaml":"^4.1.0","winston":"^3.3.3","minimatch":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.4.1","@babel/core":"^7.14.6","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.16.3","eslint-plugin-import":"^2.25.3","eslint-plugin-promise":"^5.2.0","eslint-config-umbrellio":"^5.0.1","eslint-plugin-prefer-object-spread":"^1.2.1"},"_npmOperationalInternal":{"tmp":"tmp/gbot_2.6.2_1786358461560_0.7563950944121303","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@cadolabs/gbot","version":"2.7.0","author":{"name":"Aleksei Bespalov","email":"nulldefiner@gmail.com"},"license":"MIT","_id":"@cadolabs/gbot@2.7.0","maintainers":[{"name":"cadolabs","email":"oss@cadolabs.io"},{"name":"alexander.baz","email":"alexander.baz@cadolabs.io"}],"homepage":"https://github.com/Cado-Labs/gbot","bugs":{"url":"https://github.com/Cado-Labs/gbot/issues"},"bin":{"gbot":"gbot"},"dist":{"shasum":"d09959076ba6a9a584eb9fd6a197070fd4f55dbf","tarball":"https://registry.npmjs.org/@cadolabs/gbot/-/gbot-2.7.0.tgz","fileCount":22,"integrity":"sha512-1SH7fIdXHtthJFAjAsGkhB5qy7GsWBqmknweKbYg2sksahkYECzRV93FNHepvhTdVK9/ybSNHcRuhdrKmuHmUA==","signatures":[{"sig":"MEYCIQC5R2xKnLJnjFEoOMlgOz8mP6RNSaR+yxDOmw2duspDfgIhALpHzgm2taT31UwWhnQq5Lz8Mlnvd/KXV5JBGFznnxzR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC5zh2DiYYLUnQ5ly1v7cxcIUkZGoC/gr5apHHYnmamLwIgETnUzQf31wWFeluJvsFYC2czGxEOEu8lEjrqrnQlYVc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39214},"gitHead":"4a5e09a8708dfab430ee304f0e9f8e39e57cec85","scripts":{"lint":"eslint .","lint:fix":"eslint . --fix"},"_npmUser":{"name":"cadolabs","email":"oss@cadolabs.io"},"repository":{"url":"git+https://github.com/Cado-Labs/gbot.git","type":"git"},"_npmVersion":"10.8.2","description":"Gitlab bot platform.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"axios":"^1.10.0","yargs":"^17.3.0","lodash":"^4.17.21","js-yaml":"^4.1.0","winston":"^3.3.3","minimatch":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.4.1","@babel/core":"^7.14.6","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.16.3","eslint-plugin-import":"^2.25.3","eslint-plugin-promise":"^5.2.0","eslint-config-umbrellio":"^5.0.1","eslint-plugin-prefer-object-spread":"^1.2.1"},"_npmOperationalInternal":{"tmp":"tmp/gbot_2.7.0_1789649691396_0.5200897147781138","host":"s3://npm-registry-packages-npm-production"}},"2.7.1":{"_id":"@cadolabs/gbot@2.7.1","bin":{"gbot":"gbot"},"bugs":{"url":"https://github.com/Cado-Labs/gbot/issues"},"dist":{"shasum":"da9a9a9bc115e093281e05b512ef4aca0cb06e77","tarball":"https://registry.npmjs.org/@cadolabs/gbot/-/gbot-2.7.1.tgz","fileCount":22,"integrity":"sha512-a75ro0OEhbqpMssaFgadV1YdWP90UKbigylxC5jbWs+lkZZy35W20vGVEJgkFyu993ANGSQihLYVrAZdPFWe/A==","signatures":[{"sig":"MEUCIEbDO+pyrreermZb7h6nojkDuUvYDwKh+X6sB5WmXg/9AiEA1OGW1OXLUNOHsyt/+9qXxqjKjPkmVsAW1N3+UM9BFgo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEkzH16rjUmU2GrDeUjW+ymbSWUeC46flFqQm3+ElXOdAiAFWR/uJZsbgSWF92EJVH19IBO+ZsXIanP4uBSi5EIfnQ=="}],"unpackedSize":40633},"name":"@cadolabs/gbot","author":{"name":"Aleksei Bespalov","email":"nulldefiner@gmail.com"},"gitHead":"d5ba33a7263679501651eec53dbd6002e9fcffe7","license":"MIT","scripts":{"lint":"eslint .","lint:fix":"eslint . --fix"},"version":"2.7.1","_npmUser":{"name":"cadolabs","email":"oss@cadolabs.io"},"homepage":"https://github.com/Cado-Labs/gbot","repository":{"url":"git+https://github.com/Cado-Labs/gbot.git","type":"git"},"_npmVersion":"10.8.2","description":"Gitlab bot platform.","directories":{},"maintainers":[{"name":"cadolabs","email":"oss@cadolabs.io"},{"name":"alexander.baz","email":"alexander.baz@cadolabs.io"}],"_nodeVersion":"20.20.2","dependencies":{"axios":"^1.10.0","yargs":"^17.3.0","lodash":"^4.17.21","js-yaml":"^4.1.0","winston":"^3.3.3","minimatch":"^5.1.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.4.1","@babel/core":"^7.14.6","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.16.3","eslint-plugin-import":"^2.25.3","eslint-plugin-promise":"^5.2.0","eslint-config-umbrellio":"^5.0.1","eslint-plugin-prefer-object-spread":"^1.2.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gbot_2.7.1_1789654646277_0.5616681138409028"}}},"time":{"created":"2024-07-08T18:31:26.978Z","modified":"2026-09-17T14:17:26.550Z","2.1.2":"2024-07-08T18:31:27.216Z","2.2.0":"2025-03-24T08:52:37.242Z","2.3.0":"2025-06-18T14:08:35.913Z","2.3.1":"2025-07-01T13:11:17.462Z","2.3.2":"2025-07-16T09:49:37.123Z","2.4.0":"2025-09-03T09:52:43.616Z","2.5.0":"2025-12-24T12:36:15.619Z","2.6.0":"2026-08-06T13:51:17.256Z","2.6.1":"2026-08-06T15:36:14.073Z","2.6.2":"2026-08-10T10:41:01.708Z","2.7.0":"2026-09-17T12:54:51.480Z","2.7.1":"2026-09-17T14:17:26.354Z"},"bugs":{"url":"https://github.com/Cado-Labs/gbot/issues"},"author":{"name":"Aleksei Bespalov","email":"nulldefiner@gmail.com"},"license":"MIT","homepage":"https://github.com/Cado-Labs/gbot","repository":{"url":"git+https://github.com/Cado-Labs/gbot.git","type":"git"},"description":"Gitlab bot platform.","maintainers":[{"name":"cadolabs","email":"oss@cadolabs.io"},{"name":"alexander.baz","email":"alexander.baz@cadolabs.io"}],"readme":"# @cadolabs/gbot\n\nGitlab bot platform.\n\n## Installation\n\n```sh\n$ yarn add @cadolabs/gbot\n```\n\nor\n\n```sh\n$ npm i @cadolabs/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: \"<chat.postMessage URL>\"        # Slack chat.postMessage endpoint\n  token: \"<TOKEN>\"                     # Slack token with chat:write scope\n  channel: \"<CHANNEL>\"                 # 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 blocks markup)\n                                       # - \"slackText\" (for Slack text markup)\n  sender:\n    username: \"@cadolabs/gbot\"         # Sender's display name\n    icon: \"<icon url>\"                 # Sender's icon url\n  slack:                               # Or slackText for slackText\n    usernameMapping:\n      pavel: \"U020DSB741G\"             # Mapping of Gitlab username to Slack ID.\n                                       # Users without a mapping are shown using\n                                       # their Gitlab display name.\ngitlab:\n  token: \"<TOKEN>\"                     # GitLab Private Access Token\n  url: \"<gitlab api url>\"              # Gitlab API base url\n  groups:                              # List of your project’s groups (optional if projects are defined)\n  - id: 4                              # Group id\n  - id: 5\n    excluded: [1, 2, 3]                # List of projects to exclude from the current group projects (optional)\n  - id: 6\n    withShared: false                  # Whether to include shared projects or not, defaults to true\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    onFailedPipeline: false            # Whether to tag PR author if pipeline is failed\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  checkPipeline: false                 # Whether to check if PR pipeline failed\n  batches:                             # Send requests in rotating slices instead of all at once (optional)\n    enabled: false                     # Whether batching is enabled (default - false)\n    period: 4h                         # Length of a single slice slot. Must match how often the bot\n                                       # is run (e.g. `4h` for a schedule firing every 4 hours)\n    slices: 4                          # How many slices to split the list into\n```\n\n### Batches\n\nBy default every run sends all pending requests at once, which nobody reads when the list gets long.\nWith `unapproved.batches` the bot instead splits the list into `slices` even parts and sends one of\nthem per run, so the whole list is still covered over a full cycle. 27 requests over 4 slices are cut\ninto `7`, `7`, `7` and `6`.\n\nA cycle always spans `slices` slots, whether or not every slot holds a slice. Slices are only limited\nby the queue itself — `min(slices, total)`, so they never come out empty — and they fill the slots\nfrom the first one. A slot left without a slice sends nothing at all, not even the \"no pending\nrequests\" message. With `slices: 4` and `period: 1h`, three requests are announced one per hour over\nthe first three slots and the fourth stays quiet; a queue of 27 fills every slot. The number of\nmessages follows the size of the queue on its own. A run that carries more than one slice adds a\n`(part N of M)` suffix to the header.\n\nSlices are recomputed on every run rather than kept anywhere, so a full cycle covers everything as\nlong as the list itself holds still. Once a request is merged, or its `updated_at` moves because its\nauthor pushed, everything behind it shifts by a position — a single request can then miss its turn in\nthe current cycle or show up in two slices in a row. The next cycle sorts that out on its own.\n\nRequests are ordered by their last update time, so the stalest ones come first. The slice to send is\nderived from the current time — `floor(now / period) % sliceCount` — and no state is kept between\nruns, which means **`period` must match the interval the bot is actually run at**. Otherwise the index\nskips: with `period: 1h` and a schedule firing every 4 hours it jumps by 4 every run, so some slices\nare never sent at all, and when the slice count happens to divide that step — 4 slices here — the bot\nre-sends the very same slice forever.\n\nA schedule that only covers working hours needs one more thing: pick `slices` to match the number of\nruns per day. Three runs a day with `slices: 3` close a cycle exactly once per day, whatever the list\nsize. Pick a count that shares a divisor with the number of `period`-long slots in a day (6 slots for\n`period: 4h`) and some slices are never reached — `slices: 6` with three runs a day sends the same\nthree slices forever.\n\nWhen `splitByReviewProgress` is enabled, the `With conflicts` and `With failed pipeline` sections are\nnever sliced: those are a call to action for the request author, so they are sent in full every run.\nSlicing only applies to the `Unapproved` and `Under review` sections.\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\nFork it ( https://github.com/Cado-Labs/gbot )\nCreate your feature branch (git checkout -b feature/my-new-feature)\nCommit your changes (git commit -am '[feature_context] Add some feature')\nPush to the branch (git push origin feature/my-new-feature)\nCreate a new Pull Request\n\n## License\n\nReleased under MIT License.\n\n## Authors\n\nCreated by [Aleksei Bespalov](https://github.com/nulldef).\n\n<a href=\"https://github.com/Cado-Labs/\">\n<img style=\"float: left;\" src=\"https://github.com/Cado-Labs/cado-labs-resources/raw/main/cado_labs_supporting_rounded.svg\" alt=\"Supported by Cado Labs\" width=\"439\" height=\"72\">\n</a>\n","readmeFilename":"README.md"}