2010-06-30 16 views
5

के माध्यम से redmine में फ़ाइलों को जोड़ना हमारे पास एक स्वचालित बिल्ड सिस्टम है जो पैकेज को थूकता है, रिग्रेशन-परीक्षण & एक साफ इंस्टॉलर में लपेटा जाता है, जो अंतिम उपयोगकर्ताओं के लिए डी/एल & पर तैनाती के लिए तैयार होता है। हम रेडमाइन के माध्यम से अंतिम उपयोगकर्ता समर्थन अनुरोध/बग रिपोर्ट की ट्रैकिंग करते हैं। अब तक हमने मैन्युअल रूप से संकुल को संकुल में अपलोड किया है। वेब इंटरफ़ेस के माध्यम से, रेडमाइन प्रोजेक्ट के 'फ़ाइलें' अनुभाग।कमांड लाइन

मैं इस कदम को स्वचालित करने के लिए क्या करना चाहता हूं। मुझे लगता है कि रेडमी की डीबी के साथ इंटरफ़ेस करने के लिए रूबी की कुछ पंक्तियों की आवश्यकता होगी। मुझे रेडमाइन के आंतरिक के बारे में शून्य ज्ञान है। :)

मूल रूप से मैं एक रूबी के रूप में एक

mv package-x.y.z.tbz /usr/local/redmine/files/ 

के बराबर चाहते हैं (या जो भी भाषा सूट की जरूरत) स्क्रिप्ट है कि सही फ़ाइल नाम बनाता है और redmine के DB में फ़ाइल पंजीकृत करता है तो यह पता चलता है के रूप में अगर इसे मैन्युअल रूप से वेब इंटरफ़ेस के माध्यम से अपलोड किया गया था।

चीयर्स!

+0

सर्वरफॉल्ट – Zoredache

+0

@Zoredache पर है: सर्वरफॉल्ट क्यों? मेरा मतलब है, स्पष्ट है कि यह एसओ या एसयू से संबंधित नहीं है, लेकिन ... – dmckee

उत्तर

3

मैं इस तरह की चीजों के बारे में रेडमाइन से निराश हूं। लेकिन इससे पहले कि मैं आगे जाऊं: क्या कोई विशिष्ट कारण है कि आप इसके लिए फाइल अनुभाग का उपयोग क्यों कर रहे हैं? ऐसा लगता है कि एक और उपकरण (जैसे एसएसएच/एसएफटीपी HTTP के लिए सुलभ जगह पर अपलोड करने के लिए) आपकी आवश्यकताओं के लिए बेहतर फिट हो सकता है। यह आसानी से पटकथा भी होगा। बस कुछ स्थिर यूआरएल जैसे http://yourcompany.com/productname-current.zip पर लोगों को इंगित करें।

आप वास्तव में इस के प्रबंधन के लिए Redmine उपयोग करने की आवश्यकता है, तो आप बाहर की जाँच कर सकते मशीनीकरण: http://mechanize.rubyforge.org/। उनके पास एक पुरानी एपीआई भी होनी चाहिए, लेकिन मैंने कभी इसका इस्तेमाल नहीं किया है।

+0

एकमात्र कारण वास्तव में है कि मैं सबकुछ एक ही स्थान पर चाहता हूं। मैकेनाइज लिंक के लिए धन्यवाद, मैं इसे देखता हूं –

0

मदद कर सकते हैं मैं थोड़ी देर हो चुकी हूँ, लेकिन मैं पर्ल में एक Redmine अपलोड टूल लिखा गया है, WWW का उपयोग कर :: मॉड्यूल मशीनीकरण। कृपया इसे http://github.com/subogero/redgit

0

जैसा कि पहले से ही कहा गया है, आप इसके लिए मैकेनाइजेशन का उपयोग कर सकते हैं। https://github.com/gertvdijk/redmine-file-uploader

इसका इस्तेमाल करने के लिए आप अजगर मशीनीकरण पैकेज पहले स्थापित करना होगा:

easy_install mechanize 

आप रूबी चाहें, तो आप उपयोग कर सकते हैं:

Python स्क्रिप्ट गर्ट वान डिक के द्वारा लिखित नहीं है

पहले
require 'mechanize' 

# Replaces \ with/and removes " 
ARGV.map!{|a|a.gsub('\\','/').gsub(/^"(.+)"$/,'\\1')} 

filename = ARGV[0] || abort('Filename must be specified') 
puts "File:    #{filename}" 
url   = ARGV[1] || abort('Redmine URL must be specified') 
puts "Redmine URL:  #{url}" 
username = ARGV[2] || abort('Redmine username must be specified') 
puts "Username:   #{username}" 
password = ARGV[3] || abort('Redmine password must be specified') 
puts "Password:   #{'*' * password.length}" 
project  = ARGV[4] || abort('Redmine project must be specified') 
puts "Project:   #{project}" 

login_page_path = '/login' 
files_page_path = '/projects/' + project + '/files' 

agent = Mechanize.new 

# No certificate verification (I had to use this hack because our server is bound to custom port) 
# agent.agent.http.verify_mode = OpenSSL::SSL::VERIFY_NONE 

agent.get(URI.join(url, login_page_path)) do |login_page| 
    login_page.form_with(:action => login_page_path) do |login_form| 
    login_form.username = username 
    login_form.password = password 
    end.submit 
end 

agent.get(URI.join(url, files_page_path + '/new')) do |upload_page| 
    upload_page.form_with(:action => files_page_path) do |upload_form| 
    upload_form.file_uploads.first.file_name = filename 
    end.submit 
end 

और भूल नहीं है स्थापित करने के लिए मणि:

gem install mechanize