Skip to content

Commit 7b093e9

Browse files
committed
Merge branch 'main' of github.com:github/docs-internal into support-hardcoded-version-or-plan-in-link
2 parents f6cc553 + b981743 commit 7b093e9

159 files changed

Lines changed: 2370 additions & 563 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/allowed-actions.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,6 @@ module.exports = [
3232
'repo-sync/pull-request@33777245b1aace1a58c87a29c90321aa7a74bd7d',
3333
'someimportantcompany/github-actions-slack-message@0b470c14b39da4260ed9e3f9a4f1298a74ccdefd',
3434
'tjenkinson/gh-action-auto-merge-dependency-updates@cee2ac0',
35-
'EndBug/add-and-commit@9358097a71ad9fb9e2f9624c6098c89193d83575'
35+
'EndBug/add-and-commit@9358097a71ad9fb9e2f9624c6098c89193d83575',
36+
'dorny/paths-filter@eb75a1edc117d3756a18ef89958ee59f9500ba58'
3637
]

.github/workflows/close-unwanted-pull-requests.yml

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

.github/workflows/codeql.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ name: CodeQL analysis
22

33
on:
44
push:
5+
branches: main
6+
pull_request:
7+
branches: main
58
paths:
69
- '**/*.js'
710
- '.github/workflows/codeql.yml'
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
name: Confirm internal staff meant to post in public
2+
3+
on:
4+
issues:
5+
types:
6+
- opened
7+
- reopened
8+
- transferred
9+
pull_request_target:
10+
types:
11+
- opened
12+
- reopened
13+
14+
jobs:
15+
check-team-membership:
16+
runs-on: ubuntu-latest
17+
continue-on-error: true
18+
if: github.repository == 'github/docs'
19+
steps:
20+
- id: membership_check
21+
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
22+
with:
23+
github-token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
24+
script: |
25+
// Only perform this action with GitHub employees
26+
try {
27+
await github.teams.getMembershipForUserInOrg({
28+
org: 'github',
29+
team_slug: 'employees',
30+
username: context.payload.sender.login,
31+
});
32+
} catch(err) {
33+
// An error will be thrown if the user is not a GitHub employee
34+
// If a user is not a GitHub employee, we should stop here and
35+
// Not send a notification
36+
return
37+
}
38+
39+
// Don't perform this action with Docs team members
40+
try {
41+
await github.teams.getMembershipForUserInOrg({
42+
org: 'github',
43+
team_slug: 'docs',
44+
username: context.payload.sender.login,
45+
});
46+
// If the user is a Docs team member, we should stop here and not send
47+
// a notification
48+
return
49+
} catch(err) {
50+
// An error will be thrown if the user is not a Docs team member
51+
// If a user is not a Docs team member we should continue and send
52+
// the notification
53+
}
54+
55+
const issueNo = context.number || context.issue.number
56+
57+
// Create an issue in our private repo
58+
await github.issues.create({
59+
owner: 'github',
60+
repo: 'docs-internal',
61+
title: `@${context.payload.sender.login} confirm that \#${issueNo} should be in the public github/docs repo`,
62+
body: `@${context.payload.sender.login} opened https://github.com/github/docs/issues/${issueNo} publicly in the github/docs repo, instead of the private github/docs-internal repo.\n\n@${context.payload.sender.login}, please confirm that this belongs in the public repo and that no sensitive information was disclosed by commenting below and closing the issue.\n\nIf this was not intentional and sensitive information was shared, please delete https://github.com/github/docs/issues/${issueNo} and notify us in the \#docs-open-source channel.\n\nThanks! \n\n/cc @github/docs @github/docs-engineering`
63+
});
64+
65+
core.setOutput('did_warn', 'true')
66+
67+
- name: Send Slack notification if a GitHub employee who isn't on the docs team opens an issue in public
68+
if: ${{ steps.membership_check.outputs.did_warn && github.repository == 'github/docs' }}
69+
uses: someimportantcompany/github-actions-slack-message@0b470c14b39da4260ed9e3f9a4f1298a74ccdefd
70+
with:
71+
channel: ${{ secrets.DOCS_OPEN_SOURCE_SLACK_CHANNEL_ID }}
72+
bot-token: ${{ secrets.SLACK_DOCS_BOT_TOKEN }}
73+
text: <@${{github.actor}}> opened https://github.com/github/docs/issues/${{ github.event.number || github.event.issue.number }} publicly on the github/docs repo instead of the private github/docs-internal repo. They have been notified via a new issue in the github/docs-internal repo to confirm this was intentional.

.github/workflows/repo-sync-stalls.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Repo Sync Stalls
22
on:
33
workflow_dispatch:
44
schedule:
5-
- cron: '*/30 * * * *'
5+
- cron: '0 */2 * * *'
66
jobs:
77
check-freezer:
88
name: Check for deployment freezes

.github/workflows/repo-sync.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
name: Repo Sync
88

99
on:
10+
workflow_dispatch:
1011
schedule:
1112
- cron: '*/15 * * * *' # every 15 minutes
1213

@@ -51,7 +52,7 @@ jobs:
5152
destination_branch: main
5253
pr_title: 'repo sync'
5354
pr_body: "This is an automated pull request to sync changes between the public and private repos.\n\n:robot: This pull request should be merged (not squashed) to preserve continuity across repos, so please let a bot do the merging!"
54-
pr_label: automerge,autoupdate
55+
pr_label: automerge,autoupdate,automated-reposync-pr
5556
github_token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
5657

5758
- name: Find pull request
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
name: Check unallowed file changes
2+
3+
on:
4+
push:
5+
6+
jobs:
7+
triage:
8+
if: github.repository == 'github/docs' && github.event.pull_request.user.login != 'Octomerger'
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
12+
- name: Get pull request number
13+
id: pull-number
14+
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
15+
with:
16+
github-token: ${{secrets.GITHUB_TOKEN}}
17+
result-encoding: string
18+
script: |
19+
const pulls = await github.repos.listPullRequestsAssociatedWithCommit({
20+
...context.repo,
21+
commit_sha: context.sha
22+
})
23+
24+
return pulls.data.map(pull => pull.number).shift()
25+
- name: Check for existing requested changes
26+
id: requested-change
27+
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
28+
with:
29+
github-token: ${{secrets.GITHUB_TOKEN}}
30+
result-encoding: json
31+
script: |
32+
const pullReviews = await github.pulls.listReviews({
33+
...context.repo,
34+
pull_number: ${{steps.pull-number.outputs.result}}
35+
})
36+
37+
return pullReviews.data
38+
.filter(review => review.user.login === 'github-actions[bot]')
39+
.sort((a, b) => new Date(b.submitted_at) - new Date(a.submitted_at))
40+
.shift()
41+
- name: Get files changed
42+
uses: dorny/paths-filter@eb75a1edc117d3756a18ef89958ee59f9500ba58
43+
id: filter
44+
with:
45+
# Base branch used to get changed files
46+
base: 'main'
47+
48+
# Enables setting an output in the format in `${FILTER_NAME}_files
49+
# with the names of the matching files formatted as JSON array
50+
list-files: json
51+
52+
# Returns list of changed files matching each filter
53+
filters: |
54+
translation:
55+
- 'translations/**'
56+
openapi:
57+
- 'lib/rest/static/**'
58+
notAllowed:
59+
- '.github/workflows/**'
60+
- '.github/CODEOWNERS'
61+
- 'translations/**'
62+
- 'assets/fonts/**'
63+
- 'data/graphql/**'
64+
- 'lib/graphql/**'
65+
- 'lib/redirects/**'
66+
- 'lib/rest/**'
67+
- 'lib/webhooks/**'
68+
69+
# When there are changes to files we can't accept
70+
# and no review exists,leave a REQUEST_CHANGES review
71+
- name: Request pull request changes
72+
# Check for no reviews or reviews that aren't CHANGES_REQUESTED
73+
if: ${{ steps.filter.outputs.notAllowed == 'true' && (!steps.requested-change.outputs.result || fromJson(steps.requested-change.outputs.result).state != 'CHANGES_REQUESTED') }}
74+
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
75+
with:
76+
github-token: ${{secrets.GITHUB_TOKEN}}
77+
script: |
78+
const changedFiles = ${{steps.filter.outputs.notAllowed_files}}
79+
const restFiles = ${{steps.filter.outputs.openapi_files}}
80+
const translationFiles = ${{steps.filter.outputs.translation_files}}
81+
const markdownFiles = changedFiles.map(file => `- \`${file}\`\n`).join('')
82+
83+
let reviewMessage = `👋 Hey there spelunker. It looks like you've modified some files that we can't accept as contributions.\n${markdownFiles}\n\nYou'll need to revert all of these ☝️ files using [GitHub Desktop](https://docs.github.com/en/free-pro-team@latest/desktop/contributing-and-collaborating-using-github-desktop/reverting-a-commit) or \`git checkout origin/main <file name>\`. Once you get those files reverted, we can continue with the review process. :octocat:`
84+
85+
if (restFiles.length > 0) {
86+
reviewMessage += "\n\nIt looks like you've modified the OpenAPI schema (`lib/rest/static/**`). While we aren't accepting changes to the schema directly, you can open an issue for any updates to the REST API docs. Head on over to the [`github/rest-api-description`](https://github.com/github/rest-api-description/issues/new?assignees=&labels=Inaccuracy&template=schema-inaccuracy.md&title=%5BSchema+Inaccuracy%5D+%3CDescribe+Problem%3E) repository to open an issue. ⚡"
87+
}
88+
89+
if (translationFiles.length > 0) {
90+
await github.issues.addLabels({
91+
...context.repo,
92+
issue_number: ${{steps.pull-number.outputs.result}},
93+
labels: ['localization']
94+
})
95+
reviewMessage += "\n\nIt looks like you've modified translated content. Unfortunately, we are not able to accept pull requests for translated content. Our translation process involves an integration with an external service at crowdin.com, where all translation activity happens. We hope to eventually open up the translation process to the open source community, but we're not there yet. See https://github.com/github/docs/blob/main/CONTRIBUTING.md#earth_asia-translations for more details."
96+
}
97+
98+
await github.pulls.createReview({
99+
...context.repo,
100+
pull_number: ${{steps.pull-number.outputs.result}},
101+
body: reviewMessage,
102+
event: 'REQUEST_CHANGES'
103+
})
104+
# When the most recent review was CHANGES_REQUESTED and the existing
105+
# PR no longer contains unallowed changes, dismiss the previous review
106+
- name: Dismiss pull request review
107+
if: ${{ steps.filter.outputs.notAllowed == 'false' && fromJson(steps.requested-change.outputs.result).state == 'CHANGES_REQUESTED' }}
108+
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
109+
with:
110+
github-token: ${{secrets.GITHUB_TOKEN}}
111+
script: |
112+
await github.pulls.dismissReview({
113+
...context.repo,
114+
pull_number: ${{steps.pull-number.outputs.result}},
115+
review_id: ${{fromJson(steps.requested-change.outputs.result).id}},
116+
message: `✨Looks like you reverted all files we don't accept contributions for. 🙌 A member of the docs team will review your PR soon. 🚂`
117+
})

.vscode/launch.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"version": "0.2.0",
3+
"configurations": [
4+
{
5+
"type": "node",
6+
"request": "attach",
7+
"name": "Node: Nodemon",
8+
"processId": "${command:PickProcess}",
9+
"restart": true,
10+
"protocol": "inspector",
11+
},
12+
]
13+
}

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ There are a few more things to know when you're getting started with this repo:
5050
In addition to the README you're reading right now, this repo includes other READMEs that describe the purpose of each subdirectory in more detail:
5151

5252
- [content/README.md](content/README.md)
53+
- [content/graphql/README.md](content/graphql/README.md)
54+
- [content/rest/README.md](content/rest/README.md)
5355
- [contributing/README.md](contributing/README.md)
5456
- [data/README.md](data/README.md)
5557
- [data/reusables/README.md](data/reusables/README.md)
23.1 KB
Loading

0 commit comments

Comments
 (0)