본문으로 건너뛰기
cccskills
무료GitHub에 공개

submit-changes

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.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구GitHub
설치 방법 보기

포함된 파일(1)

  • SKILL.md6.8 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Submit changes to devopsdays-web

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:

  • Never stage with git add -A. resources/, public/, node_modules/ and .hugo_build.lock live in the working tree. Stage by filename.
  • Never enable auto-merge, and never push without confirming with the person first.

1. Work out where you are pushing

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.
  • Otherwise → fork workflow. 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).

2. Be on a branch, rebased on upstream main

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.

3. Offer a local preview

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.

4. Stage, by name

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.

5. Commit

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.

6. Confirm before pushing

Say plainly:

  • which remote and branch you are about to push to;
  • that opening a PR here means a maintainer may merge it as soon as the checks pass;
  • that if they are not ready, they should stop and use the team-preview workflow in 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.

7. Push

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.

8. Open the pull request

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.

8a. Organizer changes

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.

9. No auto-merge

Do not run gh pr merge --auto. Merging is a maintainer's deliberate action.

10. Watch the checks, and fix what fails

gh pr checks --watch
Failing checkWhat it meansFix
Lint FilenamesA file or directory you added has mixed casegit 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 ValidationBody is empty or contains Bluthgh pr edit --body "..." with real text
Block sponsor asset changesYou touched static/img/sponsors/Revert those paths. Sponsor logos go in assets/sponsors/<first-char>/
Build hugo on LinuxHugo failedRead 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 filesA PDF or a big fileComments 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.

11. Report back

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).

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

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.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

devopsdays/devopsdays-web1932026년 10월 16일 업데이트

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.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

devopsdays/devopsdays-web1932026년 10월 16일 업데이트

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.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

devopsdays/devopsdays-web1932026년 10월 16일 업데이트

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.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

devopsdays/devopsdays-web1932026년 10월 16일 업데이트

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.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

devopsdays/devopsdays-web1932026년 10월 16일 업데이트

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.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

devopsdays/devopsdays-web1932026년 10월 16일 업데이트

devopsdays의 스킬 모두 보기

이 스킬의 문제 신고