From 975c14f5ac037438e05c94208d20f337f4d88ea6 Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Fri, 17 Aug 2018 14:35:03 -0400 Subject: Add gitea2mastodon CGI script If you're seeing this on Mastodon, it works. --- etc/gitea2mastodon.rb | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 etc/gitea2mastodon.rb diff --git a/etc/gitea2mastodon.rb b/etc/gitea2mastodon.rb new file mode 100755 index 00000000..d2eaafd0 --- /dev/null +++ b/etc/gitea2mastodon.rb @@ -0,0 +1,33 @@ +#!/usr/bin/env ruby +require 'cgi' +require 'json' +require 'mastodon' + +require_relative 'secret' + +cgi = CGI.new +begin + payload = JSON.parse(cgi.params['payload'].first) +rescue + cgi.out('status' => 'BAD_REQUEST', 'type' => 'text/plain') { 'bad' } + exit +end +if payload['secret'] != GITEA_SECRET + cgi.out('status' => 'FORBIDDEN', 'type' => 'text/plain') { 'no' } + exit +end + +client = Mastodon::REST::Client.new( + base_url: MASTODON_URL, + bearer_token: MASTODON_TOKEN, +) + +payload['commits'].reverse.each do |commit| + message = commit['message'] + .split("\n\n") + .map {|p| p.split("\n").join(' ') } + .join("\n") + client.create_status("🚽 #{message}\n#{commit['url']}") +end + +cgi.out('text/plain') { 'ok' } -- cgit 1.4.1