Задать вопрос
  • Как изменить время когда коммит был запушен в репозиторий, это возможно?

    Lynn
    @Lynn
    nginx, js, css
    В каждом коммите хранится два времени: Author date и Commiter date.
    дока на GitHub.

    Что бы увидеть оба времени, можно задать команде git log флаг --format=fuller.
    $ git log --format=fuller -1
    commit f0eac...
    Author:     ... <...>
    AuthorDate: Tue Nov 16 09:00:00 2021 +0300
    Commit:     ... <...>
    CommitDate: Mon Nov 15 22:00:00 2021 +0300
    ...


    Флаг --date меняет Author date, который показывает git log, а GitHub при этом показывает Committer date. Что бы его поменять придётся действовать чуть сложнее. Нужно определить переменную окружения GIT_COMMITTER_DATE. Например в bash это делается так:
    GIT_COMMITTER_DATE=$(date -R -d 'yesterday 22:00') git commit --amend --no-edit --date='yesterday 22:00'


    Как это сделать в винде я не знаю, но наверняка можно.
    Ответ написан
    3 комментария
  • Как сделать свой REST API?

    VlasenkoFedor
    @VlasenkoFedor
    Программист: php, js, go
    index.php
    <?php
    # Author - Fedor Vlasenko, vlasenkofedor@gmail.com
    define('METHOD', $_SERVER['REQUEST_METHOD']);
    define('URI', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
    
    function router($url, ...$args)
    {
        (empty($args[1]) || false !== strpos(METHOD, $args[0]))
        && (URI === $url || preg_match('#^' . $url . '$#iu', URI, $match))
        && die(call_user_func_array(end($args), $match ?? []));
    }
    
    router('/api/games', 'GET', function () {
        echo 'список игрушек';
    });
    
    router('/api/game/(\d+)', 'GET', function (...$args) {
        echo 'информация о игрушке: ', $args[1];
    });
    
    router('/api/games', 'POST', function () {
        echo 'добавить новую игрушку';
    });
    
    router('/api/games/(\d+)', 'PUT', function (...$args) {
        echo 'обновить существующую игрушку: ', $args[1];
    });
    
    router('/api/games/(\d+)', 'DELETE', function (...$args) {
        echo ' удалить игрушку: ', $args[1];
    });
    
    header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
    echo '404';

    далее в консоли запускаем встроенный php сервер
    php -S localhost:8000 index.php
    тестируем и наслаждаемся :-)
    Ответ написан
    2 комментария
  • Не работает директива location в Nginx?

    Тут проблема не в location а в том, что вы не до конца поняли как работает директива root:
    При запросе mysite.com/files nginx пытается выдать папку /media/web/files, а ее у вас нет, отсюда 404.
    Из документации: «Путь к файлу формируется путём простого добавления URI к значению директивы root. Если же URI необходимо поменять, следует воспользоваться директивой alias.»
    Тоесть вам просто надо заменить root на alias
    Ответ написан
    4 комментария