resolve_reference
: Return a GitHub organization's repositories as local inventory targets
github_inventory::clone_git_repos
: Clone all repos into a local directorygithub_inventory::count
: Example plan, prints number of Targets from inventorygithub_inventory::latest_semver_tags
: Report the highest SemVer tag for each repo (that has SemVer tags), including information release (if a release exists for that tag) and uplogithub_inventory::required_checks
: List and/or set which PR checks are required on each repogithub_inventory::update_forked_mirrors
: Update default branches & tags on forked GitHub repos (with an option to only affect Puppet module projects for a specific forge org) For eagithub_inventory::workflows
: Return repos with GitHub Actions workflows
Return a GitHub organization's repositories as local inventory targets
Supports noop? false
Data type: String[1]
GitHub org name (or user login) with repos
Data type: Optional[String[1]]
Optional GitHub personal OAuth token, which may be useful to avoid the GitHub API's unauthenticated rate limits
Data type: Boolean
When true, includes archived repositories in results.
Data type: Boolean
When true, includes private repositories in results.
Data type: Optional[Array[String[1]]]
repo names/patterns to include in inventory, drops all other repos
Data type: Optional[Array[String[1]]]
repo names/patterns to reject from inventory (can reject targets in allow_list)
Data type: String[1]
Bolt Transport type of repository Targets
Data type: String[1]
Override to request a custom media type from the GitHub API
Data type: Optional[String[1]]
Additional GEM_PATH path for ruby gems (to find octokit
)
Clone all repos into a local directory
The following parameters are available in the github_inventory::clone_git_repos
plan:
Data type: TargetSpec
Name of github_inventory
Targets (or inventory group)
Default value: 'github_repos'
Data type: Stdlib::Absolutepath
Local directory to clone repos into
Default value: "${system::env('PWD')}/_repos"
Data type: Enum[fail,skip,overwrite,fetch]
Action to take when a local repo directory already exists
Default value: 'skip'
Data type: Enum[http,ssh]
'http' or 'ssh'
Default value: 'http'
Data type: Boolean
When true
, plan returns data in a ResultSet
Default value: false
Example plan, prints number of Targets from inventory
The following parameters are available in the github_inventory::count
plan:
Data type: TargetSpec
Name of github_inventory
Targets (or inventory group)
Default value: 'github_repos'
Data type: Boolean
When true
, plan prints result using out::message
Default value: true
Data type: Boolean
When true
, plan returns data in a ResultSet
Default value: false
Report the highest SemVer tag for each repo (that has SemVer tags), including information release (if a release exists for that tag) and uploaded assets
- Note reports repos with "SemVer-ish" tags (includes
/^v/
and/-d$/
)
The following parameters are available in the github_inventory::latest_semver_tags
plan:
Data type: TargetSpec
Name of github_inventory
Targets (or inventory group)
Default value: 'github_repos'
Data type: Sensitive[String[1]]
GitHub API token. Doesn't require any scope for public repos.
Default value: (system::env('GITHUB_API_TOKEN'))
Data type: Boolean
When true
, plan prints result using out::message
Default value: true
Data type: Boolean
When true
, plan returns data in a ResultSet
Default value: false
List and/or set which PR checks are required on each repo
The following parameters are available in the github_inventory::required_checks
plan:
Data type: TargetSpec
Name of github_inventory
Targets (or inventory group)
Default value: 'github_repos'
Data type: Sensitive[String[1]]
GitHub API token. Needs repo
scope to see or set checks.
Default value: (system::env('GITHUB_API_TOKEN'))
Data type: Optional[String[1]]
Optional comma-delimited list of required PR Checks to set on all repos If defined, this will overwrite ALL repos' required PR checks
Default value: undef
Update default branches & tags on forked GitHub repos (with an option to only affect Puppet module projects for a specific forge org)
For each target repo (provided by github_inventory
plugin):
- Clone repo
- (Optional) skip if repo is not a Puppet module for desired
forge_org
- Add parent repo as remote, fetchparent's default branch and tags
- (Optional) skip if
noop
or repo is innoop_repos
- Push parent's default branch to repo (and push tags on branch)
- Ensure repo's default branch matches parent's default branch
Target repos can be fine-tuned in the inventory by using the
allow_list
/block_list
parameters in the github_inventory
plugin
The following parameters are available in the github_inventory::update_forked_mirrors
plan:
Data type: TargetSpec
Name of github_inventory
Targets (or inventory group)
Default value: 'github_repos'
Data type: Stdlib::Absolutepath
Local directory to clone repos into (when clone_repos = true)
Default value: "${system::env('PWD')}/_repos"
Data type: Boolean
When true, all repos will run through all prep steps, but not push up changes.
Default value: true
Data type: Array[String,0]
List of specific repos to always treat as noop, even when noop=false
Default value: []
Data type: Sensitive[String[1]]
Default value: (system::env('GITHUB_API_TOKEN'))
Data type: Boolean
Default value: true
Data type: Optional[String[1]]
Default value: 'puppetlabs'
Return repos with GitHub Actions workflows
The following parameters are available in the github_inventory::workflows
plan:
Data type: TargetSpec
By default: github_repos
group from inventory
Default value: 'github_repos'
Data type: Sensitive[String[1]]
GitHub API token. Doesn't require any scope for public repos.
Default value: (system::env('GITHUB_API_TOKEN'))