Skip to content
A resource type for Concourse CI which fetches the list of GitHub repositories which belong to an organization or team
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
Dockerfile
LICENSE
README.md

README.md

GitHub List Repositories Resource

Docker Repository on Quay

Lists the repositories that belong to a GitHub organization or team, but does not clone them.

This resource was implemented to trigger the reconfiguration and deployment of a Concourse CI pipeline which has jobs per repository (and therefore does not need to clone any of the repositories in order to build the pipeline).

Internally uses the GitHub v4 API (GraphQL).

Source Configuration

  • access_token : Required (string). A GitHub API access token. This access token must have repo scope, and if the resource queries the repositories belonging to a team, it must also have read:org scope for the organization to which the team belongs.
  • org : Required (string). The organization whose repositories should be listed.
  • team : Optional (string). The team whose repositories should be listed.
  • exclude_regex : Optional (string). A regular expression of repositories which should not be included in the final list. May not be specified when include_regex is specified.
  • exclude : Optional (array[string]). A list of repositories which should not be included in the final list. This list is appended to the exclude_regex to build a final exclusionary rule, and both exclude and exclude_regex may be specified. May not be specified when include_regex is specified.
  • include_regex : Optional (string). A regular expression of repository names which should be included in the final list (repositories which do not match the regex will not be included). May not be specified when either exclude_regex or exclude are specified.

Example Usage

Resource type definition

resource_types:
- name: github-list-repos
  type: docker-image
  source:
    repository: quay.io/coralogix/concourse-resource-github-list-repos
    tag: v0.3.1

Resource configuration with exclusions

resources:
- name: repo-list
  type: github-list-repos
  source:
    access-token: ((managed-access-token))
    org: myorg
    team: myteam
    exclude_regex: "internal-helper|utility"
    exclude:
    - irrelevant
    - legacy-service

Resource configuration with an inclusion regex

resources:
- name: repo-list
  type: github-list-repos
  source:
    access-token: ((managed-access-token))
    org: myorg
    team: myteam
    include_regex: "^myprefix-"

Behavior

check : Check for a change in the repository list

The GitHub API is queried for a list of all of the repositories belonging to the org or the team. This list is sorted and hashed, so that subsequent calls will result in the same hash if no repositories have been added or deleted. This hash is returned as the version.

in : Fetch a list of repositories

The GitHub API is queried for a list of all of the repositories belonging to the org or the team. This list is output to a file called repository-list.<ext> where <ext> is defined by the output_format.

Params

  • output_format : Optional (string). Specifies which format the list should be in. The options are txt (newline separated text file output to repository-list.txt) and json (a JSON array output to repository-list.json). txt is the default.

out : Not supported

Maintainers

Ari Becker Oded David

License

Apache License 2.0 © Coralogix, Inc.

You can’t perform that action at this time.