GitHub List

GitHub List

Certified

List items from a GitHub Projects v2 board

Fetches all items from a GitHub Projects v2 board via the GraphQL API, with optional client-side filtering by project field values, status, and labels. Supports pagination for projects with more than 100 items. The token must have the read: project scope in addition to repo access.

yaml
type: io.kestra.plugin.github.projects.List

List all items from a GitHub project.

yaml
id: github_projects_list_flow
namespace: company.team

tasks:
  - id: list_project_items
    type: io.kestra.plugin.github.projects.List
    oauthToken: "{{ secret('GITHUB_ACCESS_TOKEN') }}"
    organization: kestra-io
    projectNumber: 1
    fetchType: FETCH

List project items filtered by field values, status, and labels, stored to internal storage.

yaml
id: github_projects_list_filtered_flow
namespace: company.team

tasks:
  - id: list_project_items
    type: io.kestra.plugin.github.projects.List
    oauthToken: "{{ secret('GITHUB_ACCESS_TOKEN') }}"
    organization: kestra-io
    projectNumber: 1
    fields:
      Owner: Plugins
    status:
      - In Progress
      - Done
    labels:
      - area/plugin
    fetchType: STORE
Properties

GitHub organization login

The GitHub organization that owns the project (e.g. kestra-io).

Project number

The numeric identifier of the project board visible in the GitHub URL.

GitHub App installation token

Installation access token generated by a GitHub App. Use this for repository-scoped app access instead of a user token.

GitHub API endpoint

GitHub or GitHub Enterprise API base URL such as https://api.github.com or https://ghe.acme.com/api/v3. Set this when targeting GitHub Enterprise or a non-default API endpoint.

DefaultSTORE
Possible Values
STOREFETCHFETCH_ONENONE

Result handling mode

Controls how hits are exposed in outputs; default FETCH returns all hits in the response. FETCH_ONE returns only the first hit, STORE writes hits to Kestra storage and returns a URI, and NONE leaves outputs empty.

Project field filters

When set, only items whose project field values match all the listed entries are returned (case-sensitive). Keys are project field names (e.g. Owner, Stage); values are the expected field values. An empty map disables this filter.

GitHub JWT token

GitHub App JWT used for app-level authentication. Use this when the task should authenticate as the app rather than a user.

SubTypestring

Label filter

When set, only items that have at least one of the listed labels are returned. An empty list disables this filter.

Default0

Maximum number of items to return

Caps the number of items returned after all filters are applied. 0 or negative means no limit. Note: this limit is applied after all pages are fetched — it does not reduce the number of API calls or memory usage for large projects.

GitHub login

GitHub login used with oauthToken for authenticated requests. Leave unset when authenticating with jwtToken or appInstallationToken.

GitHub OAuth token

GitHub personal access token used for authenticated requests. Can be used alone or with login.

Reference (ref) of the pluginDefaults to apply to this task.

SubTypestring

Status filter

When set, only items whose Status field matches one of the listed values are returned. An empty list disables this filter.

First hit

Available only when fetchType=FETCH_ONE; contains the first hit source.

SubTypeobject

Fetched hits

Available only when fetchType=FETCH; contains hit sources for the current response page.

Returned hit count

Number of hits included in outputs for the selected fetch type.

Total hits reported

Total hits reported by GitHub search, regardless of pagination.

Formaturi

Stored hits URI

Available only when fetchType=STORE; Kestra internal storage path to the Ion file.