{"id":32129429,"url":"https://github.com/vollmerk/puppet-gitlabwebhook","last_synced_at":"2026-05-17T14:35:47.188Z","repository":{"id":70029535,"uuid":"62898284","full_name":"vollmerk/puppet-gitlabwebhook","owner":"vollmerk","description":"Webhook for Gitlab -\u003e R10K ","archived":false,"fork":false,"pushed_at":"2020-12-04T13:17:47.000Z","size":55,"stargazers_count":1,"open_issues_count":7,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-19T03:27:14.347Z","etag":null,"topics":["puppet-forge","puppet-module"],"latest_commit_sha":null,"homepage":"https://forge.puppet.com/vollmerk/gitlabr10khook","language":"Puppet","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/vollmerk.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-07-08T15:23:03.000Z","updated_at":"2020-12-04T13:17:49.000Z","dependencies_parsed_at":"2023-03-17T22:15:30.379Z","dependency_job_id":null,"html_url":"https://github.com/vollmerk/puppet-gitlabwebhook","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vollmerk/puppet-gitlabwebhook","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vollmerk%2Fpuppet-gitlabwebhook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vollmerk%2Fpuppet-gitlabwebhook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vollmerk%2Fpuppet-gitlabwebhook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vollmerk%2Fpuppet-gitlabwebhook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vollmerk","download_url":"https://codeload.github.com/vollmerk/puppet-gitlabwebhook/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vollmerk%2Fpuppet-gitlabwebhook/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33142342,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T09:28:26.183Z","status":"ssl_error","status_checked_at":"2026-05-17T09:27:52.702Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["puppet-forge","puppet-module"],"created_at":"2025-10-21T01:08:08.368Z","updated_at":"2026-05-17T14:35:47.184Z","avatar_url":"https://github.com/vollmerk.png","language":"Puppet","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gitlabr10khook\n\n#### Table of Contents\n\n1. [Description](#description)\n1. [Setup - The basics of getting started with gitlabr10khook](#setup)\n    * [What gitlabr10khook affects](#what-gitlabr10khook-affects)\n    * [Setup requirements](#setup-requirements)\n    * [Beginning with gitlabr10khook](#beginning-with-gitlabr10khook)\n1. [Usage - Configuration options and additional functionality](#usage)\n1. [Reference - An under-the-hood peek at what the module is doing and how](#reference)\n1. [Limitations - OS compatibility, etc.](#limitations)\n1. [Development - Guide for contributing to the module](#development)\n\n## Description\n\nWebhook for updating Puppet using R10K from Gitlab repos\n\nThis is a simple Python webserver that accepts webhook PUSH notifications\nfrom Gitlab, and runs R10k to bring your puppet server up to date. The newest\nversions of the Python script no longer support monolithic repos\n\nThe Python script can also trigger e-mails to Footprints or OTRS ticketing\nsystems based on the commit mesage\n\nThis module will install the `0.4` release of the webhook by default\n\n## Changelog\n\n0.1.4\n - Fix Systemctl startup scripts\n\n0.1.3 \n - Fix README\n - Add python-devel package requirement\n\n0.1.2\n - Fix missing gcc package for psutil module install\n\n0.1.1\n - Add psutil python module installation\n\n0.1.0\n - Bump to 0.3 Tag of Webhook\n\n## Setup\n\n### What gitlabr10khook affects \n\n* Updates python-daemon module\n* Installs pip\n* Installs git\n* Installs psutil python module\n* Installs slackweb python module\n\n### Setup Requirements \n\nEvery effort was made such that this manifest should attempt to install \neverything it needs, but it expects python, pip, some modules, openssl\nand git to be available\n\n### Beginning with gitlabr10khook\n\nThe very basic steps needed for a user to get the module up and running. This\ncan include setup steps, if necessary, or it can be an example of the most\nbasic use of the module. Below is a minimal declaration of the webhook\n\n```\nclass { 'gitlabr10khook':\n  server =\u003e {\n    token =\u003e 'mytoken',\n    user  =\u003e 'myuser',\n    group =\u003e 'mygroup',\n    pemfile =\u003e 'cert.pem',\n   },\n}\n```\n\nIt's unlikely that the above will give you a fully functional install but\nit should at least run. You will need to add the webhook to Your Gitlab\nproject - Instructions can be found at https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/web_hooks/web_hooks.md\n\n\n##### Hiera Example\n```\ngitlabr10khook::server:\n  token: 'mytoken'\n  user: 'myuser'\n  group: 'mygroup'\n  pemfile: 'cert.pem'\ngitlabr10khook::multimaster:\n  enabled: true\n  servers: '10.0.0.1,10.0.0.2'\n```\n\n## Usage\n\nThe webhook declaration is made up of the following seven hashes\n\n* server\n* log\n* r10k\n* legacy\n* multimaster\n* footprints\n* otrs\n\nThe certificate for the python webserver, as defined by `pemfile` must be a PEM file that is a combination of\nyour certifacte and the key. \n\nBoth E-mail based ticketing integrations assume that `FIX #120398` indicates that ticket 120398 has been \nresolved, if you just want to reference a ticket simply put `#120398`. You can reference multiple tickets\nin a single commit. By default the ticketing system will only be updated when things are moved into the\nbranch that is defined to be your production environment (Default of `production`). \n\n## Reference\n\n**Parameters**\n\nRequired parameters are indicated by **bold**, default values are in *italics*\n\n`install` *`/opt/gitlab-puppet-webhook`*\n\nSpecifies the directory to clone the gitlab webhook into, this is done via a git clone\n\n`release` *`0.4`*\n\nThe TAG of https://github.com/vollmerk/gitlab-puppet-webhook you want to checkout and use\n\n`server::port` *`8080`*\n\nSpecifies the TCP port that the python daemon should listen on for notifications from gitlab. This \nmodule does not adjust your firewall\n\n**`server::token`** \n\nSets the secret token that must be submitted with the push from gitlab, this requires newer versions of\ngitlab, but is seen as a require security feature.\n\n`server::method` *`branch`*\n\nDefines the method to be used for deploying puppet modules to the server, branch is the only \n\nvalid method, but it is kept due to legacy code. DEPRECATED\n\n`server::prodname` *`production`*\n\nThe name of your production branch, this does not have to be `production`, it is used to determine if e-mails\nshould be sent based on the `emailmethod` parameter\n\n`server::envdir` *`/etc/puppetlab/code/environments`*\n\nThe path where it should check out the puppet environments, this is only needed by the legacy code. DEPRECATED\n\n**`server::user`**\n\nDefines the user that the python daemon should run as, the daemon should be launched by root and will fork off to \nthe specified user, also used for file permission setups\n\n**`server::group`**\n\nUsed to make sure that permissions are set correctly\n\n**`server:pemfile`**\n\nSSL PEM file for the server, must be certificate + key\n\n`server::daemon` *`true`*\n\nShould the application fork off and disconnect, or remain connected to the terminal. Set to false for debug\n\n`server::smtpserver` *`localhost`*\n\nHostname of your mailserver that will accept mail from the daemon\n\n`server::emailfrom` *`gitlabhook@localhost`*\n\nThe FROM: address used on outgoing e-mail, you should change this as most restrictive smtp servers will reject @localhost mail\n\n`server::emailmethod` *`production`*\n\nOnly send e-mails when the `server::prodname` branch is being modified, valid options are `production` `development`. If its \nset to development, e-mails will not be re-sent when you merge into production\n\n`server::action` *`push`*\n\nThe action from Gitlab that the webhook should proccess\n\n`log::filename` *`/var/log/gitlabr10khook.log`*\n\nDefine the file that the daemon should log to, will attempt to set correct permissions for this file on install\n\n`log::maxsize` *`50331648`*\n\nSet the max size of the log file (will be roated when reached). Defaults to 50MB\n\n`log::level` *`WARNING`*\n\nThe Log level from the webhook daemon, valid options are `CRITICAL` `ERROR` `WARNING` `INFO` `DEBUG`\n\n`r10k::config` *`/etc/puppetlabs/r10k/r10k.yaml`*\n\nPath to the r10k config file, needed when launching r10k\n\n`r10k::binary` *`/opt/puppetlabs/puppet/bin/r10k`*\n\nPath to the r10k binary\n\n`multimaster::enabled` *`false`*\n\nDo we need to trigger builds on other puppet servers?\n\n`multimaster::servers` *`undef`*\n\nComma seperated list of IPs or hostnames of the hosts that the webhook should attempt to run r10k on\n\n`legacy::enabled` *`false`*\n\nLegacy monolithic puppet module repo functionality, just don't use this... DEPRECATED\n\n`legacy::path` *`legacy-modules`*\n\nThe path under your production environment where the legacy monolithic repo will be checked out\n\n**`legacy::gitpath`**\n\nOnly required if `legacy::enabled=true` This is the git repo path for your monolithic puppet module pile\n\n`footprints::enabled` *`false`*\n\nEnable this to have the daemon send emails to Footprints on commit if a ticket is referenced via #12039\nsupports the use of FIX #12039 to close the ticket\n\n**`footprints::project`**\n\nRequired if using footprints, the numeric value of the project that you wish ticket updates to be\nsubmitted to, The system does not currently support multiple projects\n\n**`footprints::email`**\n\nRequired if using footprints, the e-mail addres to end e-mail updates to, this assumes that your\nfootprints accepts e-mail commands\n\n**`footprints::close`**\n\nThe status in your footprints that indicates that the ticket is closed, this is a string value\n\n`otrs::enabled` *`false`*\n\nEnable this to have the daemon send emails to an OTRS instance, OTRS must allow special headers\nto be received, so that the updates appear to be from agents\n\n**`otrs::email`**\n\nE-mail address for your OTRS instance, updates will be sent here\n\n## Limitations\n\nCurrently only implemented for CentOS and Debian, and only for systemd \n\n## Development\n\nContributions will be accepted, please make sure any code you commit follows\nall of the Puppet Lint checks. Thanks!\n\nKarl Vollmer \u003ckarl.vollmer@gmail.com\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvollmerk%2Fpuppet-gitlabwebhook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvollmerk%2Fpuppet-gitlabwebhook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvollmerk%2Fpuppet-gitlabwebhook/lists"}