いろんないみで

はまっちゃた

redmineのリポジトリのファイルをAPIで取得する

redmineバージョン管理システムリポジトリのファイルをAPIで取得してこんな感じで使いたいなぁと思いました。

api_key="APIキー"
repo_url="https://ホスト名/redmine/projects/プロジェクト名/repository/revisions/ブランチ名/raw"
wget -qO - "$repo_url/ファイル名?key=$api_key" | sudo bash -s "$api_key"

簡単なパッチプラグインを書いてみました。

フォルダ構成はこんな感じです。

C:.
│  init.rb
└─lib
    └─monkey_patches
            repositories_controller_patch.rb

内容はこんな感じです。

init.rb です。

require 'redmine'

Redmine::Plugin.register :monkey_patches do
  name 'monkey patch'
  version '0.0.1'
end

Rails.configuration.to_prepare do
  require 'monkey_patches/repositories_controller_patch'
  RepositoriesController.send(:include, MonkeyPatches::RepositoriesControllerPatch)
end

lib/monkey_patches/repositories_controller_patch.rb です。

module MonkeyPatches
  module RepositoriesControllerPatch
    def self.included(base)
      base.class_eval do
        accept_api_auth :raw
      end
    end
  end
end

redmine結構いい感じですね。