Skip to content

Commit 7e71656

Browse files
authored
Merge branch 'main' into chore/bump-supported-terraform-version-1.15.x
2 parents 10e48e2 + 18a2a21 commit 7e71656

1,167 files changed

Lines changed: 2224847 additions & 40145 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ For complete style guidance, see our [style guide](https://docs.github.com/en/co
8282

8383
**Make changes locally:**
8484
1. Fork the repository (see [official forking guide](https://docs.github.com/en/contributing))
85-
2. Install Node.js at the version specified in `.node-version` (see [development guide](../contributing/development.md))
85+
2. Install Node.js at the version specified in `package.json` (see [development guide](../contributing/development.md))
8686
3. Create a working branch and start with your changes
8787

8888
### Commit your update

.github/actions/create-workflow-failure-issue/action.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ inputs:
1010
default: github/docs-engineering
1111
required: false
1212

13+
outputs:
14+
issue_url:
15+
description: URL of the created or updated workflow-failure issue (empty if creation failed).
16+
value: ${{ steps.create-new.outputs.issue_url || steps.comment-existing.outputs.issue_url }}
17+
1318
runs:
1419
using: composite
1520
steps:
@@ -31,6 +36,7 @@ runs:
3136
echo "existing_issue=$existing" >> "$GITHUB_OUTPUT"
3237
3338
- name: Comment on existing issue
39+
id: comment-existing
3440
if: steps.check-existing.outputs.existing_issue != ''
3541
shell: bash
3642
env:
@@ -57,8 +63,10 @@ runs:
5763
gh issue comment "$ISSUE_NUMBER" \
5864
--repo "$ISSUE_REPO" \
5965
--body "$body"
66+
echo "issue_url=$GITHUB_SERVER_URL/$ISSUE_REPO/issues/$ISSUE_NUMBER" >> "$GITHUB_OUTPUT"
6067
6168
- name: Create workflow failure issue
69+
id: create-new
6270
if: steps.check-existing.outputs.existing_issue == ''
6371
shell: bash
6472
env:
@@ -86,9 +94,10 @@ runs:
8694
This issue was automatically created by the create-workflow-failure-issue action to enable automated diagnosis.
8795
EOF
8896
)
89-
gh issue create \
97+
url=$(gh issue create \
9098
--repo "$ISSUE_REPO" \
9199
--label "workflow-failure" \
92100
--label "workflow-generated" \
93101
--title "[Workflow Failure] $WORKFLOW_NAME" \
94-
--body "$body"
102+
--body "$body")
103+
echo "issue_url=$url" >> "$GITHUB_OUTPUT"

.github/actions/slack-alert/action.yml

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,61 @@ inputs:
1010
default: CG5MJHMB2 # docs-alerts
1111
required: false
1212
message:
13-
description: The message to send to Slack
14-
default: The last '${{ github.workflow }}' run failed. See ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
13+
description: >-
14+
Optional message override. When set, it is sent verbatim. When empty (the
15+
default), a standard multi-line failure message is built from the run
16+
context, plus a link to the failure issue if issue_url is provided.
17+
default: ''
18+
required: false
19+
issue_url:
20+
description: >-
21+
Optional link to the tracking failure issue (e.g. the output of the
22+
create-workflow-failure-issue action). Appended to the default message.
23+
Ignored when a custom message is provided.
24+
default: ''
1525
required: false
1626

1727
runs:
1828
using: composite
1929
steps:
30+
# Build the Slack text here so the default message can be multi-line (real
31+
# newlines) and conditionally include the issue link. A caller-supplied
32+
# message is passed through verbatim for backward compatibility.
33+
- name: Build Slack message
34+
id: build
35+
shell: bash
36+
env:
37+
MESSAGE: ${{ inputs.message }}
38+
ISSUE_URL: ${{ inputs.issue_url }}
39+
SOURCE_REPO: ${{ github.repository }}
40+
WORKFLOW_NAME: ${{ github.workflow }}
41+
RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
42+
EVENT_NAME: ${{ github.event_name }}
43+
GIT_REF: ${{ github.ref }}
44+
ACTOR: ${{ github.actor }}
45+
run: |
46+
# Escape Slack mrkdwn control chars in interpolated context fields so a
47+
# crafted branch/ref (e.g. containing <!channel>) can't inject mentions.
48+
esc() { printf '%s' "$1" | sed -e 's/&/\&amp;/g' -e 's/</\&lt;/g' -e 's/>/\&gt;/g'; }
49+
# Unique heredoc delimiter so a custom message can't collide with it.
50+
delim="SLACK_EOF_${RANDOM}${RANDOM}"
51+
{
52+
printf 'text<<%s\n' "$delim"
53+
if [ -n "$MESSAGE" ]; then
54+
printf '%s\n' "$MESSAGE"
55+
else
56+
printf ':actions: *Workflow failure* in %s: %s\n' "$(esc "$SOURCE_REPO")" "$(esc "$WORKFLOW_NAME")"
57+
printf 'on %s · %s · by %s\n' "$(esc "$EVENT_NAME")" "$(esc "$GIT_REF")" "$(esc "$ACTOR")"
58+
printf 'Run: %s\n' "$RUN_URL"
59+
if [ -n "$ISSUE_URL" ]; then
60+
printf 'Issue: %s\n' "$ISSUE_URL"
61+
else
62+
printf ':warning: No issue created\n'
63+
fi
64+
fi
65+
printf '%s\n' "$delim"
66+
} >> "$GITHUB_OUTPUT"
67+
2068
- name: Send Slack notification if workflow fails
2169
uses: slackapi/slack-github-action@45a88b9581bfab2566dc881e2cd66d334e621e2c # v3.0.3
2270
with:
@@ -25,4 +73,4 @@ runs:
2573
errors: true
2674
payload: |
2775
channel: ${{ toJSON(inputs.slack_channel_id) }}
28-
text: ${{ toJSON(inputs.message) }}
76+
text: ${{ toJSON(steps.build.outputs.text) }}

.github/agents/builder-writer.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
---
2+
3+
name: "Builder-writer"
4+
description: "Use when writing, editing, or reviewing content for the Builder persona: developers building software, from junior to senior and solo to enterprise, who write, review, test, ship, and operate code."
5+
6+
---
7+
8+
# Builder-writer Agent
9+
10+
You are a writing assistant for the GitHub Docs team. You help writers create, edit, and review documentation that serves the **Builder persona**.
11+
12+
A Builder is the developer who turns an idea into working software. Their core job is to develop and maintain reliable software that meets the evolving needs of users and stakeholders. Builders write, review, test, ship, and operate code, and they work in many contexts: proprietary software at companies and startups, open source, security, developer advocacy, and AI innovation.
13+
14+
When making content decisions, you can write for a Builder who is a somewhat experienced developer: you do not need to teach them coding basics, but you should comment code examples, explain the reasoning behind decisions, and be explicit about prerequisites such as installing libraries or configuring tools.
15+
16+
Builders are a **diverse group**, and content should account for the range:
17+
18+
* **Expertise** varies from junior to senior. A developer in their first job and one with a decade of experience are both Builders with different needs.
19+
* **Team size** varies from solo hobbyists, to a startup team, to hundreds of developers across teams at a large enterprise.
20+
* **Roles** vary, and include software engineers, DevOps engineers, security engineers, and open source maintainers and contributors.
21+
22+
## What makes Builder content different
23+
24+
Builder content is distinct from content for the Driver persona (people who enable developers at scale, such as enterprise administrators). Apply these when writing or editing.
25+
26+
### Lead with well-crafted examples
27+
28+
Examples are one of the most valuable resources for developers and one of the most under-served, so this is a way for GitHub Docs to stand out. Builders want to see how something works in a relevant scenario and adapt it to their needs, not just read about it. When writing examples:
29+
30+
* Follow best practices, so readers can copy the pattern with confidence.
31+
* Explain what each part does and why.
32+
* Choose scenarios that are easy to copy, with clear explanations about things Builders may need to adapt to their needs.
33+
34+
When you show a command or an example prompt a reader can run against their own project, make it easy to try directly: a copyable command, or a prompt they can paste straight into the tool. Builders copy and adapt what they see, so be explicit when an example is just one illustrative approach rather than the required or only way to do something.
35+
36+
### Write for someone who works in code
37+
38+
Builders are configuring their environment, writing functions, debugging builds, and wiring up tests. They want concrete implementation detail: how to integrate a library, what a configuration file should contain, how settings affect a build. Explain the decisions behind a recommended approach so a reader can adapt it to their own codebase, rather than only listing steps to click through.
39+
40+
### Cover the command line and API, not just the UI
41+
42+
Builders frequently work outside the web UI, and non-UI flows are critical for this persona. When a task is tedious, repetitive, or not realistic to accomplish in the UI, show how to do it with the Copilot CLI, GitHub CLI, or the API. For workflows that can be scripted or automated, treat the programmatic path as a first-class option rather than an afterthought.
43+
44+
### Frame value around the developer's own work
45+
46+
Builders care about their craft: shipping working software, writing clean and secure code, and collaborating effectively. Connect features to that work, the way a developer experiences it day to day, rather than to enterprise-level outcomes like compliance posture or cost management.
47+
48+
* Instead of: "Code scanning helps your organization meet its security requirements."
49+
* Write: "Code scanning flags vulnerabilities in your pull request before they reach the main branch, so you can fix them while the change is fresh."
50+
51+
### Help Builders do the work around the code well
52+
53+
Much of a Builder's day is the practice surrounding the code: scoping an issue, opening a reviewable pull request, giving and responding to review feedback, and setting up CI to catch problems early. This is fertile ground for opinionated, practical guidance (for example, how to write a well-defined issue, or how to keep a pull request scoped and easy to review). Help Builders discover and adopt these practices, and connect the relevant features so they see how planning, coding, reviewing, testing, and shipping fit together.
54+
55+
### Keep the focus on the developer's hands-on work
56+
57+
Builder content sits at the altitude of a developer doing the work themselves. When a draft drifts into rolling out, governing, or administering a tool across an organization, that is Driver territory. Split that content into a separate article or hand it off rather than mixing a developer audience and an admin audience in one piece. For example, a best-practices guide for using a tool should stay focused on the individual developer's workflow, not how to deploy the tool at scale across a company.
58+
59+
### Present GitHub's tools as one connected ecosystem
60+
61+
Builders move fluidly between surfaces (the CLI, the IDE, the web, and integrations), often within a single subscription, and switch based on what they are working on. Frame each tool's value on its own merits and show how the surfaces work together. Do not promote one surface by contrasting it negatively against another GitHub option, since the goal is for Builders to use the right tool for each task, not to pick one over another.
62+
63+
## Builder user journey
64+
65+
Builders move through the software development lifecycle. Content should meet them where they are in this flow:
66+
67+
* **Plan**: Exploring opportunities, picking up and understanding work, and designing an approach against requirements.
68+
* **Create**: Setting up an environment, authoring and optimizing code, and finding and fixing security issues.
69+
* **Review**: Reviewing others' code for quality and security, and responding to feedback on their own.
70+
* **Test**: Writing and running tests, interpreting results, and debugging failures.
71+
* **Deploy**: Initiating and overseeing a release, then validating a successful deployment.
72+
* **Operate**: Monitoring system health and performance, and maintaining and improving reliability.

.github/instructions/code.instructions.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ Some test suites depend on fixture content or external services. These suites ha
5050

5151
```shell
5252
npm run test:article-api
53-
npm run test:changelogs
5453
npm run test:fixtures
5554
npm run test:landings
5655
npm run test:languages # requires Elasticsearch running

.github/instructions/content-guidelines.instructions.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ Examples of strong intros by content type:
5454
* Only include a CTA link when it genuinely makes the reader's task easier, for example by saving them the time of navigating to a settings page themselves. Do not force a CTA; if none would genuinely help the reader, do not add one. Avoid turning articles into clickbait.
5555
* A CTA can take several forms, for example a direct link to the relevant product or feature, a Copilot prompt the reader can run, or a link to start a free trial.
5656
* Only link to a URL that is the same for everyone on that version. Do not add a CTA when the in-product URL must include an enterprise, organization, or repository name (for example, `https://github.com/ORG/REPO/settings/copilot/code_review`), because the link cannot be made to work for all readers.
57+
* Place a CTA as close as possible to the step where the reader completes the task it supports. A CTA near the final step measurably reduces time-to-task, while a CTA at an early step (for example, at the start of a multi-step setup) does not change whether or how quickly readers finish.
5758
* Procedural articles: include a CTA wherever one genuinely helps, as directly as possible.
5859
* Conceptual articles: point the reader to exactly one clear next step, usually a link to the related procedure (for example, an "About pull requests" article points to "Creating a pull request"). Place it where the reader is ready to act, typically at the end of the article.
5960

.github/instructions/instruction-architecture.instructions.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ This applies when you add, edit, or remove a Copilot instruction or shared agent
88

99
When it applies, you **must** first read the instruction-architecture doc in full and follow it:
1010

11-
https://github.com/github/docs-team/blob/main/contributing-to-docs/docs-work/copilot-instruction-architecture.md
11+
https://github.com/github/technical-content/blob/main/contributing-to-docs/docs-work/copilot-instruction-architecture.md
1212

13-
Read the current version every time (from a local `github/docs-team` checkout if you have one, otherwise fetch the URL); do not rely on your memory of it, because it changes. If you cannot access it, say so and stop rather than guessing.
13+
Read the current version every time (from a local `github/technical-content` checkout if you have one, otherwise fetch the URL); do not rely on your memory of it, because it changes. If you cannot access it, say so and stop rather than guessing.

.github/instructions/style-guide-summary.instructions.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,14 @@ For Liquid variable usage, reusables, linking conventions, bullet-list markers,
5050
* Keep alerts concise (a couple of sentences max).
5151
* Use Markdown syntax: `> [!NOTE]`, `> [!TIP]`, `> [!WARNING]`, `> [!CAUTION]`, `> [!IMPORTANT]`.
5252

53+
Call reusable content inside alert environments, rather than placing alert environments inside reusable Markdown files. For example:
54+
55+
```
56+
> [!CAUTION]
57+
> {% data reusables.foo.bar %}
58+
> Here is some additional optional text.
59+
```
60+
5361
## Links
5462

5563
* Introduce links with "For more information, see" or "See" when context is clear.
@@ -59,7 +67,7 @@ For Liquid variable usage, reusables, linking conventions, bullet-list markers,
5967

6068
## Lists
6169

62-
* Capitalize the first letter of each list item.
70+
* Capitalize the first letter of each list item, including the first letter after the colon in a term definition list (for example, `* **Filesystem**: Grant read-only access...`).
6371
* Use periods only if the item is a complete sentence.
6472
* Introduce lists with a descriptive sentence, not vague phrases like "the following" in isolation.
6573

.github/workflows/auto-add-ready-for-doc-review.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
try {
3737
await github.rest.teams.getMembershipForUserInOrg({
3838
org: 'github',
39-
team_slug: 'docs',
39+
team_slug: 'technical-content',
4040
username: context.payload.sender.login,
4141
});
4242
return true

.github/workflows/benchmark-pages.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -157,12 +157,14 @@ jobs:
157157
echo "Done creating issue"
158158
fi
159159
160-
- uses: ./.github/actions/slack-alert
160+
- uses: ./.github/actions/create-workflow-failure-issue
161+
id: create-failure-issue
161162
if: ${{ failure() && github.event_name != 'workflow_dispatch' }}
162163
with:
163-
slack_token: ${{ secrets.SLACK_DOCS_BOT_TOKEN }}
164+
token: ${{ secrets.DOCS_BOT_PAT_BASE }}
164165

165-
- uses: ./.github/actions/create-workflow-failure-issue
166+
- uses: ./.github/actions/slack-alert
166167
if: ${{ failure() && github.event_name != 'workflow_dispatch' }}
167168
with:
168-
token: ${{ secrets.DOCS_BOT_PAT_BASE }}
169+
slack_token: ${{ secrets.SLACK_DOCS_BOT_TOKEN }}
170+
issue_url: ${{ steps.create-failure-issue.outputs.issue_url }}

0 commit comments

Comments
 (0)