Use when adding, removing, or updating a local organizer on a devopsdays event team - covers the team_members entry, the photo, and the mandatory email to info@devopsdays.org that gates the merge.
日本語の概要は準備中です。原文の説明を表示しています。
Use when event content or site changes are finished and need to reach devopsdays.org - covers branching, rebasing on upstream main, local preview, committing, pushing to a fork or to upstream, opening the pull request, and interpreting a failing check.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
Every other skill in this repository ends here. Work through the steps in order; do not skip or reorder them.
Two rules that override convenience:
git add -A. resources/, public/, node_modules/ and
.hugo_build.lock live in the working tree. Stage by filename.git remote -v
gh repo view devopsdays/devopsdays-web --json viewerPermission -q .viewerPermission
origin is devopsdays/devopsdays-web and permission is WRITE, MAINTAIN or ADMIN →
maintainer. Branch off main, push to origin, open the PR from that branch.origin should be the contributor's fork and upstream should be
devopsdays/devopsdays-web. If upstream is missing:
git remote add upstream https://github.com/devopsdays/devopsdays-web.git
If there is no fork at all, tell the person to create one — do not fork on their behalf.Call the upstream remote $UPSTREAM below (origin for maintainers, upstream otherwise).
Never commit to main.
git fetch "$UPSTREAM" main
git rev-parse --abbrev-ref HEAD # if this says main, create a branch now
Branch names describe the change: den-2026-add-cloudbees, boston-2026-speakers.
git checkout -b <branch> # only if not already on one
git rebase "$UPSTREAM"/main
If the rebase conflicts, stop. Report the conflicting files and let the person resolve them. Do not push a half-finished rebase.
Optional — not everyone can run one, and that is fine. Offer it, and if nothing is available say so and move on rather than failing.
./hugoserver.sh # Docker, pinned version. Preferred.
make docker-server # docker compose alternative
hugo server -w --baseURL="http://localhost:1313" # needs local Hugo 0.152.2 extended
Tell them the URL of the page that changed, e.g.
http://localhost:1313/events/2026-boston/sponsor/. Hugo's watcher misses new and renamed files —
restart it after those.
A local Hugo that is newer than 0.152.2 may fail on images that CI accepts. If a local build
fails on an image under assets/sponsors/, that is a version difference, not your change.
git status --short
git add <each file you actually changed>
git diff --cached --stat
Read the staged list back to the person before committing. If anything you did not touch appears, unstage it.
Use the same convention as the PR title:
[DEN-2026] Add CloudBees as a Bronze sponsor
[CITY-YYYY] with either a city abbreviation or the city name. One logical change per commit.
Say plainly:
utilities/docs/workflow/README.md instead of opening a PR.Offer to print the commands so they can run them. Wait for an explicit yes.
git push -u origin HEAD
If the rebase in step 2 rewrote history and the branch already exists on the remote, the push is rejected. Use a lease, never a bare force:
git push --force-with-lease -u origin HEAD
If that fails with cannot lock ref, the remote branch exists but has never been fetched into
this checkout, so the lease expects it to be absent. Teach the lease what the remote holds and
retry the same command:
git fetch origin "$(git rev-parse --abbrev-ref HEAD)"
If that fetch shows the remote genuinely has commits this branch does not, stop and report.
Do not escalate to --force.
Ready for review, not a draft — this project merges on green.
Title: [CITY-YYYY] Short description, under 70 characters.
The body must be non-empty and must not contain the string Bluth or
.github/workflows/pr.yml fails the PR. Sections in this order, omitting any that do not apply:
## Summary
<1-3 bullets: what changed, for which event>
## What to check in the deploy preview
<the specific page(s) a reviewer should open, e.g. /events/2026-boston/sponsor/>
## Organizer email
<only when organizers were added or removed - see step 8a>
gh pr create --title "<title>" --body "$(cat <<'BODY'
...
BODY
)"
For a fork, add --repo devopsdays/devopsdays-web.
If this PR adds or removes a team_members entry, the ## Organizer email section is required
and must say that an email with full names, email addresses, and employers needs to go to
info@devopsdays.org. The merge is held until it is sent. Remind the person directly as well —
do not rely on them reading the PR body.
Do not run gh pr merge --auto. Merging is a maintainer's deliberate action.
gh pr checks --watch
| Failing check | What it means | Fix |
|---|---|---|
Lint Filenames | A file or directory you added has mixed case | git mv it to lowercase, then update whatever references it (image = in frontmatter, id: in YAML). All-caps names like README.md are fine; mixed case is not |
Pull Request Description Validation | Body is empty or contains Bluth | gh pr edit --body "..." with real text |
Block sponsor asset changes | You touched static/img/sponsors/ | Revert those paths. Sponsor logos go in assets/sponsors/<first-char>/ |
Build hugo on Linux | Hugo failed | Read the error. Usual causes: name: missing from main.yml; startdate set with a blank enddate; a program[].title of type: talk that does not match a file in program/; a sponsor id with no data/sponsors/<id>.yml; an image referenced in frontmatter that is not on disk |
Check for large files | A PDF or a big file | Comments only, does not block — but move it to devopsdays-assets anyway |
Netlify posts a Deploy Preview link on the PR. Give that URL to the person with the path to their page appended — it is the only way most organizers will actually see their change.
Tell them: the PR URL, the check status, the deploy-preview URL for the page that changed, and anything still outstanding (an organizer email, a missing image, a follow-up PR).
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when adding, removing, or updating a local organizer on a devopsdays event team - covers the team_members entry, the photo, and the mandatory email to info@devopsdays.org that gates the merge.
日本語の概要は準備中です。原文の説明を表示しています。
Use when a devopsdays event has confirmed a speaker and their talk, workshop, ignite, or keynote needs to appear on the event site - covers the speaker bio page, the talk page, the headshot, and multi-speaker talks.
日本語の概要は準備中です。原文の説明を表示しています。
Use when a devopsdays event has sold or confirmed a sponsorship and the sponsor needs to appear on the event's site - covers both sponsors already in the shared directory and brand-new ones needing a logo and data file.
日本語の概要は準備中です。原文の説明を表示しています。
Use when a devopsdays event has finished and the slides or video recordings need to be attached to the talk pages, or when a speaker sends a link to their deck afterwards.
日本語の概要は準備中です。原文の説明を表示しています。
Use when building or editing a devopsdays event's schedule - adding talks, ignites, open spaces, breaks, and evening events to the program, or moving time slots around.
日本語の概要は準備中です。原文の説明を表示しています。
Use when a devopsdays event that is already listed on the site has to be cancelled or postponed, and its pages need to stop advertising dates, registration, and sponsorship.
日本語の概要は準備中です。原文の説明を表示しています。