환경 변수 나 외부 구성 파일에 SmalltalkHub 사용자 이름과 암호를 설정하는 방법은 모든 이미지의 모든 저장소에 설정하는 것이 아닙니까? 항상 오래된 것들을 소개합니다.자격 증명을 입력하지 않고 Pharo에서 SmalltalkHub에 게시하는 방법은 무엇입니까?
답변
: 당신이 당신의 자격 증명을 설정하려면
, 당신과 비슷한 시동 조치를 작성해야합니다.
MCHTTPRepository>>userAndPasswordFromSettingsDo:
에는 자격 증명을 사용하는 기계가 이미 있습니다. 그것은 사전을 찾을 것으로 예상되는 클래스 변수 MCRepository.Settings
에서 그들을 찾는다. 불행히도 클래스 변수는 결코 이미지의 어느 곳에서도 설정되거나 참조되지 않습니다. 또한 접근 자도 없습니다.
따라서, 우리는 Settings
에 대한 접근 방법을 가지는 클래스를 패치하고 시작 스크립트에서 계정 정보를 설정합니다
StartupLoader default executeAtomicItems: {
StartupAction
name: 'Accounts'
code: [
Author fullName: 'AuthorName'.
MCRepository class compile: 'settings ^Settings ifNil: [ Settings := Dictionary new.]'.
MCRepository settings
at: 'account1'
put: '*smalltalkhub.com* username:password' ]
runOnce: true
}
@ UKO의 예와 같이, 스크립트는 ~/Library/Preferences/pharo
에에 있어야합니다.
챠오 미르는
그래서 당신은 here 가능한 내 요지를 스크립트 personal.st를 사용할 수있는 저자의 이름을 설정합니다. 이것은 내가 결국 발견 된 솔루션입니다
MCRepositoryGroup default repositories
select: [:each |
(each isKindOf: MCHttpRepository) and:
[each location includesSubstring: 'smalltalkhub.com' ]]
thenDo: [ :repo |
repo
user: 'your_user_name';
password: 'your_secret_password' ]
감사합니다. @Uko. 솔루션은 해당 이미지에 이미 정의되어있는 repos 만 패치합니다. 새 저장소를 추가하면 여전히 해결책이 아닙니다. – mircealungu
실제로 모든 자격 증명을 삭제하는 기능이 있으면 좋을 것입니다. 이미지를 다른 사람들에게 보냈을 때 비밀번호가없는 경우 유용합니다.
또한 변경 사항 파일에 암호가있을 수 있다는 측면이 있습니다. 어떻게 처리 할 수 있는지 궁금합니다.
나는이 솔루션을 좋아합니다. 새로운 #settings 메소드를 생성 할 필요조차 없으며'#classVarNamed : put :'을 사용하여 Settings에 할당 할 수 있습니다. –
감사합니다. Damien! 접근 자없이 해당 변수에 액세스하는 방법이 있어야합니다. :) – mircealungu