PageRenderTime 47ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/lib/bitbucket_service.rb

https://bitbucket.org/daenoor/redmine_bitbucket
Ruby | 36 lines | 29 code | 7 blank | 0 comment | 3 complexity | ca11831ebc25c0020f0aeaa6b83ab63f MD5 | raw file
  1. class BitbucketService
  2. def service_enabled?
  3. Setting.plugin_redmine_bitbucket[:service_enabled]
  4. end
  5. def valid_key?(key)
  6. setting_key = Setting.plugin_redmine_bitbucket[:service_key]
  7. return true if setting_key.to_s==''
  8. key == setting_key
  9. end
  10. def find_project(project_id)
  11. scope = Project.active.has_module(:repository)
  12. project = scope.find_by_identifier(project_id.downcase)
  13. raise ActiveRecord::RecordNotFound unless project
  14. project
  15. end
  16. def find_and_update_repository(project_id, payload)
  17. project = find_project(project_id)
  18. adapter = BitbucketAdapter.new(payload)
  19. repository = project.repositories.find_by_identifier(adapter.identifier)
  20. if repository
  21. Resque.enqueue(BitbucketWorker, 'update', project_id, payload)
  22. elsif Setting.plugin_redmine_bitbucket[:auto_create]
  23. Resque.enqueue(BitbucketWorker, 'create', project_id, payload)
  24. else
  25. raise ActiveRecord::RecordNotFound
  26. end
  27. true
  28. end
  29. end