php-github-api icon indicating copy to clipboard operation
php-github-api copied to clipboard

projects returning empty.

Open bymem opened this issue 2 years ago • 1 comments

Hi

i'm trying to get all projects on our organisation or a repo but no matter which i tries out it just returns a empty array. The repo is a private one, but have both made a classic token and a fined grained one. the closes i have come is getting a "Resource not accessible by personal access token" error.

So my code looks like this

require_once __DIR__ . '/vendor/autoload.php';

$client = new \Github\Client();
$client->authenticate('github_pat_[TOKEN]', null, Github\AuthMethod::ACCESS_TOKEN);
$repositories = $client->api('organizations')->repositories('NOVA-Intergalactic');

$projects = $client->api('org_projects')->all('NOVA-Intergalactic');
// $projects = $client->api('repo')->projects()->all('NOVA-Intergalactic', 'NovaAi');

echo '<pre>';
print_r($projects);
echo '</pre>';

The $repositories command does fetch the private repos, so i belive the token does have access to the private repos.

but $projects = $client->api('org_projects')->all('NOVA-Intergalactic'); Just returns a blank array

I have also tried out $projects = $client->api('repo')->projects()->all('NOVA-Intergalactic', 'NovaAi');But that throws the error "Resource not accessible by personal access token"

So i'm a little unsure on where to proceed.

bymem avatar May 19 '23 09:05 bymem

That's because org_projects uses Projects (Classic) GitHub Rest Endpoint which doesn't return ProjectsV2 and are only accessible through Graphql.

You can use graphql api to fetch list of projects like this

$query = <<<'QUERY'
query{
    organization(login: "NOVA-Intergalactic") {
        projects(first: 10) {
            totalCount
            nodes {
                number
            }
        }
        projectsV2(first: 20) {
            nodes {
                id
                title
            }
        }
    }
}
QUERY;
$api = $github->api('graphql')->execute($query);

haridarshan avatar May 23 '23 06:05 haridarshan