O redmine pode criar repos por conta própria?

2

Eu configurei o redmine e tenho repositórios mercurial em funcionamento.

Os repositórios hg estão localizados em / home / hg / repos, então eu configurei hg como dono para poder empurrar.

É possível fazer com que o redmine configure automaticamente os repositórios ao "criá-los" na interface do usuário da web? Há apenas uma pessoa em quem posso confiar com o su access em nossa máquina linux, mas vários usuários devem ser capazes de criar projetos e repositórios associados. Seria ideal configurá-lo para que o redmine crie automaticamente esses repositórios.

Isso é possível? Estou bem claro na minha pergunta?

    
por Phil 02.11.2010 / 12:20

2 respostas

1

Sim. O script reposman.rb é explicitamente destinado a esse propósito.

Normalmente, é feito chamar o script acima em um cronjob, por exemplo:

10 * * * * root ruby /root/redmine-1.0.0/extra/svn/reposman.rb --redmine-host http://my.redmine./ --svn-dir /data/svn/ --url my.svn.server --key=mykey --owner apache --verbose >> /var/log/reposman.log 

No entanto, o mercurial não tem uma implementação equivalente, pois o acima é para o SVN ( link ). É possível escrever seus próprios ganchos para conseguir isso. Se você não se importa em modificar o núcleo Redmine, você pode usar as informações aqui como uma fonte mínima de abordagem sobre o assunto: link

Com o método acima, você poderia chamar um script de shell contendo os comandos que você usaria normalmente para criar um repositório. Isso é totalmente personalizável. (Um script shell é apenas um arquivo com permissões de execução contendo comandos, da mesma forma que você os digita na linha de comando). Basicamente usando esse guia para criar um repositório você chamaria um script que criava um diretório pelo nome do identificador do projeto cd naquele diretório e então executava hg init Você poderia então usar o mysql para adicionar o repositório automaticamente ao projeto identificado pelo identificador do projeto.

Uma solução mais elegante seria usar os ganchos Redmine nativos em um plugin ou criar cópias das páginas modificadas em um plugin que substituiria automaticamente o núcleo do Redmine - link

Se você precisar fazer alguma coisa com o banco de dados, o seguinte é útil: link

    
por 02.11.2010 / 15:15
1

Confira a página Repositories no Redmine Wiki e vá até o Mercurial seção de repositórios para garantir que sua configuração esteja correta.

Você pode então verificar a Configuração do Apache para Mercurial Repositories no Redmine Wiki para ter certeza de que você tem a configuração correta para obter controle de acesso a partir do Redmine.

Apache configuration for Mercurial repositories

Create a file caled "hgweb.config" in the same folder as "hgwebdir.cgi". This foder will be the root repository folder. Then edit the "hgweb.config" with something like this:

[paths]
/=/path/to/root/repository/**

[web]
allow_push = *
allowbz2 = yes
allowgz = yes
allowzip = yes

Segue as instruções para instalar o Redmine.pm conforme descrito e configurar seu apache assim.

RewriteEngine on
PerlLoadModule Apache2::Redmine
PerlLoadModule Authen::Simple::LDAP
ScriptAliasMatch ^/hg(.*)  /path/to/the/hgwebdir.cgi/$1
<Location /hg>
    AuthType Basic
    AuthName "Mercurial" 
    Require valid-user

    #Redmine auth
    PerlAccessHandler Apache::Authn::Redmine::access_handler
    PerlAuthenHandler Apache::Authn::Redmine::authen_handler
    RedmineDSN "DBI:mysql:database=redmine;host=localhost" 
    RedmineDbUser "DB_USER" 
    RedmineDbPass "DB_PASSWD" 
</Location>
    
por 02.11.2010 / 15:15