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 name: 60 Days Stale Check
on: on:
schedule: 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: jobs:
stale: stale:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/stale@af4072615903a8b031f986d25b1ae3bf45ec44d4 - uses: actions/stale@af4072615903a8b031f986d25b1ae3bf45ec44d4
with: with:
repo-token: ${{ secrets.GITHUB_TOKEN }} repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-message: 'This issue is stale because it has been open 60 days with no activity.' 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.' stale-pr-message: 'This PR is stale because it has been open 60 days with no activity.'
days-before-stale: 60 days-before-stale: 60
days-before-close: -1 days-before-close: -1
only-labels: 'engineering' only-labels: 'engineering'
stale-issue-label: 'stale' stale-issue-label: 'stale'
stale-pr-label: 'stale' stale-pr-label: 'stale'
exempt-pr-labels: 'never-stale' exempt-pr-labels: 'never-stale'
exempt-issue-labels: 'never-stale' exempt-issue-labels: 'never-stale'

View File

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

View File

@@ -3,10 +3,10 @@ name: Auto Merge Dependency Updates
on: on:
pull_request: pull_request:
paths: paths:
- "package*.json" - 'package*.json'
- "Gemfile*" - 'Gemfile*'
- "Dockerfile" - 'Dockerfile'
- ".github/workflows/**" - '.github/workflows/**'
pull_request_review: pull_request_review:
types: types:
- edited - 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') if: contains(github.event.pull_request.labels.*.name, 'automerge') || contains(github.event.pull_request.labels.*.name, 'autosquash')
steps: steps:
- name: automerge - name: automerge
uses: "pascalgn/automerge-action@c9bd182" uses: 'pascalgn/automerge-action@c9bd182'
env: env:
GITHUB_TOKEN: "${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}" GITHUB_TOKEN: '${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}'
MERGE_METHOD_LABELS: "automerge=merge,autosquash=squash" MERGE_METHOD_LABELS: 'automerge=merge,autosquash=squash'
MERGE_COMMIT_MESSAGE: "pull-request-title" MERGE_COMMIT_MESSAGE: 'pull-request-title'
MERGE_METHOD: "merge" MERGE_METHOD: 'merge'
MERGE_FORKS: "true" MERGE_FORKS: 'true'
MERGE_RETRIES: "50" MERGE_RETRIES: '50'
MERGE_RETRY_SLEEP: "10000" # ten seconds MERGE_RETRY_SLEEP: '10000' # ten seconds
UPDATE_LABELS: "automerge,autosquash" UPDATE_LABELS: 'automerge,autosquash'
UPDATE_METHOD: "merge" UPDATE_METHOD: 'merge'

View File

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

View File

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

View File

@@ -3,7 +3,7 @@ name: Crowdin Sync
on: on:
workflow_dispatch: workflow_dispatch:
schedule: 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: jobs:
sync_with_crowdin: sync_with_crowdin:
@@ -20,7 +20,7 @@ jobs:
upload_translations: false upload_translations: false
download_translations: true download_translations: true
create_pull_request: true create_pull_request: true
# Using a custom config temporarily to avoid clobbering the existing crowdin.yml # Using a custom config temporarily to avoid clobbering the existing crowdin.yml
# that is used by the github-help-docs OAuth integration. # that is used by the github-help-docs OAuth integration.
config: 'crowdin.yml' config: 'crowdin.yml'
@@ -35,17 +35,15 @@ jobs:
crowdin_branch_name: main crowdin_branch_name: main
env: 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. # 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 }} 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 # 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 # See "API v2" on https://crowdin.com/project/<your-project>/settings#api
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }} CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
# A personal access token, not to be confused with Crowdin API v1 "API key" # 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 # See https://crowdin.com/settings#api-key to generate a token
# This token was created by logging into Crowdin with the octoglot user # This token was created by logging into Crowdin with the octoglot user
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}

View File

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

View File

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

View File

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

View File

@@ -1,8 +1,8 @@
name: "Pa11y" name: Pa11y
on: on:
workflow_dispatch: workflow_dispatch:
schedule: 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: jobs:
test: test:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

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

View File

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

View File

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

View File

@@ -2,7 +2,7 @@ name: Repo Freeze Reminders
on: on:
schedule: schedule:
- cron: "00 11 * * *" # once per day around 11:00am UTC - cron: '00 11 * * *' # once per day around 11:00am UTC
env: env:
FREEZE: ${{ secrets.FREEZE }} FREEZE: ${{ secrets.FREEZE }}
@@ -13,13 +13,12 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.repository == 'github/docs-internal' if: github.repository == 'github/docs-internal'
steps: steps:
- name: Send Slack notification if repo is frozen
- name: Send Slack notification if repo is frozen if: ${{ env.FREEZE == 'true' }}
if: ${{ env.FREEZE == 'true' }} uses: rtCamp/action-slack-notify@e17352feaf9aee300bf0ebc1dfbf467d80438815
uses: rtCamp/action-slack-notify@e17352feaf9aee300bf0ebc1dfbf467d80438815 env:
env: SLACK_WEBHOOK: ${{ secrets.DOCS_ALERTS_SLACK_WEBHOOK }}
SLACK_WEBHOOK: ${{ secrets.DOCS_ALERTS_SLACK_WEBHOOK }} SLACK_USERNAME: docs-repo-sync
SLACK_USERNAME: docs-repo-sync SLACK_ICON_EMOJI: ':freezing_face:'
SLACK_ICON_EMOJI: ':freezing_face:' SLACK_COLOR: '#51A0D5' # Carolina Blue
SLACK_COLOR: '#51A0D5' # Carolina Blue SLACK_MESSAGE: All repo-sync runs will fail for ${{ github.repository }} because the repo is currently frozen!
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) # 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. # 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 # For more details, see https://github.com/repo-sync/repo-sync#how-it-works
name: Repo Sync name: Repo Sync
on: on:
schedule: schedule:
- cron: "*/15 * * * *" # every 15 minutes - cron: '*/15 * * * *' # every 15 minutes
env: env:
FREEZE: ${{ secrets.FREEZE }} FREEZE: ${{ secrets.FREEZE }}
@@ -18,65 +18,63 @@ jobs:
name: Check for deployment freezes name: Check for deployment freezes
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Exit if repo is frozen
- name: Exit if repo is frozen if: ${{ env.FREEZE == 'true' }}
if: ${{ env.FREEZE == 'true' }} run: |
run: | echo 'The repo is currently frozen! Exiting this workflow.'
echo 'The repo is currently frozen! Exiting this workflow.' exit 1 # prevents further steps from running
exit 1 # prevents further steps from running
repo-sync: repo-sync:
name: Repo Sync name: Repo Sync
needs: check-freezer needs: check-freezer
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Check out repo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- name: Check out repo - name: Sync repo to branch
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f 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 - name: Create pull request
uses: repo-sync/github-sync@3832fe8e2be32372e1b3970bbae8e7079edeec88 uses: repo-sync/pull-request@33777245b1aace1a58c87a29c90321aa7a74bd7d
env: env:
GITHUB_TOKEN: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }} GITHUB_TOKEN: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
with: with:
source_repo: ${{ secrets.SOURCE_REPO }} # https://${access_token}@github.com/github/the-other-repo.git source_branch: repo-sync
source_branch: main destination_branch: main
destination_branch: repo-sync pr_title: 'repo sync'
github_token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }} 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 - name: Find pull request
uses: repo-sync/pull-request@33777245b1aace1a58c87a29c90321aa7a74bd7d uses: juliangruber/find-pull-request-action@64d55773c959748ad30a4184f4dc102af1669f7b
env: id: find-pull-request
GITHUB_TOKEN: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }} with:
with: github-token: ${{ secrets.GITHUB_TOKEN }}
source_branch: repo-sync branch: repo-sync
destination_branch: main base: 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 - name: Approve pull request
uses: juliangruber/find-pull-request-action@64d55773c959748ad30a4184f4dc102af1669f7b if: ${{ steps.find-pull-request.outputs.number }}
id: find-pull-request uses: juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8
with: with:
github-token: ${{ secrets.GITHUB_TOKEN }} github-token: ${{ secrets.GITHUB_TOKEN }}
branch: repo-sync number: ${{ steps.find-pull-request.outputs.number }}
base: main
- name: Approve pull request - name: Send Slack notification if workflow fails
if: ${{ steps.find-pull-request.outputs.number }} uses: rtCamp/action-slack-notify@e17352feaf9aee300bf0ebc1dfbf467d80438815
uses: juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8 if: ${{ failure() }}
with: env:
github-token: ${{ secrets.GITHUB_TOKEN }} SLACK_WEBHOOK: ${{ secrets.DOCS_ALERTS_SLACK_WEBHOOK }}
number: ${{ steps.find-pull-request.outputs.number }} SLACK_USERNAME: docs-repo-sync
SLACK_ICON_EMOJI: ':ohno:'
- name: Send Slack notification if workflow fails SLACK_COLOR: '#B90E0A' # Crimson
uses: rtCamp/action-slack-notify@e17352feaf9aee300bf0ebc1dfbf467d80438815 SLACK_MESSAGE: The last repo-sync run for ${{github.repository}} failed. See https://github.com/${{github.repository}}/actions?query=workflow%3A%22Repo+Sync%22
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 name: Send Issue to EPD backlog
on: on:
issues: issues:
types: [labeled, reopened] types:
- labeled
- reopened
jobs: jobs:
triage: triage:
if: github.repository == 'github/docs-internal' if: github.repository == 'github/docs-internal'
runs-on: ubuntu-latest runs-on: ubuntu-latest
continue-on-error: true continue-on-error: true
steps: steps:
- name: Add issues with engineering label to project board - 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') 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 uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
with: with:
github-token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }} github-token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
script: | script: |
var column_id = 9659080; var column_id = 9659080;
try { try {

View File

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

View File

@@ -4,7 +4,7 @@ on:
workflow_dispatch: workflow_dispatch:
push: push:
branches: branches:
- main - main
jobs: jobs:
updateIndices: updateIndices:
@@ -12,29 +12,29 @@ jobs:
if: github.repository == 'github/docs-internal' if: github.repository == 'github/docs-internal'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: checkout - name: checkout
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d - uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d
with: with:
node-version: 14.x node-version: 14.x
- name: cache node modules - name: cache node modules
uses: actions/cache@0781355a23dac32fd3bac414512f4b903437991a uses: actions/cache@0781355a23dac32fd3bac414512f4b903437991a
with: with:
path: ~/.npm path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: | restore-keys: |
${{ runner.os }}-node- ${{ runner.os }}-node-
- name: npm ci - name: npm ci
run: npm ci run: npm ci
- name: sync indices - name: sync indices
env: env:
ALGOLIA_APPLICATION_ID: ${{ secrets.ALGOLIA_APPLICATION_ID }} ALGOLIA_APPLICATION_ID: ${{ secrets.ALGOLIA_APPLICATION_ID }}
ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }} ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npm run sync-search run: npm run sync-search
- name: Send slack notification if workflow run fails - name: Send slack notification if workflow run fails
uses: rtCamp/action-slack-notify@e17352feaf9aee300bf0ebc1dfbf467d80438815 uses: rtCamp/action-slack-notify@e17352feaf9aee300bf0ebc1dfbf467d80438815
if: failure() if: failure()
env: env:
SLACK_WEBHOOK: ${{ secrets.DOCS_ALERTS_SLACK_WEBHOOK }} 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 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: on:
schedule: 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: jobs:
lint: lint:
@@ -78,4 +78,4 @@ jobs:
- name: Run tests - name: Run tests
run: npx jest tests/${{ matrix.test-group }}/ run: npx jest tests/${{ matrix.test-group }}/
env: 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: on:
workflow_dispatch: workflow_dispatch:
schedule: schedule:
- cron: "50 19 * * *" # once a day at 19:50 UTC / 11:50 PST - cron: '50 19 * * *' # once a day at 19:50 UTC / 11:50 PST
env:
CI: true
jobs: jobs:
test: test:
@@ -48,4 +45,4 @@ jobs:
- name: Run tests - name: Run tests
run: npx jest tests/${{ matrix.test-group }}/ run: npx jest tests/${{ matrix.test-group }}/
env: 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 name: Run tests
run: npx jest tests/${{ matrix.test-group }}/ run: npx jest tests/${{ matrix.test-group }}/
env: env:
NODE_OPTIONS: "--max_old_space_size=4096" NODE_OPTIONS: '--max_old_space_size=4096'
- name: Send Slack notification if workflow fails - name: Send Slack notification if workflow fails
uses: rtCamp/action-slack-notify@e17352feaf9aee300bf0ebc1dfbf467d80438815 uses: rtCamp/action-slack-notify@e17352feaf9aee300bf0ebc1dfbf467d80438815
if: failure() && github.ref == 'early-access' if: failure() && github.ref == 'early-access'
env: env:
SLACK_WEBHOOK: ${{ secrets.DOCS_ALERTS_SLACK_WEBHOOK }} 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: on:
schedule: 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: env:
FREEZE: ${{ secrets.FREEZE }} FREEZE: ${{ secrets.FREEZE }}
@@ -12,45 +12,45 @@ jobs:
if: github.repository == 'github/docs-internal' if: github.repository == 'github/docs-internal'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- if: ${{ env.FREEZE == 'true' }} - if: ${{ env.FREEZE == 'true' }}
run: | run: |
echo 'The repo is currently frozen! Exiting this workflow.' echo 'The repo is currently frozen! Exiting this workflow.'
exit 1 # prevents further steps from running exit 1 # prevents further steps from running
- name: Find original Pull Request - name: Find original Pull Request
uses: juliangruber/find-pull-request-action@64d55773c959748ad30a4184f4dc102af1669f7b uses: juliangruber/find-pull-request-action@64d55773c959748ad30a4184f4dc102af1669f7b
id: pr id: pr
with: with:
github-token: ${{ secrets.GITHUB_TOKEN }} github-token: ${{ secrets.GITHUB_TOKEN }}
branch: translations branch: translations
- if: ${{ steps.pr.outputs.number }} - if: ${{ steps.pr.outputs.number }}
name: Check if already labeled name: Check if already labeled
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9 uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
id: has-label id: has-label
with: with:
script: | script: |
const { data: labels } = await github.issues.listLabelsOnIssue({ const { data: labels } = await github.issues.listLabelsOnIssue({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
issue_number: ${{ steps.pr.outputs.number }} issue_number: ${{ steps.pr.outputs.number }}
}) })
if (labels.find(label => label.name === 'automerge')) { if (labels.find(label => label.name === 'automerge')) {
return 'ok' return 'ok'
} }
- if: ${{ !steps.has-label.outputs.result }} - if: ${{ !steps.has-label.outputs.result }}
name: Approve Pull Request name: Approve Pull Request
uses: juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8 uses: juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8
with: with:
github-token: ${{ secrets.GITHUB_TOKEN }} github-token: ${{ secrets.GITHUB_TOKEN }}
number: ${{ steps.pr.outputs.number }} number: ${{ steps.pr.outputs.number }}
- if: ${{ !steps.has-label.outputs.result }} - if: ${{ !steps.has-label.outputs.result }}
name: Add automerge label name: Add automerge label
uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9 uses: actions/github-script@626af12fe9a53dc2972b48385e7fe7dec79145c9
with: with:
github-token: ${{ secrets.GITHUB_TOKEN }} github-token: ${{ secrets.GITHUB_TOKEN }}
script: | script: |
github.issues.addLabels({ github.issues.addLabels({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
issue_number: ${{ steps.pr.outputs.number }}, issue_number: ${{ steps.pr.outputs.number }},
labels: ['automerge'] labels: ['automerge']
}) })

View File

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

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
name: Public Repo Stale Check name: Public Repo Stale Check
on: on:
schedule: 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: jobs:
stale: stale:
@@ -9,12 +9,12 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/stale@af4072615903a8b031f986d25b1ae3bf45ec44d4 - uses: actions/stale@af4072615903a8b031f986d25b1ae3bf45ec44d4
with: with:
repo-token: ${{ secrets.GITHUB_TOKEN }} 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.' 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-stale: 7
days-before-close: 10 days-before-close: 10
stale-pr-label: 'stale' stale-pr-label: 'stale'
exempt-pr-labels: 'never-stale' exempt-pr-labels: 'never-stale'
exempt-issue-labels: 'never-stale' exempt-issue-labels: 'never-stale'

View File

@@ -10,63 +10,64 @@ env:
on: on:
schedule: 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: jobs:
update_graphql_files: update_graphql_files:
if: github.repository == 'github/docs-internal' if: github.repository == 'github/docs-internal'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- if: ${{ env.FREEZE == 'true' }} - if: ${{ env.FREEZE == 'true' }}
run: | run: |
echo 'The repo is currently frozen! Exiting this workflow.' echo 'The repo is currently frozen! Exiting this workflow.'
exit 1 # prevents further steps from running exit 1 # prevents further steps from running
- name: Checkout - name: Checkout
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- name: Set up Ruby - name: Set up Ruby
uses: actions/setup-ruby@5f29a1cd8dfebf420691c4c9a0e832e2fae5a526 uses: actions/setup-ruby@5f29a1cd8dfebf420691c4c9a0e832e2fae5a526
with: with:
ruby-version: '2.4' ruby-version: '2.4'
- name: Install Ruby dependencies - name: Install Ruby dependencies
run: | run: |
gem install bundler gem install bundler
bundle install bundle install
- name: Install Node.js dependencies - name: Install Node.js dependencies
run: npm ci run: npm ci
- name: Run updater scripts - name: Run updater scripts
env: env:
# need to use a token from a user with access to github/github for this step # 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 }} 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 # 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 # 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 # 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. # once-per-day schedule; see details in https://github.com/github/docs-internal/issues/12722.
run: | run: |
script/graphql/update-files.js script/graphql/update-files.js
script/graphql/build-changelog-from-markdown.js script/graphql/build-changelog-from-markdown.js
- name: Create pull request - name: Create pull request
id: create-pull-request id: create-pull-request
uses: peter-evans/create-pull-request@938e6aea6f8dbdaced2064e948cb806c77fe87b8 uses: peter-evans/create-pull-request@938e6aea6f8dbdaced2064e948cb806c77fe87b8
with: with:
# need to use a token with repo and workflow scopes for this step # need to use a token with repo and workflow scopes for this step
token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }} token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
commit-message: 'Action ran graphql scripts "update-files" and "build-changelog-from-markdown"' commit-message: 'Action ran graphql scripts "update-files" and "build-changelog-from-markdown"'
title: GraphQL schema update title: GraphQL schema update
body: "Hello! Some GraphQL data in github/github was updated recently. This PR body:
syncs up the GraphQL data in this repo.\n\n "Hello! Some GraphQL data in github/github was updated recently. This PR
If CI passes, this PR will be auto-merged. :green_heart:\n\n syncs up the GraphQL data in this repo.\n\n
If CI does not pass or other problems arise, contact #docs-engineering on slack." If CI passes, this PR will be auto-merged. :green_heart:\n\n
labels: automerge If CI does not pass or other problems arise, contact #docs-engineering on slack."
branch: graphql-schema-update labels: automerge
- if: ${{ failure() }} branch: graphql-schema-update
name: Delete remote branch (if previous steps failed) - if: ${{ failure() }}
uses: dawidd6/action-delete-branch@47743101a121ad657031e6704086271ca81b1911 name: Delete remote branch (if previous steps failed)
with: uses: dawidd6/action-delete-branch@47743101a121ad657031e6704086271ca81b1911
github_token: ${{ secrets.GITHUB_TOKEN }} with:
branches: graphql-schema-update github_token: ${{ secrets.GITHUB_TOKEN }}
- if: ${{ steps.create-pull-request.outputs.pr_number }} branches: graphql-schema-update
name: Approve - if: ${{ steps.create-pull-request.outputs.pr_number }}
uses: juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8 name: Approve
with: uses: juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8
github-token: ${{ secrets.GITHUB_TOKEN }} with:
number: ${{ steps.create-pull-request.outputs.pr_number }} 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: files:
- source: /content/**/*.md - source: /content/**/*.md
translation: /translations/%locale%/%original_path%/%original_file_name% translation: /translations/%locale%/%original_path%/%original_file_name%
ignore: [ ignore:
"/content/README.md" - '/content/README.md'
]
- source: /data/**/*.yml - source: /data/**/*.yml
translation: /translations/%locale%/%original_path%/%original_file_name% translation: /translations/%locale%/%original_path%/%original_file_name%
- source: /data/**/*.md - source: /data/**/*.md
translation: /translations/%locale%/%original_path%/%original_file_name% translation: /translations/%locale%/%original_path%/%original_file_name%
ignore: [ ignore:
"data/README.md", - 'data/README.md'
"data/reusables/README.md", - 'data/reusables/README.md'
"data/variables/product.yml", - 'data/variables/product.yml'
"data/variables/README.md", - 'data/variables/README.md'
"data/graphql", - 'data/graphql'
"data/products.yml" - 'data/products.yml'
]
# These end up as env vars used by the GitHub Actions workflow # These end up as env vars used by the GitHub Actions workflow
project_id_env: CROWDIN_PROJECT_ID project_id_env: CROWDIN_PROJECT_ID
api_token_env: CROWDIN_PERSONAL_TOKEN api_token_env: CROWDIN_PERSONAL_TOKEN
# https://support.crowdin.com/configuration-file-v3/#saving-directory-structure-on-server # 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' - 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. mentioned.
- term: access token - term: access token
description: >- description: >-
@@ -26,7 +27,8 @@
with 2FA via the browser. This code is either generated by an application or delivered to 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." your phone via text message. Also called a "2FA authentication code."
- term: base branch - 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. 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 - term: basic authentication
description: >- description: >-
@@ -300,7 +302,7 @@
description: A defined commit of a branch, usually the most recent commit at the tip of the branch. description: A defined commit of a branch, usually the most recent commit at the tip of the branch.
- term: head branch - term: head branch
description: The branch whose changes are combined into the base 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." Also known as the "compare branch."
- term: 'Hello, World' - term: 'Hello, World'
description: >- description: >-

View File

@@ -1,106 +1,114 @@
--- ---
upcoming_changes: upcoming_changes:
- location: Migration.uploadUrlTemplate - location: Migration.uploadUrlTemplate
description: "`uploadUrlTemplate` will be removed. Use `uploadUrl` instead." description: '`uploadUrlTemplate` will be removed. Use `uploadUrl` instead.'
reason: "`uploadUrlTemplate` is being removed because it is not a standard URL and reason:
adds an extra user step." '`uploadUrlTemplate` is being removed because it is not a standard URL and
date: '2019-04-01T00:00:00+00:00' adds an extra user step.'
criticality: breaking date: '2019-04-01T00:00:00+00:00'
owner: tambling criticality: breaking
- location: AssignedEvent.user owner: tambling
description: "`user` will be removed. Use the `assignee` field instead." - location: AssignedEvent.user
reason: Assignees can now be mannequins. description: '`user` will be removed. Use the `assignee` field instead.'
date: '2020-01-01T00:00:00+00:00' reason: Assignees can now be mannequins.
criticality: breaking date: '2020-01-01T00:00:00+00:00'
owner: tambling criticality: breaking
- location: EnterpriseBillingInfo.availableSeats owner: tambling
description: "`availableSeats` will be removed. Use EnterpriseBillingInfo.totalAvailableLicenses - location: EnterpriseBillingInfo.availableSeats
instead." description:
reason: "`availableSeats` will be replaced with `totalAvailableLicenses` to provide '`availableSeats` will be removed. Use EnterpriseBillingInfo.totalAvailableLicenses
more clarity on the value being returned" instead.'
date: '2020-01-01T00:00:00+00:00' reason:
criticality: breaking '`availableSeats` will be replaced with `totalAvailableLicenses` to provide
owner: BlakeWilliams more clarity on the value being returned'
- location: EnterpriseBillingInfo.seats date: '2020-01-01T00:00:00+00:00'
description: "`seats` will be removed. Use EnterpriseBillingInfo.totalLicenses instead." criticality: breaking
reason: "`seats` will be replaced with `totalLicenses` to provide more clarity on owner: BlakeWilliams
the value being returned" - location: EnterpriseBillingInfo.seats
date: '2020-01-01T00:00:00+00:00' description: '`seats` will be removed. Use EnterpriseBillingInfo.totalLicenses instead.'
criticality: breaking reason:
owner: BlakeWilliams '`seats` will be replaced with `totalLicenses` to provide more clarity on
- location: UnassignedEvent.user the value being returned'
description: "`user` will be removed. Use the `assignee` field instead." date: '2020-01-01T00:00:00+00:00'
reason: Assignees can now be mannequins. criticality: breaking
date: '2020-01-01T00:00:00+00:00' owner: BlakeWilliams
criticality: breaking - location: UnassignedEvent.user
owner: tambling description: '`user` will be removed. Use the `assignee` field instead.'
- location: Sponsorship.maintainer reason: Assignees can now be mannequins.
description: "`maintainer` will be removed. Use `Sponsorship.sponsorable` instead." date: '2020-01-01T00:00:00+00:00'
reason: "`Sponsorship.maintainer` will be removed." criticality: breaking
date: '2020-04-01T00:00:00+00:00' owner: tambling
criticality: breaking - location: Sponsorship.maintainer
owner: antn description: '`maintainer` will be removed. Use `Sponsorship.sponsorable` instead.'
- location: EnterprisePendingMemberInvitationEdge.isUnlicensed reason: '`Sponsorship.maintainer` will be removed.'
description: "`isUnlicensed` will be removed." date: '2020-04-01T00:00:00+00:00'
reason: All pending members consume a license criticality: breaking
date: '2020-07-01T00:00:00+00:00' owner: antn
criticality: breaking - location: EnterprisePendingMemberInvitationEdge.isUnlicensed
owner: BrentWheeldon description: '`isUnlicensed` will be removed.'
- location: EnterpriseOwnerInfo.pendingCollaborators reason: All pending members consume a license
description: "`pendingCollaborators` will be removed. Use the `pendingCollaboratorInvitations` date: '2020-07-01T00:00:00+00:00'
field instead." criticality: breaking
reason: Repository invitations can now be associated with an email, not only an owner: BrentWheeldon
invitee. - location: EnterpriseOwnerInfo.pendingCollaborators
date: '2020-10-01T00:00:00+00:00' description:
criticality: breaking '`pendingCollaborators` will be removed. Use the `pendingCollaboratorInvitations`
owner: jdennes field instead.'
- location: Issue.timeline reason:
description: "`timeline` will be removed. Use Issue.timelineItems instead." Repository invitations can now be associated with an email, not only an
reason: "`timeline` will be removed" invitee.
date: '2020-10-01T00:00:00+00:00' date: '2020-10-01T00:00:00+00:00'
criticality: breaking criticality: breaking
owner: mikesea owner: jdennes
- location: PullRequest.timeline - location: Issue.timeline
description: "`timeline` will be removed. Use PullRequest.timelineItems instead." description: '`timeline` will be removed. Use Issue.timelineItems instead.'
reason: "`timeline` will be removed" reason: '`timeline` will be removed'
date: '2020-10-01T00:00:00+00:00' date: '2020-10-01T00:00:00+00:00'
criticality: breaking criticality: breaking
owner: mikesea owner: mikesea
- location: RepositoryInvitationOrderField.INVITEE_LOGIN - location: PullRequest.timeline
description: "`INVITEE_LOGIN` will be removed." description: '`timeline` will be removed. Use PullRequest.timelineItems instead.'
reason: "`INVITEE_LOGIN` is no longer a valid field value. Repository invitations reason: '`timeline` will be removed'
can now be associated with an email, not only an invitee." date: '2020-10-01T00:00:00+00:00'
date: '2020-10-01T00:00:00+00:00' criticality: breaking
criticality: breaking owner: mikesea
owner: jdennes - location: RepositoryInvitationOrderField.INVITEE_LOGIN
- location: Sponsorship.sponsor description: '`INVITEE_LOGIN` will be removed.'
description: "`sponsor` will be removed. Use `Sponsorship.sponsorEntity` instead." reason:
reason: "`Sponsorship.sponsor` will be removed." '`INVITEE_LOGIN` is no longer a valid field value. Repository invitations
date: '2020-10-01T00:00:00+00:00' can now be associated with an email, not only an invitee.'
criticality: breaking date: '2020-10-01T00:00:00+00:00'
owner: nholden criticality: breaking
- location: EnterpriseMemberEdge.isUnlicensed owner: jdennes
description: "`isUnlicensed` will be removed." - location: Sponsorship.sponsor
reason: All members consume a license description: '`sponsor` will be removed. Use `Sponsorship.sponsorEntity` instead.'
date: '2021-01-01T00:00:00+00:00' reason: '`Sponsorship.sponsor` will be removed.'
criticality: breaking date: '2020-10-01T00:00:00+00:00'
owner: BrentWheeldon criticality: breaking
- location: EnterpriseOutsideCollaboratorEdge.isUnlicensed owner: nholden
description: "`isUnlicensed` will be removed." - location: EnterpriseMemberEdge.isUnlicensed
reason: All outside collaborators consume a license description: '`isUnlicensed` will be removed.'
date: '2021-01-01T00:00:00+00:00' reason: All members consume a license
criticality: breaking date: '2021-01-01T00:00:00+00:00'
owner: BrentWheeldon criticality: breaking
- location: EnterprisePendingCollaboratorEdge.isUnlicensed owner: BrentWheeldon
description: "`isUnlicensed` will be removed." - location: EnterpriseOutsideCollaboratorEdge.isUnlicensed
reason: All pending collaborators consume a license description: '`isUnlicensed` will be removed.'
date: '2021-01-01T00:00:00+00:00' reason: All outside collaborators consume a license
criticality: breaking date: '2021-01-01T00:00:00+00:00'
owner: BrentWheeldon criticality: breaking
- location: MergeStateStatus.DRAFT owner: BrentWheeldon
description: "`DRAFT` will be removed. Use PullRequest.isDraft instead." - location: EnterprisePendingCollaboratorEdge.isUnlicensed
reason: DRAFT state will be removed from this enum and `isDraft` should be used description: '`isUnlicensed` will be removed.'
instead reason: All pending collaborators consume a license
date: '2021-01-01T00:00:00+00:00' date: '2021-01-01T00:00:00+00:00'
criticality: breaking criticality: breaking
owner: nplasterer 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: upcoming_changes:
- location: Migration.uploadUrlTemplate - location: Migration.uploadUrlTemplate
description: "`uploadUrlTemplate` will be removed. Use `uploadUrl` instead." description: '`uploadUrlTemplate` will be removed. Use `uploadUrl` instead.'
reason: "`uploadUrlTemplate` is being removed because it is not a standard URL and reason:
adds an extra user step." '`uploadUrlTemplate` is being removed because it is not a standard URL and
date: '2019-04-01T00:00:00+00:00' adds an extra user step.'
criticality: breaking date: '2019-04-01T00:00:00+00:00'
owner: tambling criticality: breaking
- location: ContributionOrder.field owner: tambling
description: "`field` will be removed. Only one order field is supported." - location: ContributionOrder.field
reason: "`field` will be removed." description: '`field` will be removed. Only one order field is supported.'
date: '2019-10-01T00:00:00+00:00' reason: '`field` will be removed.'
criticality: breaking date: '2019-10-01T00:00:00+00:00'
owner: dinahshi criticality: breaking
- location: Issue.timeline owner: dinahshi
description: "`timeline` will be removed. Use Issue.timelineItems instead." - location: Issue.timeline
reason: "`timeline` will be removed" description: '`timeline` will be removed. Use Issue.timelineItems instead.'
date: '2019-10-01T00:00:00+00:00' reason: '`timeline` will be removed'
criticality: breaking date: '2019-10-01T00:00:00+00:00'
owner: mikesea criticality: breaking
- location: Organization.pinnedRepositories owner: mikesea
description: "`pinnedRepositories` will be removed. Use ProfileOwner.pinnedItems - location: Organization.pinnedRepositories
instead." description:
reason: pinnedRepositories will be removed '`pinnedRepositories` will be removed. Use ProfileOwner.pinnedItems
date: '2019-10-01T00:00:00+00:00' instead.'
criticality: breaking reason: pinnedRepositories will be removed
owner: cheshire137 date: '2019-10-01T00:00:00+00:00'
- location: PullRequest.timeline criticality: breaking
description: "`timeline` will be removed. Use PullRequest.timelineItems instead." owner: cheshire137
reason: "`timeline` will be removed" - location: PullRequest.timeline
date: '2019-10-01T00:00:00+00:00' description: '`timeline` will be removed. Use PullRequest.timelineItems instead.'
criticality: breaking reason: '`timeline` will be removed'
owner: mikesea date: '2019-10-01T00:00:00+00:00'
- location: RepositoryOwner.pinnedRepositories criticality: breaking
description: "`pinnedRepositories` will be removed. Use ProfileOwner.pinnedItems owner: mikesea
instead." - location: RepositoryOwner.pinnedRepositories
reason: pinnedRepositories will be removed description:
date: '2019-10-01T00:00:00+00:00' '`pinnedRepositories` will be removed. Use ProfileOwner.pinnedItems
criticality: breaking instead.'
owner: cheshire137 reason: pinnedRepositories will be removed
- location: User.pinnedRepositories date: '2019-10-01T00:00:00+00:00'
description: "`pinnedRepositories` will be removed. Use ProfileOwner.pinnedItems criticality: breaking
instead." owner: cheshire137
reason: pinnedRepositories will be removed - location: User.pinnedRepositories
date: '2019-10-01T00:00:00+00:00' description:
criticality: breaking '`pinnedRepositories` will be removed. Use ProfileOwner.pinnedItems
owner: cheshire137 instead.'
- location: AssignedEvent.user reason: pinnedRepositories will be removed
description: "`user` will be removed. Use the `assignee` field instead." date: '2019-10-01T00:00:00+00:00'
reason: Assignees can now be mannequins. criticality: breaking
date: '2020-01-01T00:00:00+00:00' owner: cheshire137
criticality: breaking - location: AssignedEvent.user
owner: tambling description: '`user` will be removed. Use the `assignee` field instead.'
- location: UnassignedEvent.user reason: Assignees can now be mannequins.
description: "`user` will be removed. Use the `assignee` field instead." date: '2020-01-01T00:00:00+00:00'
reason: Assignees can now be mannequins. criticality: breaking
date: '2020-01-01T00:00:00+00:00' owner: tambling
criticality: breaking - location: UnassignedEvent.user
owner: tambling 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: upcoming_changes:
- location: Migration.uploadUrlTemplate - location: Migration.uploadUrlTemplate
description: "`uploadUrlTemplate` will be removed. Use `uploadUrl` instead." description: '`uploadUrlTemplate` will be removed. Use `uploadUrl` instead.'
reason: "`uploadUrlTemplate` is being removed because it is not a standard URL and reason:
adds an extra user step." '`uploadUrlTemplate` is being removed because it is not a standard URL and
date: '2019-04-01T00:00:00+00:00' adds an extra user step.'
criticality: breaking date: '2019-04-01T00:00:00+00:00'
owner: tambling criticality: breaking
- location: AssignedEvent.user owner: tambling
description: "`user` will be removed. Use the `assignee` field instead." - location: AssignedEvent.user
reason: Assignees can now be mannequins. description: '`user` will be removed. Use the `assignee` field instead.'
date: '2020-01-01T00:00:00+00:00' reason: Assignees can now be mannequins.
criticality: breaking date: '2020-01-01T00:00:00+00:00'
owner: tambling criticality: breaking
- location: EnterpriseBillingInfo.availableSeats owner: tambling
description: "`availableSeats` will be removed. Use EnterpriseBillingInfo.totalAvailableLicenses - location: EnterpriseBillingInfo.availableSeats
instead." description:
reason: "`availableSeats` will be replaced with `totalAvailableLicenses` to provide '`availableSeats` will be removed. Use EnterpriseBillingInfo.totalAvailableLicenses
more clarity on the value being returned" instead.'
date: '2020-01-01T00:00:00+00:00' reason:
criticality: breaking '`availableSeats` will be replaced with `totalAvailableLicenses` to provide
owner: BlakeWilliams more clarity on the value being returned'
- location: EnterpriseBillingInfo.seats date: '2020-01-01T00:00:00+00:00'
description: "`seats` will be removed. Use EnterpriseBillingInfo.totalLicenses instead." criticality: breaking
reason: "`seats` will be replaced with `totalLicenses` to provide more clarity on owner: BlakeWilliams
the value being returned" - location: EnterpriseBillingInfo.seats
date: '2020-01-01T00:00:00+00:00' description: '`seats` will be removed. Use EnterpriseBillingInfo.totalLicenses instead.'
criticality: breaking reason:
owner: BlakeWilliams '`seats` will be replaced with `totalLicenses` to provide more clarity on
- location: UnassignedEvent.user the value being returned'
description: "`user` will be removed. Use the `assignee` field instead." date: '2020-01-01T00:00:00+00:00'
reason: Assignees can now be mannequins. criticality: breaking
date: '2020-01-01T00:00:00+00:00' owner: BlakeWilliams
criticality: breaking - location: UnassignedEvent.user
owner: tambling description: '`user` will be removed. Use the `assignee` field instead.'
- location: Sponsorship.maintainer reason: Assignees can now be mannequins.
description: "`maintainer` will be removed. Use `Sponsorship.sponsorable` instead." date: '2020-01-01T00:00:00+00:00'
reason: "`Sponsorship.maintainer` will be removed." criticality: breaking
date: '2020-04-01T00:00:00+00:00' owner: tambling
criticality: breaking - location: Sponsorship.maintainer
owner: antn description: '`maintainer` will be removed. Use `Sponsorship.sponsorable` instead.'
- location: EnterprisePendingMemberInvitationEdge.isUnlicensed reason: '`Sponsorship.maintainer` will be removed.'
description: "`isUnlicensed` will be removed." date: '2020-04-01T00:00:00+00:00'
reason: All pending members consume a license criticality: breaking
date: '2020-07-01T00:00:00+00:00' owner: antn
criticality: breaking - location: EnterprisePendingMemberInvitationEdge.isUnlicensed
owner: BrentWheeldon description: '`isUnlicensed` will be removed.'
- location: EnterpriseOwnerInfo.pendingCollaborators reason: All pending members consume a license
description: "`pendingCollaborators` will be removed. Use the `pendingCollaboratorInvitations` date: '2020-07-01T00:00:00+00:00'
field instead." criticality: breaking
reason: Repository invitations can now be associated with an email, not only an owner: BrentWheeldon
invitee. - location: EnterpriseOwnerInfo.pendingCollaborators
date: '2020-10-01T00:00:00+00:00' description:
criticality: breaking '`pendingCollaborators` will be removed. Use the `pendingCollaboratorInvitations`
owner: jdennes field instead.'
- location: Issue.timeline reason:
description: "`timeline` will be removed. Use Issue.timelineItems instead." Repository invitations can now be associated with an email, not only an
reason: "`timeline` will be removed" invitee.
date: '2020-10-01T00:00:00+00:00' date: '2020-10-01T00:00:00+00:00'
criticality: breaking criticality: breaking
owner: mikesea owner: jdennes
- location: PullRequest.timeline - location: Issue.timeline
description: "`timeline` will be removed. Use PullRequest.timelineItems instead." description: '`timeline` will be removed. Use Issue.timelineItems instead.'
reason: "`timeline` will be removed" reason: '`timeline` will be removed'
date: '2020-10-01T00:00:00+00:00' date: '2020-10-01T00:00:00+00:00'
criticality: breaking criticality: breaking
owner: mikesea owner: mikesea
- location: RepositoryCollaboratorEdge.permission - location: PullRequest.timeline
description: Type for `permission` will change from `RepositoryPermission!` to `String`. description: '`timeline` will be removed. Use PullRequest.timelineItems instead.'
reason: This field may return additional values reason: '`timeline` will be removed'
date: '2020-10-01T00:00:00+00:00' date: '2020-10-01T00:00:00+00:00'
criticality: breaking criticality: breaking
owner: oneill38 owner: mikesea
- location: RepositoryInvitation.permission - location: RepositoryCollaboratorEdge.permission
description: Type for `permission` will change from `RepositoryPermission!` to `String`. description: Type for `permission` will change from `RepositoryPermission!` to `String`.
reason: This field may return additional values reason: This field may return additional values
date: '2020-10-01T00:00:00+00:00' date: '2020-10-01T00:00:00+00:00'
criticality: breaking criticality: breaking
owner: oneill38 owner: oneill38
- location: RepositoryInvitationOrderField.INVITEE_LOGIN - location: RepositoryInvitation.permission
description: "`INVITEE_LOGIN` will be removed." description: Type for `permission` will change from `RepositoryPermission!` to `String`.
reason: "`INVITEE_LOGIN` is no longer a valid field value. Repository invitations reason: This field may return additional values
can now be associated with an email, not only an invitee." date: '2020-10-01T00:00:00+00:00'
date: '2020-10-01T00:00:00+00:00' criticality: breaking
criticality: breaking owner: oneill38
owner: jdennes - location: RepositoryInvitationOrderField.INVITEE_LOGIN
- location: Sponsorship.sponsor description: '`INVITEE_LOGIN` will be removed.'
description: "`sponsor` will be removed. Use `Sponsorship.sponsorEntity` instead." reason:
reason: "`Sponsorship.sponsor` will be removed." '`INVITEE_LOGIN` is no longer a valid field value. Repository invitations
date: '2020-10-01T00:00:00+00:00' can now be associated with an email, not only an invitee.'
criticality: breaking date: '2020-10-01T00:00:00+00:00'
owner: nholden criticality: breaking
- location: TeamRepositoryEdge.permission owner: jdennes
description: Type for `permission` will change from `RepositoryPermission!` to `String`. - location: Sponsorship.sponsor
reason: This field may return additional values description: '`sponsor` will be removed. Use `Sponsorship.sponsorEntity` instead.'
date: '2020-10-01T00:00:00+00:00' reason: '`Sponsorship.sponsor` will be removed.'
criticality: breaking date: '2020-10-01T00:00:00+00:00'
owner: oneill38 criticality: breaking
- location: EnterpriseMemberEdge.isUnlicensed owner: nholden
description: "`isUnlicensed` will be removed." - location: TeamRepositoryEdge.permission
reason: All members consume a license description: Type for `permission` will change from `RepositoryPermission!` to `String`.
date: '2021-01-01T00:00:00+00:00' reason: This field may return additional values
criticality: breaking date: '2020-10-01T00:00:00+00:00'
owner: BrentWheeldon criticality: breaking
- location: EnterpriseOutsideCollaboratorEdge.isUnlicensed owner: oneill38
description: "`isUnlicensed` will be removed." - location: EnterpriseMemberEdge.isUnlicensed
reason: All outside collaborators consume a license description: '`isUnlicensed` will be removed.'
date: '2021-01-01T00:00:00+00:00' reason: All members consume a license
criticality: breaking date: '2021-01-01T00:00:00+00:00'
owner: BrentWheeldon criticality: breaking
- location: EnterprisePendingCollaboratorEdge.isUnlicensed owner: BrentWheeldon
description: "`isUnlicensed` will be removed." - location: EnterpriseOutsideCollaboratorEdge.isUnlicensed
reason: All pending collaborators consume a license description: '`isUnlicensed` will be removed.'
date: '2021-01-01T00:00:00+00:00' reason: All outside collaborators consume a license
criticality: breaking date: '2021-01-01T00:00:00+00:00'
owner: BrentWheeldon 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: upcoming_changes:
- location: Migration.uploadUrlTemplate - location: Migration.uploadUrlTemplate
description: "`uploadUrlTemplate` will be removed. Use `uploadUrl` instead." description: '`uploadUrlTemplate` will be removed. Use `uploadUrl` instead.'
reason: "`uploadUrlTemplate` is being removed because it is not a standard URL and reason:
adds an extra user step." '`uploadUrlTemplate` is being removed because it is not a standard URL and
date: '2019-04-01T00:00:00+00:00' adds an extra user step.'
criticality: breaking date: '2019-04-01T00:00:00+00:00'
owner: tambling criticality: breaking
- location: AssignedEvent.user owner: tambling
description: "`user` will be removed. Use the `assignee` field instead." - location: AssignedEvent.user
reason: Assignees can now be mannequins. description: '`user` will be removed. Use the `assignee` field instead.'
date: '2020-01-01T00:00:00+00:00' reason: Assignees can now be mannequins.
criticality: breaking date: '2020-01-01T00:00:00+00:00'
owner: tambling criticality: breaking
- location: EnterpriseBillingInfo.availableSeats owner: tambling
description: "`availableSeats` will be removed. Use EnterpriseBillingInfo.totalAvailableLicenses - location: EnterpriseBillingInfo.availableSeats
instead." description:
reason: "`availableSeats` will be replaced with `totalAvailableLicenses` to provide '`availableSeats` will be removed. Use EnterpriseBillingInfo.totalAvailableLicenses
more clarity on the value being returned" instead.'
date: '2020-01-01T00:00:00+00:00' reason:
criticality: breaking '`availableSeats` will be replaced with `totalAvailableLicenses` to provide
owner: BlakeWilliams more clarity on the value being returned'
- location: EnterpriseBillingInfo.seats date: '2020-01-01T00:00:00+00:00'
description: "`seats` will be removed. Use EnterpriseBillingInfo.totalLicenses instead." criticality: breaking
reason: "`seats` will be replaced with `totalLicenses` to provide more clarity on owner: BlakeWilliams
the value being returned" - location: EnterpriseBillingInfo.seats
date: '2020-01-01T00:00:00+00:00' description: '`seats` will be removed. Use EnterpriseBillingInfo.totalLicenses instead.'
criticality: breaking reason:
owner: BlakeWilliams '`seats` will be replaced with `totalLicenses` to provide more clarity on
- location: UnassignedEvent.user the value being returned'
description: "`user` will be removed. Use the `assignee` field instead." date: '2020-01-01T00:00:00+00:00'
reason: Assignees can now be mannequins. criticality: breaking
date: '2020-01-01T00:00:00+00:00' owner: BlakeWilliams
criticality: breaking - location: UnassignedEvent.user
owner: tambling description: '`user` will be removed. Use the `assignee` field instead.'
- location: Query.sponsorsListing reason: Assignees can now be mannequins.
description: "`sponsorsListing` will be removed. Use `Sponsorable.sponsorsListing` date: '2020-01-01T00:00:00+00:00'
instead." criticality: breaking
reason: "`Query.sponsorsListing` will be removed." owner: tambling
date: '2020-04-01T00:00:00+00:00' - location: Query.sponsorsListing
criticality: breaking description:
owner: antn '`sponsorsListing` will be removed. Use `Sponsorable.sponsorsListing`
- location: Sponsorship.maintainer instead.'
description: "`maintainer` will be removed. Use `Sponsorship.sponsorable` instead." reason: '`Query.sponsorsListing` will be removed.'
reason: "`Sponsorship.maintainer` will be removed." date: '2020-04-01T00:00:00+00:00'
date: '2020-04-01T00:00:00+00:00' criticality: breaking
criticality: breaking owner: antn
owner: antn - location: Sponsorship.maintainer
- location: EnterprisePendingMemberInvitationEdge.isUnlicensed description: '`maintainer` will be removed. Use `Sponsorship.sponsorable` instead.'
description: "`isUnlicensed` will be removed." reason: '`Sponsorship.maintainer` will be removed.'
reason: All pending members consume a license date: '2020-04-01T00:00:00+00:00'
date: '2020-07-01T00:00:00+00:00' criticality: breaking
criticality: breaking owner: antn
owner: BrentWheeldon - location: EnterprisePendingMemberInvitationEdge.isUnlicensed
- location: EnterpriseOwnerInfo.pendingCollaborators description: '`isUnlicensed` will be removed.'
description: "`pendingCollaborators` will be removed. Use the `pendingCollaboratorInvitations` reason: All pending members consume a license
field instead." date: '2020-07-01T00:00:00+00:00'
reason: Repository invitations can now be associated with an email, not only an criticality: breaking
invitee. owner: BrentWheeldon
date: '2020-10-01T00:00:00+00:00' - location: EnterpriseOwnerInfo.pendingCollaborators
criticality: breaking description:
owner: jdennes '`pendingCollaborators` will be removed. Use the `pendingCollaboratorInvitations`
- location: Issue.timeline field instead.'
description: "`timeline` will be removed. Use Issue.timelineItems instead." reason:
reason: "`timeline` will be removed" Repository invitations can now be associated with an email, not only an
date: '2020-10-01T00:00:00+00:00' invitee.
criticality: breaking date: '2020-10-01T00:00:00+00:00'
owner: mikesea criticality: breaking
- location: PullRequest.timeline owner: jdennes
description: "`timeline` will be removed. Use PullRequest.timelineItems instead." - location: Issue.timeline
reason: "`timeline` will be removed" description: '`timeline` will be removed. Use Issue.timelineItems instead.'
date: '2020-10-01T00:00:00+00:00' reason: '`timeline` will be removed'
criticality: breaking date: '2020-10-01T00:00:00+00:00'
owner: mikesea criticality: breaking
- location: RepositoryInvitationOrderField.INVITEE_LOGIN owner: mikesea
description: "`INVITEE_LOGIN` will be removed." - location: PullRequest.timeline
reason: "`INVITEE_LOGIN` is no longer a valid field value. Repository invitations description: '`timeline` will be removed. Use PullRequest.timelineItems instead.'
can now be associated with an email, not only an invitee." reason: '`timeline` will be removed'
date: '2020-10-01T00:00:00+00:00' date: '2020-10-01T00:00:00+00:00'
criticality: breaking criticality: breaking
owner: jdennes owner: mikesea
- location: Sponsorship.sponsor - location: RepositoryInvitationOrderField.INVITEE_LOGIN
description: "`sponsor` will be removed. Use `Sponsorship.sponsorEntity` instead." description: '`INVITEE_LOGIN` will be removed.'
reason: "`Sponsorship.sponsor` will be removed." reason:
date: '2020-10-01T00:00:00+00:00' '`INVITEE_LOGIN` is no longer a valid field value. Repository invitations
criticality: breaking can now be associated with an email, not only an invitee.'
owner: nholden date: '2020-10-01T00:00:00+00:00'
- location: EnterpriseMemberEdge.isUnlicensed criticality: breaking
description: "`isUnlicensed` will be removed." owner: jdennes
reason: All members consume a license - location: Sponsorship.sponsor
date: '2021-01-01T00:00:00+00:00' description: '`sponsor` will be removed. Use `Sponsorship.sponsorEntity` instead.'
criticality: breaking reason: '`Sponsorship.sponsor` will be removed.'
owner: BrentWheeldon date: '2020-10-01T00:00:00+00:00'
- location: EnterpriseOutsideCollaboratorEdge.isUnlicensed criticality: breaking
description: "`isUnlicensed` will be removed." owner: nholden
reason: All outside collaborators consume a license - location: EnterpriseMemberEdge.isUnlicensed
date: '2021-01-01T00:00:00+00:00' description: '`isUnlicensed` will be removed.'
criticality: breaking reason: All members consume a license
owner: BrentWheeldon date: '2021-01-01T00:00:00+00:00'
- location: EnterprisePendingCollaboratorEdge.isUnlicensed criticality: breaking
description: "`isUnlicensed` will be removed." owner: BrentWheeldon
reason: All pending collaborators consume a license - location: EnterpriseOutsideCollaboratorEdge.isUnlicensed
date: '2021-01-01T00:00:00+00:00' description: '`isUnlicensed` will be removed.'
criticality: breaking reason: All outside collaborators consume a license
owner: BrentWheeldon date: '2021-01-01T00:00:00+00:00'
- location: MergeStateStatus.DRAFT criticality: breaking
description: "`DRAFT` will be removed. Use PullRequest.isDraft instead." owner: BrentWheeldon
reason: DRAFT state will be removed from this enum and `isDraft` should be used - location: EnterprisePendingCollaboratorEdge.isUnlicensed
instead description: '`isUnlicensed` will be removed.'
date: '2021-01-01T00:00:00+00:00' reason: All pending collaborators consume a license
criticality: breaking date: '2021-01-01T00:00:00+00:00'
owner: nplasterer 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 - rest
- graphql - graphql
- insights - insights
- desktop - desktop

View File

@@ -2,8 +2,7 @@ header:
github_docs: GitHub Docs github_docs: GitHub Docs
contact: Contact contact: Contact
notices: notices:
ghae_silent_launch: 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.
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: release_candidate:
# The version name is rendered before the below text via includes/header-notification.html # The version name is rendered before the below text via includes/header-notification.html
' is currently under limited release as a release candidate.' ' is currently under limited release as a release candidate.'
@@ -30,7 +29,7 @@ toc:
guides: Guides guides: Guides
whats_new: What's new whats_new: What's new
pages: pages:
article_version: "Article version:" article_version: 'Article version:'
miniToc: In this article miniToc: In this article
errors: errors:
oops: Ooops! oops: Ooops!

View File

@@ -15,7 +15,7 @@ contact_dmca: >-
contact_privacy: >- contact_privacy: >-
{% if currentVersion == "free-pro-team@latest" %}[Privacy contact form](https://github.com/contact/privacy){% endif %} {% 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)' 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 ## Use these variables when referring specifically to a location within a product
product_location: >- product_location: >-
{% if enterpriseServerVersions contains currentVersion %}your GitHub Enterprise Server instance{% elsif currentVersion == "github-ae@latest" %}your enterprise{% else %}GitHub{% endif %} {% 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. # 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! # Do not use in other situations!
product_location_enterprise: 'your GitHub Enterprise Server instance' product_location_enterprise: 'your GitHub Enterprise Server instance'
@@ -170,8 +170,7 @@ signout_link: >-
raw_github_com: >- raw_github_com: >-
{% if currentVersion == "free-pro-team@latest" %}raw.githubusercontent.com{% else %}[hostname]/user/repo/raw{% endif %} {% if currentVersion == "free-pro-team@latest" %}raw.githubusercontent.com{% else %}[hostname]/user/repo/raw{% endif %}
# GitHub Enterprise Server past versions # GitHub Enterprise Server past versions
current-340-version: current-340-version: '11.10.354'
'11.10.354'
# Developer site product variables # Developer site product variables
# Use this inside command-line and other code blocks # 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 %} {% 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 # Use this all other code blocks
graphql_url_code: >- 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 version: 1
ownership: ownership:
- name: docs-internal - name: docs-internal
long_name: GitHub Help Docs long_name: GitHub Help Docs
kind: heroku kind: heroku
repo: https://github.com/github/docs-internal repo: https://github.com/github/docs-internal
team: github/docs-engineering team: github/docs-engineering
maintainer: zeke maintainer: zeke
exec_sponsor: danaiszuul exec_sponsor: danaiszuul
product_manager: jwargo product_manager: jwargo
mention: github/docs-engineering mention: github/docs-engineering
qos: critical qos: critical
dependencies: [] dependencies: []
sev1: sev1:
pagerduty: https://github.pagerduty.com/escalation_policies#PN57VQ1 pagerduty: https://github.pagerduty.com/escalation_policies#PN57VQ1
tta: 30 min tta: 30 min
sev2: sev2:
issue: https://github.com/github/docs-internal/issues issue: https://github.com/github/docs-internal/issues
tta: 5 business days tta: 5 business days
sev3: sev3:
slack: docs-engineering slack: docs-engineering
tta: 30 min 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", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" "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": { "private": {
"version": "0.1.8", "version": "0.1.8",
"resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",

View File

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