Como um desenvolvedor para Mocra e um cara de código aberto, às vezes eu publico gems na conta dev @ mocra e outras vezes na minha própria conta pessoal. Para fazer isso, no entanto, preciso editar o arquivo ~ / .gem / credentials toda vez que precisar alternar. Embora seja fácil para mim fazer um script apenas para mover o arquivo em outro lugar e copiar o novo, acho que também haveria outras pessoas nesta situação.
Concordo, é por isso que ~/.gem/credentials
é um arquivo YAML ... então isso poderia ser implementado de alguma forma como ...
gem push whatever.gem -k mocra
e no arquivo de credenciais:
--- : rubygems_api_key: 1337 : mocra_api_key: 42
Me faz pensar em algo relacionado ... queremos executar uma instância do gemcutter para hospedar nossas joias internas. Atualmente temos uma gema específica da empresa que é exatamente como a gemcutter, exceto que apenas fornece o comando push e aponta para o nosso servidor. E se o gemcutter suportasse algo como:
gem push foo.gem -h foo
com h significando host e padronizando como gemcutter. E o arquivo YAML:
--- lapidador: api_key: foo url: http://gemcutter.org foo: api_key: bar url: http://gems.example.org
Eu ficaria feliz em enviar um patch se você concordar com isso.
Eu gosto mais dessa abordagem, sr ... entretanto, nós teremos que continuar apoiando :rubygems_api_key
já que a gema do cortador também olha para isso. Então, talvez o padrão possa ser
--- rubygems: api_key: foo endereço: http://rubygems.org
Felizmente, como ele é analisado como um arquivo YAML, devemos ser capazes de inseri-lo.
Isso está feito! https://github.com/rubygems/rubygems/pull/17
como este é o principal resultado da pesquisa para esse problema e como passei 20 minutos tentando descobrir o formato de configuração correto, pensei em esclarecê-lo aqui para os outros. Apenas especifique cada chave como um símbolo em ~/.gem/credentials
e especifique qual você deseja com -k
:work: b026324c6904b2a9cb4b88d6d61c81d1
:personal: b026324c6904b2a9cb4b88d6d61c81d1
gem push -k work mygem
Comentários muito úteis
como este é o principal resultado da pesquisa para esse problema e como passei 20 minutos tentando descobrir o formato de configuração correto, pensei em esclarecê-lo aqui para os outros. Apenas especifique cada chave como um símbolo em
~/.gem/credentials
e especifique qual você deseja com-k