community.general.github_repo module – Manage your repositories on Github

Note

This module is part of the community.general collection (version 4.8.3).

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_repo.

New in version 2.2.0: of community.general

Synopsis

  • Manages Github repositories using PyGithub library.

  • Authentication can be done with access_token or with username and password.

Requirements

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

  • PyGithub>=1.54

Parameters

Parameter

Comments

access_token

string

Token parameter for authentication.

This is only needed when not using username and password.

api_url

string

added in 3.5.0 of community.general

URL to the GitHub API if not using github.com but you own instance.

Default: “https://api.github.com”

description

string

Description for the repository.

Defaults to empty if force_defaults=true, which is the default in this module.

Defaults to empty if force_defaults=false when creating a new repository.

This is only used when state is present.

force_defaults

boolean

added in 4.1.0 of community.general

Overwrite current description and private attributes with defaults if set to true, which currently is the default.

The default for this option will be deprecated in a future version of this collection, and eventually change to false.

Choices:

  • no

  • yes ← (default)

name

string / required

Repository name.

organization

string

Organization for the repository.

When state is present, the repository will be created in the current user profile.

password

string

Password used for authentication.

This is only needed when not using access_token.

private

boolean

Whether the repository should be private or not.

Defaults to false if force_defaults=true, which is the default in this module.

Defaults to false if force_defaults=false when creating a new repository.

This is only used when state is present.

Choices:

  • no

  • yes

state

string

Whether the repository should exist or not.

Choices:

  • absent

  • present ← (default)

username

string

Username used for authentication.

This is only needed when not using access_token.

Notes

Note

Examples

- name: Create a Github repository
  community.general.github_repo:
    access_token: mytoken
    organization: MyOrganization
    name: myrepo
    description: "Just for fun"
    private: yes
    state: present
    force_defaults: no
  register: result

- name: Delete the repository
  community.general.github_repo:
    username: octocat
    password: password
    organization: MyOrganization
    name: myrepo
    state: absent
  register: result

Return Values

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

Key

Description

repo

dictionary

Repository information as JSON. See https://docs.github.com/en/rest/reference/repos#get-a-repository.

Returned: success and state is present

Authors

  • Álvaro Torres Cogollo (@atorrescogollo)