community.general.github_webhook – Manage GitHub webhooks

Note

This plugin is part of the community.general collection (version 4.2.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install community.general.

To use it in a playbook, specify: community.general.github_webhook.

Synopsis

  • Create and delete GitHub webhooks

Requirements

The below requirements are needed on the host that executes this module.

  • PyGithub >= 1.3.5

Parameters

Parameter Choices/Defaults Comments
active
boolean
    Choices:
  • no
  • yes ←
Whether or not the hook is active
content_type
string
    Choices:
  • form ←
  • json
The media type used to serialize the payloads
events
list / elements=string
A list of GitHub events the hook is triggered for. Events are listed at https://developer.github.com/v3/activity/events/types/. Required unless state is absent
github_url
string
Default:
"https://api.github.com"
Base URL of the GitHub API
insecure_ssl
boolean
    Choices:
  • no ←
  • yes
Flag to indicate that GitHub should skip SSL verification when calling the hook.
password
string
Password to authenticate to GitHub with
repository
string / required
Full name of the repository to configure a hook for

aliases: repo
secret
string
The shared secret between GitHub and the payload URL.
state
string
    Choices:
  • absent
  • present ←
Whether the hook should be present or absent
token
string
Token to authenticate to GitHub with
url
string / required
URL to which payloads will be delivered
user
string / required
User to authenticate to GitHub as

Examples

- name: Create a new webhook that triggers on push (password auth)
  community.general.github_webhook:
    repository: ansible/ansible
    url: https://www.example.com/hooks/
    events:
      - push
    user: "{{ github_user }}"
    password: "{{ github_password }}"

- name: Create a new webhook in a github enterprise installation with multiple event triggers (token auth)
  community.general.github_webhook:
    repository: myorg/myrepo
    url: https://jenkins.example.com/ghprbhook/
    content_type: json
    secret: "{{ github_shared_secret }}"
    insecure_ssl: True
    events:
      - issue_comment
      - pull_request
    user: "{{ github_user }}"
    token: "{{ github_user_api_token }}"
    github_url: https://github.example.com

- name: Delete a webhook (password auth)
  community.general.github_webhook:
    repository: ansible/ansible
    url: https://www.example.com/hooks/
    state: absent
    user: "{{ github_user }}"
    password: "{{ github_password }}"

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description
hook_id
integer
when state is 'present'
The GitHub ID of the hook created/updated

Sample:
6206


Authors

  • Chris St. Pierre (@stpierre)