gitea_issues_exporter/app/Http/Controllers/GiteaApiController/GiteaFetch.php

62 lines
2.1 KiB
PHP
Raw Normal View History

2024-07-22 14:17:00 +02:00
<?php
namespace App\Http\Controllers\GiteaApiController;
use App\Http\Controllers\Controller;
use App\Http\Controllers\CsvController\CsvController;
use App\Http\Controllers\IssueValidationController;
use GuzzleHttp\Client as GuzzleClient;
use Illuminate\Http\Request;
use OwenVoke\Gitea\Client;
class GiteaFetch extends Controller
{
private $giteaClient;
private $partner_organization;
private $main_company_organization;
public function __construct()
{
$this->main_company_organization = config('app.gitea_main_company_organization');
$this->partner_organization = config('app.gitea_partner_organization');
$this->gitea_url = config('app.gitea_url');
$this->gitea_token = config('app.gitea_token');
2024-07-22 14:17:00 +02:00
$this->giteaClient = new Client(null, null, $this->gitea_url);
$this->giteaClient->authenticate($this->gitea_token, null, Client::AUTH_ACCESS_TOKEN);
}
function get_repositories()
{
$repositories = $this->giteaClient->organizations()->repositories($this->partner_organization, 1, 9999);
return $repositories;
}
function get_issues(string $repository, array $parameters = array())
{
return $this->giteaClient->repositories()->issues()->all($this->partner_organization, $repository, $parameters);
}
function get_issue_time(string $repository_name, int $issue_number){
return $this->giteaClient->repositories()->issues()->times($this->partner_organization, $repository_name, $issue_number);
}
function get_company_agents()
{
$gitea_api_call_url = $this->gitea_url . '/api/v1/orgs/' . $this->main_company_organization . '/members';
$http_client = new GuzzleClient();
$res = $http_client->get($gitea_api_call_url, [
'headers' => [
'Authorization' => 'token ' . $this->gitea_token
]
]);
$responseBody = $res->getBody()->getContents();
$users = json_decode($responseBody, true);
//removes 1st user, usually it's the admin
array_shift($users);
$users = array_column($users, 'username');
return $users;
}
}