# github_release – Interact with GitHub Releases

- Synopsis

- Requirements

- Parameters

- Examples

- Return Values

- Status

## Synopsis

- Fetch metadata about GitHub Releases

## Requirements

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

- github3.py >= 1.0.0a3

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---

action
- / required

Choices:
- latest_release
- create_release

Action to perform

body - added in 2.4 |  | Description of the release when creating a release

draft
boolean
added in 2.4

Choices:
- no ←
- yes

Sets if the release is a draft or not. (boolean)

name - added in 2.4 |  | Name of release when creating a release
password - added in 2.4 |  | The GitHub account password for the user. Mutually exclusive with `token`.

prerelease
boolean
added in 2.4

Choices:
- no ←
- yes

Sets if the release is a prerelease or not. (boolean)

repo - / required |  | Repository name
tag - added in 2.4 |  | Tag name when creating a release. Required when using action is set to `create_release`.
target - added in 2.4 |  | Target of release when creating a release
token - |  | GitHub Personal Access Token for authenticating. Mutually exclusive with `password`.
user - / required |  | The GitHub account that owns the repository

## Examples

    - name: Get latest release of a public repository
      github_release:
        user: ansible
        repo: ansible
        action: latest_release

    - name: Get latest release of testuseer/testrepo
      github_release:
        token: tokenabc1234567890
        user: testuser
        repo: testrepo
        action: latest_release

    - name: Get latest release of test repo using username and password. Ansible 2.4.
      github_release:
        user: testuser
        password: secret123
        repo: testrepo
        action: latest_release

    - name: Create a new release
      github_release:
        token: tokenabc1234567890
        user: testuser
        repo: testrepo
        action: create_release
        tag: test
        target: master
        name: My Release
        body: Some description

## Return Values

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

Key | Returned | Description
--- | --- | ---
create_release string | success | Version of the created release For Ansible version 2.5 and later, if specified release version already exists, then State is unchanged For Ansible versions prior to 2.5, if specified release version already exists, then State is skipped Sample: 1.1.0
latest_release string | success | Version of the latest release Sample: 1.1.0

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by the Ansible Community. [community]

### Authors

- Adrian Moisey (@adrianmoisey)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.