Skip to content

Commit 8b190bd

Browse files
authored
Merge branch 'hackergarten:master' into master
2 parents 8700088 + 97abd35 commit 8b190bd

2 files changed

Lines changed: 351 additions & 3 deletions

File tree

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: Mastodon Reminder Bot
2+
3+
on:
4+
schedule:
5+
# Run daily at 9 AM UTC
6+
- cron: '0 9 * * *'
7+
workflow_dispatch: # Allow manual triggering
8+
9+
jobs:
10+
run-bot:
11+
runs-on: ubuntu-latest
12+
environment: reminder-bot-automation
13+
14+
steps:
15+
- name: Checkout current repository
16+
uses: actions/checkout@v4
17+
with:
18+
path: current-repo
19+
20+
- name: Checkout mastodon-reminder-bot repository
21+
uses: actions/checkout@v4
22+
with:
23+
repository: hackergarten/mastodon-reminder-bot
24+
path: bot-repo
25+
26+
- name: Set up Python
27+
uses: actions/setup-python@v5
28+
with:
29+
python-version: '3.x'
30+
31+
- name: Install dependencies
32+
working-directory: bot-repo
33+
run: |
34+
python -m pip install --upgrade pip
35+
pip install -r requirements.txt
36+
37+
- name: Copy events.json to bot directory
38+
run: |
39+
cp current-repo/events.json bot-repo/events.json
40+
41+
- name: Validate environment variables
42+
env:
43+
MASTODON_API_BASE_URL: ${{ vars.MASTODON_API_BASE_URL }}
44+
run: |
45+
if [ -z "$MASTODON_API_BASE_URL" ]; then
46+
echo "Error: MASTODON_API_BASE_URL is not set"
47+
exit 1
48+
fi
49+
# Check if URL looks valid (should start with http:// or https://)
50+
if [[ ! "$MASTODON_API_BASE_URL" =~ ^https?:// ]]; then
51+
echo "Error: MASTODON_API_BASE_URL should start with http:// or https://"
52+
echo "Current value starts with: ${MASTODON_API_BASE_URL:0:10}"
53+
exit 1
54+
fi
55+
# Check if URL is not just "https://" or "http://"
56+
if [[ "$MASTODON_API_BASE_URL" =~ ^https?://$ ]] || [[ "$MASTODON_API_BASE_URL" == "https" ]] || [[ "$MASTODON_API_BASE_URL" == "http" ]]; then
57+
echo "Error: MASTODON_API_BASE_URL appears to be incomplete. It should be a full URL like https://mastodon.social"
58+
exit 1
59+
fi
60+
echo "MASTODON_API_BASE_URL validation passed"
61+
62+
- name: Run mastodon reminder bot
63+
working-directory: bot-repo
64+
env:
65+
MASTODON_API_BASE_URL: ${{ vars.MASTODON_API_BASE_URL }}
66+
MASTODON_CLIENT_ID: ${{ secrets.MASTODON_CLIENT_ID }}
67+
MASTODON_CLIENT_SECRET: ${{ secrets.MASTODON_CLIENT_SECRET }}
68+
MASTODON_ACCESS_TOKEN: ${{ secrets.MASTODON_ACCESS_TOKEN }}
69+
run: |
70+
python mastodon-reminder.py events.json

events.json

Lines changed: 281 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,178 @@
11
[
2+
{
3+
"date": "2026-12-01",
4+
"venue": "codecentric AG",
5+
"address": "Industriestraße 3, 70565 Stuttgart, Germany",
6+
"links": [
7+
{
8+
"title": "Meetup",
9+
"url": "https://www.meetup.com/hackergarten-stuttgart/events/312178343/"
10+
}
11+
],
12+
"achievements": []
13+
},
14+
{
15+
"date": "2026-11-03",
16+
"venue": "codecentric AG",
17+
"address": "Industriestraße 3, 70565 Stuttgart, Germany",
18+
"links": [
19+
{
20+
"title": "Meetup",
21+
"url": "https://www.meetup.com/hackergarten-stuttgart/events/312178340/"
22+
}
23+
],
24+
"achievements": []
25+
},
26+
{
27+
"date": "2026-11-03",
28+
"venue": "Karakun @ Digitale Werkbank Dortmund",
29+
"address": "Kanalstr. 25, 44147 Dortmund",
30+
"links": [
31+
{
32+
"title": "Meetup",
33+
"url": "https://www.meetup.com/de-de/hackergarten-dortmund/events/312845304/"
34+
}
35+
],
36+
"achievements": [
37+
]
38+
},
39+
{
40+
"date": "2026-10-06",
41+
"venue": "codecentric AG",
42+
"address": "Industriestraße 3, 70565 Stuttgart, Germany",
43+
"links": [
44+
{
45+
"title": "Meetup",
46+
"url": "https://www.meetup.com/hackergarten-stuttgart/events/312178335/"
47+
}
48+
],
49+
"achievements": []
50+
},
51+
{
52+
"date": "2026-08-04",
53+
"venue": "codecentric AG",
54+
"address": "Industriestraße 3, 70565 Stuttgart, Germany",
55+
"links": [
56+
{
57+
"title": "Meetup",
58+
"url": "https://www.meetup.com/hackergarten-stuttgart/events/312178333/"
59+
}
60+
],
61+
"achievements": []
62+
},
63+
{
64+
"date": "2026-08-04",
65+
"venue": "Karakun @ Digitale Werkbank Dortmund",
66+
"address": "Kanalstr. 25, 44147 Dortmund",
67+
"links": [
68+
{
69+
"title": "Meetup",
70+
"url": "https://www.meetup.com/de-de/hackergarten-dortmund/events/312845289/"
71+
}
72+
],
73+
"achievements": [
74+
]
75+
},
76+
{
77+
"date": "2026-07-07",
78+
"venue": "codecentric AG",
79+
"address": "Industriestraße 3, 70565 Stuttgart, Germany",
80+
"links": [
81+
{
82+
"title": "Meetup",
83+
"url": "https://www.meetup.com/hackergarten-stuttgart/events/312178330/"
84+
}
85+
],
86+
"achievements": []
87+
},
88+
{
89+
"date": "2026-06-02",
90+
"venue": "codecentric AG",
91+
"address": "Industriestraße 3, 70565 Stuttgart, Germany",
92+
"links": [
93+
{
94+
"title": "Meetup",
95+
"url": "https://www.meetup.com/hackergarten-stuttgart/events/312178327/"
96+
}
97+
],
98+
"achievements": []
99+
},
100+
{
101+
"date": "2026-05-28",
102+
"title": "Hackergarten Zurich May 2026",
103+
"venue": "Quatico Solutions AG",
104+
"address": "Förrlibuckstrasse 220, 8005 Zürich",
105+
"links": [
106+
{
107+
"title": "Meetup",
108+
"url": "https://www.meetup.com/hackergarten-zurich/events/313127411/"
109+
}
110+
],
111+
"achievements": []
112+
},
113+
{
114+
"date": "2026-05-05",
115+
"venue": "codecentric AG",
116+
"address": "Industriestraße 3, 70565 Stuttgart, Germany",
117+
"links": [
118+
{
119+
"title": "Meetup",
120+
"url": "https://www.meetup.com/hackergarten-stuttgart/events/312178325/"
121+
}
122+
],
123+
"achievements": []
124+
},
125+
{
126+
"date": "2026-05-05",
127+
"venue": "Karakun @ Digitale Werkbank Dortmund",
128+
"address": "Kanalstr. 25, 44147 Dortmund",
129+
"links": [
130+
{
131+
"title": "Meetup",
132+
"url": "https://www.meetup.com/de-de/hackergarten-dortmund/events/312845285"
133+
}
134+
],
135+
"achievements": [
136+
]
137+
},
138+
{
139+
"date": "2026-04-30",
140+
"title": "Hackergarten Zurich April 2026",
141+
"venue": "Quatico Solutions AG",
142+
"address": "Förrlibuckstrasse 220, 8005 Zürich",
143+
"links": [
144+
{
145+
"title": "Meetup",
146+
"url": "https://www.meetup.com/hackergarten-zurich/events/313127382/"
147+
}
148+
],
149+
"achievements": []
150+
},
151+
{
152+
"date": "2026-04-07",
153+
"venue": "codecentric AG",
154+
"address": "Industriestraße 3, 70565 Stuttgart, Germany",
155+
"links": [
156+
{
157+
"title": "Meetup",
158+
"url": "https://www.meetup.com/hackergarten-stuttgart/events/312178323/"
159+
}
160+
],
161+
"achievements": []
162+
},
163+
{
164+
"date": "2026-03-26",
165+
"title": "Hackergarten Zurich March 2026",
166+
"venue": "Quatico Solutions AG",
167+
"address": "Förrlibuckstrasse 220, 8005 Zürich",
168+
"links": [
169+
{
170+
"title": "Meetup",
171+
"url": "https://www.meetup.com/hackergarten-zurich/events/313127324/"
172+
}
173+
],
174+
"achievements": []
175+
},
2176
{
3177
"date": "2026-03-18",
4178
"title": "Hackergarten Basel March 2026",
@@ -12,6 +186,48 @@
12186
],
13187
"achievements": []
14188
},
189+
{
190+
"date": "2026-03-03",
191+
"venue": "codecentric AG",
192+
"address": "Industriestraße 3, 70565 Stuttgart, Germany",
193+
"links": [
194+
{
195+
"title": "Meetup",
196+
"url": "https://www.meetup.com/hackergarten-stuttgart/events/312178318/"
197+
}
198+
],
199+
"achievements": []
200+
},
201+
{
202+
"date": "2026-02-26",
203+
"title": "Hackergarten Zurich February 2026",
204+
"venue": "Quatico Solutions AG",
205+
"address": "Förrlibuckstrasse 220, 8005 Zürich",
206+
"links": [
207+
{
208+
"title": "Meetup",
209+
"url": "https://www.meetup.com/hackergarten-zurich/events/313127186/"
210+
}
211+
],
212+
"achievements": []
213+
},
214+
{
215+
"date": "2026-02-10",
216+
"venue": "Karakun @ Digitale Werkbank Dortmund",
217+
"address": "Kanalstr. 25, 44147 Dortmund",
218+
"links": [
219+
{
220+
"title": "Meetup",
221+
"url": "https://www.meetup.com/de-de/hackergarten-dortmund/events/312845270/"
222+
}
223+
],
224+
"achievements": [
225+
{
226+
"title": "PeerTube: add missing German translations",
227+
"url": "https://github.com/Chocobozzz/PeerTube/pull/7439"
228+
}
229+
]
230+
},
15231
{
16232
"date": "2026-02-04",
17233
"title": "Hackergarten Basel February 2026",
@@ -25,7 +241,49 @@
25241
],
26242
"achievements": []
27243
},
28-
{
244+
{
245+
"date": "2026-02-03",
246+
"venue": "codecentric AG",
247+
"address": "Industriestraße 3, 70565 Stuttgart, Germany",
248+
"links": [
249+
{
250+
"title": "Meetup",
251+
"url": "https://www.meetup.com/hackergarten-stuttgart/events/312178314/"
252+
}
253+
],
254+
"achievements": []
255+
},
256+
{
257+
"date": "2026-01-22",
258+
"title": "Hackergarten Zurich January 2026",
259+
"venue": "Quatico Solutions AG",
260+
"address": "Förrlibuckstrasse 220, 8005 Zürich",
261+
"links": [
262+
{
263+
"title": "Meetup",
264+
"url": "https://www.meetup.com/hackergarten-zurich/events/312487770/"
265+
}
266+
],
267+
"achievements": [
268+
{
269+
"title": "Scribus: Draft ui concept and feature to manage presets for pdf export",
270+
"url": "https://bugs.scribus.net/view.php?id=16257"
271+
},
272+
{
273+
"title": "JReleaser: Improve Error Message from Exceptions",
274+
"url": "https://github.com/jreleaser/jreleaser/issues/2050"
275+
},
276+
{
277+
"title": "JReleaser: Fix failure to publish JReleaser v1.22.0 docker images",
278+
"url": "https://github.com/jreleaser/jreleaser/issues/2042"
279+
},
280+
{
281+
"title": "Komunumo: add JSON data export functionality",
282+
"url": "https://github.com/McPringle/komunumo/pull/407"
283+
}
284+
]
285+
},
286+
{
29287
"date": "2026-01-21",
30288
"title": "Hackergarten Basel January 2026",
31289
"venue": "Karakun AG",
@@ -36,9 +294,29 @@
36294
"url": "https://www.meetup.com/hackergarten-basel/events/312253237/"
37295
}
38296
],
297+
"achievements": [
298+
{
299+
"title": "PeerTube: introduce new email template and change notifier code to use it",
300+
"url": "https://github.com/Chocobozzz/PeerTube/pull/7395"
301+
},
302+
{
303+
"title": "Found and fixed copr spec file wrapper script",
304+
"url": "https://github.com/jreleaser/jreleaser/issues/2051"
305+
}
306+
]
307+
},
308+
{
309+
"date": "2026-01-13",
310+
"venue": "codecentric AG",
311+
"address": "Industriestraße 3, 70565 Stuttgart, Germany",
312+
"links": [
313+
{
314+
"title": "Meetup",
315+
"url": "https://www.meetup.com/hackergarten-stuttgart/events/312178383/"
316+
}
317+
],
39318
"achievements": []
40319
},
41-
42320
{
43321
"date": "2025-12-04",
44322
"venue": "CSS ICT Campus Zentralschweiz",
@@ -127,7 +405,7 @@
127405
}
128406
],
129407
"achievements": [
130-
408+
131409
]
132410
},
133411
{

0 commit comments

Comments
 (0)