Skip to content

Commit 978efae

Browse files
Merge branch 'main' into fix-code-security-settings-docs
2 parents dfa8088 + a7178a8 commit 978efae

598 files changed

Lines changed: 115888 additions & 34691 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/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/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/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/content-pipelines.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ jobs:
3737
# source-path, target-articles, etc.) is read from
3838
# src/content-pipelines/config.yml by the update script.
3939
- id: copilot-cli
40+
- id: gh-stack
4041
# - id: mcp-server
4142

4243
steps:
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Copilot Code Review setup steps
2+
#
3+
# Code Review cannot access the private early-access repository, so it uses
4+
# this secret-free setup instead of the cloud agent setup workflow.
5+
6+
name: 'Copilot Code Review Setup Steps'
7+
8+
on:
9+
workflow_dispatch:
10+
11+
jobs:
12+
copilot-setup-steps:
13+
runs-on: ubuntu-latest
14+
if: github.repository == 'github/docs-internal' || github.repository == 'github/docs'
15+
permissions:
16+
contents: read
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
20+
- uses: ./.github/actions/node-npm-setup

.github/workflows/docs-review-collect.yml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,8 @@ jobs:
2222
- name: Check out repo content
2323
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
2424

25-
- name: Setup Node.js
26-
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
27-
with:
28-
node-version-file: 'package.json'
29-
cache: npm
30-
31-
- name: Install dependencies
32-
run: npm ci
25+
- name: Set up Node and dependencies
26+
uses: ./.github/actions/node-npm-setup
3327

3428
- name: Run script for audit-log-allowlists
3529
run: |

.github/workflows/link-check-external.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,6 @@ jobs:
2929

3030
- uses: ./.github/actions/node-npm-setup
3131

32-
- name: Install dependencies
33-
run: npm ci
34-
3532
- name: Check external links
3633
id: check
3734
env:

.github/workflows/link-check-internal.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,6 @@ jobs:
8383
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
8484
- uses: ./.github/actions/node-npm-setup
8585

86-
- name: Install dependencies
87-
run: npm ci
88-
8986
# Clone translations if not English
9087
- name: Clone translations
9188
if: matrix.language != 'en'

.github/workflows/needs-sme-stale-check.yaml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ jobs:
1919
runs-on: ubuntu-latest
2020

2121
steps:
22-
- uses: actions/stale@3a9db7e6a41a89f618792c92c0e97cc736e1b13f # v10.0.0
22+
- uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0
23+
id: stale
2324
with:
2425
only-labels: needs SME
2526
days-before-stale: 28 # adds stale label if no activity for 7 days - temporarily changed to 28 days as we work through the backlog
@@ -31,7 +32,10 @@ jobs:
3132
days-before-pr-close: -1 # never close
3233

3334
- name: Print outputs
34-
run: echo "Staled issues/PRs:${{ steps.stale.outputs.staled-issues-prs || '0' }}, Closed issues/PRs:${{ steps.stale.outputs.closed-issues-prs || '0' }}"
35+
env:
36+
STALED: ${{ steps.stale.outputs.staled-issues-prs || '0' }}
37+
CLOSED: ${{ steps.stale.outputs.closed-issues-prs || '0' }}
38+
run: echo "Staled issues/PRs:${STALED}, Closed issues/PRs:${CLOSED}"
3539

3640
- name: Check out repo
3741
if: ${{ failure() }}

.github/workflows/no-response.yaml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ jobs:
3333
github.actor != 'github-actions' &&
3434
!endsWith(github.actor, '[bot]')
3535
steps:
36-
- uses: actions/stale@3a9db7e6a41a89f618792c92c0e97cc736e1b13f # v10.0.0
36+
- uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0
37+
id: stale
3738
with:
3839
repo-token: ${{ secrets.GITHUB_TOKEN }}
3940
only-labels: 'more-information-needed'
@@ -62,7 +63,10 @@ jobs:
6263
to describe your changes. Then we can reopen this PR and begin the review process.
6364
6465
- name: Print outputs
65-
run: echo "Staled issues/PRs:${{ steps.stale.outputs.staled-issues-prs || '0' }}, Closed issues/PRs:${{ steps.stale.outputs.closed-issues-prs || '0' }}"
66+
env:
67+
STALED: ${{ steps.stale.outputs.staled-issues-prs || '0' }}
68+
CLOSED: ${{ steps.stale.outputs.closed-issues-prs || '0' }}
69+
run: echo "Staled issues/PRs:${STALED}, Closed issues/PRs:${CLOSED}"
6670

6771
- name: Check out repo
6872
if: ${{ failure() }}

0 commit comments

Comments
 (0)