Skip to content

Commit 31c12b3

Browse files
author
graial
committed
pull from upstream
2 parents 79858dd + c977f3b commit 31c12b3

18 files changed

Lines changed: 3552 additions & 509 deletions

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 0 additions & 15 deletions
This file was deleted.

.github/workflows/meetups.yml

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
name: Fetch Meetups
2+
3+
on:
4+
workflow_dispatch:
5+
schedule:
6+
- cron: "0 0 * * *" # Runs every day at 00:00 UTC time
7+
8+
permissions:
9+
pull-requests: write
10+
contents: write
11+
12+
jobs:
13+
fetch:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v4
17+
- name: Set up Ruby
18+
19+
uses: ruby/setup-ruby@v1
20+
with:
21+
bundler-cache: true
22+
23+
- name: Check for new Meetups
24+
run: bundle exec rake fetch_meetups
25+
26+
- name: Verify Meetups Data
27+
run: bundle exec rake verify_meetups
28+
29+
- name: Set up the formatted date, branch name and PR title
30+
run: |
31+
echo "FORMATTED_DATE=$(date +'%B %d, %Y')" >> $GITHUB_ENV
32+
echo "BRANCH_TO_MERGE=new-meetups-$(date +'%Y-%m-%d')" >> $GITHUB_ENV
33+
echo "PULL_REQUEST_TITLE=$(cat ./pull_request_title.txt)" >> $GITHUB_ENV
34+
35+
- name: Check if there are any new meetups
36+
run: |
37+
if [[ -n $(git diff --name-only _data/meetups.yml) ]]; then
38+
echo "NEW_MEETUPS=true" >> $GITHUB_ENV
39+
else
40+
echo "NEW_MEETUPS=false" >> $GITHUB_ENV
41+
fi
42+
43+
- name: Commit New Meetups
44+
uses: stefanzweifel/git-auto-commit-action@v5
45+
if: ${{ env.NEW_MEETUPS == 'true' }}
46+
with:
47+
# Optional. Commit message for the created commit.
48+
# Defaults to "Apply automatic changes"
49+
commit_message: ${{ env.PULL_REQUEST_TITLE }}
50+
51+
# Optional. Local and remote branch name where commit is going to be pushed
52+
# to. Defaults to the current branch.
53+
# You might need to set `create_branch: true` if the branch does not exist.
54+
branch: ${{ env.BRANCH_TO_MERGE }}
55+
56+
# Optional. Options used by `git-commit`.
57+
# See https://git-scm.com/docs/git-commit#_options
58+
# commit_options: '--no-verify --signoff'
59+
60+
# Optional glob pattern of files which should be added to the commit
61+
# Defaults to all (.)
62+
# See the `pathspec`-documentation for git
63+
# - https://git-scm.com/docs/git-add#Documentation/git-add.txt-ltpathspecgt82308203
64+
# - https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefpathspecapathspec
65+
file_pattern: '_data/*.yml'
66+
67+
# Optional. Local file path to the repository.
68+
# Defaults to the root of the repository.
69+
# repository: .
70+
71+
# Optional commit user and author settings
72+
# commit_user_name: My GitHub Actions Bot # defaults to "github-actions[bot]"
73+
# commit_user_email: my-github-actions-bot@example.org # defaults to "41898282+github-actions[bot]@users.noreply.github.com"
74+
# commit_author: Author <actions@github.com> # defaults to "username <username@users.noreply.github.com>", where "username" belongs to the author of the commit that triggered the run
75+
76+
# Optional. Tag name being created in the local repository and
77+
# pushed to remote repository and defined branch.
78+
# tagging_message: 'v1.0.0'
79+
80+
# Optional. Option used by `git-status` to determine if the repository is
81+
# dirty. See https://git-scm.com/docs/git-status#_options
82+
status_options: '--untracked-files=no'
83+
84+
# Optional. Options used by `git-add`.
85+
# See https://git-scm.com/docs/git-add#_options
86+
# add_options: '-u'
87+
88+
# Optional. Options used by `git-push`.
89+
# See https://git-scm.com/docs/git-push#_options
90+
# push_options: '--force'
91+
92+
# Optional. Disable dirty check and always try to create a commit and push
93+
# skip_dirty_check: true
94+
95+
# Optional. Skip internal call to `git fetch`
96+
# skip_fetch: true
97+
98+
# Optional. Skip internal call to `git checkout`
99+
# skip_checkout: true
100+
101+
# Optional. Prevents the shell from expanding filenames.
102+
# Details: https://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html
103+
# disable_globbing: true
104+
105+
# Optional. Create given branch name in local and remote repository.
106+
create_branch: true
107+
108+
- name: Create Pull Request
109+
if: ${{ env.NEW_MEETUPS == 'true' }}
110+
run: gh pr create -B main -H ${{ env.BRANCH_TO_MERGE }} --title "${{ env.PULL_REQUEST_TITLE }}" --body-file "./new_meetups.md"
111+
env:
112+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/verify.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: Verify Data
2+
3+
on: [push, pull_request]
4+
jobs:
5+
verify:
6+
runs-on: ubuntu-latest
7+
steps:
8+
- uses: actions/checkout@v4
9+
- name: Set up Ruby
10+
11+
uses: ruby/setup-ruby@v1
12+
with:
13+
bundler-cache: true
14+
15+
- name: Verify Conference Data
16+
run: bundle exec rake verify_conferences
17+
18+
- name: Verify Meetups Data
19+
run: bundle exec rake verify_meetups

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
_site
22
.jekyll-metadata
33
bin/
4+
new_meetups.md
5+
pull_request_title.txt

.ruby-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.3.3
1+
3.3.4

Gemfile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,10 @@ gem 'danger-commit_lint'
88
gem 'html-proofer'
99
gem 'jekyll'
1010
gem 'rake'
11+
gem 'graphql-client', '~> 0.23.0'
12+
gem 'frozen_record', '~> 0.27.2'
13+
gem 'countries', '~> 6.0'
14+
15+
group :jekyll_plugins do
16+
gem 'jekyll-feed'
17+
end

Gemfile.lock

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,27 @@ GEM
22
remote: https://rubygems.org/
33
specs:
44
Ascii85 (1.1.0)
5+
activemodel (7.2.1)
6+
activesupport (= 7.2.1)
7+
activesupport (7.2.1)
8+
base64
9+
bigdecimal
10+
concurrent-ruby (~> 1.0, >= 1.3.1)
11+
connection_pool (>= 2.2.5)
12+
drb
13+
i18n (>= 1.6, < 2)
14+
logger (>= 1.4.2)
15+
minitest (>= 5.1)
16+
securerandom (>= 0.3)
17+
tzinfo (~> 2.0, >= 2.0.5)
518
addressable (2.8.6)
619
public_suffix (>= 2.0.2, < 6.0)
720
afm (0.2.2)
821
async (2.3.1)
922
console (~> 1.10)
1023
io-event (~> 1.1)
1124
timers (~> 4.1)
25+
base64 (0.2.0)
1226
bigdecimal (3.1.8)
1327
claide (1.1.0)
1428
claide-plugins (0.9.2)
@@ -18,10 +32,13 @@ GEM
1832
colorator (1.1.0)
1933
colored2 (3.1.2)
2034
concurrent-ruby (1.3.3)
35+
connection_pool (2.4.1)
2136
console (1.16.2)
2237
fiber-local
2338
cork (0.3.0)
2439
colored2 (~> 3.1)
40+
countries (6.0.1)
41+
unaccent (~> 0.3)
2542
danger (9.2.0)
2643
claide (~> 1.0)
2744
claide-plugins (>= 0.9.2)
@@ -39,6 +56,7 @@ GEM
3956
danger-plugin-api (~> 1.0)
4057
danger-plugin-api (1.0.0)
4158
danger (> 2.0)
59+
drb (2.2.1)
4260
em-websocket (0.5.3)
4361
eventmachine (>= 0.12.9)
4462
http_parser.rb (~> 0)
@@ -53,13 +71,22 @@ GEM
5371
faraday-net_http (3.0.2)
5472
ffi (1.17.0)
5573
fiber-local (1.0.0)
74+
fiber-storage (1.0.0)
5675
forwardable-extended (2.6.0)
76+
frozen_record (0.27.2)
77+
activemodel
5778
git (1.13.2)
5879
addressable (~> 2.8)
5980
rchardet (~> 1.8)
6081
google-protobuf (4.27.1)
6182
bigdecimal
6283
rake (>= 13)
84+
graphql (2.3.14)
85+
base64
86+
fiber-storage
87+
graphql-client (0.23.0)
88+
activesupport (>= 3.0)
89+
graphql (>= 1.13.0)
6390
hashery (2.1.2)
6491
html-proofer (5.0.4)
6592
addressable (~> 2.3)
@@ -90,6 +117,8 @@ GEM
90117
safe_yaml (~> 1.0)
91118
terminal-table (>= 1.8, < 4.0)
92119
webrick (~> 1.7)
120+
jekyll-feed (0.17.0)
121+
jekyll (>= 3.7, < 5.0)
93122
jekyll-sass-converter (3.0.0)
94123
sass-embedded (~> 1.54)
95124
jekyll-watch (2.2.1)
@@ -102,8 +131,10 @@ GEM
102131
listen (3.9.0)
103132
rb-fsevent (~> 0.10, >= 0.10.3)
104133
rb-inotify (~> 0.9, >= 0.9.10)
134+
logger (1.6.0)
105135
mercenary (0.4.0)
106136
mini_portile2 (2.8.6)
137+
minitest (5.25.1)
107138
nap (1.1.0)
108139
no_proxy_fix (0.1.2)
109140
nokogiri (1.16.5)
@@ -129,7 +160,7 @@ GEM
129160
rb-inotify (0.11.1)
130161
ffi (~> 1.0)
131162
rchardet (1.8.0)
132-
rexml (3.3.0)
163+
rexml (3.3.6)
133164
strscan
134165
rouge (4.3.0)
135166
ruby-rc4 (0.1.5)
@@ -141,13 +172,17 @@ GEM
141172
sawyer (0.9.2)
142173
addressable (>= 2.3.5)
143174
faraday (>= 0.17.3, < 3)
175+
securerandom (0.3.1)
144176
strscan (3.1.0)
145177
terminal-table (3.0.2)
146178
unicode-display_width (>= 1.1.1, < 3)
147179
timers (4.3.5)
148180
ttfunk (1.7.0)
149181
typhoeus (1.4.0)
150182
ethon (>= 0.9.0)
183+
tzinfo (2.0.6)
184+
concurrent-ruby (~> 1.0)
185+
unaccent (0.4.0)
151186
unicode-display_width (2.5.0)
152187
webrick (1.8.1)
153188
yell (2.2.2)
@@ -157,14 +192,18 @@ PLATFORMS
157192
ruby
158193

159194
DEPENDENCIES
195+
countries (~> 6.0)
160196
danger
161197
danger-commit_lint
198+
frozen_record (~> 0.27.2)
199+
graphql-client (~> 0.23.0)
162200
html-proofer
163201
jekyll
202+
jekyll-feed
164203
rake
165204

166205
RUBY VERSION
167-
ruby 3.3.3p89
206+
ruby 3.3.4p94
168207

169208
BUNDLED WITH
170209
2.4.6

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@ This page publishes `.ics` feed files for inclusion in personal calendars:
1414
- [`calendar.ics`](https://rubyconferences.org/calendar.ics) for the events only
1515
- [`cfp.ics`](https://rubyconferences.org/cfp.ics) for the CFP open/close dates
1616

17+
## RSS Feed
18+
19+
This page publishes an RSS feed so you can stay up to date with newly announced Ruby conferences.
20+
21+
- [`feed.xml`](https://rubyconferences.org/feed.xml) for RSS Readers
22+
23+
1724
## Eligible Conferences
1825

1926
Focus is a goal of this project and as a result, only conferences that are
@@ -55,6 +62,7 @@ Extra keys for the upcoming events:
5562
* `cfp_link`: A link to the CFP submission page.
5663
* `status`: Typically you want to put "Canceled", "Postponed" or "To be announced" here.
5764
* `date_precision`: Controls the precision of the `start_date` and `end_date` when the conference dates aren't announced just yet but it's confirmed that the conference is happening. Possible values: `full` (implicit default), `month` or `year`. The `start_date` and `end_date` fields still need to be fully formatted ISO8601 dates, you can put the last day of the month/year in it so it also gets ordered properly.
65+
* `announced_on`: The date on which the conference was announced - ISO8601 formatted (yyyy-mm-dd). This date is used as the publish date for the [RSS feed](https://rubyconferences.org/feed.xml) so people can stay up to date with newly announced conferences.
5866

5967
Extra keys for the past events:
6068

0 commit comments

Comments
 (0)