summary refs log tree commit diff
path: root/etc
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2018-08-17 14:35:03 -0400
committerJune McEnroe <june@causal.agency>2018-08-17 14:35:03 -0400
commit33409e7498923a56aed290d933ea5401085556ec (patch)
treefd33e8f9f8d4cc8118746034c6aab518c03afca7 /etc
parentRemove zshrc (diff)
downloadsrc-33409e7498923a56aed290d933ea5401085556ec.tar.gz
src-33409e7498923a56aed290d933ea5401085556ec.zip
Add gitea2mastodon CGI script
If you're seeing this on Mastodon, it works.
Diffstat (limited to 'etc')
-rwxr-xr-xetc/gitea2mastodon.rb33
1 files changed, 33 insertions, 0 deletions
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' }
1fbf&follow=1'>Document channel keys in join optionJune McEnroe 2021-06-18Use | to separate flags from config optionsJune McEnroe 2021-06-18Stop referring to server-time as IRCv3.2June McEnroe 2021-06-17Add mailing list archive to READMEJune McEnroe 2021-06-10Stop accumulating ISUPPORT tokens once MOTD startsJune McEnroe 2021-06-09Use seprintf for snip, removing strlcpynJune McEnroe 2021-06-09Use seprintf for reserializeJune McEnroe 2021-06-09Use seprintf for capListJune McEnroe 2021-06-09Add seprintfJune McEnroe 2021-05-27Add pounce-notify to README 2.4June McEnroe 2021-05-27Fix ENVIRONMENT formatting in pounce-notify(1)June McEnroe 2021-05-27Add note about Libera.Chat SASL-only rangesJune McEnroe 2021-05-25Add QUIRKS fileJune McEnroe 2021-05-19Replace freenode with tilde.chatJune McEnroe 2021-05-04notify: Reword pounce-notify manualJune McEnroe 2021-05-02Clean up Makefiles, configure scriptsJune McEnroe 2021-04-30palaver: Exit on getopt failureJune McEnroe 2021-04-30notify: Implement pounce-notifyJune McEnroe