0

I'm using GitHub's GraphQL API to retrieve the directories and files within a repository, but I only need some specific subsets.

The repository I'm working with has a structure like:

 - / #root
 - /.gitignore
 - /.github/...
 - /categoryOne
 - /categoryOne/itemOne
 - /categoryOne/itemOne/config.ini
 - /categoryTwo
 - /categoryTwo/itemOne
 - /categoryTwo/itemOne/config.ini
 - /categoryTwo/itemOne/maybe_some_junk/...
 ...

I'm trying to efficiently query the (category)->(item)->(config) nodes, and have been able to do that, but so far haven't found a way to omit the "junk" items (like the .gitignore file and .github tree).

Here's my crude-but-working query.

query Repository {
    repository(name: "my-repository", owner: "example") {
        object(expression: "HEAD:") {
            ... on Tree {
                categories: entries {
                    mode
                    name
                    type
                    object {
                        ... on Tree {
                            items: entries {
                                name
                                type
                                configFile: object {
                                    ... on Blob {
                                        text
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }   
    }
}

That runs fine, but includes quite a few results I'd like to filter out. I've tried adding (where: {...}) clauses to various lines, and all have indicated that isn't syntactically correct.

Does Github's GraphQL API support filtering out some of the Blobs/Trees when querying the Repository Objects? If so, what operation/syntax is needed?

1 Answer 1

0

After learning more about GraphQL (I should have mentioned I'm very new to it) I've learned that the operations and abilities are very specific to each API's implementation--the information I'd found suggesting a where: ability doesn't apply to GitHub's API.

Further reviewing the GitHub GraphQL schema and documenation I'm now confident it's not possible to do the filtering server-side. I'll need my client code to understand the query result is a list of "candidates", and it will need to filter accordingly.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.