Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

404 while fetch my private package #673

Open
julienbonvarlet opened this issue Mar 1, 2024 · 13 comments
Open

404 while fetch my private package #673

julienbonvarlet opened this issue Mar 1, 2024 · 13 comments

Comments

@julienbonvarlet
Copy link

Hello !

I get some 404 errors while fetching my private packages:

Using HTTP basic authentication with username "token"
Downloading https://faume-co.repo.repman.io/packages.json
[200] https://faume-co.repo.repman.io/packages.json
Writing /Users/tyloo/Library/Caches/composer/repo/https---faume-co.repo.repman.io/packages.json into cache
Downloading https://faume-co.repo.repman.io/p2/faume/php.json
Downloading https://faume-co.repo.repman.io/p2/faume/shipping-bundle.json
[404] https://faume-co.repo.repman.io/p2/faume/php.json
[404] https://faume-co.repo.repman.io/p2/faume/shipping-bundle.json

Do you guys have any idea how to fix this please ? Thanks !

@LBos-PH
Copy link

LBos-PH commented Mar 1, 2024

I have the same problem

@anthonyvancauwenberghe
Copy link

Same isssue what's going on?

@gerdemann
Copy link

Only a workaround: A manual click on "Update" in the package solves the problem for individual packages.

@Sfonxs
Copy link

Sfonxs commented Mar 4, 2024

Only a workaround: A manual click on "Update" in the package solves the problem for individual packages.

Thanks, this solved it for us.

@SteJW
Copy link

SteJW commented Mar 5, 2024

Same issue here. We have like a 100 packages though. Any fixes from repman's part?

@SteJW
Copy link

SteJW commented Mar 5, 2024

Made a small (ugly) script to automate. If you get the json with all your packages from https://repman.io/docs/api/, you can use this to update everything at once.

`
$decoded = json_decode($json, true);
foreach($decoded['data'] as $package) {
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.repman.io/api/organization/###org_name###/package/' . $package['id'],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => array(
    'X-API-TOKEN: ###YOUR API KEY###'
),
));

$response = curl_exec($curl);
var_dump($response, $package['id']);
curl_close($curl);

}`

@gerdemann
Copy link

I have extended the script a little. Only the API token and the organisation need to be entered at the top.

<?php
$apiToken = '### MY API TOKEN ###';
$organisation = 'MyOrganisationName';

$apiURLBase = 'https://app.repman.io/api/organization/' . $organisation . '/package';
$allData = [];
$page = 1;
do {
    $curl = curl_init();

    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => $apiURLBase . '?page=' . $page,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => '',
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 0,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_HTTPHEADER => [
                'accept: application/json',
                'X-API-TOKEN: ' . $apiToken
            ],
        ]
);

    $response = curl_exec($curl);

    if (curl_errno($curl)) {
        echo "cURL error: " . curl_error($curl) . "\n";
        exit(1);
    }

    $decodedResponse = json_decode($response, true);

    curl_close($curl);

    if (!empty($decodedResponse['data'])) {
        $allData = array_merge($allData, $decodedResponse['data']);
    }

    $nextPageUrl = $decodedResponse['links']['next'] ?? null;
    $page++;
} while ($nextPageUrl !== null);

foreach ($allData as $package) {
    $curl = curl_init();

    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://app.repman.io/api/organization/' . $organisation . '/package/' . $package['id'],
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => '',
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 0,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => 'PUT',
            CURLOPT_HTTPHEADER => [
                'X-API-TOKEN: ' . $apiToken
            ],
        ]
    );

    $response = curl_exec($curl);
    curl_close($curl);
    
    echo 'Updated package: ' . $package['name'] . PHP_EOL;
}
echo '---------------------------' . PHP_EOL;
echo 'done' . PHP_EOL;

Put this in an update.php file and call it up like this:

php update.php

@treestonemedia
Copy link

@gerdemann thanks for the script, I tried it but none of my packages are getting updated - seems like updating one by one doesn't work anymore, I tried it form the GUI and still couldn't get any package to update

@ProxiBlue
Copy link

FWIW I use this script and works 100% (always) for me:

https://gist.github.com/ProxiBlue/f00ecb42c1eade71c8c0f991da6d13f0

@adaluppa
Copy link

Hello. If you still experience issues, please contact us at support@buddy.works and send us the URL of the package and its version.

@treestonemedia
Copy link

Hello @adaluppa , all packages are now working fine

@swichers
Copy link

This is an ongoing problem and has been for years. Something with the shared version results in sync backlogs and invalid caches. You have to manually re-sync the libraries from time to time.

I provided a script a while back to do this #568 (comment)

Long term solution is likely to host your own copy of repman.

@core23
Copy link

core23 commented Mar 28, 2024

Having the problem again.

Are there any information what's causing the issue from time to time?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests