1
0
mirror of synced 2025-12-19 18:10:59 -05:00

chore: Add Prettier for Yaml formatting

Related to #128
- Prettier to fix indenting/quoting across files
- Manually adjust list styles to "-" style
- Ignore all translated files from automated formatting
- Drop redundant CI env variable
This commit is contained in:
Nick Schonning
2020-11-13 15:55:34 -05:00
parent f84ba23b90
commit 92740f68d7
46 changed files with 2154 additions and 1989 deletions

View File

@@ -1,22 +1,21 @@
name: 60 Days Stale Check
on:
schedule:
- cron: "40 16 * * *" # Run each day at 16:40 UTC / 8:40 PST
- cron: '40 16 * * *' # Run each day at 16:40 UTC / 8:40 PST
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@af4072615903a8b031f986d25b1ae3bf45ec44d4
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-message: 'This issue is stale because it has been open 60 days with no activity.'
stale-pr-message: 'This PR is stale because it has been open 60 days with no activity.'
days-before-stale: 60
days-before-close: -1
only-labels: 'engineering'
stale-issue-label: 'stale'
stale-pr-label: 'stale'
exempt-pr-labels: 'never-stale'
exempt-issue-labels: 'never-stale'
- uses: actions/stale@af4072615903a8b031f986d25b1ae3bf45ec44d4
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-message: 'This issue is stale because it has been open 60 days with no activity.'
stale-pr-message: 'This PR is stale because it has been open 60 days with no activity.'
days-before-stale: 60
days-before-close: -1
only-labels: 'engineering'
stale-issue-label: 'stale'
stale-pr-label: 'stale'
exempt-pr-labels: 'never-stale'
exempt-issue-labels: 'never-stale'

View File

@@ -1,12 +1,12 @@
name: Auto label Pull Requests
on:
- pull_request
pull_request:
jobs:
triage:
if: github.repository == 'github/docs-internal'
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@5f867a63be70efff62b767459b009290364495eb
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
- uses: actions/labeler@5f867a63be70efff62b767459b009290364495eb
with:
repo-token: '${{ secrets.GITHUB_TOKEN }}'

View File

@@ -3,10 +3,10 @@ name: Auto Merge Dependency Updates
on:
pull_request:
paths:
- "package*.json"
- "Gemfile*"
- "Dockerfile"
- ".github/workflows/**"
- 'package*.json'
- 'Gemfile*'
- 'Dockerfile'
- '.github/workflows/**'
pull_request_review:
types:
- edited

View File

@@ -23,14 +23,14 @@ jobs:
if: contains(github.event.pull_request.labels.*.name, 'automerge') || contains(github.event.pull_request.labels.*.name, 'autosquash')
steps:
- name: automerge
uses: "pascalgn/automerge-action@c9bd182"
uses: 'pascalgn/automerge-action@c9bd182'
env:
GITHUB_TOKEN: "${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}"
MERGE_METHOD_LABELS: "automerge=merge,autosquash=squash"
MERGE_COMMIT_MESSAGE: "pull-request-title"
MERGE_METHOD: "merge"
MERGE_FORKS: "true"
MERGE_RETRIES: "50"
MERGE_RETRY_SLEEP: "10000" # ten seconds
UPDATE_LABELS: "automerge,autosquash"
UPDATE_METHOD: "merge"
GITHUB_TOKEN: '${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}'
MERGE_METHOD_LABELS: 'automerge=merge,autosquash=squash'
MERGE_COMMIT_MESSAGE: 'pull-request-title'
MERGE_METHOD: 'merge'
MERGE_FORKS: 'true'
MERGE_RETRIES: '50'
MERGE_RETRY_SLEEP: '10000' # ten seconds
UPDATE_LABELS: 'automerge,autosquash'
UPDATE_METHOD: 'merge'

View File

@@ -3,7 +3,7 @@ name: Check all English links
on:
workflow_dispatch:
schedule:
- cron: "40 19 * * *" # once a day at 19:40 UTC / 11:40 PST
- cron: '40 19 * * *' # once a day at 19:40 UTC / 11:40 PST
jobs:
check_all_english_links:
@@ -11,22 +11,22 @@ jobs:
if: github.repository == 'github/docs-internal'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- name: npm ci
run: npm ci
- name: npm run build
run: npm run build
- name: Run script
run: script/check-english-links.js > broken_links.md
- if: ${{ failure() }}
name: Get title for issue
id: check
run: echo "::set-output name=title::$(head -1 broken_links.md)"
- if: ${{ failure() }}
name: Create issue from file
uses: peter-evans/create-issue-from-file@35e304e2a12caac08c568247a2cb46ecd0c3ecc5
with:
token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
title: ${{ steps.check.outputs.title }}
content-filepath: ./broken_links.md
labels: broken link report
- uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- name: npm ci
run: npm ci
- name: npm run build
run: npm run build
- name: Run script
run: script/check-english-links.js > broken_links.md
- if: ${{ failure() }}
name: Get title for issue
id: check
run: echo "::set-output name=title::$(head -1 broken_links.md)"
- if: ${{ failure() }}
name: Create issue from file
uses: peter-evans/create-issue-from-file@35e304e2a12caac08c568247a2cb46ecd0c3ecc5
with:
token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
title: ${{ steps.check.outputs.title }}
content-filepath: ./broken_links.md
labels: broken link report

View File

@@ -1,19 +1,19 @@
name: "CodeQL analysis"
name: CodeQL analysis
on:
push:
paths:
- '**/*.js'
- '.github/workflows/codeql.yml'
- '**/*.js'
- '.github/workflows/codeql.yml'
jobs:
build:
runs-on: ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- uses: github/codeql-action/init@v1
with:
languages: javascript # comma separated list of values from {go, python, javascript, java, cpp, csharp} (not YET ruby, sorry!)
- uses: github/codeql-action/analyze@v1
continue-on-error: true
- uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- uses: github/codeql-action/init@v1
with:
languages: javascript # comma separated list of values from {go, python, javascript, java, cpp, csharp} (not YET ruby, sorry!)
- uses: github/codeql-action/analyze@v1
continue-on-error: true

View File

@@ -3,7 +3,7 @@ name: Crowdin Sync
on:
workflow_dispatch:
schedule:
- cron: "33 2 * * *" # every day at 2:33 UTC at least until automerge is working
- cron: '33 2 * * *' # every day at 2:33 UTC at least until automerge is working
jobs:
sync_with_crowdin:
@@ -20,7 +20,7 @@ jobs:
upload_translations: false
download_translations: true
create_pull_request: true
# Using a custom config temporarily to avoid clobbering the existing crowdin.yml
# that is used by the github-help-docs OAuth integration.
config: 'crowdin.yml'
@@ -35,17 +35,15 @@ jobs:
crowdin_branch_name: main
env:
# Using an @octoglot token instead of the default Actions-provided GITHUB_TOKEN here
# Using an @octoglot token instead of the default Actions-provided GITHUB_TOKEN here
# so that subsequent workflows will be able to run on the pull request created by this workflow.
GITHUB_TOKEN: ${{ secrets.OCTOGLOT_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
# This is a numeric id, not to be confused with Crowdin API v1 "project identifier" string
# See "API v2" on https://crowdin.com/project/<your-project>/settings#api
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
# A personal access token, not to be confused with Crowdin API v1 "API key"
# See https://crowdin.com/settings#api-key to generate a token
# This token was created by logging into Crowdin with the octoglot user
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}

View File

@@ -9,23 +9,23 @@ jobs:
if: github.repository == 'github/docs-internal'
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d
with:
node-version: 14.x
- name: cache node modules
uses: actions/cache@0781355a23dac32fd3bac414512f4b903437991a
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: npm ci
run: npm ci
- name: (Dry run) sync indices
env:
ALGOLIA_APPLICATION_ID: ${{ secrets.ALGOLIA_APPLICATION_ID }}
ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npm run sync-search-dry-run
- name: checkout
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d
with:
node-version: 14.x
- name: cache node modules
uses: actions/cache@0781355a23dac32fd3bac414512f4b903437991a
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: npm ci
run: npm ci
- name: (Dry run) sync indices
env:
ALGOLIA_APPLICATION_ID: ${{ secrets.ALGOLIA_APPLICATION_ID }}
ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npm run sync-search-dry-run

View File

@@ -1,7 +1,12 @@
name: First responder docs-content
on:
pull_request:
types: [reopened, opened, ready_for_review, closed, unlabeled]
types:
- reopened
- opened
- ready_for_review
- closed
- unlabeled
jobs:
first-responder-triage-pr:
@@ -10,46 +15,46 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check if the event originated from a team member
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
id: set-result
with:
github-token: ${{secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES}}
result-encoding: string
script: |
const repoName = context.payload.repository.name
const ownerName = context.payload.repository.owner.login
const issueNumber = (context.eventName === "issues") ? context.payload.issue.number : context.payload.number
const updatedIssueInformation = await github.issues.get({
owner: ownerName,
repo: repoName,
issue_number: issueNumber
})
const teamMembers = await github.request(
`/orgs/github/teams/docs/members`
)
const logins = teamMembers.data.map(member => member.login)
// ignore PRs opened by docs bot accounts
logins.push('Octomerger', 'octoglot')
if (logins.some(login => login === updatedIssueInformation.data.user.login)) {
console.log(`This issue or pull request was authored by a member of the github/docs team.`)
return 'true'
}
console.log(`This issue or pull request was authored by an external contributor.`)
return 'false'
- name: Label external contributor pull requests with docs-content-fr
uses: rachmari/labeler@832d42ec5523f3c6d46e8168de71cd54363e3e2e
if: steps.set-result.outputs.result == 'false'
with:
repo-token: "${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}"
add-labels: "docs-content-fr"
- name: Triage to FR PR project column
uses: rachmari/actions-add-new-issue-to-column@1a459ef92308ba7c9c9dc2fcdd72f232495574a9
if: steps.set-result.outputs.result == 'false'
with:
action-token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
project-url: "https://github.com/orgs/github/projects/1367"
column-name: "Docs-internal external contributor PRs"
- name: Check if the event originated from a team member
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
id: set-result
with:
github-token: ${{secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES}}
result-encoding: string
script: |
const repoName = context.payload.repository.name
const ownerName = context.payload.repository.owner.login
const issueNumber = (context.eventName === "issues") ? context.payload.issue.number : context.payload.number
const updatedIssueInformation = await github.issues.get({
owner: ownerName,
repo: repoName,
issue_number: issueNumber
})
const teamMembers = await github.request(
`/orgs/github/teams/docs/members`
)
const logins = teamMembers.data.map(member => member.login)
// ignore PRs opened by docs bot accounts
logins.push('Octomerger', 'octoglot')
if (logins.some(login => login === updatedIssueInformation.data.user.login)) {
console.log(`This issue or pull request was authored by a member of the github/docs team.`)
return 'true'
}
console.log(`This issue or pull request was authored by an external contributor.`)
return 'false'
- name: Label external contributor pull requests with docs-content-fr
uses: rachmari/labeler@832d42ec5523f3c6d46e8168de71cd54363e3e2e
if: steps.set-result.outputs.result == 'false'
with:
repo-token: '${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}'
add-labels: 'docs-content-fr'
- name: Triage to FR PR project column
uses: rachmari/actions-add-new-issue-to-column@1a459ef92308ba7c9c9dc2fcdd72f232495574a9
if: steps.set-result.outputs.result == 'false'
with:
action-token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
project-url: 'https://github.com/orgs/github/projects/1367'
column-name: 'Docs-internal external contributor PRs'
first-responder-remove-pr:
name: Remove PR from FR project board
@@ -57,29 +62,29 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Remove card from project
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
with:
github-token: ${{secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES}}
result-encoding: string
script: |
const issueToRemove = context.payload.number
const cards = await github.projects.listCards({
column_id: 11130889
})
cards.data.forEach(card => {
if (card.content_url) {
const cardIssueNumber = parseInt(card.content_url.split('/').pop(), 10)
if (cardIssueNumber === issueToRemove) {
const cards = github.projects.deleteCard({
card_id: card.id
})
- name: Remove card from project
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
with:
github-token: ${{secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES}}
result-encoding: string
script: |
const issueToRemove = context.payload.number
const cards = await github.projects.listCards({
column_id: 11130889
})
cards.data.forEach(card => {
if (card.content_url) {
const cardIssueNumber = parseInt(card.content_url.split('/').pop(), 10)
if (cardIssueNumber === issueToRemove) {
const cards = github.projects.deleteCard({
card_id: card.id
})
}
}
}
})
- name: Remove docs-content-fr label if not already removed
if: github.event.action == 'closed'
uses: rachmari/labeler@832d42ec5523f3c6d46e8168de71cd54363e3e2e
with:
repo-token: "${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}"
remove-labels: "docs-content-fr"
})
- name: Remove docs-content-fr label if not already removed
if: github.event.action == 'closed'
uses: rachmari/labeler@832d42ec5523f3c6d46e8168de71cd54363e3e2e
with:
repo-token: '${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}'
remove-labels: 'docs-content-fr'

View File

@@ -1,7 +1,8 @@
name: Merged notification
on:
pull_request_target:
types: ['closed']
types:
- 'closed'
jobs:
comment:

View File

@@ -1,8 +1,8 @@
name: "Pa11y"
name: Pa11y
on:
workflow_dispatch:
schedule:
- cron: "25 17 * * *" # once a day at 17:25 UTC / 11:50 PST
- cron: '25 17 * * *' # once a day at 17:25 UTC / 11:50 PST
jobs:
test:
runs-on: ubuntu-latest

View File

@@ -2,7 +2,7 @@ name: Ping staging apps
on:
schedule:
- cron: "*/20 * * * *" # every twenty minutes
- cron: '*/20 * * * *' # every twenty minutes
jobs:
ping_staging_apps:
@@ -12,10 +12,10 @@ jobs:
env:
HEROKU_API_TOKEN: ${{ secrets.HEROKU_API_TOKEN }}
steps:
- uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- name: npm ci
run: npm ci
- name: npm run build
run: npm run build
- name: Run script
run: script/ping-staging-apps.js
- uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- name: npm ci
run: npm ci
- name: npm run build
run: npm run build
- name: Run script
run: script/ping-staging-apps.js

View File

@@ -5,7 +5,7 @@ env:
on:
schedule:
- cron: "20 15 * * 0" # run every Sunday at 20:15 UTC / 12:15 PST
- cron: '20 15 * * 0' # run every Sunday at 20:15 UTC / 12:15 PST
jobs:
remove_unused_assets:
@@ -13,42 +13,43 @@ jobs:
if: github.repository == 'github/docs-internal'
runs-on: ubuntu-latest
steps:
- if: ${{ env.FREEZE == 'true' }}
run: |
echo 'The repo is currently frozen! Exiting this workflow.'
exit 1 # prevents further steps from running
- name: Checkout
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- name: npm ci
run: npm ci
- name: Run scripts
run: |
script/remove-unused-assets.js > results.md
script/remove-extraneous-translation-files.js
- name: Get script results to use in PR body
id: results
uses: juliangruber/read-file-action@e0a316da496006ffd19142f0fd594a1783f3b512
with:
path: ./results.md
- name: Remove script results file
run: rm -rf ./results.md
- name: Create pull request
uses: peter-evans/create-pull-request@938e6aea6f8dbdaced2064e948cb806c77fe87b8
with:
# need to use a token with repo and workflow scopes for this step
token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
commit-message: Action ran script/remove-unused-assets.js
title: Remove unused assets
body: "Hello! This PR removes some files that exist in the repo but are not used in content or data files:\n\n
${{ steps.results.outputs.content }}
\n\nIf you have any questions, please contact @github/docs-engineering."
labels: unused assets
project: Core docs work for the current week
project-column: Should do
branch: remove-unused-assets
- if: ${{ failure() }}
name: Delete remote branch (if previous steps failed)
uses: dawidd6/action-delete-branch@47743101a121ad657031e6704086271ca81b1911
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branches: remove-unused-assets
- if: ${{ env.FREEZE == 'true' }}
run: |
echo 'The repo is currently frozen! Exiting this workflow.'
exit 1 # prevents further steps from running
- name: Checkout
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- name: npm ci
run: npm ci
- name: Run scripts
run: |
script/remove-unused-assets.js > results.md
script/remove-extraneous-translation-files.js
- name: Get script results to use in PR body
id: results
uses: juliangruber/read-file-action@e0a316da496006ffd19142f0fd594a1783f3b512
with:
path: ./results.md
- name: Remove script results file
run: rm -rf ./results.md
- name: Create pull request
uses: peter-evans/create-pull-request@938e6aea6f8dbdaced2064e948cb806c77fe87b8
with:
# need to use a token with repo and workflow scopes for this step
token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
commit-message: Action ran script/remove-unused-assets.js
title: Remove unused assets
body:
"Hello! This PR removes some files that exist in the repo but are not used in content or data files:\n\n
${{ steps.results.outputs.content }}
\n\nIf you have any questions, please contact @github/docs-engineering."
labels: unused assets
project: Core docs work for the current week
project-column: Should do
branch: remove-unused-assets
- if: ${{ failure() }}
name: Delete remote branch (if previous steps failed)
uses: dawidd6/action-delete-branch@47743101a121ad657031e6704086271ca81b1911
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branches: remove-unused-assets

View File

@@ -19,9 +19,8 @@ jobs:
name: Prevent merging during deployment freezes
runs-on: ubuntu-latest
steps:
- name: Fail if repo merges are paused
if: ${{ env.FREEZE == 'true' }}
run: |
echo 'Merges into the "main" branch on this repo are currently paused!'
exit 1
- name: Fail if repo merges are paused
if: ${{ env.FREEZE == 'true' }}
run: |
echo 'Merges into the "main" branch on this repo are currently paused!'
exit 1

View File

@@ -2,7 +2,7 @@ name: Repo Freeze Reminders
on:
schedule:
- cron: "00 11 * * *" # once per day around 11:00am UTC
- cron: '00 11 * * *' # once per day around 11:00am UTC
env:
FREEZE: ${{ secrets.FREEZE }}
@@ -13,13 +13,12 @@ jobs:
runs-on: ubuntu-latest
if: github.repository == 'github/docs-internal'
steps:
- name: Send Slack notification if repo is frozen
if: ${{ env.FREEZE == 'true' }}
uses: rtCamp/action-slack-notify@e17352feaf9aee300bf0ebc1dfbf467d80438815
env:
SLACK_WEBHOOK: ${{ secrets.DOCS_ALERTS_SLACK_WEBHOOK }}
SLACK_USERNAME: docs-repo-sync
SLACK_ICON_EMOJI: ':freezing_face:'
SLACK_COLOR: '#51A0D5' # Carolina Blue
SLACK_MESSAGE: All repo-sync runs will fail for ${{ github.repository }} because the repo is currently frozen!
- name: Send Slack notification if repo is frozen
if: ${{ env.FREEZE == 'true' }}
uses: rtCamp/action-slack-notify@e17352feaf9aee300bf0ebc1dfbf467d80438815
env:
SLACK_WEBHOOK: ${{ secrets.DOCS_ALERTS_SLACK_WEBHOOK }}
SLACK_USERNAME: docs-repo-sync
SLACK_ICON_EMOJI: ':freezing_face:'
SLACK_COLOR: '#51A0D5' # Carolina Blue
SLACK_MESSAGE: All repo-sync runs will fail for ${{ github.repository }} because the repo is currently frozen!

View File

@@ -1,14 +1,14 @@
# The docs.github.com project has two repositories: github/docs (public) and github/docs-internal (private)
#
#
# This GitHub Actions workflow keeps the main branch of those two repos in sync.
#
#
# For more details, see https://github.com/repo-sync/repo-sync#how-it-works
name: Repo Sync
on:
schedule:
- cron: "*/15 * * * *" # every 15 minutes
- cron: '*/15 * * * *' # every 15 minutes
env:
FREEZE: ${{ secrets.FREEZE }}
@@ -18,65 +18,63 @@ jobs:
name: Check for deployment freezes
runs-on: ubuntu-latest
steps:
- name: Exit if repo is frozen
if: ${{ env.FREEZE == 'true' }}
run: |
echo 'The repo is currently frozen! Exiting this workflow.'
exit 1 # prevents further steps from running
- name: Exit if repo is frozen
if: ${{ env.FREEZE == 'true' }}
run: |
echo 'The repo is currently frozen! Exiting this workflow.'
exit 1 # prevents further steps from running
repo-sync:
name: Repo Sync
needs: check-freezer
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- name: Check out repo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- name: Sync repo to branch
uses: repo-sync/github-sync@3832fe8e2be32372e1b3970bbae8e7079edeec88
env:
GITHUB_TOKEN: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
with:
source_repo: ${{ secrets.SOURCE_REPO }} # https://${access_token}@github.com/github/the-other-repo.git
source_branch: main
destination_branch: repo-sync
github_token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
- name: Sync repo to branch
uses: repo-sync/github-sync@3832fe8e2be32372e1b3970bbae8e7079edeec88
env:
GITHUB_TOKEN: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
with:
source_repo: ${{ secrets.SOURCE_REPO }} # https://${access_token}@github.com/github/the-other-repo.git
source_branch: main
destination_branch: repo-sync
github_token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
- name: Create pull request
uses: repo-sync/pull-request@33777245b1aace1a58c87a29c90321aa7a74bd7d
env:
GITHUB_TOKEN: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
with:
source_branch: repo-sync
destination_branch: main
pr_title: 'repo sync'
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!"
pr_label: automerge,autoupdate
github_token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
- name: Create pull request
uses: repo-sync/pull-request@33777245b1aace1a58c87a29c90321aa7a74bd7d
env:
GITHUB_TOKEN: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
with:
source_branch: repo-sync
destination_branch: main
pr_title: "repo sync"
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!"
pr_label: automerge,autoupdate
github_token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
- name: Find pull request
uses: juliangruber/find-pull-request-action@64d55773c959748ad30a4184f4dc102af1669f7b
id: find-pull-request
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
branch: repo-sync
base: main
- name: Find pull request
uses: juliangruber/find-pull-request-action@64d55773c959748ad30a4184f4dc102af1669f7b
id: find-pull-request
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
branch: repo-sync
base: main
- name: Approve pull request
if: ${{ steps.find-pull-request.outputs.number }}
uses: juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
number: ${{ steps.find-pull-request.outputs.number }}
- name: Approve pull request
if: ${{ steps.find-pull-request.outputs.number }}
uses: juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
number: ${{ steps.find-pull-request.outputs.number }}
- name: Send Slack notification if workflow fails
uses: rtCamp/action-slack-notify@e17352feaf9aee300bf0ebc1dfbf467d80438815
if: ${{ failure() }}
env:
SLACK_WEBHOOK: ${{ secrets.DOCS_ALERTS_SLACK_WEBHOOK }}
SLACK_USERNAME: docs-repo-sync
SLACK_ICON_EMOJI: ':ohno:'
SLACK_COLOR: '#B90E0A' # Crimson
SLACK_MESSAGE: The last repo-sync run for ${{github.repository}} failed. See https://github.com/${{github.repository}}/actions?query=workflow%3A%22Repo+Sync%22
- name: Send Slack notification if workflow fails
uses: rtCamp/action-slack-notify@e17352feaf9aee300bf0ebc1dfbf467d80438815
if: ${{ failure() }}
env:
SLACK_WEBHOOK: ${{ secrets.DOCS_ALERTS_SLACK_WEBHOOK }}
SLACK_USERNAME: docs-repo-sync
SLACK_ICON_EMOJI: ':ohno:'
SLACK_COLOR: '#B90E0A' # Crimson
SLACK_MESSAGE: The last repo-sync run for ${{github.repository}} failed. See https://github.com/${{github.repository}}/actions?query=workflow%3A%22Repo+Sync%22

View File

@@ -1,20 +1,22 @@
name: Send Issue to EPD backlog
on:
issues:
types: [labeled, reopened]
on:
issues:
types:
- labeled
- reopened
jobs:
triage:
if: github.repository == 'github/docs-internal'
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Add issues with engineering label to project board
if: contains(github.event.issue.labels.*.name, 'engineering') || contains(github.event.issue.labels.*.name, 'design') || contains(github.event.issue.labels.*.name, 'Design')
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
with:
github-token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
- name: Add issues with engineering label to project board
if: contains(github.event.issue.labels.*.name, 'engineering') || contains(github.event.issue.labels.*.name, 'design') || contains(github.event.issue.labels.*.name, 'Design')
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
with:
github-token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
script: |
var column_id = 9659080;
try {

View File

@@ -1,9 +1,11 @@
name: Start new engineering PR workflow
on:
on:
pull_request_target:
types: [opened, reopened]
types:
- opened
- reopened
jobs:
triage:
runs-on: ubuntu-latest
@@ -12,52 +14,52 @@ jobs:
DRAFT_COLUMN_ID: 10095775
REGULAR_COLUMN_ID: 10095779
steps:
- uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
continue-on-error: true
with:
- uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
continue-on-error: true
with:
github-token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
script: |
// Only assign the engineering folks
try {
await github.teams.getMembershipForUserInOrg({
org: 'github',
team_slug: 'docs-engineering',
username: context.payload.sender.login,
});
} catch(err) {
return
}
// Only assign the engineering folks
try {
await github.teams.getMembershipForUserInOrg({
org: 'github',
team_slug: 'docs-engineering',
username: context.payload.sender.login,
});
} catch(err) {
return
}
// Set column ID
const column_id = context.payload.pull_request.draft
? process.env.DRAFT_COLUMN_ID
: process.env.REGULAR_COLUMN_ID
// Set column ID
const column_id = context.payload.pull_request.draft
? process.env.DRAFT_COLUMN_ID
: process.env.REGULAR_COLUMN_ID
// Try to create the card on the GitHub Project
try {
await github.projects.createCard({
column_id: column_id,
content_type: 'PullRequest',
content_id: context.payload.pull_request.id
});
} catch(error) {
console.log(error);
}
// Try to create the card on the GitHub Project
try {
await github.projects.createCard({
column_id: column_id,
content_type: 'PullRequest',
content_id: context.payload.pull_request.id
});
} catch(error) {
console.log(error);
}
// Try to set the author as the assignee
const owner = context.payload.repository.owner.login
const repo = context.payload.repository.name
// Try to set the author as the assignee
const owner = context.payload.repository.owner.login
const repo = context.payload.repository.name
try {
await github.issues.addAssignees({
owner: owner,
repo: repo,
issue_number: context.payload.pull_request.number,
assignees: [
context.payload.sender.login
]
});
} catch(error) {
console.log(error);
}
try {
await github.issues.addAssignees({
owner: owner,
repo: repo,
issue_number: context.payload.pull_request.number,
assignees: [
context.payload.sender.login
]
});
} catch(error) {
console.log(error);
}

View File

@@ -4,7 +4,7 @@ on:
workflow_dispatch:
push:
branches:
- main
- main
jobs:
updateIndices:
@@ -12,29 +12,29 @@ jobs:
if: github.repository == 'github/docs-internal'
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d
with:
node-version: 14.x
- name: cache node modules
uses: actions/cache@0781355a23dac32fd3bac414512f4b903437991a
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: npm ci
run: npm ci
- name: sync indices
env:
ALGOLIA_APPLICATION_ID: ${{ secrets.ALGOLIA_APPLICATION_ID }}
ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npm run sync-search
- name: Send slack notification if workflow run fails
uses: rtCamp/action-slack-notify@e17352feaf9aee300bf0ebc1dfbf467d80438815
if: failure()
env:
SLACK_WEBHOOK: ${{ secrets.DOCS_ALERTS_SLACK_WEBHOOK }}
SLACK_MESSAGE: The last Algolia workflow run for ${{github.repository}} failed. See https://github.com/github/docs-internal/actions?query=workflow%3AAlgolia
- name: checkout
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d
with:
node-version: 14.x
- name: cache node modules
uses: actions/cache@0781355a23dac32fd3bac414512f4b903437991a
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: npm ci
run: npm ci
- name: sync indices
env:
ALGOLIA_APPLICATION_ID: ${{ secrets.ALGOLIA_APPLICATION_ID }}
ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npm run sync-search
- name: Send slack notification if workflow run fails
uses: rtCamp/action-slack-notify@e17352feaf9aee300bf0ebc1dfbf467d80438815
if: failure()
env:
SLACK_WEBHOOK: ${{ secrets.DOCS_ALERTS_SLACK_WEBHOOK }}
SLACK_MESSAGE: The last Algolia workflow run for ${{github.repository}} failed. See https://github.com/github/docs-internal/actions?query=workflow%3AAlgolia

View File

@@ -4,7 +4,7 @@ name: Node.js Tests - Translations
on:
schedule:
- cron: "10 20 * * *" # once a day at 20:10 UTC / 12:10 PST
- cron: '10 20 * * *' # once a day at 20:10 UTC / 12:10 PST
jobs:
lint:
@@ -78,4 +78,4 @@ jobs:
- name: Run tests
run: npx jest tests/${{ matrix.test-group }}/
env:
NODE_OPTIONS: "--max_old_space_size=4096"
NODE_OPTIONS: '--max_old_space_size=4096'

View File

@@ -5,10 +5,7 @@ name: Node.js Tests - Windows
on:
workflow_dispatch:
schedule:
- cron: "50 19 * * *" # once a day at 19:50 UTC / 11:50 PST
env:
CI: true
- cron: '50 19 * * *' # once a day at 19:50 UTC / 11:50 PST
jobs:
test:
@@ -48,4 +45,4 @@ jobs:
- name: Run tests
run: npx jest tests/${{ matrix.test-group }}/
env:
NODE_OPTIONS: "--max_old_space_size=4096"
NODE_OPTIONS: '--max_old_space_size=4096'

View File

@@ -77,11 +77,11 @@ jobs:
name: Run tests
run: npx jest tests/${{ matrix.test-group }}/
env:
NODE_OPTIONS: "--max_old_space_size=4096"
NODE_OPTIONS: '--max_old_space_size=4096'
- name: Send Slack notification if workflow fails
uses: rtCamp/action-slack-notify@e17352feaf9aee300bf0ebc1dfbf467d80438815
if: failure() && github.ref == 'early-access'
env:
SLACK_WEBHOOK: ${{ secrets.DOCS_ALERTS_SLACK_WEBHOOK }}
SLACK_MESSAGE: "Tests are failing on the `early-access` branch. https://github.com/github/docs-internal/tree/early-access"
SLACK_MESSAGE: 'Tests are failing on the `early-access` branch. https://github.com/github/docs-internal/tree/early-access'

View File

@@ -2,7 +2,7 @@ name: Translations
on:
schedule:
- cron: "20 19 * * *" # once a day at 19:20 UTC / 11:20 PST
- cron: '20 19 * * *' # once a day at 19:20 UTC / 11:20 PST
env:
FREEZE: ${{ secrets.FREEZE }}
@@ -12,45 +12,45 @@ jobs:
if: github.repository == 'github/docs-internal'
runs-on: ubuntu-latest
steps:
- if: ${{ env.FREEZE == 'true' }}
run: |
echo 'The repo is currently frozen! Exiting this workflow.'
exit 1 # prevents further steps from running
- name: Find original Pull Request
uses: juliangruber/find-pull-request-action@64d55773c959748ad30a4184f4dc102af1669f7b
id: pr
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
branch: translations
- if: ${{ steps.pr.outputs.number }}
name: Check if already labeled
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
id: has-label
with:
script: |
const { data: labels } = await github.issues.listLabelsOnIssue({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: ${{ steps.pr.outputs.number }}
})
if (labels.find(label => label.name === 'automerge')) {
return 'ok'
}
- if: ${{ !steps.has-label.outputs.result }}
name: Approve Pull Request
uses: juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
number: ${{ steps.pr.outputs.number }}
- if: ${{ !steps.has-label.outputs.result }}
name: Add automerge label
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
github.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: ${{ steps.pr.outputs.number }},
labels: ['automerge']
})
- if: ${{ env.FREEZE == 'true' }}
run: |
echo 'The repo is currently frozen! Exiting this workflow.'
exit 1 # prevents further steps from running
- name: Find original Pull Request
uses: juliangruber/find-pull-request-action@64d55773c959748ad30a4184f4dc102af1669f7b
id: pr
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
branch: translations
- if: ${{ steps.pr.outputs.number }}
name: Check if already labeled
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
id: has-label
with:
script: |
const { data: labels } = await github.issues.listLabelsOnIssue({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: ${{ steps.pr.outputs.number }}
})
if (labels.find(label => label.name === 'automerge')) {
return 'ok'
}
- if: ${{ !steps.has-label.outputs.result }}
name: Approve Pull Request
uses: juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
number: ${{ steps.pr.outputs.number }}
- if: ${{ !steps.has-label.outputs.result }}
name: Add automerge label
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
github.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: ${{ steps.pr.outputs.number }},
labels: ['automerge']
})

View File

@@ -1,7 +1,8 @@
name: Triage new issue comments
on:
issue_comment:
types: [created]
types:
- created
jobs:
triage-issue-comments:
@@ -9,38 +10,38 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check if the event originated from a team member
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
id: is-internal-contributor
with:
github-token: ${{secrets.GITHUB_TOKEN}}
result-encoding: string
script: |
const repo = context.payload.repository.name
const org = context.payload.repository.owner.login
const actor = context.actor
let collaboratorStatus = ''
try {
collaboratorStatus = await github.request('GET /repos/{owner}/{repo}/collaborators/{username}', {
owner: org,
repo: repo,
username: actor
})
console.log(`This issue was commented on by a Hubber.`)
return 'true'
} catch (error) {
console.log(`This issue was commented on by an external contributor.`)
return 'false'
}
- name: Label issues with new comments with 'triage'
uses: rachmari/labeler@832d42ec5523f3c6d46e8168de71cd54363e3e2e
if: (steps.is-internal-contributor.outputs.result == 'false')
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
add-labels: "triage"
- name: Triage to project board
uses: rachmari/actions-add-new-issue-to-column@1a459ef92308ba7c9c9dc2fcdd72f232495574a9
with:
action-token: ${{ secrets.GITHUB_TOKEN }}
project-url: "https://github.com/github/docs/projects/1"
column-name: "Triage"
- name: Check if the event originated from a team member
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
id: is-internal-contributor
with:
github-token: ${{secrets.GITHUB_TOKEN}}
result-encoding: string
script: |
const repo = context.payload.repository.name
const org = context.payload.repository.owner.login
const actor = context.actor
let collaboratorStatus = ''
try {
collaboratorStatus = await github.request('GET /repos/{owner}/{repo}/collaborators/{username}', {
owner: org,
repo: repo,
username: actor
})
console.log(`This issue was commented on by a Hubber.`)
return 'true'
} catch (error) {
console.log(`This issue was commented on by an external contributor.`)
return 'false'
}
- name: Label issues with new comments with 'triage'
uses: rachmari/labeler@832d42ec5523f3c6d46e8168de71cd54363e3e2e
if: (steps.is-internal-contributor.outputs.result == 'false')
with:
repo-token: '${{ secrets.GITHUB_TOKEN }}'
add-labels: 'triage'
- name: Triage to project board
uses: rachmari/actions-add-new-issue-to-column@1a459ef92308ba7c9c9dc2fcdd72f232495574a9
with:
action-token: ${{ secrets.GITHUB_TOKEN }}
project-url: 'https://github.com/github/docs/projects/1'
column-name: 'Triage'

View File

@@ -1,7 +1,9 @@
name: Triage new issues
on:
issues:
types: [reopened, opened]
types:
- reopened
- opened
jobs:
triage_issues:
@@ -9,14 +11,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Label new issues with 'triage'
uses: rachmari/labeler@832d42ec5523f3c6d46e8168de71cd54363e3e2e
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
add-labels: "triage"
- name: Triage to project board
uses: rachmari/actions-add-new-issue-to-column@1a459ef92308ba7c9c9dc2fcdd72f232495574a9
with:
action-token: ${{ secrets.GITHUB_TOKEN }}
project-url: "https://github.com/github/docs/projects/1"
column-name: "Triage"
- name: Label new issues with 'triage'
uses: rachmari/labeler@832d42ec5523f3c6d46e8168de71cd54363e3e2e
with:
repo-token: '${{ secrets.GITHUB_TOKEN }}'
add-labels: 'triage'
- name: Triage to project board
uses: rachmari/actions-add-new-issue-to-column@1a459ef92308ba7c9c9dc2fcdd72f232495574a9
with:
action-token: ${{ secrets.GITHUB_TOKEN }}
project-url: 'https://github.com/github/docs/projects/1'
column-name: 'Triage'

View File

@@ -1,7 +1,9 @@
name: Triage new pull requests
on:
pull_request:
types: [reopened, opened]
types:
- reopened
- opened
jobs:
triage_pulls:
@@ -9,14 +11,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Label new pull requests with 'triage'
uses: rachmari/labeler@832d42ec5523f3c6d46e8168de71cd54363e3e2e
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
add-labels: "triage"
- name: Triage to project board
uses: rachmari/actions-add-new-issue-to-column@1a459ef92308ba7c9c9dc2fcdd72f232495574a9
with:
action-token: ${{ secrets.GITHUB_TOKEN }}
project-url: "https://github.com/github/docs/projects/1"
column-name: "Triage"
- name: Label new pull requests with 'triage'
uses: rachmari/labeler@832d42ec5523f3c6d46e8168de71cd54363e3e2e
with:
repo-token: '${{ secrets.GITHUB_TOKEN }}'
add-labels: 'triage'
- name: Triage to project board
uses: rachmari/actions-add-new-issue-to-column@1a459ef92308ba7c9c9dc2fcdd72f232495574a9
with:
action-token: ${{ secrets.GITHUB_TOKEN }}
project-url: 'https://github.com/github/docs/projects/1'
column-name: 'Triage'

View File

@@ -1,7 +1,7 @@
name: Public Repo Stale Check
on:
schedule:
- cron: "45 16 * * *" # Run each day at 16:45 UTC / 8:45 PST
- cron: '45 16 * * *' # Run each day at 16:45 UTC / 8:45 PST
jobs:
stale:
@@ -9,12 +9,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@af4072615903a8b031f986d25b1ae3bf45ec44d4
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-pr-message: 'This PR is stale because it has been open 7 days with no activity and will be automatically closed in 3 days. To keep this PR open, update the PR by adding a comment or pushing a commit.'
days-before-stale: 7
days-before-close: 10
stale-pr-label: 'stale'
exempt-pr-labels: 'never-stale'
exempt-issue-labels: 'never-stale'
- uses: actions/stale@af4072615903a8b031f986d25b1ae3bf45ec44d4
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-pr-message: 'This PR is stale because it has been open 7 days with no activity and will be automatically closed in 3 days. To keep this PR open, update the PR by adding a comment or pushing a commit.'
days-before-stale: 7
days-before-close: 10
stale-pr-label: 'stale'
exempt-pr-labels: 'never-stale'
exempt-issue-labels: 'never-stale'

View File

@@ -10,63 +10,64 @@ env:
on:
schedule:
- cron: "20 16 * * *" # run every day at 16:20 UTC / 8:20 PST
- cron: '20 16 * * *' # run every day at 16:20 UTC / 8:20 PST
jobs:
update_graphql_files:
if: github.repository == 'github/docs-internal'
runs-on: ubuntu-latest
steps:
- if: ${{ env.FREEZE == 'true' }}
run: |
echo 'The repo is currently frozen! Exiting this workflow.'
exit 1 # prevents further steps from running
- name: Checkout
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- name: Set up Ruby
uses: actions/setup-ruby@5f29a1cd8dfebf420691c4c9a0e832e2fae5a526
with:
ruby-version: '2.4'
- name: Install Ruby dependencies
run: |
gem install bundler
bundle install
- name: Install Node.js dependencies
run: npm ci
- name: Run updater scripts
env:
# need to use a token from a user with access to github/github for this step
GITHUB_TOKEN: ${{ secrets.ZEKE_PAT_WITH_REPO_AND_WORKFLOW_SCOPE_FOR_REPO_SYNC }}
# technically the changelog should only be updated once per day, but we can safely
# run build-changelog-from-markdown.js in its current form once per hour; when we
# rewrite the changelog script, we may need to run it in a separate workflow on a
# once-per-day schedule; see details in https://github.com/github/docs-internal/issues/12722.
run: |
script/graphql/update-files.js
script/graphql/build-changelog-from-markdown.js
- name: Create pull request
id: create-pull-request
uses: peter-evans/create-pull-request@938e6aea6f8dbdaced2064e948cb806c77fe87b8
with:
# need to use a token with repo and workflow scopes for this step
token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
commit-message: 'Action ran graphql scripts "update-files" and "build-changelog-from-markdown"'
title: GraphQL schema update
body: "Hello! Some GraphQL data in github/github was updated recently. This PR
syncs up the GraphQL data in this repo.\n\n
If CI passes, this PR will be auto-merged. :green_heart:\n\n
If CI does not pass or other problems arise, contact #docs-engineering on slack."
labels: automerge
branch: graphql-schema-update
- if: ${{ failure() }}
name: Delete remote branch (if previous steps failed)
uses: dawidd6/action-delete-branch@47743101a121ad657031e6704086271ca81b1911
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branches: graphql-schema-update
- if: ${{ steps.create-pull-request.outputs.pr_number }}
name: Approve
uses: juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
number: ${{ steps.create-pull-request.outputs.pr_number }}
- if: ${{ env.FREEZE == 'true' }}
run: |
echo 'The repo is currently frozen! Exiting this workflow.'
exit 1 # prevents further steps from running
- name: Checkout
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- name: Set up Ruby
uses: actions/setup-ruby@5f29a1cd8dfebf420691c4c9a0e832e2fae5a526
with:
ruby-version: '2.4'
- name: Install Ruby dependencies
run: |
gem install bundler
bundle install
- name: Install Node.js dependencies
run: npm ci
- name: Run updater scripts
env:
# need to use a token from a user with access to github/github for this step
GITHUB_TOKEN: ${{ secrets.ZEKE_PAT_WITH_REPO_AND_WORKFLOW_SCOPE_FOR_REPO_SYNC }}
# technically the changelog should only be updated once per day, but we can safely
# run build-changelog-from-markdown.js in its current form once per hour; when we
# rewrite the changelog script, we may need to run it in a separate workflow on a
# once-per-day schedule; see details in https://github.com/github/docs-internal/issues/12722.
run: |
script/graphql/update-files.js
script/graphql/build-changelog-from-markdown.js
- name: Create pull request
id: create-pull-request
uses: peter-evans/create-pull-request@938e6aea6f8dbdaced2064e948cb806c77fe87b8
with:
# need to use a token with repo and workflow scopes for this step
token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
commit-message: 'Action ran graphql scripts "update-files" and "build-changelog-from-markdown"'
title: GraphQL schema update
body:
"Hello! Some GraphQL data in github/github was updated recently. This PR
syncs up the GraphQL data in this repo.\n\n
If CI passes, this PR will be auto-merged. :green_heart:\n\n
If CI does not pass or other problems arise, contact #docs-engineering on slack."
labels: automerge
branch: graphql-schema-update
- if: ${{ failure() }}
name: Delete remote branch (if previous steps failed)
uses: dawidd6/action-delete-branch@47743101a121ad657031e6704086271ca81b1911
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branches: graphql-schema-update
- if: ${{ steps.create-pull-request.outputs.pr_number }}
name: Approve
uses: juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
number: ${{ steps.create-pull-request.outputs.pr_number }}

56
.github/workflows/yml-lint.yml vendored Normal file
View File

@@ -0,0 +1,56 @@
name: Lint Yaml
on:
workflow_dispatch:
push:
branches:
- main
pull_request:
branches-ignore:
- translations
jobs:
see_if_should_skip:
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@36feb0d8d062137530c2e00bd278d138fe191289
with:
cancel_others: 'false'
github_token: ${{ github.token }}
paths: '["**/*.yml", "**/*.yaml", "package*.json", ".github/workflows/yml-lint.yml"]'
lint:
runs-on: ubuntu-latest
needs: see_if_should_skip
if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }}
steps:
- name: Check out repo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- name: Setup node
uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d
with:
node-version: 14.x
- name: Get npm cache directory
id: npm-cache
run: |
echo "::set-output name=dir::$(npm config get cache)"
- name: Cache node modules
uses: actions/cache@0781355a23dac32fd3bac414512f4b903437991a
with:
path: ${{ steps.npm-cache.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install dependencies
run: npm ci
- name: Run linter
run: npx prettier -c "**/*.{yml,yaml}"

1
.prettierignore Normal file
View File

@@ -0,0 +1 @@
translations/

12
.prettierrc.json Normal file
View File

@@ -0,0 +1,12 @@
{
"overrides": [
{
"files":[
"**/*.{yml,yaml}"
],
"options": {
"singleQuote": true
}
}
]
}

View File

@@ -1,25 +1,23 @@
files:
- source: /content/**/*.md
translation: /translations/%locale%/%original_path%/%original_file_name%
ignore: [
"/content/README.md"
]
ignore:
- '/content/README.md'
- source: /data/**/*.yml
translation: /translations/%locale%/%original_path%/%original_file_name%
- source: /data/**/*.md
translation: /translations/%locale%/%original_path%/%original_file_name%
ignore: [
"data/README.md",
"data/reusables/README.md",
"data/variables/product.yml",
"data/variables/README.md",
"data/graphql",
"data/products.yml"
]
ignore:
- 'data/README.md'
- 'data/reusables/README.md'
- 'data/variables/product.yml'
- 'data/variables/README.md'
- 'data/graphql'
- 'data/products.yml'
# These end up as env vars used by the GitHub Actions workflow
project_id_env: CROWDIN_PROJECT_ID
api_token_env: CROWDIN_PERSONAL_TOKEN
# https://support.crowdin.com/configuration-file-v3/#saving-directory-structure-on-server
preserve_hierarchy: true
preserve_hierarchy: true

View File

@@ -1,5 +1,6 @@
- term: '@mention'
description: to notify a person on GitHub by using `@` before their username. Users in an organization on GitHub can also be a part of a team that can be
description:
to notify a person on GitHub by using `@` before their username. Users in an organization on GitHub can also be a part of a team that can be
mentioned.
- term: access token
description: >-
@@ -26,7 +27,8 @@
with 2FA via the browser. This code is either generated by an application or delivered to
your phone via text message. Also called a "2FA authentication code."
- term: base branch
description: The branch into which changes are combined when you merge a pull request.
description:
The branch into which changes are combined when you merge a pull request.
When you create a pull request, you can change the base branch from the repository's default branch to another branch if required.
- term: basic authentication
description: >-
@@ -300,7 +302,7 @@
description: A defined commit of a branch, usually the most recent commit at the tip of the branch.
- term: head branch
description: The branch whose changes are combined into the base branch
when you merge a pull request.
when you merge a pull request.
Also known as the "compare branch."
- term: 'Hello, World'
description: >-

View File

@@ -1,106 +1,114 @@
---
upcoming_changes:
- location: Migration.uploadUrlTemplate
description: "`uploadUrlTemplate` will be removed. Use `uploadUrl` instead."
reason: "`uploadUrlTemplate` is being removed because it is not a standard URL and
adds an extra user step."
date: '2019-04-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: AssignedEvent.user
description: "`user` will be removed. Use the `assignee` field instead."
reason: Assignees can now be mannequins.
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: EnterpriseBillingInfo.availableSeats
description: "`availableSeats` will be removed. Use EnterpriseBillingInfo.totalAvailableLicenses
instead."
reason: "`availableSeats` will be replaced with `totalAvailableLicenses` to provide
more clarity on the value being returned"
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: BlakeWilliams
- location: EnterpriseBillingInfo.seats
description: "`seats` will be removed. Use EnterpriseBillingInfo.totalLicenses instead."
reason: "`seats` will be replaced with `totalLicenses` to provide more clarity on
the value being returned"
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: BlakeWilliams
- location: UnassignedEvent.user
description: "`user` will be removed. Use the `assignee` field instead."
reason: Assignees can now be mannequins.
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: Sponsorship.maintainer
description: "`maintainer` will be removed. Use `Sponsorship.sponsorable` instead."
reason: "`Sponsorship.maintainer` will be removed."
date: '2020-04-01T00:00:00+00:00'
criticality: breaking
owner: antn
- location: EnterprisePendingMemberInvitationEdge.isUnlicensed
description: "`isUnlicensed` will be removed."
reason: All pending members consume a license
date: '2020-07-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: EnterpriseOwnerInfo.pendingCollaborators
description: "`pendingCollaborators` will be removed. Use the `pendingCollaboratorInvitations`
field instead."
reason: Repository invitations can now be associated with an email, not only an
invitee.
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: jdennes
- location: Issue.timeline
description: "`timeline` will be removed. Use Issue.timelineItems instead."
reason: "`timeline` will be removed"
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: mikesea
- location: PullRequest.timeline
description: "`timeline` will be removed. Use PullRequest.timelineItems instead."
reason: "`timeline` will be removed"
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: mikesea
- location: RepositoryInvitationOrderField.INVITEE_LOGIN
description: "`INVITEE_LOGIN` will be removed."
reason: "`INVITEE_LOGIN` is no longer a valid field value. Repository invitations
can now be associated with an email, not only an invitee."
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: jdennes
- location: Sponsorship.sponsor
description: "`sponsor` will be removed. Use `Sponsorship.sponsorEntity` instead."
reason: "`Sponsorship.sponsor` will be removed."
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: nholden
- location: EnterpriseMemberEdge.isUnlicensed
description: "`isUnlicensed` will be removed."
reason: All members consume a license
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: EnterpriseOutsideCollaboratorEdge.isUnlicensed
description: "`isUnlicensed` will be removed."
reason: All outside collaborators consume a license
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: EnterprisePendingCollaboratorEdge.isUnlicensed
description: "`isUnlicensed` will be removed."
reason: All pending collaborators consume a license
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: MergeStateStatus.DRAFT
description: "`DRAFT` will be removed. Use PullRequest.isDraft instead."
reason: DRAFT state will be removed from this enum and `isDraft` should be used
instead
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: nplasterer
- location: Migration.uploadUrlTemplate
description: '`uploadUrlTemplate` will be removed. Use `uploadUrl` instead.'
reason:
'`uploadUrlTemplate` is being removed because it is not a standard URL and
adds an extra user step.'
date: '2019-04-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: AssignedEvent.user
description: '`user` will be removed. Use the `assignee` field instead.'
reason: Assignees can now be mannequins.
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: EnterpriseBillingInfo.availableSeats
description:
'`availableSeats` will be removed. Use EnterpriseBillingInfo.totalAvailableLicenses
instead.'
reason:
'`availableSeats` will be replaced with `totalAvailableLicenses` to provide
more clarity on the value being returned'
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: BlakeWilliams
- location: EnterpriseBillingInfo.seats
description: '`seats` will be removed. Use EnterpriseBillingInfo.totalLicenses instead.'
reason:
'`seats` will be replaced with `totalLicenses` to provide more clarity on
the value being returned'
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: BlakeWilliams
- location: UnassignedEvent.user
description: '`user` will be removed. Use the `assignee` field instead.'
reason: Assignees can now be mannequins.
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: Sponsorship.maintainer
description: '`maintainer` will be removed. Use `Sponsorship.sponsorable` instead.'
reason: '`Sponsorship.maintainer` will be removed.'
date: '2020-04-01T00:00:00+00:00'
criticality: breaking
owner: antn
- location: EnterprisePendingMemberInvitationEdge.isUnlicensed
description: '`isUnlicensed` will be removed.'
reason: All pending members consume a license
date: '2020-07-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: EnterpriseOwnerInfo.pendingCollaborators
description:
'`pendingCollaborators` will be removed. Use the `pendingCollaboratorInvitations`
field instead.'
reason:
Repository invitations can now be associated with an email, not only an
invitee.
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: jdennes
- location: Issue.timeline
description: '`timeline` will be removed. Use Issue.timelineItems instead.'
reason: '`timeline` will be removed'
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: mikesea
- location: PullRequest.timeline
description: '`timeline` will be removed. Use PullRequest.timelineItems instead.'
reason: '`timeline` will be removed'
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: mikesea
- location: RepositoryInvitationOrderField.INVITEE_LOGIN
description: '`INVITEE_LOGIN` will be removed.'
reason:
'`INVITEE_LOGIN` is no longer a valid field value. Repository invitations
can now be associated with an email, not only an invitee.'
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: jdennes
- location: Sponsorship.sponsor
description: '`sponsor` will be removed. Use `Sponsorship.sponsorEntity` instead.'
reason: '`Sponsorship.sponsor` will be removed.'
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: nholden
- location: EnterpriseMemberEdge.isUnlicensed
description: '`isUnlicensed` will be removed.'
reason: All members consume a license
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: EnterpriseOutsideCollaboratorEdge.isUnlicensed
description: '`isUnlicensed` will be removed.'
reason: All outside collaborators consume a license
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: EnterprisePendingCollaboratorEdge.isUnlicensed
description: '`isUnlicensed` will be removed.'
reason: All pending collaborators consume a license
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: MergeStateStatus.DRAFT
description: '`DRAFT` will be removed. Use PullRequest.isDraft instead.'
reason:
DRAFT state will be removed from this enum and `isDraft` should be used
instead
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: nplasterer

View File

@@ -1,60 +1,64 @@
---
upcoming_changes:
- location: Migration.uploadUrlTemplate
description: "`uploadUrlTemplate` will be removed. Use `uploadUrl` instead."
reason: "`uploadUrlTemplate` is being removed because it is not a standard URL and
adds an extra user step."
date: '2019-04-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: ContributionOrder.field
description: "`field` will be removed. Only one order field is supported."
reason: "`field` will be removed."
date: '2019-10-01T00:00:00+00:00'
criticality: breaking
owner: dinahshi
- location: Issue.timeline
description: "`timeline` will be removed. Use Issue.timelineItems instead."
reason: "`timeline` will be removed"
date: '2019-10-01T00:00:00+00:00'
criticality: breaking
owner: mikesea
- location: Organization.pinnedRepositories
description: "`pinnedRepositories` will be removed. Use ProfileOwner.pinnedItems
instead."
reason: pinnedRepositories will be removed
date: '2019-10-01T00:00:00+00:00'
criticality: breaking
owner: cheshire137
- location: PullRequest.timeline
description: "`timeline` will be removed. Use PullRequest.timelineItems instead."
reason: "`timeline` will be removed"
date: '2019-10-01T00:00:00+00:00'
criticality: breaking
owner: mikesea
- location: RepositoryOwner.pinnedRepositories
description: "`pinnedRepositories` will be removed. Use ProfileOwner.pinnedItems
instead."
reason: pinnedRepositories will be removed
date: '2019-10-01T00:00:00+00:00'
criticality: breaking
owner: cheshire137
- location: User.pinnedRepositories
description: "`pinnedRepositories` will be removed. Use ProfileOwner.pinnedItems
instead."
reason: pinnedRepositories will be removed
date: '2019-10-01T00:00:00+00:00'
criticality: breaking
owner: cheshire137
- location: AssignedEvent.user
description: "`user` will be removed. Use the `assignee` field instead."
reason: Assignees can now be mannequins.
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: UnassignedEvent.user
description: "`user` will be removed. Use the `assignee` field instead."
reason: Assignees can now be mannequins.
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: Migration.uploadUrlTemplate
description: '`uploadUrlTemplate` will be removed. Use `uploadUrl` instead.'
reason:
'`uploadUrlTemplate` is being removed because it is not a standard URL and
adds an extra user step.'
date: '2019-04-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: ContributionOrder.field
description: '`field` will be removed. Only one order field is supported.'
reason: '`field` will be removed.'
date: '2019-10-01T00:00:00+00:00'
criticality: breaking
owner: dinahshi
- location: Issue.timeline
description: '`timeline` will be removed. Use Issue.timelineItems instead.'
reason: '`timeline` will be removed'
date: '2019-10-01T00:00:00+00:00'
criticality: breaking
owner: mikesea
- location: Organization.pinnedRepositories
description:
'`pinnedRepositories` will be removed. Use ProfileOwner.pinnedItems
instead.'
reason: pinnedRepositories will be removed
date: '2019-10-01T00:00:00+00:00'
criticality: breaking
owner: cheshire137
- location: PullRequest.timeline
description: '`timeline` will be removed. Use PullRequest.timelineItems instead.'
reason: '`timeline` will be removed'
date: '2019-10-01T00:00:00+00:00'
criticality: breaking
owner: mikesea
- location: RepositoryOwner.pinnedRepositories
description:
'`pinnedRepositories` will be removed. Use ProfileOwner.pinnedItems
instead.'
reason: pinnedRepositories will be removed
date: '2019-10-01T00:00:00+00:00'
criticality: breaking
owner: cheshire137
- location: User.pinnedRepositories
description:
'`pinnedRepositories` will be removed. Use ProfileOwner.pinnedItems
instead.'
reason: pinnedRepositories will be removed
date: '2019-10-01T00:00:00+00:00'
criticality: breaking
owner: cheshire137
- location: AssignedEvent.user
description: '`user` will be removed. Use the `assignee` field instead.'
reason: Assignees can now be mannequins.
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: UnassignedEvent.user
description: '`user` will be removed. Use the `assignee` field instead.'
reason: Assignees can now be mannequins.
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: tambling

View File

@@ -1,117 +1,124 @@
---
upcoming_changes:
- location: Migration.uploadUrlTemplate
description: "`uploadUrlTemplate` will be removed. Use `uploadUrl` instead."
reason: "`uploadUrlTemplate` is being removed because it is not a standard URL and
adds an extra user step."
date: '2019-04-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: AssignedEvent.user
description: "`user` will be removed. Use the `assignee` field instead."
reason: Assignees can now be mannequins.
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: EnterpriseBillingInfo.availableSeats
description: "`availableSeats` will be removed. Use EnterpriseBillingInfo.totalAvailableLicenses
instead."
reason: "`availableSeats` will be replaced with `totalAvailableLicenses` to provide
more clarity on the value being returned"
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: BlakeWilliams
- location: EnterpriseBillingInfo.seats
description: "`seats` will be removed. Use EnterpriseBillingInfo.totalLicenses instead."
reason: "`seats` will be replaced with `totalLicenses` to provide more clarity on
the value being returned"
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: BlakeWilliams
- location: UnassignedEvent.user
description: "`user` will be removed. Use the `assignee` field instead."
reason: Assignees can now be mannequins.
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: Sponsorship.maintainer
description: "`maintainer` will be removed. Use `Sponsorship.sponsorable` instead."
reason: "`Sponsorship.maintainer` will be removed."
date: '2020-04-01T00:00:00+00:00'
criticality: breaking
owner: antn
- location: EnterprisePendingMemberInvitationEdge.isUnlicensed
description: "`isUnlicensed` will be removed."
reason: All pending members consume a license
date: '2020-07-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: EnterpriseOwnerInfo.pendingCollaborators
description: "`pendingCollaborators` will be removed. Use the `pendingCollaboratorInvitations`
field instead."
reason: Repository invitations can now be associated with an email, not only an
invitee.
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: jdennes
- location: Issue.timeline
description: "`timeline` will be removed. Use Issue.timelineItems instead."
reason: "`timeline` will be removed"
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: mikesea
- location: PullRequest.timeline
description: "`timeline` will be removed. Use PullRequest.timelineItems instead."
reason: "`timeline` will be removed"
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: mikesea
- location: RepositoryCollaboratorEdge.permission
description: Type for `permission` will change from `RepositoryPermission!` to `String`.
reason: This field may return additional values
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: oneill38
- location: RepositoryInvitation.permission
description: Type for `permission` will change from `RepositoryPermission!` to `String`.
reason: This field may return additional values
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: oneill38
- location: RepositoryInvitationOrderField.INVITEE_LOGIN
description: "`INVITEE_LOGIN` will be removed."
reason: "`INVITEE_LOGIN` is no longer a valid field value. Repository invitations
can now be associated with an email, not only an invitee."
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: jdennes
- location: Sponsorship.sponsor
description: "`sponsor` will be removed. Use `Sponsorship.sponsorEntity` instead."
reason: "`Sponsorship.sponsor` will be removed."
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: nholden
- location: TeamRepositoryEdge.permission
description: Type for `permission` will change from `RepositoryPermission!` to `String`.
reason: This field may return additional values
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: oneill38
- location: EnterpriseMemberEdge.isUnlicensed
description: "`isUnlicensed` will be removed."
reason: All members consume a license
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: EnterpriseOutsideCollaboratorEdge.isUnlicensed
description: "`isUnlicensed` will be removed."
reason: All outside collaborators consume a license
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: EnterprisePendingCollaboratorEdge.isUnlicensed
description: "`isUnlicensed` will be removed."
reason: All pending collaborators consume a license
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: Migration.uploadUrlTemplate
description: '`uploadUrlTemplate` will be removed. Use `uploadUrl` instead.'
reason:
'`uploadUrlTemplate` is being removed because it is not a standard URL and
adds an extra user step.'
date: '2019-04-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: AssignedEvent.user
description: '`user` will be removed. Use the `assignee` field instead.'
reason: Assignees can now be mannequins.
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: EnterpriseBillingInfo.availableSeats
description:
'`availableSeats` will be removed. Use EnterpriseBillingInfo.totalAvailableLicenses
instead.'
reason:
'`availableSeats` will be replaced with `totalAvailableLicenses` to provide
more clarity on the value being returned'
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: BlakeWilliams
- location: EnterpriseBillingInfo.seats
description: '`seats` will be removed. Use EnterpriseBillingInfo.totalLicenses instead.'
reason:
'`seats` will be replaced with `totalLicenses` to provide more clarity on
the value being returned'
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: BlakeWilliams
- location: UnassignedEvent.user
description: '`user` will be removed. Use the `assignee` field instead.'
reason: Assignees can now be mannequins.
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: Sponsorship.maintainer
description: '`maintainer` will be removed. Use `Sponsorship.sponsorable` instead.'
reason: '`Sponsorship.maintainer` will be removed.'
date: '2020-04-01T00:00:00+00:00'
criticality: breaking
owner: antn
- location: EnterprisePendingMemberInvitationEdge.isUnlicensed
description: '`isUnlicensed` will be removed.'
reason: All pending members consume a license
date: '2020-07-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: EnterpriseOwnerInfo.pendingCollaborators
description:
'`pendingCollaborators` will be removed. Use the `pendingCollaboratorInvitations`
field instead.'
reason:
Repository invitations can now be associated with an email, not only an
invitee.
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: jdennes
- location: Issue.timeline
description: '`timeline` will be removed. Use Issue.timelineItems instead.'
reason: '`timeline` will be removed'
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: mikesea
- location: PullRequest.timeline
description: '`timeline` will be removed. Use PullRequest.timelineItems instead.'
reason: '`timeline` will be removed'
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: mikesea
- location: RepositoryCollaboratorEdge.permission
description: Type for `permission` will change from `RepositoryPermission!` to `String`.
reason: This field may return additional values
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: oneill38
- location: RepositoryInvitation.permission
description: Type for `permission` will change from `RepositoryPermission!` to `String`.
reason: This field may return additional values
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: oneill38
- location: RepositoryInvitationOrderField.INVITEE_LOGIN
description: '`INVITEE_LOGIN` will be removed.'
reason:
'`INVITEE_LOGIN` is no longer a valid field value. Repository invitations
can now be associated with an email, not only an invitee.'
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: jdennes
- location: Sponsorship.sponsor
description: '`sponsor` will be removed. Use `Sponsorship.sponsorEntity` instead.'
reason: '`Sponsorship.sponsor` will be removed.'
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: nholden
- location: TeamRepositoryEdge.permission
description: Type for `permission` will change from `RepositoryPermission!` to `String`.
reason: This field may return additional values
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: oneill38
- location: EnterpriseMemberEdge.isUnlicensed
description: '`isUnlicensed` will be removed.'
reason: All members consume a license
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: EnterpriseOutsideCollaboratorEdge.isUnlicensed
description: '`isUnlicensed` will be removed.'
reason: All outside collaborators consume a license
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: EnterprisePendingCollaboratorEdge.isUnlicensed
description: '`isUnlicensed` will be removed.'
reason: All pending collaborators consume a license
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon

View File

@@ -1,113 +1,122 @@
---
upcoming_changes:
- location: Migration.uploadUrlTemplate
description: "`uploadUrlTemplate` will be removed. Use `uploadUrl` instead."
reason: "`uploadUrlTemplate` is being removed because it is not a standard URL and
adds an extra user step."
date: '2019-04-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: AssignedEvent.user
description: "`user` will be removed. Use the `assignee` field instead."
reason: Assignees can now be mannequins.
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: EnterpriseBillingInfo.availableSeats
description: "`availableSeats` will be removed. Use EnterpriseBillingInfo.totalAvailableLicenses
instead."
reason: "`availableSeats` will be replaced with `totalAvailableLicenses` to provide
more clarity on the value being returned"
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: BlakeWilliams
- location: EnterpriseBillingInfo.seats
description: "`seats` will be removed. Use EnterpriseBillingInfo.totalLicenses instead."
reason: "`seats` will be replaced with `totalLicenses` to provide more clarity on
the value being returned"
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: BlakeWilliams
- location: UnassignedEvent.user
description: "`user` will be removed. Use the `assignee` field instead."
reason: Assignees can now be mannequins.
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: Query.sponsorsListing
description: "`sponsorsListing` will be removed. Use `Sponsorable.sponsorsListing`
instead."
reason: "`Query.sponsorsListing` will be removed."
date: '2020-04-01T00:00:00+00:00'
criticality: breaking
owner: antn
- location: Sponsorship.maintainer
description: "`maintainer` will be removed. Use `Sponsorship.sponsorable` instead."
reason: "`Sponsorship.maintainer` will be removed."
date: '2020-04-01T00:00:00+00:00'
criticality: breaking
owner: antn
- location: EnterprisePendingMemberInvitationEdge.isUnlicensed
description: "`isUnlicensed` will be removed."
reason: All pending members consume a license
date: '2020-07-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: EnterpriseOwnerInfo.pendingCollaborators
description: "`pendingCollaborators` will be removed. Use the `pendingCollaboratorInvitations`
field instead."
reason: Repository invitations can now be associated with an email, not only an
invitee.
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: jdennes
- location: Issue.timeline
description: "`timeline` will be removed. Use Issue.timelineItems instead."
reason: "`timeline` will be removed"
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: mikesea
- location: PullRequest.timeline
description: "`timeline` will be removed. Use PullRequest.timelineItems instead."
reason: "`timeline` will be removed"
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: mikesea
- location: RepositoryInvitationOrderField.INVITEE_LOGIN
description: "`INVITEE_LOGIN` will be removed."
reason: "`INVITEE_LOGIN` is no longer a valid field value. Repository invitations
can now be associated with an email, not only an invitee."
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: jdennes
- location: Sponsorship.sponsor
description: "`sponsor` will be removed. Use `Sponsorship.sponsorEntity` instead."
reason: "`Sponsorship.sponsor` will be removed."
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: nholden
- location: EnterpriseMemberEdge.isUnlicensed
description: "`isUnlicensed` will be removed."
reason: All members consume a license
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: EnterpriseOutsideCollaboratorEdge.isUnlicensed
description: "`isUnlicensed` will be removed."
reason: All outside collaborators consume a license
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: EnterprisePendingCollaboratorEdge.isUnlicensed
description: "`isUnlicensed` will be removed."
reason: All pending collaborators consume a license
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: MergeStateStatus.DRAFT
description: "`DRAFT` will be removed. Use PullRequest.isDraft instead."
reason: DRAFT state will be removed from this enum and `isDraft` should be used
instead
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: nplasterer
- location: Migration.uploadUrlTemplate
description: '`uploadUrlTemplate` will be removed. Use `uploadUrl` instead.'
reason:
'`uploadUrlTemplate` is being removed because it is not a standard URL and
adds an extra user step.'
date: '2019-04-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: AssignedEvent.user
description: '`user` will be removed. Use the `assignee` field instead.'
reason: Assignees can now be mannequins.
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: EnterpriseBillingInfo.availableSeats
description:
'`availableSeats` will be removed. Use EnterpriseBillingInfo.totalAvailableLicenses
instead.'
reason:
'`availableSeats` will be replaced with `totalAvailableLicenses` to provide
more clarity on the value being returned'
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: BlakeWilliams
- location: EnterpriseBillingInfo.seats
description: '`seats` will be removed. Use EnterpriseBillingInfo.totalLicenses instead.'
reason:
'`seats` will be replaced with `totalLicenses` to provide more clarity on
the value being returned'
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: BlakeWilliams
- location: UnassignedEvent.user
description: '`user` will be removed. Use the `assignee` field instead.'
reason: Assignees can now be mannequins.
date: '2020-01-01T00:00:00+00:00'
criticality: breaking
owner: tambling
- location: Query.sponsorsListing
description:
'`sponsorsListing` will be removed. Use `Sponsorable.sponsorsListing`
instead.'
reason: '`Query.sponsorsListing` will be removed.'
date: '2020-04-01T00:00:00+00:00'
criticality: breaking
owner: antn
- location: Sponsorship.maintainer
description: '`maintainer` will be removed. Use `Sponsorship.sponsorable` instead.'
reason: '`Sponsorship.maintainer` will be removed.'
date: '2020-04-01T00:00:00+00:00'
criticality: breaking
owner: antn
- location: EnterprisePendingMemberInvitationEdge.isUnlicensed
description: '`isUnlicensed` will be removed.'
reason: All pending members consume a license
date: '2020-07-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: EnterpriseOwnerInfo.pendingCollaborators
description:
'`pendingCollaborators` will be removed. Use the `pendingCollaboratorInvitations`
field instead.'
reason:
Repository invitations can now be associated with an email, not only an
invitee.
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: jdennes
- location: Issue.timeline
description: '`timeline` will be removed. Use Issue.timelineItems instead.'
reason: '`timeline` will be removed'
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: mikesea
- location: PullRequest.timeline
description: '`timeline` will be removed. Use PullRequest.timelineItems instead.'
reason: '`timeline` will be removed'
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: mikesea
- location: RepositoryInvitationOrderField.INVITEE_LOGIN
description: '`INVITEE_LOGIN` will be removed.'
reason:
'`INVITEE_LOGIN` is no longer a valid field value. Repository invitations
can now be associated with an email, not only an invitee.'
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: jdennes
- location: Sponsorship.sponsor
description: '`sponsor` will be removed. Use `Sponsorship.sponsorEntity` instead.'
reason: '`Sponsorship.sponsor` will be removed.'
date: '2020-10-01T00:00:00+00:00'
criticality: breaking
owner: nholden
- location: EnterpriseMemberEdge.isUnlicensed
description: '`isUnlicensed` will be removed.'
reason: All members consume a license
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: EnterpriseOutsideCollaboratorEdge.isUnlicensed
description: '`isUnlicensed` will be removed.'
reason: All outside collaborators consume a license
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: EnterprisePendingCollaboratorEdge.isUnlicensed
description: '`isUnlicensed` will be removed.'
reason: All pending collaborators consume a license
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: BrentWheeldon
- location: MergeStateStatus.DRAFT
description: '`DRAFT` will be removed. Use PullRequest.isDraft instead.'
reason:
DRAFT state will be removed from this enum and `isDraft` should be used
instead
date: '2021-01-01T00:00:00+00:00'
criticality: breaking
owner: nplasterer

View File

@@ -10,4 +10,4 @@ productsInOrder:
- rest
- graphql
- insights
- desktop
- desktop

View File

@@ -2,8 +2,7 @@ header:
github_docs: GitHub Docs
contact: Contact
notices:
ghae_silent_launch:
GitHub AE is currently under limited release. Please <a href="https://enterprise.github.com/contact">contact our Sales Team</a> to find out more.
ghae_silent_launch: GitHub AE is currently under limited release. Please <a href="https://enterprise.github.com/contact">contact our Sales Team</a> to find out more.
release_candidate:
# The version name is rendered before the below text via includes/header-notification.html
' is currently under limited release as a release candidate.'
@@ -30,7 +29,7 @@ toc:
guides: Guides
whats_new: What's new
pages:
article_version: "Article version:"
article_version: 'Article version:'
miniToc: In this article
errors:
oops: Ooops!

View File

@@ -15,7 +15,7 @@ contact_dmca: >-
contact_privacy: >-
{% if currentVersion == "free-pro-team@latest" %}[Privacy contact form](https://github.com/contact/privacy){% endif %}
contact_enterprise_sales: '[GitHub''s Sales team](https://enterprise.github.com/contact)'
contact_enterprise_sales: "[GitHub's Sales team](https://enterprise.github.com/contact)"
contact_feedback_actions: '[Feedback form for GitHub Actions](https://support.github.com/contact/feedback?contact[category]=actions)'

View File

@@ -27,7 +27,7 @@ prodname_ghe_one: 'GitHub One'
## Use these variables when referring specifically to a location within a product
product_location: >-
{% if enterpriseServerVersions contains currentVersion %}your GitHub Enterprise Server instance{% elsif currentVersion == "github-ae@latest" %}your enterprise{% else %}GitHub{% endif %}
# Used ONLY when you need to refer to a GHES instance in an article that is versioned for non-GHES versions.
# Do not use in other situations!
product_location_enterprise: 'your GitHub Enterprise Server instance'
@@ -170,8 +170,7 @@ signout_link: >-
raw_github_com: >-
{% if currentVersion == "free-pro-team@latest" %}raw.githubusercontent.com{% else %}[hostname]/user/repo/raw{% endif %}
# GitHub Enterprise Server past versions
current-340-version:
'11.10.354'
current-340-version: '11.10.354'
# Developer site product variables
# Use this inside command-line and other code blocks
@@ -194,4 +193,4 @@ graphql_url_pre: >-
{% if currentVersion == "free-pro-team@latest" %}https://api.github.com/graphql{% else %}http(s)://<em>[hostname]</em>/api/graphql{% endif %}
# Use this all other code blocks
graphql_url_code: >-
{% if currentVersion == "free-pro-team@latest" %}https://api.github.com/graphql{% else %}http(s)://[hostname]/api/graphql{% endif %}
{% if currentVersion == "free-pro-team@latest" %}https://api.github.com/graphql{% else %}http(s)://[hostname]/api/graphql{% endif %}

View File

@@ -1,23 +1,23 @@
---
version: 1
ownership:
- name: docs-internal
long_name: GitHub Help Docs
kind: heroku
repo: https://github.com/github/docs-internal
team: github/docs-engineering
maintainer: zeke
exec_sponsor: danaiszuul
product_manager: jwargo
mention: github/docs-engineering
qos: critical
dependencies: []
sev1:
pagerduty: https://github.pagerduty.com/escalation_policies#PN57VQ1
tta: 30 min
sev2:
issue: https://github.com/github/docs-internal/issues
tta: 5 business days
sev3:
slack: docs-engineering
tta: 30 min
- name: docs-internal
long_name: GitHub Help Docs
kind: heroku
repo: https://github.com/github/docs-internal
team: github/docs-engineering
maintainer: zeke
exec_sponsor: danaiszuul
product_manager: jwargo
mention: github/docs-engineering
qos: critical
dependencies: []
sev1:
pagerduty: https://github.pagerduty.com/escalation_policies#PN57VQ1
tta: 30 min
sev2:
issue: https://github.com/github/docs-internal/issues
tta: 5 business days
sev3:
slack: docs-engineering
tta: 30 min

6
package-lock.json generated
View File

@@ -17090,6 +17090,12 @@
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
},
"prettier": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz",
"integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==",
"dev": true
},
"private": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",

View File

@@ -111,6 +111,7 @@
"npm-merge-driver-install": "^2.0.0",
"object-hash": "^2.0.1",
"pa11y-ci": "^2.4.0",
"prettier": "^2.1.2",
"puppeteer": "^2.1.1",
"replace": "^1.2.0",
"revalidator": "^0.3.1",
@@ -126,8 +127,8 @@
"dev": "npm start",
"build": "cross-env NODE_ENV=production npx webpack --mode production",
"start-all-languages": "cross-env NODE_ENV=development nodemon server.js",
"lint": "standard --fix",
"test": "jest && standard && npm run check-deps",
"lint": "standard --fix && prettier -w \"**/*.{yml,yaml}\"",
"test": "jest && standard && prettier -c \"**/*.{yml,yaml}\" && npm run check-deps",
"prebrowser-test": "npm run build",
"browser-test": "start-server-and-test browser-test-server 4001 browser-test-tests",
"browser-test-server": "cross-env NODE_ENV=production ENABLED_LANGUAGES='en,ja' PORT=4001 node server.js",