LINUX.ORG.RU
ФорумAdmin

[mercurial][ssh] Расскажите про bitbucket.org

 ,


0

0

Все знают такой замечательный сервис для хранения mercurial-репозиториев. Но места там чрезвычайно мало, да и закрытый репозиторий всего один для одного аккаунта. Поэтому вооружившись django, mysql-python и hg, хочу придумать свое хранилище репозиториев. Планируется реализовать на первых порах:

  • Регистрация пользователей (пока по инвайтам)
  • Создание репозиториев (приватные, публичные)
  • Доступ по http, https, ssh (по ssh и возник вопрос)
  • Файловый архив (ну релизы всякие загружать)
  • Все остальное взять из hg (changeset, browse, etc)

В будущем хотелось бы issue tracker и milestone. А потом все это отдать обществу, конечно! Ну а теперь собственно проблема:

Когда я зарегистрировался на bitbacket.org, создал свой репозиторий, сразу же добавил публичный ssh-ключ, чтобы коммитить по ssh. Если вы пользовались этим, то знаете, что все коммиты происходят от одного пользователя «hg». То есть примерно вот так:

hg push ssh://hg@bitbacket.org/username/reponame/

Теперь вопрос. Как bitbacket.org узнает, что мне можно коммитить в /username/reponame/, но нельзя коммитить в /login/testrepo/? Или что мне можно читать /username/repo2/, но нельзя читать /silence/secretrepo/?

Второй вопрос, как добиться такого поведения:

$ ssh hg@bitbucket.org
PTY allocation request failed on channel 0
ponq: what are you asking for, exactly?
Connection to bitbucket.org closed.

$ ssh hg@bitbucket.org ls -la
ponq: what are you asking for, exactly?

Заранее спасибо за ответы! Надеюсь, что правильно сформулировал вопросы.

>Как bitbacket.org узнает, что мне можно коммитить в /username/reponame/, но нельзя коммитить в /login/testrepo/? Или что мне можно читать /username/repo2/, но нельзя читать /silence/secretrepo/?

SSH public key. Добавить можно в настройках: http://bitbucket.org/account

Второй вопрос, как добиться такого поведения:

$ ssh hg@bitbucket.org ls -la



Это вам не шелл провайдер :-)

edigaryev ★★★★★
()
Ответ на: комментарий от edigaryev

SSH public key. Добавить можно в настройках: http://bitbucket.org/account

Спасибо, кэп! Топег читали? «сразу же добавил публичный ssh-ключ» в третьем абзаце. Вопрос был не в том, как сделать возможным коммитить на битбакет, а в том, как реализовать такое же поведение на собственном сервере.

Это вам не шелл провайдер :-)

Спасибо, кэээээп!

cheerfulboy
() автор топика
Ответ на: комментарий от anonymous

Да елки зеленые. Вы почему такие все странные? Или я?

Теперь вопрос. Как bitbacket.org узнает, что мне можно коммитить в /username/reponame/, но нельзя коммитить в /login/testrepo/? Или что мне можно читать /username/repo2/, но нельзя читать /silence/secretrepo/?

То есть я не могу понять, каким образом SSH-СЕРВЕР может различать пользователей с РАЗНЫМИ КЛЮЧАМИ, которые входят ПОД ОДНИМ ЛОГИНОМ, и решать, кому дать доступ в ОПРЕДЕЛЕННУЮ ДИРЕКТОРИЮ, а кому не давать. Теперь яснее?

cheerfulboy
() автор топика

читайте маны по меркуриалу ну и про разделение доступа

anonymous
()
Ответ на: комментарий от cheerfulboy

Ты ман-то прочитай, он хороший.

anonymous
()
Ответ на: комментарий от cheerfulboy

Есть для git такая штука как gitosis. Разделение прав с доступом по ssh. Попробуй ее установить, посмотри что происходит внутри, поковыряй файлы .authorized_keys и иже с ними. Поймешь механизм работы.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.