Chris Smith bb52fcbdc9 Return 200 because some things are dumb. | 6 jaren geleden | |
---|---|---|
lineandsinker | 6 jaren geleden | |
static | 6 jaren geleden | |
.gitignore | 6 jaren geleden | |
.pre-commit-config.yaml | 6 jaren geleden | |
Dockerfile | 6 jaren geleden | |
README.md | 6 jaren geleden | |
main.py | 6 jaren geleden | |
requirements.txt | 6 jaren geleden |
Line and Sinker (LaS) works with WebHooks from multiple services in order to bridge them together. Think of it as a personal ifttt instance for development and infrastructure tooling.
All configuration is done using environment variables to facilitate easy deployment in a docker container.
Global settings:
Environment variable | Description |
---|---|
LAS_BASE_URL |
Base web-facing URL at which LaS is accessible, used to generate hook URLs |
LAS_SECRET |
Random string used to generate secure hook URLs |
LaS accepts WebHook calls to URLs in the format of
/hook/<service>/<identifier>/<hash>
, where <service>
is the service calling
(e.g. GitHub, Jenkins), <identifier>
is some service-specific identifier for
the hook (e.g. the name of a repository or project), and <hash>
is a
hex-encoded sha-256 hash of the service, LaS secret, and identifier
concatenated together. The secret prevents anyone that discovers the endpoint
from triggering hooks spuriously or maliciously.
LaS accepts hooks from the docker registry. There are no configuration options.
Environment variable | Description |
---|---|
LAS_GITEA_URL |
Base URL of the Gitea instance to connect to |
LAS_GITEA_TOKEN |
Application token to use to authenticate to Gitea |
LAS_GITEA_ADD_HOOKS |
If present, automatically add hooks to all repos |
LaS accepts Gitea webhooks and can automatically add itself as a hook for all repositories it has access to using the given token.
Environment variable | Description |
---|---|
LAS_JENKINS_URL |
Base URL of the Jenkins instance to connect to |
LAS_JENKINS_USER |
Username of the Jenkins account to use to connect |
LAS_JENKINS_PASSWORD |
Password of the Jenkins account to use |
LaS accepts Jenkins webhooks but does not automatically create them. It can start Jenkins jobs in response to other events.
Environment variable | Description |
---|---|
LAS_REPORTBOT_URL |
The full URL to the report API endpoint |
LAS_REPORTBOT_KEY |
The authentication key to use |
LAS_REPORTBOT_CHANNEL |
The channel to send messages to |
LaS can send messages to a ReportBot instance.
LaS accepts Slack-style webhooks. There are no configuration options.
All code is formatted using Black with default settings. There is a pre-commit config file to enable automatic black formatting on commit; to enable it simply:
pip install pre-commit
pre-commit install