2015-01-23 4 views
3

Я установил репозиторий satis на github, чтобы разделить некоторые внутренние пакеты компании по проектам.Могу ли я разместить satis repo просто как репозиторий github?

Теперь, когда я пытаюсь «зависеть» на новом хранилище, я попытался это:

"repositories": [ { 
    "type": "composer", 
    "url": "https://raw.githubusercontent.com/[organisation]/satis/master/web/packages.json?token=[token-copied-from-url]" 
} ] 

и работает достаточно далеко, что композитор находит package.json, однако, то он терпит неудачу с:

[Composer\Downloader\TransportException] 
    The "https://raw.githubusercontent.com/[organization]/satis/master/web/packages.json?token=[token-copied-from-url]/include/all$[some-json-file].json" file could not be downloaded (HTTP/1.1 404 Not Found) 

, что неудивительно, поскольку, как видно, часть токена генерирует неверный URL-адрес.

Я могу обойти это, вручную перемещая содержимое прилагаемого файла в package.json напрямую, но это не так идеально, особенно если satis решает создать несколько файлов.

Другая проблема Я предполагаю, что это приведет к тому, что я мало знаю о действительности токена. Возможно, у него нет большой продолжительности жизни, и тогда satis нужно будет регулярно регенерировать.

Есть ли способ, которым я могу уйти с размещением моего satis repo как «всего лишь» рефинга github?

ответ

0

Первоначальное тестирование предполагает, что это можно сделать.

Я думаю, вам нужно удалить packages.json из вашего URL-адреса репозитория, и я подозреваю параметр? Токена. В теории вы можете передать маркер через заголовок:

https://developer.github.com/v3/#authentication

Я не проверял это, однако.

Вы можете увидеть рабочий тест без аутентификации здесь:

Чтобы попробовать это:

git clone [email protected]:markchalloner/satishostcomposer.git 
cd satishostcomposer 
composer install 

Если установить поставщик/markchalloner/satishostdemo

Пример satis.json:

{ 
    "name": "Satis Host", 
    "homepage": "https://raw.githubusercontent.com/markchalloner/satishost/master/web/", 
    "archive": { 
     "directory": "dist", 
     "format": "tar", 
     "prefix-url": "https://raw.githubusercontent.com/markchalloner/satishost/master/web/", 
     "skip-dev": true 
    }, 
    "repositories": [ 
     { 
      "_comment": "Demo packages", 
      "type": "package", 
      "package": { 
       "name": "markchalloner/satishostdemo", 
       "version": "0.1.0", 
       "dist": { 
        "type": "zip", 
        "url": "dist/demo.zip" 
       } 
      } 
     } 
    ], 
    "require-all": true 
} 

Пример composer.json (в проекте):

{ 
    "repositories": [ 
     { 
      "type": "composer", 
      "url": "https://raw.githubusercontent.com/markchalloner/satishost/master/web", 
      "options": { 
       "http": { 
        "header": [ 
         "API-TOKEN: YOUR-API-TOKEN" 
        ] 
       } 
      } 
     } 
    ], 
    "require": { 
     "markchalloner/satishostdemo": "0.1.0" 
    }, 
    "minimum-stability": "dev" 
} 

Благодаря

1

Вы можете хранить статический Satis хранилище в частном GitHub репо, а затем использовать домен raw.githubusercontent.com GitHub для обслуживания его по HTTPS. Немного взломанная часть гарантирует, что композитор правильно аутентифицируется против репо GitHub.

Нажмите Satis хранилище для GitHub

Сформировать репозиторий Satis и вставьте его в свой частный GitHub репо, позволяет нам сказать https://github.com/your-org/your-satis-repo внутри директории output/.

Приготовьте composer.json файлы

В своих проектах ваших проектов composer.json файлов, добавьте Satis репозиторий в разделе "репозиториев":

{ 
    "type": "composer", 
    "url": "https://raw.githubusercontent.com/your-org/your-satis-repo/master/output" 
} 

Настройка базовой HTTP-аутентификации

Наконец, чтобы сделать аутентификацию композитора по HTTP базовому auth против raw.githubusercontent.com, вам нужно будет добавить новую запись в раздел «http-basic» в auth.json вашего местного композитора:

{ 
    "http-basic": { 
     "raw.githubusercontent.com": { 
      "username": "GITHUB_USERNAME", 
      "password": "GITHUB_TOKEN" 
     } 
    } 
} 

Предостережения

  • Мы обнаружили, что raw.githubusercontent.com кэшируются, поэтому он может занять несколько минут, прежде чем изменения в репозиторий Сатис видимы.
Смежные вопросы