Merge branch 'main' into find-page-in-version-redux
1
.eslintignore
Normal file
@@ -0,0 +1 @@
|
|||||||
|
dist/
|
||||||
28
.eslintrc.js
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
module.exports = {
|
||||||
|
env: {
|
||||||
|
browser: true,
|
||||||
|
commonjs: true,
|
||||||
|
es2020: true,
|
||||||
|
node: true
|
||||||
|
},
|
||||||
|
parser: 'babel-eslint',
|
||||||
|
extends: [
|
||||||
|
'eslint:recommended',
|
||||||
|
'standard'
|
||||||
|
],
|
||||||
|
parserOptions: {
|
||||||
|
ecmaVersion: 11
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
},
|
||||||
|
overrides: [
|
||||||
|
{
|
||||||
|
files: [
|
||||||
|
'**/tests/**/*.js'
|
||||||
|
],
|
||||||
|
env: {
|
||||||
|
jest: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -22,6 +22,6 @@ Thanks again!
|
|||||||
|
|
||||||
### Check off the following:
|
### Check off the following:
|
||||||
- [ ] All of the tests are passing.
|
- [ ] All of the tests are passing.
|
||||||
- [ ] I have reviewed my changes in staging.
|
- [ ] I have reviewed my changes in staging. (look for the **deploy-to-heroku** link in your pull request, then click **View deployment**)
|
||||||
- [ ] For content changes, I have reviewed the [localization checklist](https://github.com/github/docs/blob/main/contributing/localization-checklist.md)
|
- [ ] For content changes, I have reviewed the [localization checklist](https://github.com/github/docs/blob/main/contributing/localization-checklist.md)
|
||||||
- [ ] For content changes, I have reviewed the [Content style guide for GitHub Docs](https://github.com/github/docs/blob/main/contributing/content-style-guide.md).
|
- [ ] For content changes, I have reviewed the [Content style guide for GitHub Docs](https://github.com/github/docs/blob/main/contributing/content-style-guide.md).
|
||||||
|
|||||||
2
.github/allowed-actions.js
vendored
@@ -22,7 +22,7 @@ module.exports = [
|
|||||||
'juliangruber/find-pull-request-action@64d55773c959748ad30a4184f4dc102af1669f7b',
|
'juliangruber/find-pull-request-action@64d55773c959748ad30a4184f4dc102af1669f7b',
|
||||||
'juliangruber/read-file-action@e0a316da496006ffd19142f0fd594a1783f3b512',
|
'juliangruber/read-file-action@e0a316da496006ffd19142f0fd594a1783f3b512',
|
||||||
'pascalgn/automerge-action@c9bd182',
|
'pascalgn/automerge-action@c9bd182',
|
||||||
'peter-evans/create-issue-from-file@35e304e2a12caac08c568247a2cb46ecd0c3ecc5',
|
'peter-evans/create-issue-from-file@a04ce672e3acedb1f8e416b46716ddfd09905326',
|
||||||
'peter-evans/create-pull-request@938e6aea6f8dbdaced2064e948cb806c77fe87b8',
|
'peter-evans/create-pull-request@938e6aea6f8dbdaced2064e948cb806c77fe87b8',
|
||||||
'rachmari/actions-add-new-issue-to-column@1a459ef92308ba7c9c9dc2fcdd72f232495574a9',
|
'rachmari/actions-add-new-issue-to-column@1a459ef92308ba7c9c9dc2fcdd72f232495574a9',
|
||||||
'rachmari/labeler@832d42ec5523f3c6d46e8168de71cd54363e3e2e',
|
'rachmari/labeler@832d42ec5523f3c6d46e8168de71cd54363e3e2e',
|
||||||
|
|||||||
25
.github/workflows/60-days-stale-check.yml
vendored
@@ -1,20 +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-issue-labels: 'never-stale'
|
||||||
|
|||||||
8
.github/workflows/auto-label-prs.yml
vendored
@@ -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 }}'
|
||||||
|
|||||||
8
.github/workflows/automerge-dependencies.yml
vendored
@@ -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
|
||||||
|
|||||||
20
.github/workflows/automerge.yml
vendored
@@ -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'
|
||||||
|
|||||||
12
.github/workflows/browser-test.yml
vendored
@@ -20,18 +20,22 @@ jobs:
|
|||||||
paths: '[".github/workflows/browser-test.yml","assets/**", "content/**", "data/**", "includes/**", "javascripts/**", "jest-puppeteer.config.js", "jest.config.js", "layouts/**", "lib/**", "middleware/**", "package-lock.json", "package.json", "server.js", "translations/**", "webpack.config.js"]'
|
paths: '[".github/workflows/browser-test.yml","assets/**", "content/**", "data/**", "includes/**", "javascripts/**", "jest-puppeteer.config.js", "jest.config.js", "layouts/**", "lib/**", "middleware/**", "package-lock.json", "package.json", "server.js", "translations/**", "webpack.config.js"]'
|
||||||
build:
|
build:
|
||||||
needs: see_if_should_skip
|
needs: see_if_should_skip
|
||||||
if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }}
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
# Each of these ifs needs to be repeated at each step to make sure the required check still runs
|
||||||
|
# Even if if doesn't do anything
|
||||||
|
- if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }}
|
||||||
|
name: Checkout
|
||||||
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
|
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
|
||||||
|
|
||||||
- name: Install
|
- if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }}
|
||||||
|
name: Install
|
||||||
uses: ianwalter/puppeteer@12728ddef82390d1ecd4732fb543f62177392fbb
|
uses: ianwalter/puppeteer@12728ddef82390d1ecd4732fb543f62177392fbb
|
||||||
with:
|
with:
|
||||||
args: npm ci
|
args: npm ci
|
||||||
|
|
||||||
- name: Test
|
- if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }}
|
||||||
|
name: Test
|
||||||
uses: ianwalter/puppeteer@12728ddef82390d1ecd4732fb543f62177392fbb
|
uses: ianwalter/puppeteer@12728ddef82390d1ecd4732fb543f62177392fbb
|
||||||
with:
|
with:
|
||||||
args: npm run browser-test
|
args: npm run browser-test
|
||||||
|
|||||||
45
.github/workflows/check-all-english-links.yml
vendored
@@ -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,27 +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
|
||||||
- name: Check if any broken links
|
- if: ${{ failure() }}
|
||||||
id: check
|
name: Get title for issue
|
||||||
run: |
|
id: check
|
||||||
if [ "$(grep '0 broken links found' broken_links.md)" ]; then
|
run: echo "::set-output name=title::$(head -1 broken_links.md)"
|
||||||
echo ::set-output name=continue::no
|
- if: ${{ failure() }}
|
||||||
else
|
name: Create issue from file
|
||||||
echo "::set-output name=continue::yes"
|
uses: peter-evans/create-issue-from-file@a04ce672e3acedb1f8e416b46716ddfd09905326
|
||||||
echo "::set-output name=title::$(head -1 broken_links.md)"
|
with:
|
||||||
fi
|
token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
|
||||||
- if: ${{ steps.check.outputs.continue == 'yes' }}
|
title: ${{ steps.check.outputs.title }}
|
||||||
name: Create issue from file
|
content-filepath: ./broken_links.md
|
||||||
uses: peter-evans/create-issue-from-file@35e304e2a12caac08c568247a2cb46ecd0c3ecc5
|
labels: broken link report
|
||||||
with:
|
|
||||||
token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
|
|
||||||
title: ${{ steps.check.outputs.title }}
|
|
||||||
content-filepath: ./broken_links.md
|
|
||||||
labels: broken link report
|
|
||||||
|
|||||||
20
.github/workflows/codeql.yml
vendored
@@ -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
|
||||||
|
|||||||
10
.github/workflows/crowdin.yml
vendored
@@ -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 }}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
137
.github/workflows/first-responder-docs-content.yml
vendored
@@ -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"
|
|
||||||
|
|||||||
4
.github/workflows/js-lint.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
cancel_others: 'false'
|
cancel_others: 'false'
|
||||||
github_token: ${{ github.token }}
|
github_token: ${{ github.token }}
|
||||||
paths: '["**/*.js", "package*.json", ".github/workflows/js-lint.yml"]'
|
paths: '["**/*.js", "package*.json", ".github/workflows/js-lint.yml", ".eslint*"]'
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -53,7 +53,7 @@ jobs:
|
|||||||
run: npm ci
|
run: npm ci
|
||||||
|
|
||||||
- name: Run linter
|
- name: Run linter
|
||||||
run: npx standard
|
run: npx eslint .
|
||||||
|
|
||||||
- name: Check dependencies
|
- name: Check dependencies
|
||||||
run: npm run check-deps
|
run: npm run check-deps
|
||||||
|
|||||||
3
.github/workflows/merged-notification.yml
vendored
@@ -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:
|
||||||
|
|||||||
4
.github/workflows/pa11y.yml
vendored
@@ -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
|
||||||
|
|||||||
16
.github/workflows/ping-staging-apps.yml
vendored
@@ -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
|
||||||
|
|||||||
81
.github/workflows/remove-unused-assets.yml
vendored
@@ -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
|
||||||
|
|||||||
11
.github/workflows/repo-freeze-check.yml
vendored
@@ -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
|
|
||||||
|
|||||||
21
.github/workflows/repo-freeze-reminders.yml
vendored
@@ -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!
|
|
||||||
|
|||||||
106
.github/workflows/repo-sync.yml
vendored
@@ -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
|
|
||||||
|
|||||||
20
.github/workflows/send-eng-issues-to-backlog.yml
vendored
@@ -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 {
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
6
.github/workflows/test-translations.yml
vendored
@@ -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:
|
||||||
@@ -38,7 +38,7 @@ jobs:
|
|||||||
run: npm ci
|
run: npm ci
|
||||||
|
|
||||||
- name: Run linter
|
- name: Run linter
|
||||||
run: npx standard
|
run: npx eslint .
|
||||||
|
|
||||||
- name: Check dependencies
|
- name: Check dependencies
|
||||||
run: npm run check-deps
|
run: npm run check-deps
|
||||||
@@ -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'
|
||||||
|
|||||||
7
.github/workflows/test-windows.yml
vendored
@@ -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'
|
||||||
|
|||||||
28
.github/workflows/test.yml
vendored
@@ -31,7 +31,6 @@ jobs:
|
|||||||
|
|
||||||
test:
|
test:
|
||||||
needs: see_if_should_skip
|
needs: see_if_should_skip
|
||||||
if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }}
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 60
|
timeout-minutes: 60
|
||||||
strategy:
|
strategy:
|
||||||
@@ -39,20 +38,26 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
test-group: [content, meta, rendering, routing, unit, links-and-images]
|
test-group: [content, meta, rendering, routing, unit, links-and-images]
|
||||||
steps:
|
steps:
|
||||||
- name: Check out repo
|
# Each of these ifs needs to be repeated at each step to make sure the required check still runs
|
||||||
|
# Even if if doesn't do anything
|
||||||
|
- if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }}
|
||||||
|
name: Check out repo
|
||||||
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
|
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
|
||||||
|
|
||||||
- name: Setup node
|
- if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }}
|
||||||
|
name: Setup node
|
||||||
uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d
|
uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d
|
||||||
with:
|
with:
|
||||||
node-version: 14.x
|
node-version: 14.x
|
||||||
|
|
||||||
- name: Get npm cache directory
|
- if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }}
|
||||||
|
name: Get npm cache directory
|
||||||
id: npm-cache
|
id: npm-cache
|
||||||
run: |
|
run: |
|
||||||
echo "::set-output name=dir::$(npm config get cache)"
|
echo "::set-output name=dir::$(npm config get cache)"
|
||||||
|
|
||||||
- name: Cache node modules
|
- if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }}
|
||||||
|
name: Cache node modules
|
||||||
uses: actions/cache@0781355a23dac32fd3bac414512f4b903437991a
|
uses: actions/cache@0781355a23dac32fd3bac414512f4b903437991a
|
||||||
with:
|
with:
|
||||||
path: ${{ steps.npm-cache.outputs.dir }}
|
path: ${{ steps.npm-cache.outputs.dir }}
|
||||||
@@ -60,20 +65,23 @@ jobs:
|
|||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-node-
|
${{ runner.os }}-node-
|
||||||
|
|
||||||
- name: Install dependencies
|
- if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }}
|
||||||
|
name: Install dependencies
|
||||||
run: npm ci
|
run: npm ci
|
||||||
|
|
||||||
- name: Run build script
|
- if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }}
|
||||||
|
name: Run build script
|
||||||
run: npm run build
|
run: npm run build
|
||||||
|
|
||||||
- name: Run tests
|
- if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }}
|
||||||
|
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'
|
||||||
|
|||||||
86
.github/workflows/translations.yml
vendored
@@ -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']
|
||||||
})
|
})
|
||||||
|
|||||||
73
.github/workflows/triage-issue-comments.yml
vendored
@@ -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'
|
||||||
|
|||||||
26
.github/workflows/triage-issues.yml
vendored
@@ -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'
|
||||||
|
|||||||
26
.github/workflows/triage-pull-requests.yml
vendored
@@ -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'
|
||||||
|
|||||||
18
.github/workflows/triage-stale-check.yml
vendored
@@ -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,10 +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-issue-labels: 'never-stale'
|
||||||
|
|||||||
109
.github/workflows/update-graphql-files.yml
vendored
@@ -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
@@ -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
@@ -0,0 +1 @@
|
|||||||
|
translations/
|
||||||
12
.prettierrc.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"files":[
|
||||||
|
"**/*.{yml,yaml}"
|
||||||
|
],
|
||||||
|
"options": {
|
||||||
|
"singleQuote": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -114,7 +114,8 @@ You can browse existing issues to find something that needs help!
|
|||||||
|
|
||||||
### Labels
|
### Labels
|
||||||
Labels can help you find an issue you'd like to help with.
|
Labels can help you find an issue you'd like to help with.
|
||||||
- The [`good-first-issue` label](https://github.com/github/docs/issues?q=is%3Aopen+is%3Aissue+label%3Agood-first-issue) is for problems or updates we think are ideal for beginners.
|
- The [`help wanted` label](https://github.com/github/docs/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) is for problems or updates that anyone in the community can start working on.
|
||||||
|
- The [`good first issue` label](https://github.com/github/docs/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) is for problems or updates we think are ideal for beginners.
|
||||||
- The [`content` label](https://github.com/github/docs/issues?q=is%3Aopen+is%3Aissue+label%3Acontent) is for problems or updates in the content on docs.github.com. These will usually require some knowledge of Markdown.
|
- The [`content` label](https://github.com/github/docs/issues?q=is%3Aopen+is%3Aissue+label%3Acontent) is for problems or updates in the content on docs.github.com. These will usually require some knowledge of Markdown.
|
||||||
- The [`engineering` label](https://github.com/github/docs/issues?q=is%3Aopen+is%3Aissue+label%3Aengineering) is for problems or updates in the docs.github.com website. These will usually require some knowledge of JavaScript/Node.js or YAML to fix.
|
- The [`engineering` label](https://github.com/github/docs/issues?q=is%3Aopen+is%3Aissue+label%3Aengineering) is for problems or updates in the docs.github.com website. These will usually require some knowledge of JavaScript/Node.js or YAML to fix.
|
||||||
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 123 KiB |
BIN
assets/images/help/codespaces/choose-sku-vscode.png
Normal file
|
After Width: | Height: | Size: 211 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 295 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 383 KiB |
|
Before Width: | Height: | Size: 228 KiB After Width: | Height: | Size: 165 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 545 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 406 KiB |
BIN
assets/images/help/desktop/discard-multiple-lines.png
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
assets/images/help/desktop/discard-single-line.png
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
assets/images/help/desktop/gear-diff-select.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 535 KiB |
BIN
assets/images/help/settings/feature-preview-setting.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
assets/images/help/settings/improved-container-support.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
318
content/actions/guides/building-and-testing-ruby.md
Normal file
@@ -0,0 +1,318 @@
|
|||||||
|
---
|
||||||
|
title: Building and testing Ruby
|
||||||
|
intro: You can create a continuous integration (CI) workflow to build and test your Ruby project.
|
||||||
|
product: '{% data reusables.gated-features.actions %}'
|
||||||
|
versions:
|
||||||
|
free-pro-team: '*'
|
||||||
|
enterprise-server: '>=2.22'
|
||||||
|
---
|
||||||
|
|
||||||
|
{% data reusables.actions.enterprise-beta %}
|
||||||
|
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||||
|
|
||||||
|
### Introduction
|
||||||
|
|
||||||
|
This guide shows you how to create a continuous integration (CI) workflow that builds and tests a Ruby application. If your CI tests pass, you may want to deploy your code or publish a gem.
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
|
||||||
|
We recommend that you have a basic understanding of Ruby, YAML, workflow configuration options, and how to create a workflow file. For more information, see:
|
||||||
|
|
||||||
|
- [Learn {% data variables.product.prodname_actions %}](/actions/learn-github-actions)
|
||||||
|
- [Ruby in 20 minutes](https://www.ruby-lang.org/en/documentation/quickstart/)
|
||||||
|
|
||||||
|
### Starting with the Ruby workflow template
|
||||||
|
|
||||||
|
{% data variables.product.prodname_dotcom %} provides a Ruby workflow template that will work for most Ruby projects. For more information, see the [Ruby workflow template](https://github.com/actions/starter-workflows/blob/master/ci/ruby.yml).
|
||||||
|
|
||||||
|
To get started quickly, add the template to the `.github/workflows` directory of your repository.
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
name: Ruby
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ $default-branch ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ $default-branch ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up Ruby
|
||||||
|
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
||||||
|
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
||||||
|
# uses: ruby/setup-ruby@v1
|
||||||
|
uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0
|
||||||
|
with:
|
||||||
|
ruby-version: 2.6
|
||||||
|
- name: Install dependencies
|
||||||
|
run: bundle install
|
||||||
|
- name: Run tests
|
||||||
|
run: bundle exec rake
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
|
### Specifying the Ruby version
|
||||||
|
|
||||||
|
The easiest way to specify a Ruby version is by using the `ruby/setup-ruby` action provided by the Ruby organization on GitHub. The action adds any supported Ruby version to `PATH` for each job run in a workflow. For more information see, the [`ruby/setup-ruby`](https://github.com/ruby/setup-ruby).
|
||||||
|
|
||||||
|
Using either Ruby's `ruby/setup-ruby` action or GitHub's `actions/setup-ruby` action is the recommended way of using Ruby with GitHub Actions because it ensures consistent behavior across different runners and different versions of Ruby.
|
||||||
|
|
||||||
|
The `setup-ruby` action takes a Ruby version as an input and configures that version on the runner.
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: 2.6 # Not needed with a .ruby-version file
|
||||||
|
- run: bundle install
|
||||||
|
- run: bundle exec rake
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
|
Alternatively, you can check a `.ruby-version` file into the root of your repository and `setup-ruby` will use the version defined in that file.
|
||||||
|
|
||||||
|
### Testing with multiple versions of Ruby
|
||||||
|
|
||||||
|
You can add a matrix strategy to run your workflow with more than one version of Ruby. For example, you can test your code against the latest patch releases of versions 2.7, 2.6, and 2.5. The 'x' is a wildcard character that matches the latest patch release available for a version.
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
ruby-version: [2.7.x, 2.6.x, 2.5.x]
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
|
Each version of Ruby specified in the `ruby-version` array creates a job that runs the same steps. The {% raw %}`${{ matrix.ruby-version }}`{% endraw %} context is used to access the current job's version. For more information about matrix strategies and contexts, see "Workflow syntax for GitHub Actions" and "Context and expression syntax for GitHub Actions."
|
||||||
|
|
||||||
|
The full updated workflow with a matrix strategy could look like this:
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
name: Ruby CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ $default-branch ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ $default-branch ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
ruby-version: [2.7.x, 2.6.x, 2.5.x]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up Ruby ${{ matrix.ruby-version }}
|
||||||
|
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
||||||
|
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
||||||
|
# uses: ruby/setup-ruby@v1
|
||||||
|
uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0
|
||||||
|
with:
|
||||||
|
ruby-version: ${{ matrix.ruby-version }}
|
||||||
|
- name: Install dependencies
|
||||||
|
run: bundle install
|
||||||
|
- name: Run tests
|
||||||
|
run: bundle exec rake
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
|
### Installing dependencies with Bundler
|
||||||
|
|
||||||
|
The `setup-ruby` action will automatically install bundler for you. The version is determined by your `gemfile.lock` file. If no version is present in your lockfile, then the latest compatible version will be installed.
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: 2.6
|
||||||
|
- run: bundle install
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
|
#### Caching dependencies
|
||||||
|
|
||||||
|
The `setup-ruby` actions provides a method to automatically handle the caching of your gems between runs.
|
||||||
|
|
||||||
|
To enable caching, set the following.
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
steps:
|
||||||
|
- uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
bundler-cache: true
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
|
This will configure bundler to install your gems to `vendor/cache`. For each successful run of your workflow, this folder will be cached by Actions and re-downloaded for subsequent workflow runs. A hash of your gemfile.lock and the Ruby version are used as the cache key. If you install any new gems, or change a version, the cache will be invalidated and bundler will do a fresh install.
|
||||||
|
|
||||||
|
**Caching without setup-ruby**
|
||||||
|
|
||||||
|
For greater control over caching, you can use the `actions/cache` Action directly. For more information, see "[Caching dependencies to speed up your workflow](/actions/automating-your-workflow-with-github-actions/caching-dependencies-to-speed-up-workflows)."
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
steps:
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: vendor/bundle
|
||||||
|
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-gems-
|
||||||
|
- name: Bundle install
|
||||||
|
run: |
|
||||||
|
bundle config path vendor/bundle
|
||||||
|
bundle install --jobs 4 --retry 3
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
|
If you're using a matrix build, you will want to include the matrix variables in your cache key. For example, if you have a matrix strategy for different ruby versions (`matrix.ruby-version`) and different operating systems (`matrix.os`), your workflow steps might look like this:
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
steps:
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: vendor/bundle
|
||||||
|
key: bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby-version }}-${{ hashFiles('**/Gemfile.lock') }}
|
||||||
|
restore-keys: |
|
||||||
|
bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby-version }}-
|
||||||
|
- name: Bundle install
|
||||||
|
run: |
|
||||||
|
bundle config path vendor/bundle
|
||||||
|
bundle install --jobs 4 --retry 3
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
|
### Matrix testing your code
|
||||||
|
|
||||||
|
The following example matrix tests all stable releases and head versions of MRI, JRuby and TruffleRuby on Ubuntu and macOS.
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
name: Matrix Testing
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ $default-branch ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ $default-branch ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ${{ matrix.os }}-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu, macos]
|
||||||
|
ruby: [2.5, 2.6, 2.7, head, debug, jruby, jruby-head, truffleruby, truffleruby-head]
|
||||||
|
continue-on-error: ${{ endsWith(matrix.ruby, 'head') || matrix.ruby == 'debug' }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: ${{ matrix.ruby }}
|
||||||
|
- run: bundle install
|
||||||
|
- run: bundle exec rake
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
|
### Linting your code
|
||||||
|
|
||||||
|
The following example installs `rubocop` and uses it to lint all files. For more information, see [Rubocop](https://github.com/rubocop-hq/rubocop). You can [configure Rubocop](https://docs.rubocop.org/rubocop/configuration.html) to decide on the specific linting rules.
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
name: Linting
|
||||||
|
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: 2.6
|
||||||
|
- run: bundle install
|
||||||
|
- name: Rubocop
|
||||||
|
run: rubocop
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
|
### Publishing Gems
|
||||||
|
|
||||||
|
You can configure your workflow to publish your Ruby package to any package registry you'd like when your CI tests pass.
|
||||||
|
|
||||||
|
You can store any access tokens or credentials needed to publish your package using repository secrets. The following example creates and publishes a package to `GitHub Package Registry` and `RubyGems`.
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
|
||||||
|
name: Ruby Gem
|
||||||
|
|
||||||
|
on:
|
||||||
|
# Manually publish
|
||||||
|
workflow_dispatch:
|
||||||
|
# Alternatively, publish whenever changes are merged to the default branch.
|
||||||
|
push:
|
||||||
|
branches: [ $default-branch ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ $default-branch ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Build + Publish
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up Ruby 2.6
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: 2.6
|
||||||
|
- run: bundle install
|
||||||
|
|
||||||
|
- name: Publish to GPR
|
||||||
|
run: |
|
||||||
|
mkdir -p $HOME/.gem
|
||||||
|
touch $HOME/.gem/credentials
|
||||||
|
chmod 0600 $HOME/.gem/credentials
|
||||||
|
printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
||||||
|
gem build *.gemspec
|
||||||
|
gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
|
||||||
|
env:
|
||||||
|
GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
|
||||||
|
OWNER: ${{ github.repository_owner }}
|
||||||
|
|
||||||
|
- name: Publish to RubyGems
|
||||||
|
run: |
|
||||||
|
mkdir -p $HOME/.gem
|
||||||
|
touch $HOME/.gem/credentials
|
||||||
|
chmod 0600 $HOME/.gem/credentials
|
||||||
|
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
||||||
|
gem build *.gemspec
|
||||||
|
gem push *.gem
|
||||||
|
env:
|
||||||
|
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
@@ -31,6 +31,7 @@ You can use {% data variables.product.prodname_actions %} to create custom conti
|
|||||||
{% link_in_list /building-and-testing-nodejs %}
|
{% link_in_list /building-and-testing-nodejs %}
|
||||||
{% link_in_list /building-and-testing-powershell %}
|
{% link_in_list /building-and-testing-powershell %}
|
||||||
{% link_in_list /building-and-testing-python %}
|
{% link_in_list /building-and-testing-python %}
|
||||||
|
{% link_in_list /building-and-testing-ruby %}
|
||||||
{% link_in_list /building-and-testing-java-with-maven %}
|
{% link_in_list /building-and-testing-java-with-maven %}
|
||||||
{% link_in_list /building-and-testing-java-with-gradle %}
|
{% link_in_list /building-and-testing-java-with-gradle %}
|
||||||
{% link_in_list /building-and-testing-java-with-ant %}
|
{% link_in_list /building-and-testing-java-with-ant %}
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ versions:
|
|||||||
<h2 class="mb-2 font-mktg h1">Code examples</h2>
|
<h2 class="mb-2 font-mktg h1">Code examples</h2>
|
||||||
|
|
||||||
<div class="pr-lg-3 mb-5 mt-3">
|
<div class="pr-lg-3 mb-5 mt-3">
|
||||||
<input class="js-code-example-filter input-lg py-2 px-3 col-12 col-lg-8 form-control" placeholder="Search code examples" type="text" autocomplete="off" />
|
<input class="js-code-example-filter input-lg py-2 px-3 col-12 col-lg-8 form-control" placeholder="Search code examples" type="search" autocomplete="off" aria-label="Search code examples"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="d-flex flex-wrap gutter">
|
<div class="d-flex flex-wrap gutter">
|
||||||
@@ -79,7 +79,7 @@ versions:
|
|||||||
<div class="mb-3">{% octicon "search" width="24" %}</div>
|
<div class="mb-3">{% octicon "search" width="24" %}</div>
|
||||||
<h3 class="text-normal">Sorry, there is no result for <strong class="js-code-example-filter-value"></strong></h3>
|
<h3 class="text-normal">Sorry, there is no result for <strong class="js-code-example-filter-value"></strong></h3>
|
||||||
<p class="my-3 f4">It looks like we don't have an example that fits your filter.<br>Try another filter or add your code example</p>
|
<p class="my-3 f4">It looks like we don't have an example that fits your filter.<br>Try another filter or add your code example</p>
|
||||||
<a href="https://github.com/github/docs/blob/HEAD/data/variables/action_code_examples.yml">Learn how to add a code example {% octicon "arrow-right" %}</a>
|
<a href="https://github.com/github/docs/blob/main/data/variables/action_code_examples.yml">Learn how to add a code example {% octicon "arrow-right" %}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ A job is a set of steps that execute on the same runner. By default, a workflow
|
|||||||
|
|
||||||
#### Steps
|
#### Steps
|
||||||
|
|
||||||
A step is an individual task that can run commands (known as _actions_). Each step in a job executes on the same runner, allowing the actions in that job to share data with each other.
|
A step is an individual task that can run commands in a job. A step can be either an _action_ or a shell command. Each step in a job executes on the same runner, allowing the actions in that job to share data with each other.
|
||||||
|
|
||||||
#### Actions
|
#### Actions
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@ _Actions_ are standalone commands that are combined into _steps_ to create a _jo
|
|||||||
|
|
||||||
#### Runners
|
#### Runners
|
||||||
|
|
||||||
A runner is a server that has the {% data variables.product.prodname_actions %} runner application installed. You can use a runner hosted by {% data variables.product.prodname_dotcom %}, or you can host your own. A runner listens for available jobs, runs one job at a time, and reports the progress, logs, and results back to {% data variables.product.prodname_dotcom %}. For {% data variables.product.prodname_dotcom %}-hosted runners, each job in a workflow runs in a fresh virtual environment.
|
A runner is a server that has the [{% data variables.product.prodname_actions %} runner application](https://github.com/actions/runner) installed. You can use a runner hosted by {% data variables.product.prodname_dotcom %}, or you can host your own. A runner listens for available jobs, runs one job at a time, and reports the progress, logs, and results back to {% data variables.product.prodname_dotcom %}. For {% data variables.product.prodname_dotcom %}-hosted runners, each job in a workflow runs in a fresh virtual environment.
|
||||||
|
|
||||||
{% data variables.product.prodname_dotcom %}-hosted runners are based on Ubuntu Linux, Microsoft Windows, and macOS. For information on {% data variables.product.prodname_dotcom %}-hosted runners, see "[Virtual environments for {% data variables.product.prodname_dotcom %}-hosted runners](/actions/reference/virtual-environments-for-github-hosted-runners)." If you need a different operating system or require a specific hardware configuration, you can host your own runners. For information on self-hosted runners, see "[Hosting your own runners](/actions/hosting-your-own-runners)."
|
{% data variables.product.prodname_dotcom %}-hosted runners are based on Ubuntu Linux, Microsoft Windows, and macOS. For information on {% data variables.product.prodname_dotcom %}-hosted runners, see "[Virtual environments for {% data variables.product.prodname_dotcom %}-hosted runners](/actions/reference/virtual-environments-for-github-hosted-runners)." If you need a different operating system or require a specific hardware configuration, you can host your own runners. For information on self-hosted runners, see "[Hosting your own runners](/actions/hosting-your-own-runners)."
|
||||||
|
|
||||||
@@ -197,7 +197,7 @@ To help you understand how YAML syntax is used to create a workflow file, this s
|
|||||||
|
|
||||||
#### Visualizing the workflow file
|
#### Visualizing the workflow file
|
||||||
|
|
||||||
In this diagram, you can see the workflow file you just created and how the {% data variables.product.prodname_actions %} components are organized in a hierarchy. Each step executes a single action. Steps 1 and 2 use prebuilt community actions. To find more prebuilt actions for your workflows, see "[Finding and customizing actions](/actions/learn-github-actions/finding-and-customizing-actions)."
|
In this diagram, you can see the workflow file you just created and how the {% data variables.product.prodname_actions %} components are organized in a hierarchy. Each step executes a single action or shell command. Steps 1 and 2 use prebuilt community actions. Steps 3 and 4 run shell commands directly on the runner. To find more prebuilt actions for your workflows, see "[Finding and customizing actions](/actions/learn-github-actions/finding-and-customizing-actions)."
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|||||||
@@ -327,6 +327,7 @@ The `issue_comment` event occurs for comments on both issues and pull requests.
|
|||||||
|
|
||||||
For example, you can choose to run the `pr_commented` job when comment events occur in a pull request, and the `issue_commented` job when comment events occur in an issue.
|
For example, you can choose to run the `pr_commented` job when comment events occur in a pull request, and the `issue_commented` job when comment events occur in an issue.
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
```yaml
|
```yaml
|
||||||
on: issue_comment
|
on: issue_comment
|
||||||
|
|
||||||
@@ -349,6 +350,7 @@ jobs:
|
|||||||
- run: |
|
- run: |
|
||||||
echo "Comment on issue #${{ github.event.issue.number }}"
|
echo "Comment on issue #${{ github.event.issue.number }}"
|
||||||
```
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
#### `issues`
|
#### `issues`
|
||||||
|
|
||||||
|
|||||||
@@ -446,7 +446,7 @@ steps:
|
|||||||
uses: monacorp/action-name@main
|
uses: monacorp/action-name@main
|
||||||
- name: My backup step
|
- name: My backup step
|
||||||
if: {% raw %}${{ failure() }}{% endraw %}
|
if: {% raw %}${{ failure() }}{% endraw %}
|
||||||
uses: actions/heroku@master
|
uses: actions/heroku@1.0.0
|
||||||
```
|
```
|
||||||
|
|
||||||
#### **`jobs.<job_id>.steps.name`**
|
#### **`jobs.<job_id>.steps.name`**
|
||||||
@@ -492,7 +492,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: My first step
|
- name: My first step
|
||||||
# Uses the default branch of a public repository
|
# Uses the default branch of a public repository
|
||||||
uses: actions/heroku@master
|
uses: actions/heroku@1.0.0
|
||||||
- name: My second step
|
- name: My second step
|
||||||
# Uses a specific version tag of a public repository
|
# Uses a specific version tag of a public repository
|
||||||
uses: actions/aws@v2.0.1
|
uses: actions/aws@v2.0.1
|
||||||
@@ -659,7 +659,7 @@ For built-in shell keywords, we provide the following defaults that are executed
|
|||||||
|
|
||||||
- `cmd`
|
- `cmd`
|
||||||
- There doesn't seem to be a way to fully opt into fail-fast behavior other than writing your script to check each error code and respond accordingly. Because we can't actually provide that behavior by default, you need to write this behavior into your script.
|
- There doesn't seem to be a way to fully opt into fail-fast behavior other than writing your script to check each error code and respond accordingly. Because we can't actually provide that behavior by default, you need to write this behavior into your script.
|
||||||
- `cmd.exe` will exit with the error level of the last program it executed, and it will and return the error code to the runner. This behavior is internally consistent with the previous `sh` and `pwsh` default behavior and is the `cmd.exe` default, so this behavior remains intact.
|
- `cmd.exe` will exit with the error level of the last program it executed, and it will return the error code to the runner. This behavior is internally consistent with the previous `sh` and `pwsh` default behavior and is the `cmd.exe` default, so this behavior remains intact.
|
||||||
|
|
||||||
#### **`jobs.<job_id>.steps.with`**
|
#### **`jobs.<job_id>.steps.with`**
|
||||||
|
|
||||||
@@ -718,7 +718,7 @@ steps:
|
|||||||
entrypoint: /a/different/executable
|
entrypoint: /a/different/executable
|
||||||
```
|
```
|
||||||
|
|
||||||
The `entrypoint` keyword is meant to use with Docker container actions, but you can also use it with JavaScript actions that don't define any inputs.
|
The `entrypoint` keyword is meant to be used with Docker container actions, but you can also use it with JavaScript actions that don't define any inputs.
|
||||||
|
|
||||||
#### **`jobs.<job_id>.steps.env`**
|
#### **`jobs.<job_id>.steps.env`**
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ versions:
|
|||||||
---
|
---
|
||||||
### Set up an external `collectd` server
|
### Set up an external `collectd` server
|
||||||
|
|
||||||
If you haven't already set up an external `collectd` server, you will need to do so before enabling `collectd` forwarding on {% data variables.product.product_location %}. Your `collectd` server must by running `collectd` version 5.x or higher.
|
If you haven't already set up an external `collectd` server, you will need to do so before enabling `collectd` forwarding on {% data variables.product.product_location %}. Your `collectd` server must be running `collectd` version 5.x or higher.
|
||||||
|
|
||||||
1. Log into your `collectd` server.
|
1. Log into your `collectd` server.
|
||||||
2. Create or edit the `collectd` configuration file to load the network plugin and populate the server and port directives with the proper values. On most distributions, this is located at `/etc/collectd/collectd.conf`
|
2. Create or edit the `collectd` configuration file to load the network plugin and populate the server and port directives with the proper values. On most distributions, this is located at `/etc/collectd/collectd.conf`
|
||||||
|
|||||||
@@ -21,7 +21,10 @@ For the best experience, we recommend using a dedicated bucket for {% data varia
|
|||||||
|
|
||||||
{% warning %}
|
{% warning %}
|
||||||
|
|
||||||
**Warning:** Make sure to configure the bucket you'll want to use in the future. We do not recommend changing your storage after you start using {% data variables.product.prodname_registry %}.
|
**Warnings:**
|
||||||
|
- It's critical you set the restrictive access policies you want for your storage bucket because {% data variables.product.company_short %} does not apply specific object permissions or additional access control lists (ACLs) to your storage bucket configuration. For example, if you make your bucket public, data in the bucket will be accessible on the public internet. For more information, see [Setting bucket and object access permissions](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/set-permissions.html) in the AWS Documentation.
|
||||||
|
- We recommend using a dedicated bucket for {% data variables.product.prodname_registry %}, separate from the bucket you use for {% data variables.product.prodname_actions %} storage.
|
||||||
|
- Make sure to configure the bucket you'll want to use in the future. We do not recommend changing your storage after you start using {% data variables.product.prodname_registry %}.
|
||||||
|
|
||||||
{% endwarning %}
|
{% endwarning %}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: Managing GitHub Packages for your enterprise
|
title: Managing GitHub Packages for your enterprise
|
||||||
shortTitle: GitHub Packages
|
|
||||||
intro: 'You can enable {% data variables.product.prodname_registry %} for your enterprise and manage {% data variables.product.prodname_registry %} settings and allowed packaged types.'
|
intro: 'You can enable {% data variables.product.prodname_registry %} for your enterprise and manage {% data variables.product.prodname_registry %} settings and allowed packaged types.'
|
||||||
redirect_from:
|
redirect_from:
|
||||||
- /enterprise/admin/packages
|
- /enterprise/admin/packages
|
||||||
|
|||||||
@@ -35,17 +35,25 @@ As you make changes to files in your text editor and save them locally, you will
|
|||||||
|
|
||||||
#### Creating a partial commit
|
#### Creating a partial commit
|
||||||
|
|
||||||
If one file contains multiple changes, but you only want *some* of those changes to be included in a commit, you can create a partial commit. The rest of your changes will remain intact, so that you can make additional modifications and commits. This allows you to make separate, meaningful commits, such as keeping line break changes in a commit separate from code or prose changes.
|
If one file contains multiple changes, but you only want some of those changes to be included in a commit, you can create a partial commit. The rest of your changes will remain intact, so that you can make additional modifications and commits. This allows you to make separate, meaningful commits, such as keeping line break changes in a commit separate from code or prose changes.
|
||||||
|
|
||||||
When you review the diff of the file, the lines that will be included in the commit are highlighted in blue. To exclude the change, click the changed line so the blue disappears.
|
{% note %}
|
||||||
|
|
||||||

|
**Note:** Split diff displays are currently in beta and subject to change.
|
||||||
|
|
||||||
#### Discarding changes
|
{% endnote %}
|
||||||
|
|
||||||
You can discard all the uncommitted changes in one file, a range of files, or discard all changes in all files since the last commit.
|
1. To choose how your changes are displayed, in the top-right corner of the changed file, use {% octicon "gear" aria-label="The Gear icon" %} to select **Unified** or **Split**.
|
||||||
|

|
||||||
|
2. To exclude changed lines from your commit, click one or more changed lines so the blue disappears. The lines that are still highlighted in blue will be included in the commit.
|
||||||
|

|
||||||
|
|
||||||
{% mac %}
|
### 3. Discarding changes
|
||||||
|
If you have uncommitted changes that you don't want to keep, you can discard the changes. This will remove the changes from the files on your computer. You can discard all uncommitted changes in one or more files, or you can discard specific lines you added.
|
||||||
|
|
||||||
|
Discarded changes are saved in a dated file in the Trash. You can recover discarded changes until the Trash is emptied.
|
||||||
|
|
||||||
|
#### Discarding changes in one or more files
|
||||||
|
|
||||||
{% data reusables.desktop.select-discard-files %}
|
{% data reusables.desktop.select-discard-files %}
|
||||||
{% data reusables.desktop.click-discard-files %}
|
{% data reusables.desktop.click-discard-files %}
|
||||||
@@ -53,30 +61,25 @@ You can discard all the uncommitted changes in one file, a range of files, or di
|
|||||||
{% data reusables.desktop.confirm-discard-files %}
|
{% data reusables.desktop.confirm-discard-files %}
|
||||||

|

|
||||||
|
|
||||||
{% tip %}
|
#### Discarding changes in one or more lines
|
||||||
|
You can discard one or more changed lines that are uncommitted.
|
||||||
|
|
||||||
**Tip:** The changes you discarded are saved in a dated file in the Trash and you can recover them until the Trash is emptied.
|
{% note %}
|
||||||
|
|
||||||
{% endtip %}
|
**Note:** Discarding single lines is disabled in a group of changes that adds and removes lines.
|
||||||
|
|
||||||
{% endmac %}
|
{% endnote %}
|
||||||
|
|
||||||
{% windows %}
|
To discard one added line, in the list of changed lines, right click on the line you want to discard and select **Discard added line**.
|
||||||
|
|
||||||
{% data reusables.desktop.select-discard-files %}{% data reusables.desktop.click-discard-files %}
|

|
||||||

|
|
||||||
{% data reusables.desktop.confirm-discard-files %}
|
|
||||||

|
|
||||||
|
|
||||||
{% tip %}
|
To discard a group of changed lines, right click the vertical bar to the right of the line numbers for the lines you want to discard, then select **Discard added lines**.
|
||||||
|
|
||||||
**Tip:** The changes you discarded are saved in a file in the Recycle Bin and you can recover them until it is emptied.
|

|
||||||
|
|
||||||
{% endtip %}
|
|
||||||
|
|
||||||
{% endwindows %}
|
### 4. Write a commit message and push your changes
|
||||||
|
|
||||||
### 3. Write a commit message and push your changes
|
|
||||||
|
|
||||||
Once you're satisfied with the changes you've chosen to include in your commit, write your commit message and push your changes. If you've collaborated on a commit, you can also attribute a commit to more than one author.
|
Once you're satisfied with the changes you've chosen to include in your commit, write your commit message and push your changes. If you've collaborated on a commit, you can also attribute a commit to more than one author.
|
||||||
|
|
||||||
|
|||||||
@@ -34,8 +34,6 @@ Different server-to-server request rate limits apply to {% data variables.produc
|
|||||||
|
|
||||||
### User-to-server requests
|
### User-to-server requests
|
||||||
|
|
||||||
{% data reusables.apps.deprecating_password_auth %}
|
|
||||||
|
|
||||||
{% data variables.product.prodname_github_app %}s can also act [on behalf of a user](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-and-authorizing-users-for-github-apps), making user-to-server requests.
|
{% data variables.product.prodname_github_app %}s can also act [on behalf of a user](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-and-authorizing-users-for-github-apps), making user-to-server requests.
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
@@ -52,7 +50,7 @@ User-to-server requests are rate limited at 5,000 requests per hour and per auth
|
|||||||
|
|
||||||
#### {% data variables.product.prodname_ghe_cloud %} user-to-server rate limits
|
#### {% data variables.product.prodname_ghe_cloud %} user-to-server rate limits
|
||||||
|
|
||||||
When a user belongs to a {% data variables.product.prodname_ghe_cloud %} account, user-to-server requests to resources owned by the same {% data variables.product.prodname_ghe_cloud %} account are rate limited at 15,000 requests per hour and per authenticated user. All OAuth applications authorized by that user, personal access tokens owned by that user, and requests authenticated with that user's username and password share the same quota of 5,000 requests per hour for that user.
|
When a user belongs to a {% data variables.product.prodname_ghe_cloud %} account, user-to-server requests to resources owned by the same {% data variables.product.prodname_ghe_cloud %} account are rate limited at 15,000 requests per hour and per authenticated user. All OAuth applications authorized by that user, personal access tokens owned by that user, and {% data variables.product.prodname_ghe_cloud %} requests authenticated with that user's username and password share the same quota of 5,000 requests per hour for that user.
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|||||||
@@ -83,6 +83,32 @@ See [our guide on Git automation with tokens][git-automation].
|
|||||||
7. Select **Allow write access** if you want this key to have write access to the repository. A deploy key with write access lets a deployment push to the repository.
|
7. Select **Allow write access** if you want this key to have write access to the repository. A deploy key with write access lets a deployment push to the repository.
|
||||||
8. Click **Add key**.
|
8. Click **Add key**.
|
||||||
|
|
||||||
|
##### Using multiple repositories on one server
|
||||||
|
|
||||||
|
If you use multiple repositories on one server, you will need to generate a dedicated key pair for each one. You can't reuse a deploy key for multiple repositories.
|
||||||
|
|
||||||
|
In the server's SSH configuration file (usually `~/.ssh/config`), add an alias entry for each repository. For example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
Host {% if currentVersion == "free-pro-team@latest" %}github.com{% else %}my-GHE-hostname.com{% endif %}-repo-0
|
||||||
|
Hostname {% if currentVersion == "free-pro-team@latest" %}github.com{% else %}my-GHE-hostname.com{% endif %}
|
||||||
|
IdentityFile=/home/user/.ssh/repo-0_deploy_key
|
||||||
|
|
||||||
|
Host {% if currentVersion == "free-pro-team@latest" %}github.com{% else %}my-GHE-hostname.com{% endif %}-repo-1
|
||||||
|
Hostname {% if currentVersion == "free-pro-team@latest" %}github.com{% else %}my-GHE-hostname.com{% endif %}
|
||||||
|
IdentityFile=/home/user/.ssh/repo-1_deploy_key
|
||||||
|
```
|
||||||
|
|
||||||
|
* `Host {% if currentVersion == "free-pro-team@latest" %}github.com{% else %}my-GHE-hostname.com{% endif %}-repo-0` - The repository's alias.
|
||||||
|
* `Hostname {% if currentVersion == "free-pro-team@latest" %}github.com{% else %}my-GHE-hostname.com{% endif %}` - Configures the hostname to use with the alias.
|
||||||
|
* `IdentityFile=/home/user/.ssh/repo-0_deploy_key` - Assigns a private key to the alias.
|
||||||
|
|
||||||
|
You can then use the hostname's alias to interact with the repository using SSH, which will use the unique deploy key assigned to that alias. For example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ git clone git@{% if currentVersion == "free-pro-team@latest" %}github.com{% else %}my-GHE-hostname.com{% endif %}-repo-1:OWNER/repo-1.git
|
||||||
|
```
|
||||||
|
|
||||||
### Machine users
|
### Machine users
|
||||||
|
|
||||||
If your server needs to access multiple repositories, you can create a new {% data variables.product.product_name %} account and attach an SSH key that will be used exclusively for automation. Since this {% data variables.product.product_name %} account won't be used by a human, it's called a _machine user_. You can add the machine user as a [collaborator][collaborator] on a personal repository (granting read and write access), as an [outside collaborator][outside-collaborator] on an organization repository (granting read, write, or admin access), or to a [team][team] with access to the repositories it needs to automate (granting the permissions of the team).
|
If your server needs to access multiple repositories, you can create a new {% data variables.product.product_name %} account and attach an SSH key that will be used exclusively for automation. Since this {% data variables.product.product_name %} account won't be used by a human, it's called a _machine user_. You can add the machine user as a [collaborator][collaborator] on a personal repository (granting read and write access), as an [outside collaborator][outside-collaborator] on an organization repository (granting read, write, or admin access), or to a [team][team] with access to the repositories it needs to automate (granting the permissions of the team).
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ Content-Length: 0123
|
|||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
The message body is a JSON array that contains one or more objects with the following contents. When multiple matches are found, {% data variables.product.prodname_dotcom %} may send a single message with more than one secret match.
|
The message body is a JSON array that contains one or more objects with the following contents. When multiple matches are found, {% data variables.product.prodname_dotcom %} may send a single message with more than one secret match. Your endpoint should be able to handle requests with a large number of matches without timing out.
|
||||||
|
|
||||||
* **Token**: The value of the secret match.
|
* **Token**: The value of the secret match.
|
||||||
* **Type**: The unique name you provided to identify your regular expression.
|
* **Type**: The unique name you provided to identify your regular expression.
|
||||||
@@ -139,7 +139,7 @@ func main() {
|
|||||||
fmt.Printf("Error preparing request: %s\n", err)
|
fmt.Printf("Error preparing request: %s\n", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(os.Getenv("GITHUB_PRODUCTION_TOKEN")) == 0 {
|
if len(os.Getenv("GITHUB_PRODUCTION_TOKEN")) == 0 {
|
||||||
fmt.Println("Need to define environment variable GITHUB_PRODUCTION_TOKEN")
|
fmt.Println("Need to define environment variable GITHUB_PRODUCTION_TOKEN")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ versions:
|
|||||||
free-pro-team: '*'
|
free-pro-team: '*'
|
||||||
---
|
---
|
||||||
|
|
||||||
To host your images, {% data variables.product.product_name %} uses the [open-source project Camo](https://github.com/atmos/camo). Camo generates an anonymous URL proxy for each image that starts with ```https://camo.githubusercontent.com/``` and hides your browser details and related information from other users.
|
To host your images, {% data variables.product.product_name %} uses the [open-source project Camo](https://github.com/atmos/camo). Camo generates an anonymous URL proxy for each image which hides your browser details and related information from other users. The URL starts `https://<subdomain>.githubusercontent.com/`, with different subdomains depending on how you uploaded the image.
|
||||||
|
|
||||||
Anyone who receives your anonymized image URL, directly or indirectly, may view your image. To keep sensitive images private, restrict them to a private network or a server that requires authentication instead of using Camo.
|
Anyone who receives your anonymized image URL, directly or indirectly, may view your image. To keep sensitive images private, restrict them to a private network or a server that requires authentication instead of using Camo.
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: Reviewing your security log
|
title: Reviewing your security log
|
||||||
intro: You can review the security log for your user account to better understand actions you've performed and actions others have performed that involve you.
|
intro: You can review the security log for your user account to better understand actions you've performed and actions others have performed that involve you.
|
||||||
|
miniTocMaxHeadingLevel: 4
|
||||||
redirect_from:
|
redirect_from:
|
||||||
- /articles/reviewing-your-security-log
|
- /articles/reviewing-your-security-log
|
||||||
versions:
|
versions:
|
||||||
@@ -33,212 +34,26 @@ The security log lists all actions performed within the last 90 days{% if curren
|
|||||||
#### Search based on the action performed
|
#### Search based on the action performed
|
||||||
{% else %}
|
{% else %}
|
||||||
### Understanding events in your security log
|
### Understanding events in your security log
|
||||||
|
|
||||||
Actions listed in your security log are grouped within the following categories:
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
| Category Name | Description
|
The events listed in your security log are triggered by your actions. Actions are grouped into the following categories:
|
||||||
|
|
||||||
|
| Category name | Description
|
||||||
|------------------|-------------------{% if currentVersion == "free-pro-team@latest" %}
|
|------------------|-------------------{% if currentVersion == "free-pro-team@latest" %}
|
||||||
| `account_recovery_token` | Contains all activities related to [adding a recovery token](/articles/configuring-two-factor-authentication-recovery-methods).
|
| [`account_recovery_token`](#account_recovery_token-category-actions) | Contains all activities related to [adding a recovery token](/articles/configuring-two-factor-authentication-recovery-methods).
|
||||||
| `billing` | Contains all activities related to your billing information.
|
| [`billing`](#billing-category-actions) | Contains all activities related to your billing information.
|
||||||
| `marketplace_agreement_signature` | Contains all activities related to signing the {% data variables.product.prodname_marketplace %} Developer Agreement.
|
| [`marketplace_agreement_signature`](#marketplace_agreement_signature-category-actions) | Contains all activities related to signing the {% data variables.product.prodname_marketplace %} Developer Agreement.
|
||||||
| `marketplace_listing` | Contains all activities related to listing apps in {% data variables.product.prodname_marketplace %}.{% endif %}
|
| [`marketplace_listing`](#marketplace_listing-category-actions) | Contains all activities related to listing apps in {% data variables.product.prodname_marketplace %}.{% endif %}
|
||||||
| `oauth_access` | Contains all activities related to [{% data variables.product.prodname_oauth_app %}s](/articles/authorizing-oauth-apps) you've connected with.{% if currentVersion == "free-pro-team@latest" %}
|
| [`oauth_access`](#oauth_access-category-actions) | Contains all activities related to [{% data variables.product.prodname_oauth_app %}s](/articles/authorizing-oauth-apps) you've connected with.{% if currentVersion == "free-pro-team@latest" %}
|
||||||
| `payment_method` | Contains all activities related to paying for your {% data variables.product.prodname_dotcom %} subscription.{% endif %}
|
| [`payment_method`](#payment_method-category-actions) | Contains all activities related to paying for your {% data variables.product.prodname_dotcom %} subscription.{% endif %}
|
||||||
| `profile_picture` | Contains all activities related to your profile picture.
|
| [`profile_picture`](#profile_picture-category-actions) | Contains all activities related to your profile picture.
|
||||||
| `project` | Contains all activities related to project boards.
|
| [`project`](#project-category-actions) | Contains all activities related to project boards.
|
||||||
| `public_key` | Contains all activities related to [your public SSH keys](/articles/adding-a-new-ssh-key-to-your-github-account).
|
| [`public_key`](#public_key-category-actions) | Contains all activities related to [your public SSH keys](/articles/adding-a-new-ssh-key-to-your-github-account).
|
||||||
| `repo` | Contains all activities related to the repositories you own.{% if currentVersion == "free-pro-team@latest" %}
|
| [`repo`](#repo-category-actions) | Contains all activities related to the repositories you own.{% if currentVersion == "free-pro-team@latest" %}
|
||||||
| `sponsors` | Contains all events related to {% data variables.product.prodname_sponsors %} and sponsor buttons (see "[About {% data variables.product.prodname_sponsors %}](/articles/about-github-sponsors)" and "[Displaying a sponsor button in your repository](/articles/displaying-a-sponsor-button-in-your-repository)"){% endif %}{% if enterpriseServerVersions contains currentVersion or currentVersion == "github-ae@latest" %}
|
| [`sponsors`](#sponsors-category-actions) | Contains all events related to {% data variables.product.prodname_sponsors %} and sponsor buttons (see "[About {% data variables.product.prodname_sponsors %}](/articles/about-github-sponsors)" and "[Displaying a sponsor button in your repository](/articles/displaying-a-sponsor-button-in-your-repository)"){% endif %}{% if enterpriseServerVersions contains currentVersion or currentVersion == "github-ae@latest" %}
|
||||||
| `team` | Contains all activities related to teams you are a part of.{% endif %}{% if currentVersion != "github-ae@latest" %}
|
| [`team`](#team-category-actions) | Contains all activities related to teams you are a part of.{% endif %}{% if currentVersion != "github-ae@latest" %}
|
||||||
| `two_factor_authentication` | Contains all activities related to [two-factor authentication](/articles/securing-your-account-with-two-factor-authentication-2fa).{% endif %}
|
| [`two_factor_authentication`](#two_factor_authentication-category-actions) | Contains all activities related to [two-factor authentication](/articles/securing-your-account-with-two-factor-authentication-2fa).{% endif %}
|
||||||
| `user` | Contains all activities related to your account.
|
| [`user`](#user-category-actions) | Contains all activities related to your account.
|
||||||
|
|
||||||
A description of the events within these categories is listed below.
|
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
|
||||||
|
|
||||||
#### The `account_recovery_token` category
|
|
||||||
|
|
||||||
| Action | Description
|
|
||||||
|------------------|-------------------
|
|
||||||
| confirm | Triggered when you successfully [store a new token with a recovery provider](/articles/configuring-two-factor-authentication-recovery-methods).
|
|
||||||
| recover | Triggered when you successfully [redeem an account recovery token](/articles/recovering-your-account-if-you-lose-your-2fa-credentials).
|
|
||||||
| recover_error | Triggered when a token is used but {% data variables.product.prodname_dotcom %} is not able to validate it.
|
|
||||||
|
|
||||||
#### The `billing` category
|
|
||||||
|
|
||||||
| Action | Description
|
|
||||||
|------------------|-------------------
|
|
||||||
| change_billing_type | Triggered when you [change how you pay](/articles/adding-or-editing-a-payment-method) for {% data variables.product.prodname_dotcom %}.
|
|
||||||
| change_email | Triggered when you [change your email address](/articles/changing-your-primary-email-address).
|
|
||||||
|
|
||||||
#### The `marketplace_agreement_signature` category
|
|
||||||
|
|
||||||
| Action | Description
|
|
||||||
|------------------|-------------------
|
|
||||||
| create | Triggered when you sign the {% data variables.product.prodname_marketplace %} Developer Agreement.
|
|
||||||
|
|
||||||
#### The `marketplace_listing` category
|
|
||||||
|
|
||||||
| Action | Description
|
|
||||||
|------------------|-------------------
|
|
||||||
| approve | Triggered when your listing is approved for inclusion in {% data variables.product.prodname_marketplace %}.
|
|
||||||
| create | Triggered when you create a listing for your app in {% data variables.product.prodname_marketplace %}.
|
|
||||||
| delist | Triggered when your listing is removed from {% data variables.product.prodname_marketplace %}.
|
|
||||||
| redraft | Triggered when your listing is sent back to draft state.
|
|
||||||
| reject | Triggered when your listing is not accepted for inclusion in {% data variables.product.prodname_marketplace %}.
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
#### The `oauth_access` category
|
|
||||||
|
|
||||||
| Action | Description
|
|
||||||
|------------------|-------------------
|
|
||||||
| create | Triggered when you [grant access to an {% data variables.product.prodname_oauth_app %}](/articles/authorizing-oauth-apps).
|
|
||||||
| destroy | Triggered when you [revoke an {% data variables.product.prodname_oauth_app %}'s access to your account](/articles/reviewing-your-authorized-integrations).
|
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
|
||||||
|
|
||||||
#### The `payment_method` category
|
|
||||||
|
|
||||||
| Action | Description
|
|
||||||
|------------------|-------------------
|
|
||||||
| clear | Triggered when [a payment method](/articles/removing-a-payment-method) on file is removed.
|
|
||||||
| create | Triggered when a new payment method is added, such as a new credit card or PayPal account.
|
|
||||||
| update | Triggered when an existing payment method is updated.
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
#### The `profile_picture` category
|
|
||||||
|
|
||||||
| Action | Description
|
|
||||||
|------------------|-------------------
|
|
||||||
| update | Triggered when you [set or update your profile picture](/articles/setting-your-profile-picture/).
|
|
||||||
|
|
||||||
#### The `project` category
|
|
||||||
|
|
||||||
| Action | Description
|
|
||||||
|--------------------|---------------------
|
|
||||||
| `create` | Triggered when a project board is created.
|
|
||||||
| `rename` | Triggered when a project board is renamed.
|
|
||||||
| `update` | Triggered when a project board is updated.
|
|
||||||
| `delete` | Triggered when a project board is deleted.
|
|
||||||
| `link` | Triggered when a repository is linked to a project board.
|
|
||||||
| `unlink` | Triggered when a repository is unlinked from a project board.
|
|
||||||
| `project.access` | Triggered when a project board's visibility is changed.
|
|
||||||
| `update_user_permission` | Triggered when an outside collaborator is added to or removed from a project board or has their permission level changed.
|
|
||||||
|
|
||||||
#### The `public_key` category
|
|
||||||
|
|
||||||
| Action | Description
|
|
||||||
|------------------|-------------------
|
|
||||||
| create | Triggered when you [add a new public SSH key to your {% data variables.product.product_name %} account](/articles/adding-a-new-ssh-key-to-your-github-account).
|
|
||||||
| delete | Triggered when you [remove a public SSH key to your {% data variables.product.product_name %} account](/articles/reviewing-your-ssh-keys).
|
|
||||||
|
|
||||||
#### The `repo` category
|
|
||||||
|
|
||||||
| Action | Description
|
|
||||||
|------------------|-------------------
|
|
||||||
| access | Triggered when you a repository you own is [switched from "private" to "public"](/articles/making-a-private-repository-public) (or vice versa).
|
|
||||||
| add_member | Triggered when a {% data variables.product.product_name %} user is {% if currentVersion == "free-pro-team@latest" %}[invited to have collaboration access](/articles/inviting-collaborators-to-a-personal-repository){% else %}[given collaboration access](/articles/inviting-collaborators-to-a-personal-repository){% endif %} to a repository.
|
|
||||||
| add_topic | Triggered when a repository owner [adds a topic](/articles/classifying-your-repository-with-topics) to a repository.
|
|
||||||
| archived | Triggered when a repository owner [archives a repository](/articles/about-archiving-repositories).{% if enterpriseServerVersions contains currentVersion or currentVersion == "github-ae@latest" %}
|
|
||||||
| config.disable_anonymous_git_access | Triggered when [anonymous Git read access is disabled](/enterprise/{{ currentVersion }}/user/articles/enabling-anonymous-git-read-access-for-a-repository) in a public repository.
|
|
||||||
| config.enable_anonymous_git_access | Triggered when [anonymous Git read access is enabled](/enterprise/{{ currentVersion }}/user/articles/enabling-anonymous-git-read-access-for-a-repository) in a public repository.
|
|
||||||
| config.lock_anonymous_git_access | Triggered when a repository's [anonymous Git read access setting is locked](/enterprise/{{ currentVersion }}/admin/guides/user-management/preventing-users-from-changing-anonymous-git-read-access).
|
|
||||||
| config.unlock_anonymous_git_access | Triggered when a repository's [anonymous Git read access setting is unlocked](/enterprise/{{ currentVersion }}/admin/guides/user-management/preventing-users-from-changing-anonymous-git-read-access).{% endif %}
|
|
||||||
| create | Triggered when [a new repository is created](/articles/creating-a-new-repository).
|
|
||||||
| destroy | Triggered when [a repository is deleted](/articles/deleting-a-repository).{% if currentVersion == "free-pro-team@latest" %}
|
|
||||||
| disable | Triggered when a repository is disabled (e.g., for [insufficient funds](/articles/unlocking-a-locked-account)).{% endif %}{% if currentVersion == "free-pro-team@latest" %}
|
|
||||||
| enable | Triggered when a repository is re-enabled.{% endif %}
|
|
||||||
| remove_member | Triggered when a {% data variables.product.product_name %} user is [removed from a repository as a collaborator](/articles/removing-a-collaborator-from-a-personal-repository).
|
|
||||||
| remove_topic | Triggered when a repository owner removes a topic from a repository.
|
|
||||||
| rename | Triggered when [a repository is renamed](/articles/renaming-a-repository).
|
|
||||||
| transfer | Triggered when [a repository is transferred](/articles/how-to-transfer-a-repository).
|
|
||||||
| transfer_start | Triggered when a repository transfer is about to occur.
|
|
||||||
| unarchived | Triggered when a repository owner unarchives a repository.
|
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
|
||||||
#### The `sponsors` category
|
|
||||||
|
|
||||||
| Action | Description
|
|
||||||
|------------------|-------------------
|
|
||||||
| repo_funding_link_button_toggle | Triggered when you enable or disable a sponsor button in your repository (see "[Displaying a sponsor button in your repository](/articles/displaying-a-sponsor-button-in-your-repository)")
|
|
||||||
| repo_funding_links_file_action | Triggered when you change the FUNDING file in your repository (see "[Displaying a sponsor button in your repository](/articles/displaying-a-sponsor-button-in-your-repository)")
|
|
||||||
| sponsor_sponsorship_cancel | Triggered when you cancel a sponsorship (see "[Downgrading a sponsorship](/articles/downgrading-a-sponsorship)")
|
|
||||||
| sponsor_sponsorship_create | Triggered when you sponsor a developer (see "[Sponsoring an open source contributor](/github/supporting-the-open-source-community-with-github-sponsors/sponsoring-an-open-source-contributor#sponsoring-a-developer)")
|
|
||||||
| sponsor_sponsorship_preference_change | Triggered when you change whether you receive email updates from a sponsored developer (see "[Managing your sponsorship](/articles/managing-your-sponsorship)")
|
|
||||||
| sponsor_sponsorship_tier_change | Triggered when you upgrade or downgrade your sponsorship (see "[Upgrading a sponsorship](/articles/upgrading-a-sponsorship)" and "[Downgrading a sponsorship](/articles/downgrading-a-sponsorship)")
|
|
||||||
| sponsored_developer_approve | Triggered when your {% data variables.product.prodname_sponsors %} account is approved (see "[Setting up {% data variables.product.prodname_sponsors %} for your user account](/github/supporting-the-open-source-community-with-github-sponsors/setting-up-github-sponsors-for-your-user-account)")
|
|
||||||
| sponsored_developer_create | Triggered when your {% data variables.product.prodname_sponsors %} account is created (see "[Setting up {% data variables.product.prodname_sponsors %} for your user account](/github/supporting-the-open-source-community-with-github-sponsors/setting-up-github-sponsors-for-your-user-account)")
|
|
||||||
| sponsored_developer_profile_update | Triggered when you edit your sponsored developer profile (see "[Editing your profile details for {% data variables.product.prodname_sponsors %}](/github/supporting-the-open-source-community-with-github-sponsors/editing-your-profile-details-for-github-sponsors)")
|
|
||||||
| sponsored_developer_request_approval | Triggered when you submit your application for {% data variables.product.prodname_sponsors %} for approval (see "[Setting up {% data variables.product.prodname_sponsors %} for your user account](/github/supporting-the-open-source-community-with-github-sponsors/setting-up-github-sponsors-for-your-user-account)")
|
|
||||||
| sponsored_developer_tier_description_update | Triggered when you change the description for a sponsorship tier (see "[Changing your sponsorship tiers](/articles/changing-your-sponsorship-tiers)")
|
|
||||||
| sponsored_developer_update_newsletter_send | Triggered when you send an email update to your sponsors (see "[Contacting your sponsors](/articles/contacting-your-sponsors)")
|
|
||||||
| waitlist_invite_sponsored_developer | Triggered when you are invited to join {% data variables.product.prodname_sponsors %} from the waitlist (see "[Setting up {% data variables.product.prodname_sponsors %} for your user account](/github/supporting-the-open-source-community-with-github-sponsors/setting-up-github-sponsors-for-your-user-account)")
|
|
||||||
| waitlist_join | Triggered when you join the waitlist to become a sponsored developer (see "[Setting up {% data variables.product.prodname_sponsors %} for your user account](/github/supporting-the-open-source-community-with-github-sponsors/setting-up-github-sponsors-for-your-user-account)")
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
|
||||||
#### The `successor_invitation` category
|
|
||||||
|
|
||||||
| Action | Description
|
|
||||||
|------------------|-------------------
|
|
||||||
| accept | Triggered when you accept a succession invitation (see "[Maintaining ownership continuity of your user account's repositories](/github/setting-up-and-managing-your-github-user-account/maintaining-ownership-continuity-of-your-user-accounts-repositories)")
|
|
||||||
| cancel | Triggered when you cancel a succession invitation (see "[Maintaining ownership continuity of your user account's repositories](/github/setting-up-and-managing-your-github-user-account/maintaining-ownership-continuity-of-your-user-accounts-repositories)")
|
|
||||||
| create | Triggered when you create a succession invitation (see "[Maintaining ownership continuity of your user account's repositories](/github/setting-up-and-managing-your-github-user-account/maintaining-ownership-continuity-of-your-user-accounts-repositories)")
|
|
||||||
| decline | Triggered when you decline a succession invitation (see "[Maintaining ownership continuity of your user account's repositories](/github/setting-up-and-managing-your-github-user-account/maintaining-ownership-continuity-of-your-user-accounts-repositories)")
|
|
||||||
| revoke | Triggered when you revoke a succession invitation (see "[Maintaining ownership continuity of your user account's repositories](/github/setting-up-and-managing-your-github-user-account/maintaining-ownership-continuity-of-your-user-accounts-repositories)")
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if enterpriseServerVersions contains currentVersion or currentVersion == "github-ae@latest" %}
|
|
||||||
|
|
||||||
#### The `team` category
|
|
||||||
|
|
||||||
| Action | Description
|
|
||||||
|------------------|-------------------
|
|
||||||
| add_member | Triggered when a member of an organization you belong to [adds you to a team](/articles/adding-organization-members-to-a-team).
|
|
||||||
| add_repository | Triggered when a team you are a member of is given control of a repository.
|
|
||||||
| create | Triggered when a new team in an organization you belong to is created.
|
|
||||||
| destroy | Triggered when a team you are a member of is deleted from the organization.
|
|
||||||
| remove_member | Triggered when a member of an organization is [removed from a team](/articles/removing-organization-members-from-a-team) you are a member of.
|
|
||||||
| remove_repository | Triggered when a repository is no longer under a team's control.
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if currentVersion != "github-ae@latest" %}
|
|
||||||
#### The `two_factor_authentication` category
|
|
||||||
|
|
||||||
| Action | Description
|
|
||||||
|------------------|-------------------
|
|
||||||
| enabled | Triggered when [two-factor authentication](/articles/securing-your-account-with-two-factor-authentication-2fa) is enabled.
|
|
||||||
| disabled | Triggered when two-factor authentication is disabled.
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
#### The `user` category
|
|
||||||
|
|
||||||
| Action | Description
|
|
||||||
|--------------------|---------------------
|
|
||||||
| add_email | Triggered when you {% if currentVersion != "github-ae@latest" %}[add a new email address](/articles/changing-your-primary-email-address){% else %}add a new email address{% endif %}.
|
|
||||||
| create | Triggered when you create a new user account.
|
|
||||||
| remove_email | Triggered when you remove an email address.
|
|
||||||
| rename | Triggered when you rename your account.{% if currentVersion != "github-ae@latest" %}
|
|
||||||
| change_password | Triggered when you change your password.
|
|
||||||
| forgot_password | Triggered when you ask for [a password reset](/articles/how-can-i-reset-my-password).{% endif %}
|
|
||||||
| login | Triggered when you log in to {% data variables.product.product_location %}.
|
|
||||||
| failed_login | Triggered when you failed to log in successfully.{% if currentVersion != "github-ae@latest" %}
|
|
||||||
| two_factor_requested | Triggered when {% data variables.product.product_name %} asks you for [your two-factor authentication code](/articles/accessing-github-using-two-factor-authentication).{% endif %}
|
|
||||||
| show_private_contributions_count | Triggered when you [publicize private contributions on your profile](/articles/publicizing-or-hiding-your-private-contributions-on-your-profile).
|
|
||||||
| hide_private_contributions_count | Triggered when you [hide private contributions on your profile](/articles/publicizing-or-hiding-your-private-contributions-on-your-profile).{% if currentVersion == "free-pro-team@latest" %}
|
|
||||||
| report_content | Triggered when you [report an issue or pull request, or a comment on an issue, pull request, or commit](/articles/reporting-abuse-or-spam).{% endif %}
|
|
||||||
|
|
||||||
#### The `user_status` category
|
|
||||||
|
|
||||||
| Action | Description
|
|
||||||
|--------------------|---------------------
|
|
||||||
| update | Triggered when you set or change the status on your profile. For more information, see "[Setting a status](/articles/personalizing-your-profile/#setting-a-status)."
|
|
||||||
| destroy | Triggered when you clear the status on your profile.
|
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
|
||||||
@@ -248,3 +63,193 @@ A description of the events within these categories is listed below.
|
|||||||
{% data reusables.audit_log.exported-log-keys-and-values %}
|
{% data reusables.audit_log.exported-log-keys-and-values %}
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
### Security log actions
|
||||||
|
|
||||||
|
An overview of some of the most common actions that are recorded as events in the security log.
|
||||||
|
|
||||||
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
|
||||||
|
#### `account_recovery_token` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `confirm` | Triggered when you successfully [store a new token with a recovery provider](/articles/configuring-two-factor-authentication-recovery-methods).
|
||||||
|
| `recover` | Triggered when you successfully [redeem an account recovery token](/articles/recovering-your-account-if-you-lose-your-2fa-credentials).
|
||||||
|
| `recover_error` | Triggered when a token is used but {% data variables.product.prodname_dotcom %} is not able to validate it.
|
||||||
|
|
||||||
|
#### `billing` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `change_billing_type` | Triggered when you [change how you pay](/articles/adding-or-editing-a-payment-method) for {% data variables.product.prodname_dotcom %}.
|
||||||
|
| `change_email` | Triggered when you [change your email address](/articles/changing-your-primary-email-address).
|
||||||
|
|
||||||
|
#### `marketplace_agreement_signature` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `create` | Triggered when you sign the {% data variables.product.prodname_marketplace %} Developer Agreement.
|
||||||
|
|
||||||
|
#### `marketplace_listing` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `approve` | Triggered when your listing is approved for inclusion in {% data variables.product.prodname_marketplace %}.
|
||||||
|
| `create` | Triggered when you create a listing for your app in {% data variables.product.prodname_marketplace %}.
|
||||||
|
| `delist` | Triggered when your listing is removed from {% data variables.product.prodname_marketplace %}.
|
||||||
|
| `redraft` | Triggered when your listing is sent back to draft state.
|
||||||
|
| `reject` | Triggered when your listing is not accepted for inclusion in {% data variables.product.prodname_marketplace %}.
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
#### `oauth_access` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `create` | Triggered when you [grant access to an {% data variables.product.prodname_oauth_app %}](/articles/authorizing-oauth-apps).
|
||||||
|
| `destroy` | Triggered when you [revoke an {% data variables.product.prodname_oauth_app %}'s access to your account](/articles/reviewing-your-authorized-integrations).
|
||||||
|
|
||||||
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
|
||||||
|
#### `payment_method` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `clear` | Triggered when [a payment method](/articles/removing-a-payment-method) on file is removed.
|
||||||
|
| `create` | Triggered when a new payment method is added, such as a new credit card or PayPal account.
|
||||||
|
| `update` | Triggered when an existing payment method is updated.
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
#### `profile_picture` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `update` | Triggered when you [set or update your profile picture](/articles/setting-your-profile-picture/).
|
||||||
|
|
||||||
|
#### `project` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|--------------------|---------------------
|
||||||
|
| `access` | Triggered when a project board's visibility is changed.
|
||||||
|
| `create` | Triggered when a project board is created.
|
||||||
|
| `rename` | Triggered when a project board is renamed.
|
||||||
|
| `update` | Triggered when a project board is updated.
|
||||||
|
| `delete` | Triggered when a project board is deleted.
|
||||||
|
| `link` | Triggered when a repository is linked to a project board.
|
||||||
|
| `unlink` | Triggered when a repository is unlinked from a project board.
|
||||||
|
| `update_user_permission` | Triggered when an outside collaborator is added to or removed from a project board or has their permission level changed.
|
||||||
|
|
||||||
|
#### `public_key` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `create` | Triggered when you [add a new public SSH key to your {% data variables.product.product_name %} account](/articles/adding-a-new-ssh-key-to-your-github-account).
|
||||||
|
| `delete` | Triggered when you [remove a public SSH key to your {% data variables.product.product_name %} account](/articles/reviewing-your-ssh-keys).
|
||||||
|
|
||||||
|
#### `repo` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `access` | Triggered when you a repository you own is [switched from "private" to "public"](/articles/making-a-private-repository-public) (or vice versa).
|
||||||
|
| `add_member` | Triggered when a {% data variables.product.product_name %} user is {% if currentVersion == "free-pro-team@latest" %}[invited to have collaboration access](/articles/inviting-collaborators-to-a-personal-repository){% else %}[given collaboration access](/articles/inviting-collaborators-to-a-personal-repository){% endif %} to a repository.
|
||||||
|
| `add_topic` | Triggered when a repository owner [adds a topic](/articles/classifying-your-repository-with-topics) to a repository.
|
||||||
|
| `archived` | Triggered when a repository owner [archives a repository](/articles/about-archiving-repositories).{% if enterpriseServerVersions contains currentVersion or currentVersion == "github-ae@latest" %}
|
||||||
|
| `config.disable_anonymous_git_access` | Triggered when [anonymous Git read access is disabled](/enterprise/{{ currentVersion }}/user/articles/enabling-anonymous-git-read-access-for-a-repository) in a public repository.
|
||||||
|
| `config.enable_anonymous_git_access` | Triggered when [anonymous Git read access is enabled](/enterprise/{{ currentVersion }}/user/articles/enabling-anonymous-git-read-access-for-a-repository) in a public repository.
|
||||||
|
| `config.lock_anonymous_git_access` | Triggered when a repository's [anonymous Git read access setting is locked](/enterprise/{{ currentVersion }}/admin/guides/user-management/preventing-users-from-changing-anonymous-git-read-access).
|
||||||
|
| `config.unlock_anonymous_git_access` | Triggered when a repository's [anonymous Git read access setting is unlocked](/enterprise/{{ currentVersion }}/admin/guides/user-management/preventing-users-from-changing-anonymous-git-read-access).{% endif %}
|
||||||
|
| `create` | Triggered when [a new repository is created](/articles/creating-a-new-repository).
|
||||||
|
| `destroy` | Triggered when [a repository is deleted](/articles/deleting-a-repository).{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
| `disable` | Triggered when a repository is disabled (e.g., for [insufficient funds](/articles/unlocking-a-locked-account)).{% endif %}{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
| `enable` | Triggered when a repository is re-enabled.{% endif %}
|
||||||
|
| `remove_member` | Triggered when a {% data variables.product.product_name %} user is [removed from a repository as a collaborator](/articles/removing-a-collaborator-from-a-personal-repository).
|
||||||
|
| `remove_topic` | Triggered when a repository owner removes a topic from a repository.
|
||||||
|
| `rename` | Triggered when [a repository is renamed](/articles/renaming-a-repository).
|
||||||
|
| `transfer` | Triggered when [a repository is transferred](/articles/how-to-transfer-a-repository).
|
||||||
|
| `transfer_start` | Triggered when a repository transfer is about to occur.
|
||||||
|
| `unarchived` | Triggered when a repository owner unarchives a repository.
|
||||||
|
|
||||||
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
#### `sponsors` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `repo_funding_link_button_toggle` | Triggered when you enable or disable a sponsor button in your repository (see "[Displaying a sponsor button in your repository](/articles/displaying-a-sponsor-button-in-your-repository)")
|
||||||
|
| `repo_funding_links_file_action` | Triggered when you change the FUNDING file in your repository (see "[Displaying a sponsor button in your repository](/articles/displaying-a-sponsor-button-in-your-repository)")
|
||||||
|
| `sponsor_sponsorship_cancel` | Triggered when you cancel a sponsorship (see "[Downgrading a sponsorship](/articles/downgrading-a-sponsorship)")
|
||||||
|
| `sponsor_sponsorship_create` | Triggered when you sponsor a developer (see "[Sponsoring an open source contributor](/github/supporting-the-open-source-community-with-github-sponsors/sponsoring-an-open-source-contributor#sponsoring-a-developer)")
|
||||||
|
| `sponsor_sponsorship_preference_change` | Triggered when you change whether you receive email updates from a sponsored developer (see "[Managing your sponsorship](/articles/managing-your-sponsorship)")
|
||||||
|
| `sponsor_sponsorship_tier_change` | Triggered when you upgrade or downgrade your sponsorship (see "[Upgrading a sponsorship](/articles/upgrading-a-sponsorship)" and "[Downgrading a sponsorship](/articles/downgrading-a-sponsorship)")
|
||||||
|
| `sponsored_developer_approve` | Triggered when your {% data variables.product.prodname_sponsors %} account is approved (see "[Setting up {% data variables.product.prodname_sponsors %} for your user account](/github/supporting-the-open-source-community-with-github-sponsors/setting-up-github-sponsors-for-your-user-account)")
|
||||||
|
| `sponsored_developer_create` | Triggered when your {% data variables.product.prodname_sponsors %} account is created (see "[Setting up {% data variables.product.prodname_sponsors %} for your user account](/github/supporting-the-open-source-community-with-github-sponsors/setting-up-github-sponsors-for-your-user-account)")
|
||||||
|
| `sponsored_developer_profile_update` | Triggered when you edit your sponsored developer profile (see "[Editing your profile details for {% data variables.product.prodname_sponsors %}](/github/supporting-the-open-source-community-with-github-sponsors/editing-your-profile-details-for-github-sponsors)")
|
||||||
|
| `sponsored_developer_request_approval` | Triggered when you submit your application for {% data variables.product.prodname_sponsors %} for approval (see "[Setting up {% data variables.product.prodname_sponsors %} for your user account](/github/supporting-the-open-source-community-with-github-sponsors/setting-up-github-sponsors-for-your-user-account)")
|
||||||
|
| `sponsored_developer_tier_description_update` | Triggered when you change the description for a sponsorship tier (see "[Changing your sponsorship tiers](/articles/changing-your-sponsorship-tiers)")
|
||||||
|
| `sponsored_developer_update_newsletter_send` | Triggered when you send an email update to your sponsors (see "[Contacting your sponsors](/articles/contacting-your-sponsors)")
|
||||||
|
| `waitlist_invite_sponsored_developer` | Triggered when you are invited to join {% data variables.product.prodname_sponsors %} from the waitlist (see "[Setting up {% data variables.product.prodname_sponsors %} for your user account](/github/supporting-the-open-source-community-with-github-sponsors/setting-up-github-sponsors-for-your-user-account)")
|
||||||
|
| `waitlist_join` | Triggered when you join the waitlist to become a sponsored developer (see "[Setting up {% data variables.product.prodname_sponsors %} for your user account](/github/supporting-the-open-source-community-with-github-sponsors/setting-up-github-sponsors-for-your-user-account)")
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
#### `successor_invitation` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `accept` | Triggered when you accept a succession invitation (see "[Maintaining ownership continuity of your user account's repositories](/github/setting-up-and-managing-your-github-user-account/maintaining-ownership-continuity-of-your-user-accounts-repositories)")
|
||||||
|
| `cancel` | Triggered when you cancel a succession invitation (see "[Maintaining ownership continuity of your user account's repositories](/github/setting-up-and-managing-your-github-user-account/maintaining-ownership-continuity-of-your-user-accounts-repositories)")
|
||||||
|
| `create` | Triggered when you create a succession invitation (see "[Maintaining ownership continuity of your user account's repositories](/github/setting-up-and-managing-your-github-user-account/maintaining-ownership-continuity-of-your-user-accounts-repositories)")
|
||||||
|
| `decline` | Triggered when you decline a succession invitation (see "[Maintaining ownership continuity of your user account's repositories](/github/setting-up-and-managing-your-github-user-account/maintaining-ownership-continuity-of-your-user-accounts-repositories)")
|
||||||
|
| `revoke` | Triggered when you revoke a succession invitation (see "[Maintaining ownership continuity of your user account's repositories](/github/setting-up-and-managing-your-github-user-account/maintaining-ownership-continuity-of-your-user-accounts-repositories)")
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if enterpriseServerVersions contains currentVersion or currentVersion == "github-ae@latest" %}
|
||||||
|
|
||||||
|
#### `team` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `add_member` | Triggered when a member of an organization you belong to [adds you to a team](/articles/adding-organization-members-to-a-team).
|
||||||
|
| `add_repository` | Triggered when a team you are a member of is given control of a repository.
|
||||||
|
| `create` | Triggered when a new team in an organization you belong to is created.
|
||||||
|
| `destroy` | Triggered when a team you are a member of is deleted from the organization.
|
||||||
|
| `remove_member` | Triggered when a member of an organization is [removed from a team](/articles/removing-organization-members-from-a-team) you are a member of.
|
||||||
|
| `remove_repository` | Triggered when a repository is no longer under a team's control.
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if currentVersion != "github-ae@latest" %}
|
||||||
|
#### `two_factor_authentication` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `enabled` | Triggered when [two-factor authentication](/articles/securing-your-account-with-two-factor-authentication-2fa) is enabled.
|
||||||
|
| `disabled` | Triggered when two-factor authentication is disabled.
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
#### `user` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|--------------------|---------------------
|
||||||
|
| `add_email` | Triggered when you {% if currentVersion != "github-ae@latest" %}[add a new email address](/articles/changing-your-primary-email-address){% else %}add a new email address{% endif %}.
|
||||||
|
| `create` | Triggered when you create a new user account.{% if currentVersion != "github-ae@latest" %}
|
||||||
|
| `change_password` | Triggered when you change your password.
|
||||||
|
| `forgot_password` | Triggered when you ask for [a password reset](/articles/how-can-i-reset-my-password).{% endif %}
|
||||||
|
| `hide_private_contributions_count` | Triggered when you [hide private contributions on your profile](/articles/publicizing-or-hiding-your-private-contributions-on-your-profile).
|
||||||
|
| `login` | Triggered when you log in to {% data variables.product.product_location %}.
|
||||||
|
| `failed_login` | Triggered when you failed to log in successfully.
|
||||||
|
| `remove_email` | Triggered when you remove an email address.
|
||||||
|
| `rename` | Triggered when you rename your account.{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
| `report_content` | Triggered when you [report an issue or pull request, or a comment on an issue, pull request, or commit](/articles/reporting-abuse-or-spam).{% endif %}
|
||||||
|
| `show_private_contributions_count` | Triggered when you [publicize private contributions on your profile](/articles/publicizing-or-hiding-your-private-contributions-on-your-profile).{% if currentVersion != "github-ae@latest" %}
|
||||||
|
| `two_factor_requested` | Triggered when {% data variables.product.product_name %} asks you for [your two-factor authentication code](/articles/accessing-github-using-two-factor-authentication).{% endif %}
|
||||||
|
|
||||||
|
#### `user_status` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|--------------------|---------------------
|
||||||
|
| `update` | Triggered when you set or change the status on your profile. For more information, see "[Setting a status](/articles/personalizing-your-profile/#setting-a-status)."
|
||||||
|
| `destroy` | Triggered when you clear the status on your profile.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ For more information, see "[Setting your commit email address](/articles/setting
|
|||||||
|
|
||||||
### Creating co-authored commits using {% data variables.product.prodname_desktop %}
|
### Creating co-authored commits using {% data variables.product.prodname_desktop %}
|
||||||
|
|
||||||
You can use {% data variables.product.prodname_desktop %} to create a commit with a co-author. For more information, see "[Write a commit message and push your changes](/desktop/contributing-to-projects/committing-and-reviewing-changes-to-your-project#3-write-a-commit-message-and-push-your-changes)" and [{% data variables.product.prodname_desktop %}](https://desktop.github.com).
|
You can use {% data variables.product.prodname_desktop %} to create a commit with a co-author. For more information, see "[Write a commit message and push your changes](/desktop/contributing-to-projects/committing-and-reviewing-changes-to-your-project#4-write-a-commit-message-and-push-your-changes)" and [{% data variables.product.prodname_desktop %}](https://desktop.github.com).
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -75,4 +75,4 @@ The new commit and message will appear on {% data variables.product.product_loca
|
|||||||
- "[Viewing a summary of repository activity](/articles/viewing-a-summary-of-repository-activity)"
|
- "[Viewing a summary of repository activity](/articles/viewing-a-summary-of-repository-activity)"
|
||||||
- "[Viewing a project's contributors](/articles/viewing-a-projects-contributors)"
|
- "[Viewing a project's contributors](/articles/viewing-a-projects-contributors)"
|
||||||
- "[Changing a commit message](/articles/changing-a-commit-message)"
|
- "[Changing a commit message](/articles/changing-a-commit-message)"
|
||||||
- "[Committing and reviewing changes to your project](/desktop/contributing-to-projects/committing-and-reviewing-changes-to-your-project#3-write-a-commit-message-and-push-your-changes)" in the {% data variables.product.prodname_desktop %} documentation
|
- "[Committing and reviewing changes to your project](/desktop/contributing-to-projects/committing-and-reviewing-changes-to-your-project#4-write-a-commit-message-and-push-your-changes)" in the {% data variables.product.prodname_desktop %} documentation
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Using Codespaces in Visual Studio Code
|
title: Using Codespaces in Visual Studio Code
|
||||||
intro: 'You can develop in your codespace directly in {% data variables.product.prodname_vscode %} by connecting the {% data variables.product.prodname_vs_codespaces %} extension with your account on {% data variables.product.product_name %}.'
|
intro: 'You can develop in your codespace directly in {% data variables.product.prodname_vscode %} by connecting the {% data variables.product.prodname_github_codespaces %} extension with your account on {% data variables.product.product_name %}.'
|
||||||
product: '{% data reusables.gated-features.codespaces %}'
|
product: '{% data reusables.gated-features.codespaces %}'
|
||||||
redirect_from:
|
redirect_from:
|
||||||
- /github/developing-online-with-codespaces/connecting-to-your-codespace-from-visual-studio-code
|
- /github/developing-online-with-codespaces/connecting-to-your-codespace-from-visual-studio-code
|
||||||
@@ -12,22 +12,16 @@ versions:
|
|||||||
|
|
||||||
### Prerequisites
|
### Prerequisites
|
||||||
|
|
||||||
Before you can develop in a codespace directly in {% data variables.product.prodname_vscode %}, you must configure the {% data variables.product.prodname_vs_codespaces %} extension to connect to your {% data variables.product.product_name %} account.
|
To develop in a codespace directly in {% data variables.product.prodname_vscode %}, you must sign into the {% data variables.product.prodname_github_codespaces %} extension. The {% data variables.product.prodname_github_codespaces %} extension requires {% data variables.product.prodname_vscode %} October 2020 Release 1.51 or later.
|
||||||
|
|
||||||
1. Use the {% data variables.product.prodname_vs %} Marketplace to install the [{% data variables.product.prodname_vs_codespaces %}](https://marketplace.visualstudio.com/items?itemName=ms-vsonline.vsonline) extension. For more information, see [Extension Marketplace](https://code.visualstudio.com/docs/editor/extension-gallery) in the {% data variables.product.prodname_vscode %} documentation.
|
1. Use the {% data variables.product.prodname_vs %} Marketplace to install the [{% data variables.product.prodname_github_codespaces %}](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces) extension. For more information, see [Extension Marketplace](https://code.visualstudio.com/docs/editor/extension-gallery) in the {% data variables.product.prodname_vscode %} documentation.
|
||||||
2. In {% data variables.product.prodname_vscode %}, in the left sidebar, click the Extensions icon.
|
|
||||||

|
|
||||||
3. Below {% data variables.product.prodname_vs_codespaces %}, click the Manage icon, then click **Extension Settings**.
|
|
||||||

|
|
||||||
4. Use the Codespaces: Account Provider drop-down menu, and click **{% data variables.product.prodname_dotcom %}**.
|
|
||||||

|
|
||||||
{% data reusables.codespaces.click-remote-explorer-icon-vscode %}
|
{% data reusables.codespaces.click-remote-explorer-icon-vscode %}
|
||||||
6. If {% data variables.product.prodname_codespaces %} is not already selected in the header, click **{% data variables.product.prodname_codespaces %}**.
|
2. Use the "REMOTE EXPLORER" drop-down, then click **{% data variables.product.prodname_github_codespaces %}**.
|
||||||

|

|
||||||
7. Click **Sign in to view {% data variables.product.prodname_codespaces %}...**.
|
3. Click **Sign in to view {% data variables.product.prodname_codespaces %}...**.
|
||||||

|

|
||||||
8. To authorize {% data variables.product.prodname_vscode %} to access your account on {% data variables.product.product_name %}, click **Allow**.
|
4. To authorize {% data variables.product.prodname_vscode %} to access your account on {% data variables.product.product_name %}, click **Allow**.
|
||||||
9. Sign in to {% data variables.product.product_name %} to approve the extension.
|
5. Sign in to {% data variables.product.product_name %} to approve the extension.
|
||||||
|
|
||||||
### Creating a codespace in {% data variables.product.prodname_vscode %}
|
### Creating a codespace in {% data variables.product.prodname_vscode %}
|
||||||
|
|
||||||
@@ -38,9 +32,10 @@ After you connect your {% data variables.product.product_name %} account to the
|
|||||||

|

|
||||||
3. Type, then click the repository's name you want to develop in.
|
3. Type, then click the repository's name you want to develop in.
|
||||||

|

|
||||||
4. Click the branch you want to develop in.
|
4. Click the branch you want to develop on.
|
||||||

|

|
||||||
|
5. Click the instance type you want to develop in.
|
||||||
|

|
||||||
### Opening a codespace in {% data variables.product.prodname_vscode %}
|
### Opening a codespace in {% data variables.product.prodname_vscode %}
|
||||||
|
|
||||||
{% data reusables.codespaces.click-remote-explorer-icon-vscode %}
|
{% data reusables.codespaces.click-remote-explorer-icon-vscode %}
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ For more information, see the workflow extract in "[Automatic build for a compil
|
|||||||
* Building using a distributed build system external to GitHub Actions, using a daemon process.
|
* Building using a distributed build system external to GitHub Actions, using a daemon process.
|
||||||
* {% data variables.product.prodname_codeql %} isn't aware of the specific compiler you are using.
|
* {% data variables.product.prodname_codeql %} isn't aware of the specific compiler you are using.
|
||||||
|
|
||||||
For C# projects using either `dotnet build` or `msbuild` which target .NET Core 2, you should specify `/p:UseSharedCompilation=false` in your workflow's `run` step, when you build your code. The `UseSharedCompilation` flag isn't necessary for .NET Core 3.0 and later.
|
For .NET Framework projects, and for C# projects using either `dotnet build` or `msbuild` that target .NET Core 2, you should specify `/p:UseSharedCompilation=false` in your workflow's `run` step, when you build your code. The `UseSharedCompilation` flag isn't necessary for .NET Core 3.0 and later.
|
||||||
|
|
||||||
For example, the following configuration for C# will pass the flag during the first build step.
|
For example, the following configuration for C# will pass the flag during the first build step.
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ versions:
|
|||||||
|
|
||||||
You can see a list of features that are available in beta and a brief description for each feature. Each feature includes a link to give feedback.
|
You can see a list of features that are available in beta and a brief description for each feature. Each feature includes a link to give feedback.
|
||||||
|
|
||||||
1. In the upper-right corner of any page, click your profile photo, then click **Feature preview**.
|
{% data reusables.feature-preview.feature-preview-setting %}
|
||||||

|
|
||||||
2. Optionally, to the right of a feature, click **Enable** or **Disable**.
|
2. Optionally, to the right of a feature, click **Enable** or **Disable**.
|
||||||

|

|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: Reviewing the audit log for your organization
|
title: Reviewing the audit log for your organization
|
||||||
intro: 'The audit log allows organization admins to quickly review the actions performed by members of your organization. It includes details such as who performed the action, what the action was, and when it was performed.'
|
intro: 'The audit log allows organization admins to quickly review the actions performed by members of your organization. It includes details such as who performed the action, what the action was, and when it was performed.'
|
||||||
|
miniTocMaxHeadingLevel: 4
|
||||||
redirect_from:
|
redirect_from:
|
||||||
- /articles/reviewing-the-audit-log-for-your-organization
|
- /articles/reviewing-the-audit-log-for-your-organization
|
||||||
versions:
|
versions:
|
||||||
@@ -11,7 +12,7 @@ versions:
|
|||||||
|
|
||||||
### Accessing the audit log
|
### Accessing the audit log
|
||||||
|
|
||||||
The audit log lists actions performed within the last 90 days. Only owners can access an organization's audit log.
|
The audit log lists events triggered by activities that affect your organization within the last 90 days. Only owners can access an organization's audit log.
|
||||||
|
|
||||||
{% data reusables.profile.access_profile %}
|
{% data reusables.profile.access_profile %}
|
||||||
{% data reusables.profile.access_org %}
|
{% data reusables.profile.access_org %}
|
||||||
@@ -26,73 +27,110 @@ The audit log lists actions performed within the last 90 days. Only owners can a
|
|||||||
|
|
||||||
To search for specific events, use the `action` qualifier in your query. Actions listed in the audit log are grouped within the following categories:
|
To search for specific events, use the `action` qualifier in your query. Actions listed in the audit log are grouped within the following categories:
|
||||||
|
|
||||||
| Category Name | Description
|
| Category name | Description
|
||||||
|------------------|-------------------{% if currentVersion == "free-pro-team@latest" %}
|
|------------------|-------------------{% if currentVersion == "free-pro-team@latest" %}
|
||||||
| `account` | Contains all activities related to your organization account.{% endif %}{% if currentVersion == "free-pro-team@latest" %}
|
| [`account`](#account-category-actions) | Contains all activities related to your organization account.
|
||||||
| `billing` | Contains all activities related to your organization's billing.{% endif %}
|
| [`advisory_credit`](#advisory_credit-category-actions) | Contains all activities related to crediting a contributor for a security advisory in the {% data variables.product.prodname_advisory_database %}. For more information, see "[About {% data variables.product.prodname_dotcom %} Security Advisories](/github/managing-security-vulnerabilities/about-github-security-advisories)."
|
||||||
| `discussion_post` | Contains all activities related to discussions posted to a team page.
|
| [`billing`](#billing-category-actions) | Contains all activities related to your organization's billing.
|
||||||
| `discussion_post_reply` | Contains all activities related to replies to discussions posted to a team page.
|
| [`dependabot_alerts`](#dependabot_alerts-category-actions) | Contains organization-level configuration activities for {% data variables.product.prodname_dependabot %} alerts in existing repositories. For more information, see "[About alerts for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies)."
|
||||||
| `hook` | Contains all activities related to webhooks.
|
| [`dependabot_alerts_new_repos`](#dependabot_alerts_new_repos-category-actions) | Contains organization-level configuration activities for {% data variables.product.prodname_dependabot %} alerts in new repositories created in the organization.
|
||||||
| `integration_installation_request` | Contains all activities related to organization member requests for owners to approve integrations for use in the organization. |{% if currentVersion == "free-pro-team@latest" %}
|
| [`dependabot_security_updates`](#dependabot_security_updates-category-actions) | Contains organization-level configuration activities for {% data variables.product.prodname_dependabot_security_updates %} in existing repositories. For more information, see "[Configuring {% data variables.product.prodname_dependabot_security_updates %}](/github/managing-security-vulnerabilities/configuring-dependabot-security-updates)."
|
||||||
| `marketplace_agreement_signature` | Contains all activities related to signing the {% data variables.product.prodname_marketplace %} Developer Agreement.
|
| [`dependabot_security_updates_new_repos`](#dependabot_security_updates_new_repos-category-actions) | Contains organization-level configuration activities for {% data variables.product.prodname_dependabot_security_updates %} for new repositories created in the organization.
|
||||||
| `marketplace_listing` | Contains all activities related to listing apps in {% data variables.product.prodname_marketplace %}.{% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.22" or currentVersion == "github-ae@latest" %}
|
| [`dependency_graph`](#dependency_graph-category-actions) | Contains organization-level configuration activities for dependency graphs for repositories. For more information, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)."
|
||||||
| `members_can_create_pages` | Contains all activities related to disabling the publication of {% data variables.product.prodname_pages %} sites for repositories in the organization. For more information, see "[Restricting publication of {% data variables.product.prodname_pages %} sites for your organization](/github/setting-up-and-managing-organizations-and-teams/disabling-publication-of-github-pages-sites-for-your-organization)." | {% endif %}
|
| [`dependency_graph_new_repos`](#dependency_graph_new_repos-category-actions) | Contains organization-level configuration activities for new repositories created in the organization.{% endif %}
|
||||||
| `org` | Contains all activities related to organization membership{% if currentVersion == "free-pro-team@latest" %}
|
| [`discussion_post`](#discussion_post-category-actions) | Contains all activities related to discussions posted to a team page.
|
||||||
| `org_credential_authorization` | Contains all activities related to authorizing credentials for use with SAML single sign-on.{% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.19" or currentVersion == "github-ae@latest" %}
|
| [`discussion_post_reply`](#discussion_post_reply-category-actions) | Contains all activities related to replies to discussions posted to a team page.
|
||||||
| `organization_label` | Contains all activities related to default labels for repositories in your organization.{% endif %}{% if currentVersion == "free-pro-team@latest" %}
|
| [`hook`](#hook-category-actions) | Contains all activities related to webhooks.
|
||||||
| `payment_method` | Contains all activities related to how your organization pays for GitHub.{% endif %}
|
| [`integration_installation_request`](#integration_installation_request-category-actions) | Contains all activities related to organization member requests for owners to approve integrations for use in the organization. |
|
||||||
| `profile_picture` | Contains all activities related to your organization's profile picture.
|
| [`issue`](#issue-category-actions) | Contains activities related to deleting an issue. {% if currentVersion == "free-pro-team@latest" %}
|
||||||
| `project` | Contains all activities related to project boards.
|
| [`marketplace_agreement_signature`](#marketplace_agreement_signature-category-actions) | Contains all activities related to signing the {% data variables.product.prodname_marketplace %} Developer Agreement.
|
||||||
| `protected_branch` | Contains all activities related to protected branches.
|
| [`marketplace_listing`](#marketplace_listing-category-actions) | Contains all activities related to listing apps in {% data variables.product.prodname_marketplace %}.{% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.22" or currentVersion == "github-ae@latest" %}
|
||||||
| `repo` | Contains all activities related to the repositories owned by your organization.{% if currentVersion == "free-pro-team@latest" %}
|
| [`members_can_create_pages`](#members_can_create_pages-category-actions) | Contains all activities related to disabling the publication of {% data variables.product.prodname_pages %} sites for repositories in the organization. For more information, see "[Restricting publication of {% data variables.product.prodname_pages %} sites for your organization](/github/setting-up-and-managing-organizations-and-teams/disabling-publication-of-github-pages-sites-for-your-organization)." | {% endif %}
|
||||||
| `repository_content_analysis` | Contains all activities related to [enabling or disabling data use for a private repository](/articles/about-github-s-use-of-your-data).
|
| [`org`](#org-category-actions) | Contains activities related to organization membership.{% if currentVersion == "free-pro-team@latest" %}
|
||||||
| `repository_dependency_graph` | Contains all activities related to [enabling or disabling the dependency graph for a private repository](/github/visualizing-repository-data-with-graphs/exploring-the-dependencies-and-dependents-of-a-repository).{% endif %}{% if currentVersion != "github-ae@latest" %}
|
| [`org_credential_authorization`](#org_credential_authorization-category-actions) | Contains all activities related to authorizing credentials for use with SAML single sign-on.{% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.19" or currentVersion == "github-ae@latest" %}
|
||||||
| `repository_vulnerability_alert` | Contains all activities related to [{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.21" %}{% data variables.product.prodname_dependabot %}{% else %}security{% endif %} alerts for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies).{% endif %}{% if currentVersion == "free-pro-team@latest" %}
|
| [`organization_label`](#organization_label-category-actions) | Contains all activities related to default labels for repositories in your organization.{% endif %}
|
||||||
| `sponsors` | Contains all events related to sponsor buttons (see "[Displaying a sponsor button in your repository](/articles/displaying-a-sponsor-button-in-your-repository)"){% endif %}{% if enterpriseServerVersions contains currentVersion or currentVersion == "github-ae@latest" %}
|
| [`oauth_application`](#oauth_application-category-actions) | Contains all activities related to OAuth Apps. {% if currentVersion == "free-pro-team@latest" %}
|
||||||
| `team` | Contains all activities related to teams in your organization.{% endif %}
|
| [`payment_method`](#payment_method-category-actions) | Contains all activities related to how your organization pays for GitHub.{% endif %}
|
||||||
| `team_discussions` | Contains activities related to managing team discussions for an organization.
|
| [`profile_picture`](#profile_picture-category-actions) | Contains all activities related to your organization's profile picture.
|
||||||
|
| [`project`](#project-category-actions) | Contains all activities related to project boards.
|
||||||
|
| [`protected_branch`](#protected_branch-category-actions) | Contains all activities related to protected branches.
|
||||||
|
| [`repo`](#repo-category-actions) | Contains activities related to the repositories owned by your organization.{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
| [`repository_advisory`](#repository_advisory-category-actions) | Contains repository-level activities related to security advisories in the {% data variables.product.prodname_advisory_database %}. For more information, see "[About {% data variables.product.prodname_dotcom %} Security Advisories](/github/managing-security-vulnerabilities/about-github-security-advisories)."
|
||||||
|
| [`repository_content_analysis`](#repository_content_analysis-category-actions) | Contains all activities related to [enabling or disabling data use for a private repository](/articles/about-github-s-use-of-your-data).{% endif %}{% if currentVersion != "github-ae@latest" %}
|
||||||
|
| [`repository_dependency_graph`](#repository_dependency_graph-category-actions) | Contains repository-level activities related to enabling or disabling the dependency graph for a {% if currentVersion == "free-pro-team@latest" %}private {% endif %}repository. For more information, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)."{% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.22" %}
|
||||||
|
| [`repository_secret_scanning`](#repository_secret_scanning-category-actions) | Contains repository-level activities related to secret scanning. For more information, see "[About secret scanning](/github/administering-a-repository/about-secret-scanning)." {% endif %}{% if currentVersion != "github-ae@latest" %}
|
||||||
|
| [`repository_vulnerability_alert`](#repository_vulnerability_alert-category-actions) | Contains all activities related to [{% data variables.product.prodname_dependabot_alerts %} for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies).{% endif %}{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
| [`repository_vulnerability_alerts`](#repository_vulnerability_alerts-category-actions) | Contains repository-level configuration activities for {% data variables.product.prodname_dependabot %} alerts. {% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.22" %}
|
||||||
|
| [`secret_scanning`](#secret_scanning-category-actions) | Contains organization-level configuration activities for secret scanning in existing repositories. For more information, see "[About secret scanning](/github/administering-a-repository/about-secret-scanning)."
|
||||||
|
| [`secret_scanning_new_repos`](#secret_scanning_new_repos-category-actions) | Contains organization-level configuration activities for secret scanning for new repositories created in the organization. {% endif %}{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
| [`sponsors`](#sponsors-category-actions) | Contains all events related to sponsor buttons (see "[Displaying a sponsor button in your repository](/articles/displaying-a-sponsor-button-in-your-repository)"){% endif %}{% if enterpriseServerVersions contains currentVersion or currentVersion == "github-ae@latest" %}
|
||||||
|
| [`team`](#team-category-actions) | Contains all activities related to teams in your organization.{% endif %}
|
||||||
|
| [`team_discussions`](#team_discussions-category-actions) | Contains activities related to managing team discussions for an organization.
|
||||||
|
|
||||||
You can search for specific sets of actions using these terms. For example:
|
You can search for specific sets of actions using these terms. For example:
|
||||||
|
|
||||||
* `action:team` finds all events grouped within the team category.
|
* `action:team` finds all events grouped within the team category.
|
||||||
* `-action:hook` excludes all events in the webhook category.
|
* `-action:hook` excludes all events in the webhook category.
|
||||||
|
|
||||||
Each category has a set of associated events that you can filter on. For example:
|
Each category has a set of associated actions that you can filter on. For example:
|
||||||
|
|
||||||
* `action:team.create` finds all events where a team was created.
|
* `action:team.create` finds all events where a team was created.
|
||||||
* `-action:hook.events_changed` excludes all events where the events on a webhook have been altered.
|
* `-action:hook.events_changed` excludes all events where the events on a webhook have been altered.
|
||||||
|
|
||||||
This list describes the available categories and associated events:
|
#### Search based on time of action
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}- [The `account` category](#the-account-category)
|
Use the `created` qualifier to filter events in the audit log based on when they occurred. {% data reusables.time_date.date_format %} {% data reusables.time_date.time_format %}
|
||||||
- [The `billing` category](#the-billing-category){% endif %}
|
|
||||||
- [The `discussion_post` category](#the-discussion_post-category)
|
{% data reusables.search.date_gt_lt %} For example:
|
||||||
- [The `discussion_post_reply` category](#the-discussion_post_reply-category)
|
|
||||||
- [The `hook` category](#the-hook-category)
|
* `created:2014-07-08` finds all events that occurred on July 8th, 2014.
|
||||||
- [The `integration_installation_request` category](#the-integration_installation_request-category)
|
* `created:>=2014-07-08` finds all events that occurred on or after July 8th, 2014.
|
||||||
- [The `issue` category](#the-issue-category){% if currentVersion == "free-pro-team@latest" %}
|
* `created:<=2014-07-08` finds all events that occurred on or before July 8th, 2014.
|
||||||
- [The `marketplace_agreement_signature` category](#the-marketplace_agreement_signature-category)
|
* `created:2014-07-01..2014-07-31` finds all events that occurred in the month of July 2014.
|
||||||
- [The `marketplace_listing` category](#the-marketplace_listing-category){% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.22" or currentVersion == "github-ae@latest" %}
|
|
||||||
- [The `members_can_create_pages` category](#the-members_can_create_pages-category){% endif %}
|
The audit log contains data for the past 90 days, but you can use the `created` qualifier to search for events earlier than that.
|
||||||
- [The `org` category](#the-org-category){% if currentVersion == "free-pro-team@latest" %}
|
|
||||||
- [The `org_credential_authorization` category](#the-org_credential_authorization-category){% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.19" or currentVersion == "github-ae@latest" %}
|
#### Search based on location
|
||||||
- [The `organization_label` category](#the-organization_label-category){% endif %}
|
|
||||||
- [The `oauth_application` category](#the-oauth_application-category){% if currentVersion == "free-pro-team@latest" %}
|
Using the qualifier `country`, you can filter events in the audit log based on the originating country. You can use a country's two-letter short code or its full name. Keep in mind that countries with spaces in their name will need to be wrapped in quotation marks. For example:
|
||||||
- [The `payment_method` category](#the-payment_method-category){% endif %}
|
|
||||||
- [The `profile_picture` category](#the-profile_picture-category)
|
* `country:de` finds all events that occurred in Germany.
|
||||||
- [The `project` category](#the-project-category)
|
* `country:Mexico` finds all events that occurred in Mexico.
|
||||||
- [The `protected_branch` category](#the-protected_branch-category)
|
* `country:"United States"` all finds events that occurred in the United States.
|
||||||
- [The `repo` category](#the-repo-category){% if currentVersion == "free-pro-team@latest" %}
|
|
||||||
- [The `repository_content_analysis` category](#the-repository_content_analysis-category)
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
- [The `repository_dependency_graph` category](#the-repository_dependency_graph-category){% endif %}{% if currentVersion != "github-ae@latest" %}
|
### Exporting the audit log
|
||||||
- [The `repository_vulnerability_alert` category](#the-repository_vulnerability_alert-category){% endif %}{% if currentVersion == "free-pro-team@latest" %}
|
|
||||||
- [The `sponsors` category](#the-sponsors-category){% endif %}{% if enterpriseServerVersions contains currentVersion or currentVersion == "github-ae@latest" %}
|
{% data reusables.audit_log.export-log %}
|
||||||
- [The `team` category](#the-team-category){% endif %}
|
{% data reusables.audit_log.exported-log-keys-and-values %}
|
||||||
- [The `team_discussions` category](#the-team_discussions-category)
|
{% endif %}
|
||||||
|
|
||||||
|
### Using the Audit log API
|
||||||
|
|
||||||
|
{% note %}
|
||||||
|
|
||||||
|
**Note**: The Audit log API is available for organizations using {% data variables.product.prodname_enterprise %}. {% data reusables.gated-features.more-info-org-products %}
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
To ensure a secure IP and maintain compliance for your organization, you can use the Audit log API to keep copies of your audit log data and monitor:
|
||||||
|
* Access to your organization or repository settings.
|
||||||
|
* Changes in permissions.
|
||||||
|
* Added or removed users in an organization, repository, or team.
|
||||||
|
* Users being promoted to admin.
|
||||||
|
* Changes to permissions of a GitHub App.
|
||||||
|
|
||||||
|
The GraphQL response can include data for up to 90 to 120 days.
|
||||||
|
|
||||||
|
For example, you can make a GraphQL request to see all the new organization members added to your organization. For more information, see the "[GraphQL API Audit Log](/graphql/reference/interfaces#auditentry/)."
|
||||||
|
|
||||||
|
### Audit log actions
|
||||||
|
|
||||||
|
An overview of some of the most common actions that are recorded as events in the audit log.
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
|
||||||
##### The `account` category
|
#### `account` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
@@ -101,30 +139,81 @@ This list describes the available categories and associated events:
|
|||||||
| `pending_plan_change` | Triggered when an organization owner or billing manager [cancels or downgrades a paid subscription](/articles/how-does-upgrading-or-downgrading-affect-the-billing-process/).
|
| `pending_plan_change` | Triggered when an organization owner or billing manager [cancels or downgrades a paid subscription](/articles/how-does-upgrading-or-downgrading-affect-the-billing-process/).
|
||||||
| `pending_subscription_change` | Triggered when a [{% data variables.product.prodname_marketplace %} free trial starts or expires](/articles/about-billing-for-github-marketplace/).
|
| `pending_subscription_change` | Triggered when a [{% data variables.product.prodname_marketplace %} free trial starts or expires](/articles/about-billing-for-github-marketplace/).
|
||||||
|
|
||||||
##### The `billing` category
|
#### `advisory_credit` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `accept` | Triggered when someone accepts credit for a security advisory. For more information, see "[Editing a security advisory](/github/managing-security-vulnerabilities/editing-a-security-advisory)."
|
||||||
|
| `create` | Triggered when the administrator of a security advisory adds someone to the credit section.
|
||||||
|
| `decline` | Triggered when someone declines credit for a security advisory.
|
||||||
|
| `destroy` | Triggered when the administrator of a security advisory removes someone from the credit section.
|
||||||
|
|
||||||
|
#### `billing` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
| `change_billing_type` | Triggered when your organization [changes how it pays for {% data variables.product.prodname_dotcom %}](/articles/adding-or-editing-a-payment-method).
|
| `change_billing_type` | Triggered when your organization [changes how it pays for {% data variables.product.prodname_dotcom %}](/articles/adding-or-editing-a-payment-method).
|
||||||
| `change_email` | Triggered when your organization's [billing email address](/articles/setting-your-billing-email) changes.
|
| `change_email` | Triggered when your organization's [billing email address](/articles/setting-your-billing-email) changes.
|
||||||
|
|
||||||
|
#### `dependabot_alerts` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `disable` | Triggered when an organization owner disables {% data variables.product.prodname_dependabot_alerts %} for all existing {% if currentVersion == "free-pro-team@latest" %}private {% endif %}repositories. For more information, see "[Managing security and analysis settings for your organization](/github/setting-up-and-managing-organizations-and-teams/managing-security-and-analysis-settings-for-your-organization)."
|
||||||
|
| `enable` | Triggered when an organization owner enables {% data variables.product.prodname_dependabot_alerts %} for all existing {% if currentVersion == "free-pro-team@latest" %}private {% endif %}repositories.
|
||||||
|
|
||||||
|
#### `dependabot_alerts_new_repos` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `disable` | Triggered when an organization owner disables {% data variables.product.prodname_dependabot_alerts %} for all new {% if currentVersion == "free-pro-team@latest" %}private {% endif %}repositories. For more information, see "[Managing security and analysis settings for your organization](/github/setting-up-and-managing-organizations-and-teams/managing-security-and-analysis-settings-for-your-organization)."
|
||||||
|
| `enable` | Triggered when an organization owner enbles {% data variables.product.prodname_dependabot_alerts %} for all new {% if currentVersion == "free-pro-team@latest" %}private {% endif %}repositories.
|
||||||
|
|
||||||
|
#### `dependabot_security_updates` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `disable` | Triggered when an organization owner disables {% data variables.product.prodname_dependabot_security_updates %} for all existing repositories. For more information, see "[Managing security and analysis settings for your organization](/github/setting-up-and-managing-organizations-and-teams/managing-security-and-analysis-settings-for-your-organization)."
|
||||||
|
| `enable` | Triggered when an organization owner enables {% data variables.product.prodname_dependabot_security_updates %} for all existing repositories.
|
||||||
|
|
||||||
|
#### `dependabot_security_updates_new_repos` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `disable` | Triggered when an organization owner disables {% data variables.product.prodname_dependabot_security_updates %} for all new repositories. For more information, see "[Managing security and analysis settings for your organization](/github/setting-up-and-managing-organizations-and-teams/managing-security-and-analysis-settings-for-your-organization)."
|
||||||
|
| `enable` | Triggered when an organization owner enables {% data variables.product.prodname_dependabot_security_updates %} for all new repositories.
|
||||||
|
|
||||||
|
#### `dependency_graph` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `disable` | Triggered when an organization owner disables the dependency graph for all existing repositories. For more information, see "[Managing security and analysis settings for your organization](/github/setting-up-and-managing-organizations-and-teams/managing-security-and-analysis-settings-for-your-organization)."
|
||||||
|
| `enable` | Triggered when an organization owner enables the dependency graph for all existing repositories.
|
||||||
|
|
||||||
|
#### `dependency_graph_new_repos` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `disable` | Triggered when an organization owner disables the dependency graph for all new repositories. For more information, see "[Managing security and analysis settings for your organization](/github/setting-up-and-managing-organizations-and-teams/managing-security-and-analysis-settings-for-your-organization)."
|
||||||
|
| `enable` | Triggered when an organization owner enables the dependency graph for all new repositories.
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
##### The `discussion_post` category
|
#### `discussion_post` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
| `update` | Triggered when [a team discussion post is edited](/articles/managing-disruptive-comments/#editing-a-comment).
|
| `update` | Triggered when [a team discussion post is edited](/articles/managing-disruptive-comments/#editing-a-comment).
|
||||||
| `destroy` | Triggered when [a team discussion post is deleted](/articles/managing-disruptive-comments/#deleting-a-comment).
|
| `destroy` | Triggered when [a team discussion post is deleted](/articles/managing-disruptive-comments/#deleting-a-comment).
|
||||||
|
|
||||||
##### The `discussion_post_reply` category
|
#### `discussion_post_reply` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
| `update` | Triggered when [a reply to a team discussion post is edited](/articles/managing-disruptive-comments/#editing-a-comment).
|
| `update` | Triggered when [a reply to a team discussion post is edited](/articles/managing-disruptive-comments/#editing-a-comment).
|
||||||
| `destroy` | Triggered when [a reply to a team discussion post is deleted](/articles/managing-disruptive-comments/#deleting-a-comment).
|
| `destroy` | Triggered when [a reply to a team discussion post is deleted](/articles/managing-disruptive-comments/#deleting-a-comment).
|
||||||
|
|
||||||
##### The `hook` category
|
#### `hook` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
@@ -133,14 +222,14 @@ This list describes the available categories and associated events:
|
|||||||
| `destroy` | Triggered when an existing hook was removed from a repository.
|
| `destroy` | Triggered when an existing hook was removed from a repository.
|
||||||
| `events_changed` | Triggered when the events on a hook have been altered.
|
| `events_changed` | Triggered when the events on a hook have been altered.
|
||||||
|
|
||||||
##### The `integration_installation_request` category
|
#### `integration_installation_request` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
| `create` | Triggered when an organization member requests that an organization owner install an integration for use in the organization.
|
| `create` | Triggered when an organization member requests that an organization owner install an integration for use in the organization.
|
||||||
| `close` | Triggered when a request to install an integration for use in an organization is either approved or denied by an organization owner, or canceled by the organization member who opened the request.
|
| `close` | Triggered when a request to install an integration for use in an organization is either approved or denied by an organization owner, or canceled by the organization member who opened the request.
|
||||||
|
|
||||||
##### The `issue` category
|
#### `issue` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
@@ -148,13 +237,13 @@ This list describes the available categories and associated events:
|
|||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
|
||||||
##### The `marketplace_agreement_signature` category
|
#### `marketplace_agreement_signature` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
| `create` | Triggered when you sign the {% data variables.product.prodname_marketplace %} Developer Agreement.
|
| `create` | Triggered when you sign the {% data variables.product.prodname_marketplace %} Developer Agreement.
|
||||||
|
|
||||||
##### The `marketplace_listing` category
|
#### `marketplace_listing` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
@@ -168,7 +257,7 @@ This list describes the available categories and associated events:
|
|||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.22" or currentVersion == "github-ae@latest" %}
|
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.22" or currentVersion == "github-ae@latest" %}
|
||||||
|
|
||||||
##### The `members_can_create_pages` category
|
#### `members_can_create_pages` category actions
|
||||||
|
|
||||||
For more information, see "[Restricting publication of {% data variables.product.prodname_pages %} sites for your organization](/github/setting-up-and-managing-organizations-and-teams/disabling-publication-of-github-pages-sites-for-your-organization)."
|
For more information, see "[Restricting publication of {% data variables.product.prodname_pages %} sites for your organization](/github/setting-up-and-managing-organizations-and-teams/disabling-publication-of-github-pages-sites-for-your-organization)."
|
||||||
|
|
||||||
@@ -179,7 +268,7 @@ For more information, see "[Restricting publication of {% data variables.product
|
|||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
##### The `org` category
|
#### `org` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------{% if currentVersion == "free-pro-team@latest"%}
|
|------------------|-------------------{% if currentVersion == "free-pro-team@latest"%}
|
||||||
@@ -222,7 +311,7 @@ For more information, see "[Restricting publication of {% data variables.product
|
|||||||
| `update_terms_of_service` | Triggered when an organization changes between the Standard Terms of Service and the Corporate Terms of Service. For more information, see "[Upgrading to the Corporate Terms of Service](/articles/upgrading-to-the-corporate-terms-of-service)."{% endif %}
|
| `update_terms_of_service` | Triggered when an organization changes between the Standard Terms of Service and the Corporate Terms of Service. For more information, see "[Upgrading to the Corporate Terms of Service](/articles/upgrading-to-the-corporate-terms-of-service)."{% endif %}
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
##### The `org_credential_authorization` category
|
#### `org_credential_authorization` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
@@ -233,7 +322,7 @@ For more information, see "[Restricting publication of {% data variables.product
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.19" or currentVersion == "github-ae@latest" %}
|
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.19" or currentVersion == "github-ae@latest" %}
|
||||||
##### The `organization_label` category
|
#### `organization_label` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
@@ -243,7 +332,7 @@ For more information, see "[Restricting publication of {% data variables.product
|
|||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
##### The `oauth_application` category
|
#### `oauth_application` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
@@ -255,7 +344,7 @@ For more information, see "[Restricting publication of {% data variables.product
|
|||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
|
||||||
##### The `payment_method` category
|
#### `payment_method` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
@@ -265,12 +354,12 @@ For more information, see "[Restricting publication of {% data variables.product
|
|||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
##### The `profile_picture` category
|
#### `profile_picture` category actions
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
| update | Triggered when you set or update your organization's profile picture.
|
| update | Triggered when you set or update your organization's profile picture.
|
||||||
|
|
||||||
##### The `project` category
|
#### `project` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|--------------------|---------------------
|
|--------------------|---------------------
|
||||||
@@ -284,7 +373,7 @@ For more information, see "[Restricting publication of {% data variables.product
|
|||||||
| `update_team_permission` | Triggered when a team's project board permission level is changed or when a team is added or removed from a project board. |
|
| `update_team_permission` | Triggered when a team's project board permission level is changed or when a team is added or removed from a project board. |
|
||||||
| `update_user_permission` | Triggered when an organization member or outside collaborator is added to or removed from a project board or has their permission level changed.|
|
| `update_user_permission` | Triggered when an organization member or outside collaborator is added to or removed from a project board or has their permission level changed.|
|
||||||
|
|
||||||
##### The `protected_branch` category
|
#### `protected_branch` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|--------------------|---------------------
|
|--------------------|---------------------
|
||||||
@@ -304,7 +393,7 @@ For more information, see "[Restricting publication of {% data variables.product
|
|||||||
| `update_linear_history_requirement_enforcement_level ` | Triggered when required linear commit history is enabled or disabled for a protected branch.
|
| `update_linear_history_requirement_enforcement_level ` | Triggered when required linear commit history is enabled or disabled for a protected branch.
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
##### The `repo` category
|
#### `repo` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
@@ -334,34 +423,80 @@ For more information, see "[Restricting publication of {% data variables.product
|
|||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
|
||||||
##### The `repository_content_analysis` category
|
#### `repository_advisory` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `close` | Triggered when someone closes a security advisory. For more information, see "[About {% data variables.product.prodname_dotcom %} Security Advisories](/github/managing-security-vulnerabilities/about-github-security-advisories)."
|
||||||
|
| `cve_request` | Triggered when someone requests a CVE (Common Vulnerabilities and Exposures) number from {% data.variables.product.prodname_dotcom %} for a draft security advisory.
|
||||||
|
| `github_broadcast` | Triggered when {% data.variables.product.prodname_dotcom %} makes a security advisory public in the {% data variables.product.prodname_advisory_database %}.
|
||||||
|
| `github_withdraw` | Triggered when {% data.variables.product.prodname_dotcom %} withdraws a security advisory that was published in error.
|
||||||
|
| `open` | Triggered when someone opens a draft security advisory.
|
||||||
|
| `publish` | Triggered when someone publishes a security advisory.
|
||||||
|
| `reopen` | Triggered when someone reopens as draft security advisory.
|
||||||
|
| `update` | Triggered when someone edits a draft or published security advisory.
|
||||||
|
|
||||||
|
#### `repository_content_analysis` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
| `enable` | Triggered when an organization owner or person with admin access to the repository [enables data use settings for a private repository](/github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository).
|
| `enable` | Triggered when an organization owner or person with admin access to the repository [enables data use settings for a private repository](/github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository).
|
||||||
| `disable` | Triggered when an organization owner or person with admin access to the repository [disables data use settings for a private repository](/github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository).
|
| `disable` | Triggered when an organization owner or person with admin access to the repository [disables data use settings for a private repository](/github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository).
|
||||||
|
|
||||||
##### The `repository_dependency_graph` category
|
{% endif %}{% if currentVersion != "github-ae@latest" %}
|
||||||
|
|
||||||
|
#### `repository_dependency_graph` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
| `enable` | Triggered when a repository owner or person with admin access to the repository [enables the dependency graph for a private repository](/github/visualizing-repository-data-with-graphs/exploring-the-dependencies-and-dependents-of-a-repository).
|
| `disable` | Triggered when a repository owner or person with admin access to the repository disables the dependency graph for a {% if currentVersion == "free-pro-team@latest" %}private {% endif %}repository. For more information, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)."
|
||||||
| `disable` | Triggered when a repository owner or person with admin access to the repository [disables the dependency graph for a private repository](/github/visualizing-repository-data-with-graphs/exploring-the-dependencies-and-dependents-of-a-repository).
|
| `enable` | Triggered when a repository owner or person with admin access to the repository enables the dependency graph for a {% if currentVersion == "free-pro-team@latest" %}private {% endif %}repository.
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.22" %}
|
||||||
{% if currentVersion != "github-ae@latest" %}
|
#### `repository_secret_scanning` category actions
|
||||||
##### The `repository_vulnerability_alert` category
|
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
| `create` | Triggered when {% data variables.product.product_name %} creates a [{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.21" %}{% data variables.product.prodname_dependabot %}{% else %}security{% endif %} alert for a vulnerable dependency](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies) in a particular repository.
|
| `disable` | Triggered when a repository owner or person with admin access to the repository disables secret scanning for a {% if currentVersion == "free-pro-team@latest" %}private {% endif %}repository. For more information, see "[About secret scanning](/github/administering-a-repository/about-secret-scanning)."
|
||||||
| `resolve` | Triggered when someone with write access to a repository [pushes changes to update and resolve a vulnerability](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies) in a project dependency.
|
| `enable` | Triggered when a repository owner or person with admin access to the repository enables secret scanning for a {% if currentVersion == "free-pro-team@latest" %}private {% endif %}repository.
|
||||||
| `dismiss` | Triggered when an organization owner or person with admin access to the repository dismisses a {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.21" %}{% data variables.product.prodname_dependabot %}{% else %}security{% endif %} alert about a vulnerable dependency.{% if currentVersion == "free-pro-team@latest" %}
|
|
||||||
| `authorized_users_teams` | Triggered when an organization owner or a member with admin permissions to the repository [updates the list of people or teams authorized to receive {% data variables.product.prodname_dependabot_alerts %}](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-dependabot-alerts) for vulnerable dependencies in the repository.{% endif %}
|
{% endif %}{% if currentVersion != "github-ae@latest" %}
|
||||||
|
#### `repository_vulnerability_alert` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `create` | Triggered when {% data variables.product.product_name %} creates a {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.21" %}{% data variables.product.prodname_dependabot %}{% else %}security{% endif %} alert for a repository that uses a vulnerable dependency. For more information, see "[About alerts for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies)."
|
||||||
|
| `dismiss` | Triggered when an organization owner or person with admin access to the repository dismisses a {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.21" %}{% data variables.product.prodname_dependabot %}{% else %}security{% endif %} alert about a vulnerable dependency.
|
||||||
|
| `resolve` | Triggered when someone with write access to a repository pushes changes to update and resolve a vulnerability in a project dependency.
|
||||||
|
|
||||||
|
{% endif %}{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
#### `repository_vulnerability_alerts` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `authorized_users_teams` | Triggered when an organization owner or a person with admin permissions to the repository updates the list of people or teams authorized to receive {% data variables.product.prodname_dependabot_alerts %} for vulnerable dependencies in the repository. For more information, see "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-dependabot-alerts)."
|
||||||
|
| `disable` | Triggered when a repository owner or person with admin access to the repository disables {% data variables.product.prodname_dependabot_alerts %}.
|
||||||
|
| `enable` | Triggered when a repository owner or person with admin access to the repository enables {% data variables.product.prodname_dependabot_alerts %}.
|
||||||
|
|
||||||
|
{% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.22" %}
|
||||||
|
#### `secret_scanning` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `disable` | Triggered when an organization owner disables secret scanning for all existing{% if currentVersion == "free-pro-team@latest" %}, private{% endif %} repositories. For more information, see "[About secret scanning](/github/administering-a-repository/about-secret-scanning)."
|
||||||
|
| `enable` | Triggered when an organization owner enables secret scanning for all existing{% if currentVersion == "free-pro-team@latest" %}, private{% endif %} repositories.
|
||||||
|
|
||||||
|
#### `secret_scanning_new_repos` category actions
|
||||||
|
|
||||||
|
| Action | Description
|
||||||
|
|------------------|-------------------
|
||||||
|
| `disable` | Triggered when an organization owner disables secret scanning for all new {% if currentVersion == "free-pro-team@latest" %}private {% endif %}repositories. For more information, see "[About secret scanning](/github/administering-a-repository/about-secret-scanning)."
|
||||||
|
| `enable` | Triggered when an organization owner enables secret scanning for all new {% if currentVersion == "free-pro-team@latest" %}private {% endif %}repositories.
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
##### The `sponsors` category
|
#### `sponsors` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
@@ -370,7 +505,7 @@ For more information, see "[Restricting publication of {% data variables.product
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if enterpriseServerVersions contains currentVersion or currentVersion == "github-ae@latest" %}
|
{% if enterpriseServerVersions contains currentVersion or currentVersion == "github-ae@latest" %}
|
||||||
##### The `team` category
|
#### `team` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|------------------|-------------------
|
|------------------|-------------------
|
||||||
@@ -384,60 +519,13 @@ For more information, see "[Restricting publication of {% data variables.product
|
|||||||
| `remove_repository` | Triggered when a repository is no longer under a team's control.
|
| `remove_repository` | Triggered when a repository is no longer under a team's control.
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
##### The `team_discussions` category
|
#### `team_discussions` category actions
|
||||||
|
|
||||||
| Action | Description
|
| Action | Description
|
||||||
|---|---|
|
|---|---|
|
||||||
| `disable` | Triggered when an organization owner disables team discussions for an organization. For more information, see "[Disabling team discussions for your organization](/articles/disabling-team-discussions-for-your-organization)."
|
| `disable` | Triggered when an organization owner disables team discussions for an organization. For more information, see "[Disabling team discussions for your organization](/articles/disabling-team-discussions-for-your-organization)."
|
||||||
| `enable` | Triggered when an organization owner enables team discussions for an organization.
|
| `enable` | Triggered when an organization owner enables team discussions for an organization.
|
||||||
|
|
||||||
#### Search based on time of action
|
|
||||||
|
|
||||||
Use the `created` qualifier to filter actions in the audit log based on when they occurred. {% data reusables.time_date.date_format %} {% data reusables.time_date.time_format %}
|
|
||||||
|
|
||||||
{% data reusables.search.date_gt_lt %} For example:
|
|
||||||
|
|
||||||
* `created:2014-07-08` finds all events that occurred on July 8th, 2014.
|
|
||||||
* `created:>=2014-07-08` finds all events that occurred on or after July 8th, 2014.
|
|
||||||
* `created:<=2014-07-08` finds all events that occurred on or before July 8th, 2014.
|
|
||||||
* `created:2014-07-01..2014-07-31` finds all events that occurred in the month of July 2014.
|
|
||||||
|
|
||||||
The audit log contains data for the past 90 days, but you can use the `created` qualifier to search for events earlier than that.
|
|
||||||
|
|
||||||
#### Search based on location
|
|
||||||
|
|
||||||
Using the qualifier `country`, you can filter actions in the audit log based on the originating country. You can use a country's two-letter short code or its full name. Keep in mind that countries with spaces in their name will need to be wrapped in quotation marks. For example:
|
|
||||||
|
|
||||||
* `country:de` finds all events that occurred in Germany.
|
|
||||||
* `country:Mexico` finds all events that occurred in Mexico.
|
|
||||||
* `country:"United States"` all finds events that occurred in the United States.
|
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" %}
|
|
||||||
### Exporting the audit log
|
|
||||||
|
|
||||||
{% data reusables.audit_log.export-log %}
|
|
||||||
{% data reusables.audit_log.exported-log-keys-and-values %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
### Using the Audit log API
|
|
||||||
|
|
||||||
{% note %}
|
|
||||||
|
|
||||||
**Note**: The Audit log API is available for organizations using {% data variables.product.prodname_enterprise %}. {% data reusables.gated-features.more-info-org-products %}
|
|
||||||
|
|
||||||
{% endnote %}
|
|
||||||
|
|
||||||
To ensure a secure IP and maintain compliance for your organization, you can use the Audit log API to keep copies of your audit log data and monitor:
|
|
||||||
* Access to your organization or repository settings.
|
|
||||||
* Changes in permissions.
|
|
||||||
* Added or removed users in an organization, repository, or team.
|
|
||||||
* Users being promoted to admin.
|
|
||||||
* Changes to permissions of a GitHub App.
|
|
||||||
|
|
||||||
The GraphQL response can include data for up to 90 to 120 days.
|
|
||||||
|
|
||||||
For example, you can make a GraphQL request to see all the new organization members added to your organization. For more information, see the "[GraphQL API Audit Log](/graphql/reference/interfaces#auditentry/)."
|
|
||||||
|
|
||||||
### Further reading
|
### Further reading
|
||||||
|
|
||||||
- "[Keeping your organization secure](/articles/keeping-your-organization-secure)"
|
- "[Keeping your organization secure](/articles/keeping-your-organization-secure)"
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ title: Managing licenses for Visual Studio subscription with GitHub Enterprise
|
|||||||
intro: 'You can manage {% data variables.product.prodname_enterprise %} licensing for {% data variables.product.prodname_vss_ghe %}.'
|
intro: 'You can manage {% data variables.product.prodname_enterprise %} licensing for {% data variables.product.prodname_vss_ghe %}.'
|
||||||
redirect_from:
|
redirect_from:
|
||||||
- /github/setting-up-and-managing-your-enterprise/managing-licenses-for-the-github-enterprise-and-visual-studio-bundle
|
- /github/setting-up-and-managing-your-enterprise/managing-licenses-for-the-github-enterprise-and-visual-studio-bundle
|
||||||
|
- /github/setting-up-and-managing-your-enterprise-account/managing-licenses-for-the-github-enterprise-and-visual-studio-bundle
|
||||||
- /github/articles/about-the-github-and-visual-studio-bundle
|
- /github/articles/about-the-github-and-visual-studio-bundle
|
||||||
- /articles/about-the-github-and-visual-studio-bundle
|
- /articles/about-the-github-and-visual-studio-bundle
|
||||||
- /github/setting-up-and-managing-your-enterprise-account/managing-licenses-for-visual-studio-subscription-with-github-enterprise
|
- /github/setting-up-and-managing-your-enterprise-account/managing-licenses-for-visual-studio-subscription-with-github-enterprise
|
||||||
|
|||||||
@@ -37,6 +37,8 @@ While using the Service, under no circumstances will you:
|
|||||||
|
|
||||||
- harass, abuse, threaten, or incite violence towards any individual or group, including our employees, officers, and agents, or other users;
|
- harass, abuse, threaten, or incite violence towards any individual or group, including our employees, officers, and agents, or other users;
|
||||||
|
|
||||||
|
- post off-topic content, or interact with platform features, in a way that significantly or repeatedly disrupts the experience of other users;
|
||||||
|
|
||||||
- use our servers for any form of excessive automated bulk activity (for example, spamming or cryptocurrency mining), to place undue burden on our servers through automated means, or to relay any form of unsolicited advertising or solicitation through our servers, such as get-rich-quick schemes;
|
- use our servers for any form of excessive automated bulk activity (for example, spamming or cryptocurrency mining), to place undue burden on our servers through automated means, or to relay any form of unsolicited advertising or solicitation through our servers, such as get-rich-quick schemes;
|
||||||
|
|
||||||
- use our servers to disrupt or to attempt to disrupt, or to gain or to attempt to gain unauthorized access to, any service, device, data, account or network (unless authorized by the [GitHub Bug Bounty program](https://bounty.github.com));
|
- use our servers to disrupt or to attempt to disrupt, or to gain or to attempt to gain unauthorized access to, any service, device, data, account or network (unless authorized by the [GitHub Bug Bounty program](https://bounty.github.com));
|
||||||
@@ -48,15 +50,17 @@ While using the Service, under no circumstances will you:
|
|||||||
### 4. Services Usage Limits
|
### 4. Services Usage Limits
|
||||||
You will not reproduce, duplicate, copy, sell, resell or exploit any portion of the Service, use of the Service, or access to the Service without our express written permission.
|
You will not reproduce, duplicate, copy, sell, resell or exploit any portion of the Service, use of the Service, or access to the Service without our express written permission.
|
||||||
|
|
||||||
### 5. Scraping and API Usage Restrictions
|
### 5. Information Usage Restrictions
|
||||||
Scraping refers to extracting data from our Service via an automated process, such as a bot or webcrawler. It does not refer to the collection of information through our API. Please see Section H of our [Terms of Service](/articles/github-terms-of-service#h-api-terms) for our API Terms. You may scrape the website for the following reasons:
|
You may use information from our Service for the following reasons, regardless of whether the information was scraped, collected through our API, or obtained otherwise:
|
||||||
|
|
||||||
- Researchers may scrape public, non-personal information from the Service for research purposes, only if any publications resulting from that research are open access.
|
- Researchers may use public, non-personal information from the Service for research purposes, only if any publications resulting from that research are [open access](https://en.wikipedia.org/wiki/Open_access).
|
||||||
- Archivists may scrape the Service for public data for archival purposes.
|
- Archivists may use public information from the Service for archival purposes.
|
||||||
|
|
||||||
You may not scrape the Service for spamming purposes, including for the purposes of selling User Personal Information (as defined in the [GitHub Privacy Statement](/articles/github-privacy-statement)), such as to recruiters, headhunters, and job boards.
|
Scraping refers to extracting information from our Service via an automated process, such as a bot or webcrawler. Scraping does not refer to the collection of information through our API. Please see Section H of our [Terms of Service](/articles/github-terms-of-service#h-api-terms) for our API Terms.
|
||||||
|
|
||||||
All use of data gathered through scraping must comply with the [GitHub Privacy Statement](/articles/github-privacy-statement).
|
You may not use information from the Service (whether scraped, collected through our API, or obtained otherwise) for spamming purposes, including for the purposes of sending unsolicited emails to users or selling User Personal Information (as defined in the [GitHub Privacy Statement](/github/site-policy/github-privacy-statement)), such as to recruiters, headhunters, and job boards.
|
||||||
|
|
||||||
|
Your use of information from the Service must comply with the [GitHub Privacy Statement](/github/site-policy/github-privacy-statement).
|
||||||
|
|
||||||
### 6. Privacy
|
### 6. Privacy
|
||||||
Misuse of User Personal Information is prohibited.
|
Misuse of User Personal Information is prohibited.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ versions:
|
|||||||
free-pro-team: '*'
|
free-pro-team: '*'
|
||||||
---
|
---
|
||||||
|
|
||||||
Version Effective Date: November 1, 2020
|
Version Effective Date: November 13, 2020
|
||||||
|
|
||||||
When you create an Account, you're given access to lots of different features and products that are all a part of the Service. Because many of these features and products offer different functionality, they may require additional terms and conditions specific to that feature or product. Below, we've listed those features and products, along with the corresponding additional terms that apply to your use of them.
|
When you create an Account, you're given access to lots of different features and products that are all a part of the Service. Because many of these features and products offer different functionality, they may require additional terms and conditions specific to that feature or product. Below, we've listed those features and products, along with the corresponding additional terms that apply to your use of them.
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ In order to become a Sponsored Developer, you must agree to the [GitHub Sponsors
|
|||||||
|
|
||||||
### 9. GitHub Advanced Security
|
### 9. GitHub Advanced Security
|
||||||
|
|
||||||
GitHub Advanced Security enables you to identify security vulnerabilities through customizable and automated semantic code analysis. GitHub Advanced Security is licensed on a per User basis. If you are using GitHub Advanced Security as part of GitHub Enterprise Cloud, many features of GitHub Advanced Security, including automated code scanning of private repositories, also require the use of GitHub Actions. Billing for usage of GitHub Actions is usage-based and is subject to the [GitHub Actions terms](/github/site-policy/github-additional-product-terms#c-payment-and-billing-for-actions-and-packages).
|
GitHub Advanced Security is licensed on a "Unique Committer" basis. A "Unique Committer" is a licensed user of GitHub Enterprise, GitHub Enterprise Cloud, GitHub Enterprise Server, or GitHub AE, who has made a code commit in the last 90 days to any repository with any GitHub Advanced Security functionality activated. You must acquire a GitHub Advanced Security User license for each of your Unique Committers. You may only use GitHub Advanced Security on codebases that are developed by or for you. If you are using GitHub Advanced Security as part of GitHub Enterprise Cloud, many features of GitHub Advanced Security, including automated code scanning of private repositories, also require the use of GitHub Actions.
|
||||||
|
|
||||||
### 10. Dependabot Preview
|
### 10. Dependabot Preview
|
||||||
|
|
||||||
@@ -108,4 +108,3 @@ We need the legal right to submit your contributions to the GitHub Advisory Data
|
|||||||
#### b. License to the GitHub Advisory Database
|
#### b. License to the GitHub Advisory Database
|
||||||
|
|
||||||
The GitHub Advisory Database is licensed under the [Creative Commons Attribution 4.0 license](https://creativecommons.org/licenses/by/4.0/). The attribution term may be fulfilled by linking to the GitHub Advisory Database at <https://github.com/advisories> or to individual GitHub Advisory Database records used, prefixed by <https://github.com/advisories>.
|
The GitHub Advisory Database is licensed under the [Creative Commons Attribution 4.0 license](https://creativecommons.org/licenses/by/4.0/). The attribution term may be fulfilled by linking to the GitHub Advisory Database at <https://github.com/advisories> or to individual GitHub Advisory Database records used, prefixed by <https://github.com/advisories>.
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ Millions of developers host millions of projects on GitHub — both open and clo
|
|||||||
|
|
||||||
GitHub users worldwide bring wildly different perspectives, ideas, and experiences, and range from people who created their first "Hello World" project last week to the most well-known software developers in the world. We are committed to making GitHub a welcoming environment for all the different voices and perspectives in our community, while maintaining a space where people are free to express themselves.
|
GitHub users worldwide bring wildly different perspectives, ideas, and experiences, and range from people who created their first "Hello World" project last week to the most well-known software developers in the world. We are committed to making GitHub a welcoming environment for all the different voices and perspectives in our community, while maintaining a space where people are free to express themselves.
|
||||||
|
|
||||||
We rely on our community members to communicate expectations, [moderate](#what-if-something-or-someone-offends-you) their projects, and {% data variables.contact.report_abuse %} or {% data variables.contact.report_content %}. We do not actively seek out content to moderate. By outlining what we expect to see within our community, we hope to help you understand how best to collaborate on GitHub, and what type of actions or content may violate our [Terms of Service](#legal-notices). We will investigate any abuse reports and may moderate public content on our site that we determine to be in violation of our Terms of Service.
|
We rely on our community members to communicate expectations, [moderate](#what-if-something-or-someone-offends-you) their projects, and {% data variables.contact.report_abuse %} or {% data variables.contact.report_content %}. By outlining what we expect to see within our community, we hope to help you understand how best to collaborate on GitHub, and what type of actions or content may violate our [Terms of Service](#legal-notices), which include our [Acceptable Use Policies](/github/site-policy/github-acceptable-use-policies). We will investigate any abuse reports and may moderate public content on our site that we determine to be in violation of our Terms of Service.
|
||||||
|
|
||||||
### Building a strong community
|
### Building a strong community
|
||||||
|
|
||||||
@@ -48,23 +48,35 @@ Of course, you can always contact us to {% data variables.contact.report_abuse %
|
|||||||
|
|
||||||
We are committed to maintaining a community where users are free to express themselves and challenge one another's ideas, both technical and otherwise. Such discussions, however, are unlikely to foster fruitful dialog when ideas are silenced because community members are being shouted down or are afraid to speak up. That means you should be respectful and civil at all times, and refrain from attacking others on the basis of who they are. We do not tolerate behavior that crosses the line into the following:
|
We are committed to maintaining a community where users are free to express themselves and challenge one another's ideas, both technical and otherwise. Such discussions, however, are unlikely to foster fruitful dialog when ideas are silenced because community members are being shouted down or are afraid to speak up. That means you should be respectful and civil at all times, and refrain from attacking others on the basis of who they are. We do not tolerate behavior that crosses the line into the following:
|
||||||
|
|
||||||
* **Threats of violence** - You may not threaten violence towards others or use the site to organize, promote, or incite acts of real-world violence or terrorism. Think carefully about the words you use, the images you post, and even the software you write, and how they may be interpreted by others. Even if you mean something as a joke, it might not be received that way. If you think that someone else *might* interpret the content you post as a threat, or as promoting violence or terrorism, stop. Don't post it on GitHub. In extraordinary cases, we may report threats of violence to law enforcement if we think there may be a genuine risk of physical harm or a threat to public safety.
|
- #### Threats of violence
|
||||||
|
You may not threaten violence towards others or use the site to organize, promote, or incite acts of real-world violence or terrorism. Think carefully about the words you use, the images you post, and even the software you write, and how they may be interpreted by others. Even if you mean something as a joke, it might not be received that way. If you think that someone else *might* interpret the content you post as a threat, or as promoting violence or terrorism, stop. Don't post it on GitHub. In extraordinary cases, we may report threats of violence to law enforcement if we think there may be a genuine risk of physical harm or a threat to public safety.
|
||||||
|
|
||||||
* **Hate speech and discrimination** - While it is not forbidden to broach topics such as age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation, we do not tolerate speech that attacks a person or group of people on the basis of who they are. Just realize that when approached in an aggressive or insulting manner, these (and other) sensitive topics can make others feel unwelcome, or perhaps even unsafe. While there's always the potential for misunderstandings, we expect our community members to remain respectful and civil when discussing sensitive topics.
|
- #### Hate speech and discrimination
|
||||||
|
While it is not forbidden to broach topics such as age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation, we do not tolerate speech that attacks a person or group of people on the basis of who they are. Just realize that when approached in an aggressive or insulting manner, these (and other) sensitive topics can make others feel unwelcome, or perhaps even unsafe. While there's always the potential for misunderstandings, we expect our community members to remain respectful and civil when discussing sensitive topics.
|
||||||
|
|
||||||
* **Bullying and harassment** - We do not tolerate bullying or harassment. This means any habitual badgering or intimidation targeted at a specific person or group of people. In general, if your actions are unwanted and you continue to engage in them, there's a good chance you are headed into bullying or harassment territory.
|
- #### Bullying and harassment
|
||||||
|
We do not tolerate bullying or harassment. This means any habitual badgering or intimidation targeted at a specific person or group of people. In general, if your actions are unwanted and you continue to engage in them, there's a good chance you are headed into bullying or harassment territory.
|
||||||
|
|
||||||
* **Impersonation** - You may not seek to mislead others as to your identity by copying another person's avatar, posting content under their email address, using a similar username or otherwise posing as someone else. Impersonation is a form of harassment.
|
- #### Disrupting the experience of other users
|
||||||
|
Being part of a community includes recognizing how your behavior affects others and engaging in meaningful and productive interactions with people and the platform they rely on. Behaviors such as repeatedly posting off-topic comments, opening empty or meaningless issues or pull requests, or using any other platform feature in a way that continually disrupts the experience of other users are not allowed. While we encourage maintainers to moderate their own projects on an individual basis, GitHub staff may take further restrictive action against accounts that are engaging in these types of behaviors.
|
||||||
|
|
||||||
* **Doxxing and invasion of privacy** - Don't post other people's personal information, such as phone numbers, private email addresses, physical addresses, credit card numbers, Social Security/National Identity numbers, or passwords. Depending on the context, such as in the case of intimidation or harassment, we may consider other information, such as photos or videos that were taken or distributed without the subject's consent, to be an invasion of privacy, especially when such material presents a safety risk to the subject.
|
- #### Impersonation
|
||||||
|
You may not seek to mislead others as to your identity by copying another person's avatar, posting content under their email address, using a similar username or otherwise posing as someone else. Impersonation is a form of harassment.
|
||||||
|
|
||||||
* **Sexually obscene content** - Don’t post content that is pornographic. This does not mean that all nudity, or all code and content related to sexuality, is prohibited. We recognize that sexuality is a part of life and non-pornographic sexual content may be a part of your project, or may be presented for educational or artistic purposes. We do not allow obscene sexual content or content that may involve the exploitation or sexualization of minors.
|
- #### Doxxing and invasion of privacy
|
||||||
|
Don't post other people's personal information, such as personal, private email addresses, phone numbers, physical addresses, credit card numbers, Social Security/National Identity numbers, or passwords. Depending on the context, such as in the case of intimidation or harassment, we may consider other information, such as photos or videos that were taken or distributed without the subject's consent, to be an invasion of privacy, especially when such material presents a safety risk to the subject.
|
||||||
|
|
||||||
* **Gratuitously violent content** - Don’t post violent images, text, or other content without reasonable context or warnings. While it's often okay to include violent content in video games, news reports, and descriptions of historical events, we do not allow violent content that is posted indiscriminately, or that is posted in a way that makes it difficult for other users to avoid (such as a profile avatar or an issue comment). A clear warning or disclaimer in other contexts helps users make an educated decision as to whether or not they want to engage with such content.
|
- #### Sexually obscene content
|
||||||
|
Don’t post content that is pornographic. This does not mean that all nudity, or all code and content related to sexuality, is prohibited. We recognize that sexuality is a part of life and non-pornographic sexual content may be a part of your project, or may be presented for educational or artistic purposes. We do not allow obscene sexual content or content that may involve the exploitation or sexualization of minors.
|
||||||
|
|
||||||
* **Misinformation and disinformation** - You may not post content that presents a distorted view of reality, whether it is inaccurate or false (misinformation) or is intentionally deceptive (disinformation) because such content is likely to result in harm to the public or to interfere with fair and equal opportunities for all to participate in public life. For example, we do not allow content that may put the well-being of groups of people at risk or limit their ability to take part in a free and open society. We encourage active participation in the expression of ideas, perspectives, and experiences and may not be in a position to dispute personal accounts or observations. We generally allow parody and satire that is in line with our Acceptable Use Polices, and we consider context to be important in how information is received and understood; therefore, it may be appropriate to clarify your intentions via disclaimers or other means, as well as the source(s) of your information.
|
- #### Gratuitously violent content
|
||||||
|
Don’t post violent images, text, or other content without reasonable context or warnings. While it's often okay to include violent content in video games, news reports, and descriptions of historical events, we do not allow violent content that is posted indiscriminately, or that is posted in a way that makes it difficult for other users to avoid (such as a profile avatar or an issue comment). A clear warning or disclaimer in other contexts helps users make an educated decision as to whether or not they want to engage with such content.
|
||||||
|
|
||||||
* **Active malware or exploits** - Being part of a community includes not taking advantage of other members of the community. We do not allow anyone to use our platform for exploit delivery, such as using GitHub as a means to deliver malicious executables, or as attack infrastructure, for example by organizing denial of service attacks or managing command and control servers. Note, however, that we do not prohibit the posting of source code which could be used to develop malware or exploits, as the publication and distribution of such source code has educational value and provides a net benefit to the security community.
|
- #### Misinformation and disinformation
|
||||||
|
You may not post content that presents a distorted view of reality, whether it is inaccurate or false (misinformation) or is intentionally deceptive (disinformation) where such content is likely to result in harm to the public or to interfere with fair and equal opportunities for all to participate in public life. For example, we do not allow content that may put the well-being of groups of people at risk or limit their ability to take part in a free and open society. We encourage active participation in the expression of ideas, perspectives, and experiences and may not be in a position to dispute personal accounts or observations. We generally allow parody and satire that is in line with our Acceptable Use Polices, and we consider context to be important in how information is received and understood; therefore, it may be appropriate to clarify your intentions via disclaimers or other means, as well as the source(s) of your information.
|
||||||
|
|
||||||
|
- #### Active malware or exploits
|
||||||
|
Being part of a community includes not taking advantage of other members of the community. We do not allow anyone to use our platform for exploit delivery, such as using GitHub as a means to deliver malicious executables, or as attack infrastructure, for example by organizing denial of service attacks or managing command and control servers. Note, however, that we do not prohibit the posting of source code which could be used to develop malware or exploits, as the publication and distribution of such source code has educational value and provides a net benefit to the security community.
|
||||||
|
|
||||||
|
|
||||||
### What happens if someone breaks the rules?
|
### What happens if someone breaks the rules?
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ THANK YOU FOR CHOOSING GITHUB FOR YOUR COMPANY’S BUSINESS NEEDS. PLEASE READ T
|
|||||||
BY CLICKING ON THE "I AGREE" OR SIMILAR BUTTON OR BY ACCESSING THE PRODUCTS, CUSTOMER ACCEPTS ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF CUSTOMER IS ENTERING INTO THIS AGREEMENT ON BEHALF OF A COMPANY OR OTHER LEGAL ENTITY, CUSTOMER REPRESENTS THAT IT HAS THE LEGAL AUTHORITY TO BIND THE COMPANY OR OTHER LEGAL ENTITY TO THIS AGREEMENT.
|
BY CLICKING ON THE "I AGREE" OR SIMILAR BUTTON OR BY ACCESSING THE PRODUCTS, CUSTOMER ACCEPTS ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF CUSTOMER IS ENTERING INTO THIS AGREEMENT ON BEHALF OF A COMPANY OR OTHER LEGAL ENTITY, CUSTOMER REPRESENTS THAT IT HAS THE LEGAL AUTHORITY TO BIND THE COMPANY OR OTHER LEGAL ENTITY TO THIS AGREEMENT.
|
||||||
|
|
||||||
### GitHub Corporate Terms of Service
|
### GitHub Corporate Terms of Service
|
||||||
Version Effective Date: July 20, 2020
|
Version Effective Date: November 16, 2020
|
||||||
|
|
||||||
This Agreement applies to the following GitHub offerings, as further defined below (collectively, the **“Products”**):
|
This Agreement applies to the following GitHub offerings, as further defined below (collectively, the **“Products”**):
|
||||||
- The Service;
|
- The Service;
|
||||||
@@ -135,14 +135,14 @@ Customer retains ownership of Customer Content that Customer creates or owns. Cu
|
|||||||
Customer grants the rights set forth in Sections D.3 through D.6, free of charge and for the purposes identified in those sections until such time as Customer removes Customer Content from GitHub servers, except for Content Customer has posted publicly and that External Users have Forked, in which case the license is perpetual until such time as all Forks of Customer Content have been removed from GitHub servers. If Customer uploads Customer Content that already comes with a license granting GitHub the permissions it needs to run the Service, no additional license is required.
|
Customer grants the rights set forth in Sections D.3 through D.6, free of charge and for the purposes identified in those sections until such time as Customer removes Customer Content from GitHub servers, except for Content Customer has posted publicly and that External Users have Forked, in which case the license is perpetual until such time as all Forks of Customer Content have been removed from GitHub servers. If Customer uploads Customer Content that already comes with a license granting GitHub the permissions it needs to run the Service, no additional license is required.
|
||||||
|
|
||||||
#### 3. License Grant to Us
|
#### 3. License Grant to Us
|
||||||
Customer grants to GitHub the right to store, parse, and display Customer Content, and make incidental copies only as necessary to provide the Service. This includes the right to copy Customer Content to GitHub's database and make backups; display Customer Content to Customer and those to whom Customer chooses to show it; parse Customer Content into a search index or otherwise analyze it on GitHub's servers; share Customer Content with External Users with whom Customer chooses to share it; and perform Customer Content, in case it is something like music or video. These rights apply to both public and Private Repositories. This license does not grant GitHub the right to sell Customer Content or otherwise distribute or use it outside of the Service. Customer grants to GitHub the rights it needs to use Customer Content without attribution and to make reasonable adaptations of Customer Content as necessary to provide the Service.
|
Customer grants to GitHub the right to store, archive, parse, and display Customer Content, and make incidental copies, only as necessary to provide the Service, including improving the Service over time. This license includes the right to copy Customer Content to GitHub's database and make backups; display Customer Content to Customer and those to whom Customer chooses to show it; parse Customer Content into a search index or otherwise analyze it on GitHub's servers; share Customer Content with External Users with whom Customer chooses to share it; and perform Customer Content, in case it is something like music or video. These rights apply to both public and Private Repositories. This license does not grant GitHub the right to sell Customer Content. It also does not grant GitHub the right to otherwise distribute or use Customer Content outside of our provision of the Service, except that as part of the right to archive Customer Content, GitHub may permit our partners to store and archive Customer Content in public repositories in connection with the GitHub Arctic Code Vault and GitHub Archive Program. Customer grants to GitHub the rights it needs to use Customer Content without attribution and to make reasonable adaptations of Customer Content as necessary to provide the Service.
|
||||||
|
|
||||||
#### 4. License Grant to External Users
|
#### 4. License Grant to External Users
|
||||||
Any Content that Customer posts publicly, including issues, comments, and contributions to External Users' repositories, may be viewed by others. By setting its repositories to be viewed publicly, Customer agree to allow External Users to view and Fork Customer’s repositories.
|
Any Content that Customer posts publicly, including issues, comments, and contributions to External Users' repositories, may be viewed by others. By setting its repositories to be viewed publicly, Customer agree to allow External Users to view and Fork Customer’s repositories.
|
||||||
If Customer sets its pages and repositories to be viewed publicly, Customer grants to External Users a nonexclusive, worldwide license to use, display, and perform Customer Content through the Service and to reproduce Customer Content solely on the Service as permitted through functionality provided by GitHub (for example, through Forking). Customer may grant further rights to Customer Content if Customer adopts a license. If Customer is uploading Customer Content that it did not create or own, Customer is responsible for ensuring that the Customer Content it uploads is licensed under terms that grant these permissions to External Users
|
If Customer sets its pages and repositories to be viewed publicly, Customer grants to External Users a nonexclusive, worldwide license to use, display, and perform Customer Content through the Service and to reproduce Customer Content solely on the Service as permitted through functionality provided by GitHub (for example, through Forking). Customer may grant further rights to Customer Content if Customer adopts a license. If Customer is uploading Customer Content that it did not create or own, Customer is responsible for ensuring that the Customer Content it uploads is licensed under terms that grant these permissions to External Users
|
||||||
|
|
||||||
#### 5. Contributions Under Repository License
|
#### 5. Contributions Under Repository License
|
||||||
Whenever Customer makes a contribution to a repository containing notice of a license, it licenses such contributions under the same terms and agrees that it has the right to license such contributions under those terms. If Customer has a separate agreement to license its contributions under different terms, such as a contributor license agreement, that agreement will supersede.
|
Whenever Customer adds Content to a repository containing notice of a license, it licenses that Content under the same terms and agrees that it has the right to license that Content under those terms. If Customer has a separate agreement to license that Content under different terms, such as a contributor license agreement, that agreement will supersede.
|
||||||
|
|
||||||
#### 6. Moral Rights
|
#### 6. Moral Rights
|
||||||
Customer retains all moral rights to Customer Content that it uploads, publishes, or submits to any part of the Service, including the rights of integrity and attribution. However, Customer waives these rights and agrees not to assert them against GitHub, solely to enable GitHub to reasonably exercise the rights granted in Section D, but not otherwise.
|
Customer retains all moral rights to Customer Content that it uploads, publishes, or submits to any part of the Service, including the rights of integrity and attribution. However, Customer waives these rights and agrees not to assert them against GitHub, solely to enable GitHub to reasonably exercise the rights granted in Section D, but not otherwise.
|
||||||
@@ -156,10 +156,13 @@ Customer is responsible for managing access to its Private Repositories, includi
|
|||||||
GitHub considers Customer Content in Customer’s Private Repositories to be Customer’s Confidential Information. GitHub will protect and keep strictly confidential the Customer Content of Private Repositories in accordance with Section P.
|
GitHub considers Customer Content in Customer’s Private Repositories to be Customer’s Confidential Information. GitHub will protect and keep strictly confidential the Customer Content of Private Repositories in accordance with Section P.
|
||||||
|
|
||||||
#### 3. Access
|
#### 3. Access
|
||||||
GitHub personnel may only access Customer’s Private Repositories (i) with Customer’s consent and knowledge, for support reasons or (ii) when access is required for security reasons. Customer may choose to enable additional access to its Private Repositories. For example, Customer may enable various GitHub services or features that require additional rights to Customer Content in Private Repositories. These rights may vary depending on the service or feature, but GitHub will continue to treat Customer Content in Customer’s Private Repositories as Customer’s Confidential Information. If those services or features require rights in addition to those it needs to provide the Service, GitHub will provide an explanation of those rights.
|
GitHub personnel may only access Customer's Private Repositories in the situations described in our [Privacy Statement](/github/site-policy/github-privacy-statement#repository-contents).
|
||||||
|
|
||||||
#### 4. Exclusions
|
Customer may choose to enable additional access to its Private Repositories. For example, Customer may enable various GitHub services or features that require additional rights to Customer Content in Private Repositories. These rights may vary depending on the service or feature, but GitHub will continue to treat Customer Content in Customer’s Private Repositories as Customer’s Confidential Information. If those services or features require rights in addition to those it needs to provide the Service, GitHub will provide an explanation of those rights.
|
||||||
If GitHub has reason to believe the Content of a Private Repository is in violation of the law or of this Agreement, GitHub has the right to access, review, and remove that Content. Additionally, GitHub may be [compelled by law](/github/site-policy/github-privacy-statement#for-legal-disclosure) to disclose the Content of Customer’s Private Repositories. Unless otherwise bound by requirements under law or if in response to a security threat or other risk to security, GitHub will provide notice of such actions.
|
|
||||||
|
Additionally, we may be [compelled by law](/github/site-policy/github-privacy-statement#for-legal-disclosure) to disclose the contents of your private repositories.
|
||||||
|
|
||||||
|
GitHub will provide notice regarding our access to private repository content, unless [for legal disclosure](/github/site-policy/github-privacy-statement#for-legal-disclosure), to comply with our legal obligations, or where otherwise bound by requirements under law, for automated scanning, or if in response to a security threat or other risk to security.
|
||||||
|
|
||||||
### F. Intellectual Property Notice
|
### F. Intellectual Property Notice
|
||||||
|
|
||||||
@@ -273,7 +276,7 @@ Neither Party will use the other Party's Confidential Information, except as per
|
|||||||
Upon Customer’s request for Professional Services, GitHub will provide an SOW detailing such Professional Services. GitHub will perform the Professional Services described in each SOW. GitHub will control the manner and means by which the Professional Services are performed and reserves the right to determine personnel assigned. GitHub may use third parties to perform the Professional Services, provided that GitHub remains responsible for their acts and omissions. Customer acknowledges and agrees that GitHub retains all right, title and interest in and to anything used or developed in connection with performing the Professional Services, including software, tools, specifications, ideas, concepts, inventions, processes, techniques, and know-how. To the extent GitHub delivers anything to Customer while performing the Professional Services, GitHub grants to Customer a non-exclusive, non-transferable, worldwide, royalty-free, limited-term license to use those deliverables during the term of this Agreement, solely in conjunction with Customer’s use of the Service.
|
Upon Customer’s request for Professional Services, GitHub will provide an SOW detailing such Professional Services. GitHub will perform the Professional Services described in each SOW. GitHub will control the manner and means by which the Professional Services are performed and reserves the right to determine personnel assigned. GitHub may use third parties to perform the Professional Services, provided that GitHub remains responsible for their acts and omissions. Customer acknowledges and agrees that GitHub retains all right, title and interest in and to anything used or developed in connection with performing the Professional Services, including software, tools, specifications, ideas, concepts, inventions, processes, techniques, and know-how. To the extent GitHub delivers anything to Customer while performing the Professional Services, GitHub grants to Customer a non-exclusive, non-transferable, worldwide, royalty-free, limited-term license to use those deliverables during the term of this Agreement, solely in conjunction with Customer’s use of the Service.
|
||||||
|
|
||||||
### R. Changes to the Service or Terms
|
### R. Changes to the Service or Terms
|
||||||
GitHub reserves the right, at its sole discretion, to amend this Agreement at any time and will update this Agreement in the event of any such amendments. GitHub will notify Customer of material changes to this Agreement, such as price changes, at least 30 days prior to the change taking effect by posting a notice on the Service. For non-material modifications, Customer's continued use of the Service constitutes agreement to our revisions of this Agreement. Customer can view all changes to this Agreement in our [Site Policy](https://github.com/github/site-policy) repository.
|
GitHub reserves the right, at its sole discretion, to amend this Agreement at any time and will update this Agreement in the event of any such amendments. GitHub will notify Customer of material changes to this Agreement, such as price increases, at least 30 days prior to the change taking effect by posting a notice on the Service or sending email to the primary email address specified in your GitHub account. Customer's continued use of the Service after those 30 days constitutes agreement to those revisions of this Agreement. For any other modifications, Customer's continued use of the Service constitutes agreement to our revisions of this Agreement. Customer can view all changes to this Agreement in our [Site Policy](https://github.com/github/site-policy) repository.
|
||||||
|
|
||||||
GitHub changes the Service via Updates and addition of new features. Nothwithstanding the foregoing, GitHub reserves the right at any time to modify or discontinue, temporarily or permanently, the Service (or any part of it) with or without notice.
|
GitHub changes the Service via Updates and addition of new features. Nothwithstanding the foregoing, GitHub reserves the right at any time to modify or discontinue, temporarily or permanently, the Service (or any part of it) with or without notice.
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,6 @@ For definitions of each Service feature (“**Service Feature**”) and to revi
|
|||||||
Excluded from the Uptime Calculation are Service Feature failures resulting from (i) Customer’s acts, omissions, or misuse of the Service including violations of the Agreement; (ii) failure of Customer’s internet connectivity; (iii) factors outside GitHub's reasonable control, including force majeure events; or (iv) Customer’s equipment, services, or other technology.
|
Excluded from the Uptime Calculation are Service Feature failures resulting from (i) Customer’s acts, omissions, or misuse of the Service including violations of the Agreement; (ii) failure of Customer’s internet connectivity; (iii) factors outside GitHub's reasonable control, including force majeure events; or (iv) Customer’s equipment, services, or other technology.
|
||||||
|
|
||||||
## Service Credits Redemption
|
## Service Credits Redemption
|
||||||
If GitHub does not meet this SLA, Customer may redeem Service Credits only upon written request to GitHub within thirty (30) days of the end of the calendar quarter. Written requests for Service Credits redemption should be sent to [GitHub Support](https://support.github.com/contact).
|
If GitHub does not meet this SLA, Customer may redeem Service Credits only upon written request to GitHub within thirty (30) days of the end of the calendar quarter. Written requests for Service Credits redemption and GitHub Enterprise Cloud custom monthly or quarterly reports should be sent to [GitHub Support](https://support.github.com/contact).
|
||||||
|
|
||||||
Service Credits may take the form of a refund or credit to Customer’s account, cannot be exchanged into a cash amount, are limited to a maximum of ninety (90) days of paid service per calendar quarter, require Customer to have paid any outstanding invoices, and expire upon termination of Customer’s agreement with GitHub. Service Credits are the sole and exclusive remedy for any failure by GitHub to meet any obligations in this SLA.
|
Service Credits may take the form of a refund or credit to Customer’s account, cannot be exchanged into a cash amount, are limited to a maximum of ninety (90) days of paid service per calendar quarter, require Customer to have paid any outstanding invoices, and expire upon termination of Customer’s agreement with GitHub. Service Credits are the sole and exclusive remedy for any failure by GitHub to meet any obligations in this SLA.
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ versions:
|
|||||||
free-pro-team: '*'
|
free-pro-team: '*'
|
||||||
---
|
---
|
||||||
|
|
||||||
Version Effective Date: July 20, 2020
|
Version Effective Date: November 16, 2020
|
||||||
|
|
||||||
BY CLICKING THE "I AGREE" OR SIMILAR BUTTON OR BY USING ANY OF THE PRODUCTS (DEFINED BELOW), CUSTOMER ACCEPTS THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF CUSTOMER IS ENTERING INTO THIS AGREEMENT ON BEHALF OF A LEGAL ENTITY, CUSTOMER REPRESENTS THAT IT HAS THE LEGAL AUTHORITY TO BIND THE LEGAL ENTITY TO THIS AGREEMENT.
|
BY CLICKING THE "I AGREE" OR SIMILAR BUTTON OR BY USING ANY OF THE PRODUCTS (DEFINED BELOW), CUSTOMER ACCEPTS THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF CUSTOMER IS ENTERING INTO THIS AGREEMENT ON BEHALF OF A LEGAL ENTITY, CUSTOMER REPRESENTS THAT IT HAS THE LEGAL AUTHORITY TO BIND THE LEGAL ENTITY TO THIS AGREEMENT.
|
||||||
|
|
||||||
@@ -197,7 +197,7 @@ This Agreement, together with the Exhibits and each Order Form and SOW, constitu
|
|||||||
|
|
||||||
#### 1.13.11 Amendments; Order of Precedence.
|
#### 1.13.11 Amendments; Order of Precedence.
|
||||||
|
|
||||||
GitHub reserves the right, at its sole discretion, to amend this Agreement at any time and will update this Agreement in the event of any such amendments. GitHub will notify Customer of material changes to this Agreement, such as price changes, at least 30 days prior to the change taking effect by posting a notice on the Service. For non-material modifications, Customer's continued use of the Service constitutes agreement to our revisions of this Agreement. Customer can view all changes to this Agreement in our [Site Policy](https://github.com/github/site-policy) repository. In the event of any conflict between the terms of this Agreement and any Order Form or SOW, the terms of the Order Form or SOW will control with respect to that Order Form or SOW only.
|
GitHub reserves the right, at its sole discretion, to amend this Agreement at any time and will update this Agreement in the event of any such amendments. GitHub will notify Customer of material changes to this Agreement, such as price increases, at least 30 days prior to the change taking effect by posting a notice on the Service or sending email to the primary email address specified in your GitHub account. Customer's continued use of the Service after those 30 days constitutes agreement to those revisions of this Agreement. For any other modifications, Customer's continued use of the Service constitutes agreement to our revisions of this Agreement. Customer can view all changes to this Agreement in our [Site Policy](https://github.com/github/site-policy) repository. In the event of any conflict between the terms of this Agreement and any Order Form or SOW, the terms of the Order Form or SOW will control with respect to that Order Form or SOW only.
|
||||||
|
|
||||||
#### 1.13.12 Severability.
|
#### 1.13.12 Severability.
|
||||||
|
|
||||||
@@ -296,7 +296,7 @@ Customer may create or upload User-Generated Content while using the Service. Cu
|
|||||||
**(ii)** Customer grants the rights set forth in Sections 3.3.3 through 3.3.6, free of charge and for the purposes identified in those sections until such time as Customer removes Customer Content from GitHub servers, except for Content Customer has posted publicly and that External Users have Forked, in which case the license is perpetual until such time as all Forks of Customer Content have been removed from GitHub servers. If Customer uploads Customer Content that already comes with a license granting GitHub the permissions it needs to run the Service, no additional license is required.
|
**(ii)** Customer grants the rights set forth in Sections 3.3.3 through 3.3.6, free of charge and for the purposes identified in those sections until such time as Customer removes Customer Content from GitHub servers, except for Content Customer has posted publicly and that External Users have Forked, in which case the license is perpetual until such time as all Forks of Customer Content have been removed from GitHub servers. If Customer uploads Customer Content that already comes with a license granting GitHub the permissions it needs to run the Service, no additional license is required.
|
||||||
|
|
||||||
#### 3.3.3 License Grant to GitHub.
|
#### 3.3.3 License Grant to GitHub.
|
||||||
Customer grants to GitHub the right to store, parse, and display Customer Content, and make incidental copies only as necessary to provide the Service. This includes the right to copy Customer Content to GitHub's database and make backups; display Customer Content to Customer and those to whom Customer chooses to show it; parse Customer Content into a search index or otherwise analyze it on GitHub's servers; share Customer Content with External Users with whom Customer chooses to share it; and perform Customer Content, in case it is something like music or video. These rights apply to both public and Private Repositories. This license does not grant GitHub the right to sell Customer Content or otherwise distribute or use it outside of the Service. Customer grants to GitHub the rights it needs to use Customer Content without attribution and to make reasonable adaptations of Customer Content as necessary to provide the Service.
|
Customer grants to GitHub the right to store, parse, and display Customer Content, and make incidental copies, only as necessary to provide the Service. This includes the right to copy Customer Content to GitHub's database and make backups; display Customer Content to Customer and those to whom Customer chooses to show it; parse Customer Content into a search index or otherwise analyze it on GitHub's servers; share Customer Content with External Users with whom Customer chooses to share it; and perform Customer Content, in case it is something like music or video. These rights apply to both public and Private Repositories. This license does not grant GitHub the right to sell Customer Content or otherwise distribute or use it outside of the Service. Customer grants to GitHub the rights it needs to use Customer Content without attribution and to make reasonable adaptations of Customer Content as necessary to provide the Service.
|
||||||
|
|
||||||
#### 3.3.4 License Grant to External Users.
|
#### 3.3.4 License Grant to External Users.
|
||||||
**(i)** Any Content that Customer posts publicly, including issues, comments, and contributions to External Users' repositories, may be viewed by others. By setting its repositories to be viewed publicly, Customer agree to allow External Users to view and Fork Customer’s repositories.
|
**(i)** Any Content that Customer posts publicly, including issues, comments, and contributions to External Users' repositories, may be viewed by others. By setting its repositories to be viewed publicly, Customer agree to allow External Users to view and Fork Customer’s repositories.
|
||||||
@@ -318,10 +318,13 @@ Customer is responsible for managing access to its Private Repositories, includi
|
|||||||
GitHub considers Customer Content in Customer’s Private Repositories to be Customer’s Confidential Information. GitHub will protect and keep strictly confidential the Customer Content of Private Repositories in accordance with Section 1.4.
|
GitHub considers Customer Content in Customer’s Private Repositories to be Customer’s Confidential Information. GitHub will protect and keep strictly confidential the Customer Content of Private Repositories in accordance with Section 1.4.
|
||||||
|
|
||||||
#### 3.4.3 Access.
|
#### 3.4.3 Access.
|
||||||
GitHub may only access Customer’s Private Repositories (i) with Customer’s consent and knowledge, for support reasons, or (ii) when access is required for security reasons. Customer may choose to enable additional access to its Private Repositories. For example, Customer may enable various GitHub services or features that require additional rights to Customer Content in Private Repositories. These rights may vary depending on the service or feature, but GitHub will continue to treat Customer Content in Customer’s Private Repositories as Customer’s Confidential Information. If those services or features require rights in addition to those it needs to provide the Service, GitHub will provide an explanation of those rights.
|
GitHub personnel may only access Customer’s Private Repositories in the situations described in our [Privacy Statement](/github/site-policy/github-privacy-statement#repository-contents).
|
||||||
|
|
||||||
#### 3.4.4 Exclusions.
|
Customer may choose to enable additional access to its Private Repositories. For example, Customer may enable various GitHub services or features that require additional rights to Customer Content in Private Repositories. These rights may vary depending on the service or feature, but GitHub will continue to treat Customer Content in Customer’s Private Repositories as Customer’s Confidential Information. If those services or features require rights in addition to those it needs to provide the Service, GitHub will provide an explanation of those rights.
|
||||||
If GitHub has reason to believe the Content of a Private Repository is in violation of the law or of this Agreement, GitHub has the right to access, review, and remove that Content. Additionally, GitHub may be compelled by law to disclose the Content of Customer’s Private Repositories. Unless otherwise bound by requirements under law or if in response to a security threat or other risk to security, GitHub will provide notice of such actions.
|
|
||||||
|
Additionally, we may be [compelled by law](/github/site-policy/github-privacy-statement#for-legal-disclosure) to disclose the contents of your private repositories.
|
||||||
|
|
||||||
|
GitHub will provide notice regarding our access to private repository content, unless [for legal disclosure](/github/site-policy/github-privacy-statement#for-legal-disclosure), to comply with our legal obligations, or where otherwise bound by requirements under law, for automated scanning, or if in response to a security threat or other risk to security.
|
||||||
|
|
||||||
### 3.5. Intellectual Property Notices.
|
### 3.5. Intellectual Property Notices.
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ versions:
|
|||||||
free-pro-team: '*'
|
free-pro-team: '*'
|
||||||
---
|
---
|
||||||
|
|
||||||
Effective date: October 2, 2020
|
Effective date: November 16, 2020
|
||||||
|
|
||||||
Thanks for entrusting GitHub Inc. (“GitHub”, “we”) with your source code, your projects, and your personal information. Holding on to your private information is a serious responsibility, and we want you to know how we're handling it.
|
Thanks for entrusting GitHub Inc. (“GitHub”, “we”) with your source code, your projects, and your personal information. Holding on to your private information is a serious responsibility, and we want you to know how we're handling it.
|
||||||
|
|
||||||
@@ -150,23 +150,39 @@ We **do not** sell your User Personal Information for monetary or other consider
|
|||||||
|
|
||||||
Please note: The California Consumer Privacy Act of 2018 (“CCPA”) requires businesses to state in their privacy policy whether or not they disclose personal information in exchange for monetary or other valuable consideration. While CCPA only covers California residents, we voluntarily extend its core rights for people to control their data to _all_ of our users, not just those who live in California. You can learn more about the CCPA and how we comply with it [here](/github/site-policy/githubs-notice-about-the-california-consumer-privacy-act).
|
Please note: The California Consumer Privacy Act of 2018 (“CCPA”) requires businesses to state in their privacy policy whether or not they disclose personal information in exchange for monetary or other valuable consideration. While CCPA only covers California residents, we voluntarily extend its core rights for people to control their data to _all_ of our users, not just those who live in California. You can learn more about the CCPA and how we comply with it [here](/github/site-policy/githubs-notice-about-the-california-consumer-privacy-act).
|
||||||
|
|
||||||
### Other important information
|
### Repository contents
|
||||||
|
|
||||||
#### Repository contents
|
#### Access to private repositories
|
||||||
|
|
||||||
GitHub personnel [do not access private repositories unless required to](/github/site-policy/github-terms-of-service#e-private-repositories) for security purposes, to assist the repository owner with a support matter, to maintain the integrity of the Service, or to comply with our legal obligations. However, while we do not generally search for content in your repositories, we may scan our servers and content to detect certain tokens or security signatures, known active malware, or other content known to violate our Terms, such as violent extremist or terrorist content or child exploitation imagery based on algorithmic fingerprinting techniques. Our Terms of Service provides [more details](/github/site-policy/github-terms-of-service#e-private-repositories).
|
If your repository is private, you control the access to your Content. If you include User Personal Information or Sensitive Personal Information, that information may only be accessible to GitHub in accordance with this Privacy Statement. GitHub personnel [do not access private repository content](/github/site-policy/github-terms-of-service#e-private-repositories) except for
|
||||||
|
- security purposes
|
||||||
|
- to assist the repository owner with a support matter
|
||||||
|
- to maintain the integrity of the Service
|
||||||
|
- to comply with our legal obligations
|
||||||
|
- if we have reason to believe the contents are in violation of the law, or
|
||||||
|
- with your consent.
|
||||||
|
|
||||||
If your repository is public, anyone may view its contents. If you include private, confidential or [Sensitive Personal Information](https://gdpr-info.eu/art-9-gdpr/), such as email addresses or passwords, in your public repository, that information may be indexed by search engines or used by third parties.
|
However, while we do not generally search for content in your repositories, we may scan our servers and content to detect certain tokens or security signatures, known active malware, known vulnerabilities in dependencies, or other content known to violate our Terms of Service, such as violent extremist or terrorist content or child exploitation imagery, based on algorithmic fingerprinting techniques (collectively, "automated scanning"). Our Terms of Service provides more details on [private repositories](/github/site-policy/github-terms-of-service#e-private-repositories).
|
||||||
|
|
||||||
|
Please note, you may choose to disable certain access to your private repositories that is enabled by default as part of providing you with the Service (for example, automated scanning needed to enable Dependency Graph and Dependabot alerts).
|
||||||
|
|
||||||
|
GitHub will provide notice regarding our access to private repository content, unless [for legal disclosure](/github/site-policy/github-privacy-statement#for-legal-disclosure), to comply with our legal obligations, or where otherwise bound by requirements under law, for automated scanning, or if in response to a security threat or other risk to security.
|
||||||
|
|
||||||
|
#### Public repositories
|
||||||
|
|
||||||
|
If your repository is public, anyone may view its contents. If you include User Personal Information, [Sensitive Personal Information](https://gdpr-info.eu/art-9-gdpr/), or confidential information, such as email addresses or passwords, in your public repository, that information may be indexed by search engines or used by third parties.
|
||||||
|
|
||||||
Please see more about [User Personal Information in public repositories](/github/site-policy/github-privacy-statement#public-information-on-github).
|
Please see more about [User Personal Information in public repositories](/github/site-policy/github-privacy-statement#public-information-on-github).
|
||||||
|
|
||||||
|
### Other important information
|
||||||
|
|
||||||
#### Public information on GitHub
|
#### Public information on GitHub
|
||||||
|
|
||||||
Many of GitHub services and features are public-facing. If your content is public-facing, third parties may access and use it in compliance with our Terms of Service, such as by viewing your profile or repositories or pulling data via our API. We do not sell that content; it is yours. However, we do allow third parties, such as research organizations or archives, to compile public-facing GitHub information. Other third parties, such as data brokers, have been known to scrape GitHub and compile data as well.
|
Many of GitHub services and features are public-facing. If your content is public-facing, third parties may access and use it in compliance with our Terms of Service, such as by viewing your profile or repositories or pulling data via our API. We do not sell that content; it is yours. However, we do allow third parties, such as research organizations or archives, to compile public-facing GitHub information. Other third parties, such as data brokers, have been known to scrape GitHub and compile data as well.
|
||||||
|
|
||||||
Your User Personal Information associated with your content could be gathered by third parties in these compilations of GitHub data. If you do not want your User Personal Information to appear in third parties’ compilations of GitHub data, please do not make your User Personal Information publicly available and be sure to [configure your email address to be private in your user profile](https://github.com/settings/emails) and in your [git commit settings](/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address). We currently set Users' email address to private by default, but legacy GitHub Users may need to update their settings.
|
Your User Personal Information associated with your content could be gathered by third parties in these compilations of GitHub data. If you do not want your User Personal Information to appear in third parties’ compilations of GitHub data, please do not make your User Personal Information publicly available and be sure to [configure your email address to be private in your user profile](https://github.com/settings/emails) and in your [git commit settings](/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address). We currently set Users' email address to private by default, but legacy GitHub Users may need to update their settings.
|
||||||
|
|
||||||
If you would like to compile GitHub data, you must comply with our Terms of Service regarding [scraping](/github/site-policy/github-acceptable-use-policies#5-scraping-and-api-usage-restrictions) and [privacy](/github/site-policy/github-acceptable-use-policies#6-privacy), and you may only use any public-facing User Personal Information you gather for the purpose for which our user authorized it. For example, where a GitHub user has made an email address public-facing for the purpose of identification and attribution, do not use that email address for commercial advertising. We expect you to reasonably secure any User Personal Information you have gathered from GitHub, and to respond promptly to complaints, removal requests, and "do not contact" requests from GitHub or GitHub users.
|
If you would like to compile GitHub data, you must comply with our Terms of Service regarding [information usage](/github/site-policy/github-acceptable-use-policies#5-information-usage-restrictions) and [privacy](/github/site-policy/github-acceptable-use-policies#6-privacy), and you may only use any public-facing User Personal Information you gather for the purpose for which our user authorized it. For example, where a GitHub user has made an email address public-facing for the purpose of identification and attribution, do not use that email address for the purposes of sending unsolicited emails to users or selling User Personal Information, such as to recruiters, headhunters, and job boards, or for commercial advertising. We expect you to reasonably secure any User Personal Information you have gathered from GitHub, and to respond promptly to complaints, removal requests, and "do not contact" requests from GitHub or GitHub users.
|
||||||
|
|
||||||
Similarly, projects on GitHub may include publicly available User Personal Information collected as part of the collaborative process. If you have a complaint about any User Personal Information on GitHub, please see our section on [resolving complaints](/github/site-policy/github-privacy-statement#resolving-complaints).
|
Similarly, projects on GitHub may include publicly available User Personal Information collected as part of the collaborative process. If you have a complaint about any User Personal Information on GitHub, please see our section on [resolving complaints](/github/site-policy/github-privacy-statement#resolving-complaints).
|
||||||
|
|
||||||
@@ -219,7 +235,7 @@ That said, the email address you have supplied [via your Git commit settings](/g
|
|||||||
|
|
||||||
#### Cookies
|
#### Cookies
|
||||||
|
|
||||||
GitHub uses cookies and similar technologies (collectively, “cookies”) to make interactions with our service easy and meaningful. Cookies are small text files that websites often store on computer hard drives or mobile devices of visitors. We use cookies to provide you our services, for example, to keep you logged in, remember your preferences, identify your device for security purposes, and provide information for future development of GitHub. By using our Website, you agree that we can place these types of cookies on your computer or device. If you disable your browser or device’s ability to accept these cookies, you will not be able to log in or use GitHub’s services.
|
GitHub uses cookies and similar technologies (e.g., HTML5 localStorage) to make interactions with our service easy and meaningful. Cookies are small text files that websites often store on computer hard drives or mobile devices of visitors. We use cookies and similar technologies (hereafter collectively "cookies") to provide you our services, for example, to keep you logged in, remember your preferences, identify your device for security purposes, and provide information for future development of GitHub. By using our Website, you agree that we can place these types of cookies on your computer or device. If you disable your browser or device’s ability to accept these cookies, you will not be able to log in or use GitHub’s services.
|
||||||
|
|
||||||
We provide more information about [cookies on GitHub](/github/site-policy/github-subprocessors-and-cookies#cookies-on-github) on our [GitHub Subprocessors and Cookies](/github/site-policy/github-subprocessors-and-cookies) page that describes the cookies we set, the needs we have for those cookies, and the expiration of such cookies. It also lists our third-party analytics providers and how you can control your cookie preference settings for such cookies.
|
We provide more information about [cookies on GitHub](/github/site-policy/github-subprocessors-and-cookies#cookies-on-github) on our [GitHub Subprocessors and Cookies](/github/site-policy/github-subprocessors-and-cookies) page that describes the cookies we set, the needs we have for those cookies, and the expiration of such cookies. It also lists our third-party analytics providers and how you can control your cookie preference settings for such cookies.
|
||||||
|
|
||||||
@@ -300,7 +316,7 @@ In the unlikely event that a dispute arises between you and GitHub regarding our
|
|||||||
|
|
||||||
### Changes to our Privacy Statement
|
### Changes to our Privacy Statement
|
||||||
|
|
||||||
Although most changes are likely to be minor, GitHub may change our Privacy Statement from time to time. We will provide notification to Users of material changes to this Privacy Statement through our Website at least 30 days prior to the change taking effect by posting a notice on our home page or sending email to the primary email address specified in your GitHub account. We will also update our [Site Policy repository](https://github.com/github/site-policy/), which tracks all changes to this policy. For changes to this Privacy Statement that are not material changes or that do not affect your rights, we encourage Users to check our Site Policy repository frequently.
|
Although most changes are likely to be minor, GitHub may change our Privacy Statement from time to time. We will provide notification to Users of material changes to this Privacy Statement through our Website at least 30 days prior to the change taking effect by posting a notice on our home page or sending email to the primary email address specified in your GitHub account. We will also update our [Site Policy repository](https://github.com/github/site-policy/), which tracks all changes to this policy. For other changes to this Privacy Statement, we encourage Users to [watch](/github/managing-subscriptions-and-notifications-on-github/viewing-your-subscriptions#configuring-your-watch-settings-for-an-individual-repository) or to check our Site Policy repository frequently.
|
||||||
|
|
||||||
### License
|
### License
|
||||||
|
|
||||||
|
|||||||
@@ -32,11 +32,11 @@ Thank you for using GitHub! We're happy you're here. Please read this Terms of S
|
|||||||
| [N. Disclaimer of Warranties](#n-disclaimer-of-warranties) | We provide our service as is, and we make no promises or guarantees about this service. **Please read this section carefully; you should understand what to expect.** |
|
| [N. Disclaimer of Warranties](#n-disclaimer-of-warranties) | We provide our service as is, and we make no promises or guarantees about this service. **Please read this section carefully; you should understand what to expect.** |
|
||||||
| [O. Limitation of Liability](#o-limitation-of-liability) | We will not be liable for damages or losses arising from your use or inability to use the service or otherwise arising under this agreement. **Please read this section carefully; it limits our obligations to you.** |
|
| [O. Limitation of Liability](#o-limitation-of-liability) | We will not be liable for damages or losses arising from your use or inability to use the service or otherwise arising under this agreement. **Please read this section carefully; it limits our obligations to you.** |
|
||||||
| [P. Release and Indemnification](#p-release-and-indemnification) | You are fully responsible for your use of the service. |
|
| [P. Release and Indemnification](#p-release-and-indemnification) | You are fully responsible for your use of the service. |
|
||||||
| [Q. Changes to these Terms of Service](#q-changes-to-these-terms) | We may modify this agreement, but we will give you 30 days' notice of changes that affect your rights. |
|
| [Q. Changes to these Terms of Service](#q-changes-to-these-terms) | We may modify this agreement, but we will give you 30 days' notice of material changes. |
|
||||||
| [R. Miscellaneous](#r-miscellaneous) | Please see this section for legal details including our choice of law. |
|
| [R. Miscellaneous](#r-miscellaneous) | Please see this section for legal details including our choice of law. |
|
||||||
|
|
||||||
### The GitHub Terms of Service
|
### The GitHub Terms of Service
|
||||||
Effective date: April 2, 2020
|
Effective date: November 16, 2020
|
||||||
|
|
||||||
|
|
||||||
### A. Definitions
|
### A. Definitions
|
||||||
@@ -98,7 +98,7 @@ You agree that you will not under any circumstances violate our [Acceptable Use
|
|||||||
You may create or upload User-Generated Content while using the Service. You are solely responsible for the content of, and for any harm resulting from, any User-Generated Content that you post, upload, link to or otherwise make available via the Service, regardless of the form of that Content. We are not responsible for any public display or misuse of your User-Generated Content.
|
You may create or upload User-Generated Content while using the Service. You are solely responsible for the content of, and for any harm resulting from, any User-Generated Content that you post, upload, link to or otherwise make available via the Service, regardless of the form of that Content. We are not responsible for any public display or misuse of your User-Generated Content.
|
||||||
|
|
||||||
#### 2. GitHub May Remove Content
|
#### 2. GitHub May Remove Content
|
||||||
We do not pre-screen User-Generated Content, but we have the right (though not the obligation) to refuse or remove any User-Generated Content that, in our sole discretion, violates any [GitHub terms or policies](/github/site-policy).
|
We have the right to refuse or remove any User-Generated Content that, in our sole discretion, violates any laws or [GitHub terms or policies](/github/site-policy). User-Generated Content displayed on GitHub for mobile may be subject to mobile app stores' additional terms.
|
||||||
|
|
||||||
#### 3. Ownership of Content, Right to Post, and License Grants
|
#### 3. Ownership of Content, Right to Post, and License Grants
|
||||||
You retain ownership of and responsibility for Your Content. If you're posting anything you did not create yourself or do not own the rights to, you agree that you are responsible for any Content you post; that you will only submit Content that you have the right to post; and that you will fully comply with any third party licenses relating to Content you post.
|
You retain ownership of and responsibility for Your Content. If you're posting anything you did not create yourself or do not own the rights to, you agree that you are responsible for any Content you post; that you will only submit Content that you have the right to post; and that you will fully comply with any third party licenses relating to Content you post.
|
||||||
@@ -106,9 +106,9 @@ You retain ownership of and responsibility for Your Content. If you're posting a
|
|||||||
Because you retain ownership of and responsibility for Your Content, we need you to grant us — and other GitHub Users — certain legal permissions, listed in Sections D.4 — D.7. These license grants apply to Your Content. If you upload Content that already comes with a license granting GitHub the permissions we need to run our Service, no additional license is required. You understand that you will not receive any payment for any of the rights granted in Sections D.4 — D.7. The licenses you grant to us will end when you remove Your Content from our servers, unless other Users have forked it.
|
Because you retain ownership of and responsibility for Your Content, we need you to grant us — and other GitHub Users — certain legal permissions, listed in Sections D.4 — D.7. These license grants apply to Your Content. If you upload Content that already comes with a license granting GitHub the permissions we need to run our Service, no additional license is required. You understand that you will not receive any payment for any of the rights granted in Sections D.4 — D.7. The licenses you grant to us will end when you remove Your Content from our servers, unless other Users have forked it.
|
||||||
|
|
||||||
#### 4. License Grant to Us
|
#### 4. License Grant to Us
|
||||||
We need the legal right to do things like host Your Content, publish it, and share it. You grant us and our legal successors the right to store, parse, and display Your Content, and make incidental copies as necessary to render the Website and provide the Service. This includes the right to do things like copy it to our database and make backups; show it to you and other users; parse it into a search index or otherwise analyze it on our servers; share it with other users; and perform it, in case Your Content is something like music or video.
|
We need the legal right to do things like host Your Content, publish it, and share it. You grant us and our legal successors the right to store, archive, parse, and display Your Content, and make incidental copies, as necessary to provide the Service, including improving the Service over time. This license includes the right to do things like copy it to our database and make backups; show it to you and other users; parse it into a search index or otherwise analyze it on our servers; share it with other users; and perform it, in case Your Content is something like music or video.
|
||||||
|
|
||||||
This license does not grant GitHub the right to sell Your Content or otherwise distribute or use it outside of our provision of the Service.
|
This license does not grant GitHub the right to sell Your Content. It also does not grant GitHub the right to otherwise distribute or use Your Content outside of our provision of the Service, except that as part of the right to archive Your Content, GitHub may permit our partners to store and archive Your Content in public repositories in connection with the [GitHub Arctic Code Vault and GitHub Archive Program](https://archiveprogram.github.com/).
|
||||||
|
|
||||||
#### 5. License Grant to Other Users
|
#### 5. License Grant to Other Users
|
||||||
Any User-Generated Content you post publicly, including issues, comments, and contributions to other Users' repositories, may be viewed by others. By setting your repositories to be viewed publicly, you agree to allow others to view and "fork" your repositories (this means that others may make their own copies of Content from your repositories in repositories they control).
|
Any User-Generated Content you post publicly, including issues, comments, and contributions to other Users' repositories, may be viewed by others. By setting your repositories to be viewed publicly, you agree to allow others to view and "fork" your repositories (this means that others may make their own copies of Content from your repositories in repositories they control).
|
||||||
@@ -116,7 +116,7 @@ Any User-Generated Content you post publicly, including issues, comments, and co
|
|||||||
If you set your pages and repositories to be viewed publicly, you grant each User of GitHub a nonexclusive, worldwide license to use, display, and perform Your Content through the GitHub Service and to reproduce Your Content solely on GitHub as permitted through GitHub's functionality (for example, through forking). You may grant further rights if you [adopt a license](/articles/adding-a-license-to-a-repository/#including-an-open-source-license-in-your-repository). If you are uploading Content you did not create or own, you are responsible for ensuring that the Content you upload is licensed under terms that grant these permissions to other GitHub Users.
|
If you set your pages and repositories to be viewed publicly, you grant each User of GitHub a nonexclusive, worldwide license to use, display, and perform Your Content through the GitHub Service and to reproduce Your Content solely on GitHub as permitted through GitHub's functionality (for example, through forking). You may grant further rights if you [adopt a license](/articles/adding-a-license-to-a-repository/#including-an-open-source-license-in-your-repository). If you are uploading Content you did not create or own, you are responsible for ensuring that the Content you upload is licensed under terms that grant these permissions to other GitHub Users.
|
||||||
|
|
||||||
#### 6. Contributions Under Repository License
|
#### 6. Contributions Under Repository License
|
||||||
Whenever you make a contribution to a repository containing notice of a license, you license your contribution under the same terms, and you agree that you have the right to license your contribution under those terms. If you have a separate agreement to license your contributions under different terms, such as a contributor license agreement, that agreement will supersede.
|
Whenever you add Content to a repository containing notice of a license, you license that Content under the same terms, and you agree that you have the right to license that Content under those terms. If you have a separate agreement to license that Content under different terms, such as a contributor license agreement, that agreement will supersede.
|
||||||
|
|
||||||
Isn't this just how it works already? Yep. This is widely accepted as the norm in the open-source community; it's commonly referred to by the shorthand "inbound=outbound". We're just making it explicit.
|
Isn't this just how it works already? Yep. This is widely accepted as the norm in the open-source community; it's commonly referred to by the shorthand "inbound=outbound". We're just making it explicit.
|
||||||
|
|
||||||
@@ -126,7 +126,7 @@ You retain all moral rights to Your Content that you upload, publish, or submit
|
|||||||
To the extent this agreement is not enforceable by applicable law, you grant GitHub the rights we need to use Your Content without attribution and to make reasonable adaptations of Your Content as necessary to render the Website and provide the Service.
|
To the extent this agreement is not enforceable by applicable law, you grant GitHub the rights we need to use Your Content without attribution and to make reasonable adaptations of Your Content as necessary to render the Website and provide the Service.
|
||||||
|
|
||||||
### E. Private Repositories
|
### E. Private Repositories
|
||||||
**Short version:** *You may have access to private repositories. We treat the content of private repositories as confidential, and we only access it for support reasons, with your consent, or if required to for security reasons.*
|
**Short version:** *We treat the content of private repositories as confidential, and we only access it as described in our Privacy Statement—for security purposes, to assist the repository owner with a support matter, to maintain the integrity of the Service, to comply with our legal obligations, if we have reason to believe the contents are in violation of the law, or with your consent.*
|
||||||
|
|
||||||
#### 1. Control of Private Repositories
|
#### 1. Control of Private Repositories
|
||||||
Some Accounts may have private repositories, which allow the User to control access to Content.
|
Some Accounts may have private repositories, which allow the User to control access to Content.
|
||||||
@@ -135,15 +135,14 @@ Some Accounts may have private repositories, which allow the User to control acc
|
|||||||
GitHub considers the contents of private repositories to be confidential to you. GitHub will protect the contents of private repositories from unauthorized use, access, or disclosure in the same manner that we would use to protect our own confidential information of a similar nature and in no event with less than a reasonable degree of care.
|
GitHub considers the contents of private repositories to be confidential to you. GitHub will protect the contents of private repositories from unauthorized use, access, or disclosure in the same manner that we would use to protect our own confidential information of a similar nature and in no event with less than a reasonable degree of care.
|
||||||
|
|
||||||
#### 3. Access
|
#### 3. Access
|
||||||
GitHub personnel may only access the content of your private repositories in the following situations:
|
GitHub personnel may only access the content of your private repositories in the situations described in our [Privacy Statement](/github/site-policy/github-privacy-statement#repository-contents).
|
||||||
- With your consent and knowledge, for support reasons. If GitHub accesses a private repository for support reasons, we will only do so with the owner’s consent and knowledge.
|
|
||||||
- When access is required for security reasons, including when access is required to maintain ongoing confidentiality, integrity, availability and resilience of GitHub's systems and Service.
|
|
||||||
|
|
||||||
You may choose to enable additional access to your private repositories. For example:
|
You may choose to enable additional access to your private repositories. For example:
|
||||||
- You may enable various GitHub services or features that require additional rights to Your Content in private repositories. These rights may vary depending on the service or feature, but GitHub will continue to treat your private repository Content as confidential. If those services or features require rights in addition to those we need to provide the GitHub Service, we will provide an explanation of those rights.
|
- You may enable various GitHub services or features that require additional rights to Your Content in private repositories. These rights may vary depending on the service or feature, but GitHub will continue to treat your private repository Content as confidential. If those services or features require rights in addition to those we need to provide the GitHub Service, we will provide an explanation of those rights.
|
||||||
|
|
||||||
#### 4. Exclusions
|
Additionally, we may be [compelled by law](/github/site-policy/github-privacy-statement#for-legal-disclosure) to disclose the contents of your private repositories.
|
||||||
If we have reason to believe the contents of a private repository are in violation of the law or of these Terms, we have the right to access, review, and remove them. Additionally, we may be [compelled by law](/github/site-policy/github-privacy-statement#for-legal-disclosure) to disclose the contents of your private repositories.
|
|
||||||
|
GitHub will provide notice regarding our access to private repository content, unless [for legal disclosure](/github/site-policy/github-privacy-statement#for-legal-disclosure), to comply with our legal obligations, or where otherwise bound by requirements under law, for automated scanning, or if in response to a security threat or other risk to security.
|
||||||
|
|
||||||
### F. Copyright Infringement and DMCA Policy
|
### F. Copyright Infringement and DMCA Policy
|
||||||
If you believe that content on our website violates your copyright, please contact us in accordance with our [Digital Millennium Copyright Act Policy](/articles/dmca-takedown-policy/). If you are a copyright owner and you believe that content on GitHub violates your rights, please contact us via [our convenient DMCA form](https://github.com/contact/dmca) or by emailing copyright@github.com. There may be legal consequences for sending a false or frivolous takedown notice. Before sending a takedown request, you must consider legal uses such as fair use and licensed uses.
|
If you believe that content on our website violates your copyright, please contact us in accordance with our [Digital Millennium Copyright Act Policy](/articles/dmca-takedown-policy/). If you are a copyright owner and you believe that content on GitHub violates your rights, please contact us via [our convenient DMCA form](https://github.com/contact/dmca) or by emailing copyright@github.com. There may be legal consequences for sending a false or frivolous takedown notice. Before sending a takedown request, you must consider legal uses such as fair use and licensed uses.
|
||||||
@@ -286,9 +285,9 @@ If you have a dispute with one or more Users, you agree to release GitHub from a
|
|||||||
You agree to indemnify us, defend us, and hold us harmless from and against any and all claims, liabilities, and expenses, including attorneys’ fees, arising out of your use of the Website and the Service, including but not limited to your violation of this Agreement, provided that GitHub (1) promptly gives you written notice of the claim, demand, suit or proceeding; (2) gives you sole control of the defense and settlement of the claim, demand, suit or proceeding (provided that you may not settle any claim, demand, suit or proceeding unless the settlement unconditionally releases GitHub of all liability); and (3) provides to you all reasonable assistance, at your expense.
|
You agree to indemnify us, defend us, and hold us harmless from and against any and all claims, liabilities, and expenses, including attorneys’ fees, arising out of your use of the Website and the Service, including but not limited to your violation of this Agreement, provided that GitHub (1) promptly gives you written notice of the claim, demand, suit or proceeding; (2) gives you sole control of the defense and settlement of the claim, demand, suit or proceeding (provided that you may not settle any claim, demand, suit or proceeding unless the settlement unconditionally releases GitHub of all liability); and (3) provides to you all reasonable assistance, at your expense.
|
||||||
|
|
||||||
### Q. Changes to These Terms
|
### Q. Changes to These Terms
|
||||||
**Short version:** *We want our users to be informed of important changes to our terms, but some changes aren't that important — we don't want to bother you every time we fix a typo. So while we may modify this agreement at any time, we will notify users of any changes that affect your rights and give you time to adjust to them.*
|
**Short version:** *We want our users to be informed of important changes to our terms, but some changes aren't that important — we don't want to bother you every time we fix a typo. So while we may modify this agreement at any time, we will notify users of any material changes and give you time to adjust to them.*
|
||||||
|
|
||||||
We reserve the right, at our sole discretion, to amend these Terms of Service at any time and will update these Terms of Service in the event of any such amendments. We will notify our Users of material changes to this Agreement, such as price changes, at least 30 days prior to the change taking effect by posting a notice on our Website. For non-material modifications, your continued use of the Website constitutes agreement to our revisions of these Terms of Service. You can view all changes to these Terms in our [Site Policy](https://github.com/github/site-policy) repository.
|
We reserve the right, at our sole discretion, to amend these Terms of Service at any time and will update these Terms of Service in the event of any such amendments. We will notify our Users of material changes to this Agreement, such as price increases, at least 30 days prior to the change taking effect by posting a notice on our Website or sending email to the primary email address specified in your GitHub account. Customer's continued use of the Service after those 30 days constitutes agreement to those revisions of this Agreement. For any other modifications, your continued use of the Website constitutes agreement to our revisions of these Terms of Service. You can view all changes to these Terms in our [Site Policy](https://github.com/github/site-policy) repository.
|
||||||
|
|
||||||
We reserve the right at any time and from time to time to modify or discontinue, temporarily or permanently, the Website (or any part of it) with or without notice.
|
We reserve the right at any time and from time to time to modify or discontinue, temporarily or permanently, the Website (or any part of it) with or without notice.
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ versions:
|
|||||||
|
|
||||||
{% note %}
|
{% note %}
|
||||||
|
|
||||||
**Note:** {% data variables.product.prodname_github_container_registry %} is currently in public beta and subject to change. During the beta, storage and bandwidth are free.
|
**Note:** {% data variables.product.prodname_github_container_registry %} is currently in public beta and subject to change. During the beta, storage and bandwidth are free. To use {% data variables.product.prodname_github_container_registry %}, you must enable the feature for your account. For more information, see "[Enabling improved container support](/packages/getting-started-with-github-container-registry/enabling-improved-container-support)."
|
||||||
|
|
||||||
{% endnote %}
|
{% endnote %}
|
||||||
|
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
---
|
|
||||||
title: Enabling GitHub Container Registry for your organization
|
|
||||||
intro: 'In an organization, organization admins can allow organization members to publish public or private container images to {% data variables.product.prodname_github_container_registry %}.'
|
|
||||||
product: '{% data reusables.gated-features.packages %}'
|
|
||||||
versions:
|
|
||||||
free-pro-team: '*'
|
|
||||||
---
|
|
||||||
|
|
||||||
{% data reusables.package_registry.container-registry-beta %}
|
|
||||||
|
|
||||||
Before organization members can publish container images to {% data variables.product.prodname_github_container_registry %}, an organization admin must enable package creation.
|
|
||||||
|
|
||||||
{% data reusables.profile.access_profile %}
|
|
||||||
{% data reusables.profile.access_org %}
|
|
||||||
{% data reusables.organizations.org_settings %}
|
|
||||||
{% data reusables.organizations.member-privileges %}
|
|
||||||
5. Under "Package creation", choose whether you want to enable the creation of public or private container images.
|
|
||||||
- To enable organization members to create a public container image, click **Public**.
|
|
||||||
- To enable organization members to create a private container image that is only visible to other organization members, click **Private**. You can further customize the visibility of a private container image. For more information, see "[Configuring access control and visibility for container images](/packages/managing-container-images-with-github-container-registry/configuring-access-control-and-visibility-for-container-images)."
|
|
||||||
|
|
||||||

|
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
title: Enabling improved container support
|
||||||
|
intro: 'To use {% data variables.product.prodname_github_container_registry %}, you must enable it for your user or organization account.'
|
||||||
|
product: '{% data reusables.gated-features.packages %}'
|
||||||
|
versions:
|
||||||
|
free-pro-team: '*'
|
||||||
|
---
|
||||||
|
|
||||||
|
{% note %}
|
||||||
|
|
||||||
|
**Note:** {% data variables.product.prodname_github_container_registry %} is currently in public beta and subject to change. During the beta, storage and bandwidth are free. For more information, see "[About {% data variables.product.prodname_github_container_registry %}](/packages/getting-started-with-github-container-registry/about-github-container-registry)."
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
### Enabling {% data variables.product.prodname_github_container_registry %} for your personal account
|
||||||
|
|
||||||
|
Once {% data variables.product.prodname_github_container_registry %} is enabled for your personal user account, you can publish containers to {% data variables.product.prodname_github_container_registry %} owned by your user account.
|
||||||
|
|
||||||
|
To use {% data variables.product.prodname_github_container_registry %} within an organization, the organization owner must enable the feature for organization members.
|
||||||
|
|
||||||
|
{% data reusables.feature-preview.feature-preview-setting %}
|
||||||
|
2. On the left, select "Improved container support", then click **Enable**.
|
||||||
|

|
||||||
|
|
||||||
|
### Enabling {% data variables.product.prodname_github_container_registry %} for your organization account
|
||||||
|
|
||||||
|
Before organization owners or members can publish container images to {% data variables.product.prodname_github_container_registry %}, an organization owner must enable the feature preview for the organization.
|
||||||
|
|
||||||
|
{% data reusables.profile.access_profile %}
|
||||||
|
{% data reusables.profile.access_org %}
|
||||||
|
{% data reusables.organizations.org_settings %}
|
||||||
|
4. On the left, click **Packages**.
|
||||||
|
5. Under "Improved container support", select "Enable improved container support" and click **Save**.
|
||||||
|

|
||||||
|
6. Under "Container creation", choose whether you want to enable the creation of public and/or private container images.
|
||||||
|
- To enable organization members to create public container images, click **Public**.
|
||||||
|
- To enable organization members to create private container images that are only visible to other organization members, click **Private**. You can further customize the visibility of private container images. For more information, see "[Configuring access control and visibility for container images](/packages/managing-container-images-with-github-container-registry/configuring-access-control-and-visibility-for-container-images)."
|
||||||
|
|
||||||
|

|
||||||
@@ -8,8 +8,8 @@ versions:
|
|||||||
{% data reusables.package_registry.container-registry-beta %}
|
{% data reusables.package_registry.container-registry-beta %}
|
||||||
|
|
||||||
{% link_in_list /about-github-container-registry %}
|
{% link_in_list /about-github-container-registry %}
|
||||||
|
{% link_in_list /enabling-improved-container-support %}
|
||||||
{% link_in_list /core-concepts-for-github-container-registry %}
|
{% link_in_list /core-concepts-for-github-container-registry %}
|
||||||
{% link_in_list /migrating-to-github-container-registry-for-docker-images %}
|
{% link_in_list /migrating-to-github-container-registry-for-docker-images %}
|
||||||
{% link_in_list /enabling-github-container-registry-for-your-organization %}
|
|
||||||
|
|
||||||
For more information about configuring, deleting, pushing, or pulling container images, see "[Managing container images with {% data variables.product.prodname_github_container_registry %}](/packages/managing-container-images-with-github-container-registry)."
|
For more information about configuring, deleting, pushing, or pulling container images, see "[Managing container images with {% data variables.product.prodname_github_container_registry %}](/packages/managing-container-images-with-github-container-registry)."
|
||||||
|
|||||||
@@ -31,6 +31,8 @@ The domain for the {% data variables.product.prodname_container_registry %} is `
|
|||||||
|
|
||||||
### Authenticating with the container registry
|
### Authenticating with the container registry
|
||||||
|
|
||||||
|
{% data reusables.package_registry.feature-preview-for-container-registry %}
|
||||||
|
|
||||||
You will need to authenticate to the {% data variables.product.prodname_container_registry %} with the base URL `ghcr.io`. We recommend creating a new access token for using the {% data variables.product.prodname_container_registry %}.
|
You will need to authenticate to the {% data variables.product.prodname_container_registry %} with the base URL `ghcr.io`. We recommend creating a new access token for using the {% data variables.product.prodname_container_registry %}.
|
||||||
|
|
||||||
{% data reusables.package_registry.authenticate_with_pat_for_container_registry %}
|
{% data reusables.package_registry.authenticate_with_pat_for_container_registry %}
|
||||||
@@ -70,6 +72,8 @@ To move Docker images that you host on {% data variables.product.prodname_regist
|
|||||||
|
|
||||||
### Updating your {% data variables.product.prodname_actions %} workflow
|
### Updating your {% data variables.product.prodname_actions %} workflow
|
||||||
|
|
||||||
|
{% data reusables.package_registry.feature-preview-for-container-registry %}
|
||||||
|
|
||||||
If you have a {% data variables.product.prodname_actions %} workflow that uses a Docker image from the {% data variables.product.prodname_registry %} Docker registry, you may want to update your workflow to the {% data variables.product.prodname_container_registry %} to allow for anonymous access for public container images, finer-grain access permissions, and better storage and bandwidth compatibility for containers.
|
If you have a {% data variables.product.prodname_actions %} workflow that uses a Docker image from the {% data variables.product.prodname_registry %} Docker registry, you may want to update your workflow to the {% data variables.product.prodname_container_registry %} to allow for anonymous access for public container images, finer-grain access permissions, and better storage and bandwidth compatibility for containers.
|
||||||
|
|
||||||
1. Migrate your Docker images to the new {% data variables.product.prodname_container_registry %} at `ghcr.io`. For an example, see "[Migrating a Docker image using the Docker CLI](#migrating-a-docker-image-using-the-docker-cli)."
|
1. Migrate your Docker images to the new {% data variables.product.prodname_container_registry %} at `ghcr.io`. For an example, see "[Migrating a Docker image using the Docker CLI](#migrating-a-docker-image-using-the-docker-cli)."
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ If you have admin permissions to an organization-owned container image, you can
|
|||||||
|
|
||||||
If your package is owned by an organization and private, then you can only give access to other organization members or teams.
|
If your package is owned by an organization and private, then you can only give access to other organization members or teams.
|
||||||
|
|
||||||
For organization image containers, organizations admins must enable packages before you can set the visibility to public. For more information, see "[Enabling GitHub Container Registry for your organization](/packages/getting-started-with-github-container-registry/enabling-github-container-registry-for-your-organization)."
|
For organization image containers, organizations admins must enable packages before you can set the visibility to public. For more information, see "[Enabling improved container support](/packages/getting-started-with-github-container-registry/enabling-improved-container-support)."
|
||||||
|
|
||||||
{% data reusables.package_registry.package-settings-from-org-level %}
|
{% data reusables.package_registry.package-settings-from-org-level %}
|
||||||
1. On the package settings page, click **Invite teams or people** and enter the name, username, or email of the person you want to give access. You can also enter a team name from the organization to give all team members access.
|
1. On the package settings page, click **Invite teams or people** and enter the name, username, or email of the person you want to give access. You can also enter a team name from the organization to give all team members access.
|
||||||
@@ -59,7 +59,7 @@ When you first publish a package, the default visibility is private and only you
|
|||||||
|
|
||||||
A public package can be accessed anonymously without authentication. Once you make your package public, you cannot make your package private again.
|
A public package can be accessed anonymously without authentication. Once you make your package public, you cannot make your package private again.
|
||||||
|
|
||||||
For organization image containers, organizations admins must enable public packages before you can set the visibility to public. For more information, see "[Enabling GitHub Container Registry for your organization](/packages/getting-started-with-github-container-registry/enabling-github-container-registry-for-your-organization)."
|
For organization image containers, organizations admins must enable public packages before you can set the visibility to public. For more information, see "[Enabling improved container support](/packages/getting-started-with-github-container-registry/enabling-improved-container-support)."
|
||||||
|
|
||||||
{% data reusables.package_registry.package-settings-from-org-level %}
|
{% data reusables.package_registry.package-settings-from-org-level %}
|
||||||
5. Under "Danger Zone", choose a visibility setting:
|
5. Under "Danger Zone", choose a visibility setting:
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ versions:
|
|||||||
|
|
||||||
{% data reusables.package_registry.container-registry-beta %}
|
{% data reusables.package_registry.container-registry-beta %}
|
||||||
|
|
||||||
To push and pull container images owned by an organization, an organization admin must enable {% data variables.product.prodname_github_container_registry %} for the organization. For more information, see "[Enabling GitHub Container Registry for your organization](/packages/getting-started-with-github-container-registry/enabling-github-container-registry-for-your-organization)."
|
To push and pull container images owned by an organization, an organization admin must enable {% data variables.product.prodname_github_container_registry %} for the organization. For more information, see "[Enabling improved container support](/packages/getting-started-with-github-container-registry/enabling-improved-container-support)."
|
||||||
|
|
||||||
### Authenticating to {% data variables.product.prodname_github_container_registry %}
|
### Authenticating to {% data variables.product.prodname_github_container_registry %}
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ You can integrate {% data variables.product.prodname_registry %} with {% data va
|
|||||||
|
|
||||||
{% data reusables.package_registry.container-registry-beta %}
|
{% data reusables.package_registry.container-registry-beta %}
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
#### Viewing packages
|
#### Viewing packages
|
||||||
|
|||||||
@@ -46,11 +46,19 @@ $ curl -u <em>username</em>:<em>token</em> {% data variables.product.api_url_pre
|
|||||||
|
|
||||||
This approach is useful if your tools only support Basic Authentication but you want to take advantage of OAuth access token security features.
|
This approach is useful if your tools only support Basic Authentication but you want to take advantage of OAuth access token security features.
|
||||||
|
|
||||||
{% if enterpriseServerVersions contains currentVersion %}
|
|
||||||
#### Via username and password
|
#### Via username and password
|
||||||
|
|
||||||
{% data reusables.apps.deprecating_password_auth %}
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
|
||||||
|
{% note %}
|
||||||
|
|
||||||
|
**Note:** {% data variables.product.prodname_dotcom %} has discontinued password authentication to the API starting on November 13, 2020 for all {% data variables.product.prodname_dotcom_the_website %} accounts, including those on a {% data variables.product.prodname_free_user %}, {% data variables.product.prodname_pro %}, {% data variables.product.prodname_team %}, or {% data variables.product.prodname_ghe_cloud %} plan. You must now authenticate to the {% data variables.product.prodname_dotcom %} API with an API token, such as an OAuth access token, GitHub App installation access token, or personal access token, depending on what you need to do with the token. For more information, see "[Troubleshooting](/rest/overview/troubleshooting#basic-authentication-errors)."
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if enterpriseServerVersions contains currentVersion %}
|
||||||
To use Basic Authentication with the {% data variables.product.product_name %} API, simply send the username and
|
To use Basic Authentication with the {% data variables.product.product_name %} API, simply send the username and
|
||||||
password associated with the account.
|
password associated with the account.
|
||||||
|
|
||||||
@@ -100,14 +108,13 @@ The value `organizations` is a comma-separated list of organization IDs for orga
|
|||||||
{% if currentVersion == "free-pro-team@latest" or enterpriseServerVersions contains currentVersion %}
|
{% if currentVersion == "free-pro-team@latest" or enterpriseServerVersions contains currentVersion %}
|
||||||
### Working with two-factor authentication
|
### Working with two-factor authentication
|
||||||
|
|
||||||
{% data reusables.apps.deprecating_password_auth %}
|
When you have two-factor authentication enabled, [Basic Authentication](#basic-authentication) for _most_ endpoints in the REST API requires that you use a personal access token{% if enterpriseServerVersions contains currentVersion %} or OAuth token instead of your username and password{% endif %}.
|
||||||
|
|
||||||
When you have two-factor authentication enabled, [Basic Authentication](#basic-authentication) for _most_ endpoints in the REST API requires that you use a personal access token or OAuth token instead of your username and password.
|
|
||||||
|
|
||||||
You can generate a new personal access token {% if currentVersion == "free-pro-team@latest" %}with [{% data variables.product.product_name %} developer settings](https://github.com/settings/tokens/new){% endif %} or use the "[Create a new authorization][create-access]" endpoint in the OAuth Authorizations API to generate a new OAuth token. For more information, see "[Creating a personal access token for the command line](/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line)". Then you would use these tokens to [authenticate using OAuth token][oauth-auth] with the GitHub API. The only time you need to authenticate with your username and password is when you create your OAuth token or use the OAuth Authorizations API.
|
|
||||||
|
|
||||||
|
You can generate a new personal access token {% if currentVersion == "free-pro-team@latest" %}using [{% data variables.product.product_name %} developer settings](https://github.com/settings/tokens/new){% endif %}{% if enterpriseServerVersions contains currentVersion %} or with the "[Create a new authorization][/rest/reference/oauth-authorizations#create-a-new-authorization]" endpoint in the OAuth Authorizations API to generate a new OAuth token{% endif %}. For more information, see "[Creating a personal access token for the command line](/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line)". Then you would use these tokens to [authenticate using OAuth token][oauth-auth] with the {% data variables.product.prodname_dotcom %} API.{% if enterpriseServerVersions contains currentVersion %} The only time you need to authenticate with your username and password is when you create your OAuth token or use the OAuth Authorizations API.{% endif %}
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if enterpriseServerVersions contains currentVersion %}
|
||||||
#### Using the OAuth Authorizations API with two-factor authentication
|
#### Using the OAuth Authorizations API with two-factor authentication
|
||||||
|
|
||||||
When you make calls to the OAuth Authorizations API, Basic Authentication requires that you use a one-time password (OTP) and your username and password instead of tokens. When you attempt to authenticate with the OAuth Authorizations API, the server will respond with a `401 Unauthorized` and one of these headers to let you know that you need a two-factor authentication code:
|
When you make calls to the OAuth Authorizations API, Basic Authentication requires that you use a one-time password (OTP) and your username and password instead of tokens. When you attempt to authenticate with the OAuth Authorizations API, the server will respond with a `401 Unauthorized` and one of these headers to let you know that you need a two-factor authentication code:
|
||||||
@@ -126,7 +133,6 @@ $ curl --request POST \
|
|||||||
```
|
```
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
[create-access]: /v3/oauth_authorizations/#create-a-new-authorization
|
|
||||||
[curl]: http://curl.haxx.se/
|
[curl]: http://curl.haxx.se/
|
||||||
[oauth-auth]: /v3/#authentication
|
[oauth-auth]: /v3/#authentication
|
||||||
[personal-access-tokens]: /articles/creating-a-personal-access-token-for-the-command-line
|
[personal-access-tokens]: /articles/creating-a-personal-access-token-for-the-command-line
|
||||||
|
|||||||
@@ -150,9 +150,9 @@ the API will temporarily reject all authentication attempts for that user
|
|||||||
(including ones with valid credentials) with `403 Forbidden`:
|
(including ones with valid credentials) with `403 Forbidden`:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
$ curl -i {% data variables.product.api_url_pre %} -u valid_username:valid_password
|
$ curl -i {% data variables.product.api_url_pre %} -u {% if currentVersion == "free-pro-team@latest" or currentVersion == "github-ae@latest" %}
|
||||||
|
-u <em>valid_username</em>:<em>valid_token</em> {% endif %}{% if enterpriseServerVersions contains currentVersion %}-u <em>valid_username</em>:<em>valid_password</em> {% endif %}
|
||||||
> HTTP/1.1 403 Forbidden
|
> HTTP/1.1 403 Forbidden
|
||||||
|
|
||||||
> {
|
> {
|
||||||
> "message": "Maximum number of login attempts exceeded. Please try again later.",
|
> "message": "Maximum number of login attempts exceeded. Please try again later.",
|
||||||
> "documentation_url": "{% data variables.product.doc_url_pre %}/v3"
|
> "documentation_url": "{% data variables.product.doc_url_pre %}/v3"
|
||||||
@@ -185,19 +185,10 @@ $ curl -i -u username -d '{"scopes":["public_repo"]}' {% data variables.product.
|
|||||||
You can issue a `GET` request to the root endpoint to get all the endpoint categories that the REST API supports:
|
You can issue a `GET` request to the root endpoint to get all the endpoint categories that the REST API supports:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
$ curl {% if currentVersion == "github-ae@latest" %}-u <em>username</em>:<em>token</em> {% endif %}{% if currentVersion == "free-pro-team@latest" or enterpriseServerVersions contains currentVersion %}-u <em>username</em>:<em>password</em> {% endif %}{% data variables.product.api_url_pre %}
|
$ curl {% if currentVersion == "free-pro-team@latest" or currentVersion == "github-ae@latest" %}
|
||||||
|
-u <em>username</em>:<em>token</em> {% endif %}{% if enterpriseServerVersions contains currentVersion %}-u <em>username</em>:<em>password</em> {% endif %}{% data variables.product.api_url_pre %}
|
||||||
```
|
```
|
||||||
|
|
||||||
{% if currentVersion == "free-pro-team@latest" or enterpriseServerVersions contains currentVersion %}
|
|
||||||
|
|
||||||
{% note %}
|
|
||||||
|
|
||||||
**Note:** For {% data variables.product.prodname_ghe_server %}, [as with all other endpoints](/v3/enterprise-admin/#endpoint-urls), you'll need to pass your username and password.
|
|
||||||
|
|
||||||
{% endnote %}
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
### GraphQL global node IDs
|
### GraphQL global node IDs
|
||||||
|
|
||||||
See the guide on "[Using Global Node IDs](/v4/guides/using-global-node-ids)" for detailed information about how to find `node_id`s via the REST API and use them in GraphQL operations.
|
See the guide on "[Using Global Node IDs](/v4/guides/using-global-node-ids)" for detailed information about how to find `node_id`s via the REST API and use them in GraphQL operations.
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ versions:
|
|||||||
If you're encountering some oddities in the API, here's a list of resolutions to
|
If you're encountering some oddities in the API, here's a list of resolutions to
|
||||||
some of the problems you may be experiencing.
|
some of the problems you may be experiencing.
|
||||||
|
|
||||||
### Why am I getting a `404` error on a repository that exists?
|
### `404` error for an existing repository
|
||||||
|
|
||||||
Typically, we send a `404` error when your client isn't properly authenticated.
|
Typically, we send a `404` error when your client isn't properly authenticated.
|
||||||
You might expect to see a `403 Forbidden` in these cases. However, since we don't
|
You might expect to see a `403 Forbidden` in these cases. However, since we don't
|
||||||
@@ -23,7 +23,7 @@ want to provide _any_ information about private repositories, the API returns a
|
|||||||
|
|
||||||
To troubleshoot, ensure [you're authenticating correctly](/guides/getting-started/), [your OAuth access token has the required scopes](/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), and [third-party application restrictions][oap-guide] are not blocking access.
|
To troubleshoot, ensure [you're authenticating correctly](/guides/getting-started/), [your OAuth access token has the required scopes](/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), and [third-party application restrictions][oap-guide] are not blocking access.
|
||||||
|
|
||||||
### Why am I not seeing all my results?
|
### Not all results returned
|
||||||
|
|
||||||
Most API calls accessing a list of resources (_e.g._, users, issues, _etc._) support
|
Most API calls accessing a list of resources (_e.g._, users, issues, _etc._) support
|
||||||
pagination. If you're making requests and receiving an incomplete set of results, you're
|
pagination. If you're making requests and receiving an incomplete set of results, you're
|
||||||
@@ -35,3 +35,40 @@ API call uses the same structure. Instead, extract the pagination information fr
|
|||||||
[the Link Header](/v3/#pagination), which is sent with every request.
|
[the Link Header](/v3/#pagination), which is sent with every request.
|
||||||
|
|
||||||
[oap-guide]: https://developer.github.com/changes/2015-01-19-an-integrators-guide-to-organization-application-policies/
|
[oap-guide]: https://developer.github.com/changes/2015-01-19-an-integrators-guide-to-organization-application-policies/
|
||||||
|
|
||||||
|
{% if currentVersion == "free-pro-team@latest" %}
|
||||||
|
### Basic authentication errors
|
||||||
|
|
||||||
|
On November 13, 2020 username and password authentication to the REST API and the OAuth Authorizations API were deprecated and no longer work.
|
||||||
|
|
||||||
|
#### Using `username`/`password` for basic authentication
|
||||||
|
|
||||||
|
If you're using `username` and `password` for API calls, then they are no longer able to authenticate. For example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -u my_user:my_password https://api.github.com/user/repos
|
||||||
|
```
|
||||||
|
|
||||||
|
Instead, use a [personal access token](/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) when testing endpoints or doing local development:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -H 'Authorization: token my_access_token' https://api.github.com/user/repos
|
||||||
|
```
|
||||||
|
|
||||||
|
For OAuth Apps, you should use the [web application flow](/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to generate an OAuth token to use in the API call's header:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -H 'Authorization: token my-oauth-token' https://api.github.com/user/repos
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Calls to OAuth Authorizations API
|
||||||
|
|
||||||
|
If you're making [OAuth Authorization API](/enterprise-server@2.22/rest/reference/oauth-authorizations) calls to manage your OAuth app's authorizations or to generate access tokens, similar to this example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -u my_username:my_password -X POST "https://api.github.com/authorizations" -d '{"scopes":["public_repo"], "note":"my token", "client_id":"my_client_id", "client_secret":"my_client_secret"}'
|
||||||
|
```
|
||||||
|
|
||||||
|
Then you must switch to the [web application flow](/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to generate access tokens.
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ versions:
|
|||||||
free-pro-team: '*'
|
free-pro-team: '*'
|
||||||
---
|
---
|
||||||
|
|
||||||
Users interact with repositories by commenting, opening issues, and creating pull requests. The Interactions APIs allow people with owner or admin access to temporarily restrict certain users from interacting with public repositories.
|
Users interact with repositories by commenting, opening issues, and creating pull requests. The Interactions APIs allow people with owner or admin access to temporarily restrict interaction with public repositories to a certain type of user.
|
||||||
|
|
||||||
{% for operation in currentRestOperations %}
|
{% for operation in currentRestOperations %}
|
||||||
{% unless operation.subcategory %}{% include rest_operation %}{% endunless %}
|
{% unless operation.subcategory %}{% include rest_operation %}{% endunless %}
|
||||||
@@ -14,24 +14,42 @@ Users interact with repositories by commenting, opening issues, and creating pul
|
|||||||
|
|
||||||
## Organization
|
## Organization
|
||||||
|
|
||||||
The Organization Interactions API allows organization owners to temporarily restrict which users can comment, open issues, or create pull requests in the organization's public repositories. {% data reusables.interactions.interactions-detail %} Here's more about the groups of {% data variables.product.product_name %} users:
|
The Organization Interactions API allows organization owners to temporarily restrict which type of user can comment, open issues, or create pull requests in the organization's public repositories. {% data reusables.interactions.interactions-detail %} Here's more about the types of {% data variables.product.product_name %} users:
|
||||||
|
|
||||||
* {% data reusables.interactions.existing-user-limit-definition %} in the organization.
|
* {% data reusables.interactions.existing-user-limit-definition %} in the organization.
|
||||||
* {% data reusables.interactions.contributor-user-limit-definition %} in the organization.
|
* {% data reusables.interactions.contributor-user-limit-definition %} in the organization.
|
||||||
* {% data reusables.interactions.collaborator-user-limit-definition %} in the organization.
|
* {% data reusables.interactions.collaborator-user-limit-definition %} in the organization.
|
||||||
|
|
||||||
|
Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization. To set different interaction limits for individual repositories owned by the organization, use the [Repository](#repository) interactions endpoints instead.
|
||||||
|
|
||||||
{% for operation in currentRestOperations %}
|
{% for operation in currentRestOperations %}
|
||||||
{% if operation.subcategory == 'orgs' %}{% include rest_operation %}{% endif %}
|
{% if operation.subcategory == 'orgs' %}{% include rest_operation %}{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
## Repository
|
## Repository
|
||||||
|
|
||||||
The Repository Interactions API allows people with owner or admin access to temporarily restrict which users can comment, open issues, or create pull requests in a public repository. {% data reusables.interactions.interactions-detail %} Here's more about the groups of {% data variables.product.product_name %} users:
|
The Repository Interactions API allows people with owner or admin access to temporarily restrict which type of user can comment, open issues, or create pull requests in a public repository. {% data reusables.interactions.interactions-detail %} Here's more about the types of {% data variables.product.product_name %} users:
|
||||||
|
|
||||||
* {% data reusables.interactions.existing-user-limit-definition %} in the repository.
|
* {% data reusables.interactions.existing-user-limit-definition %} in the repository.
|
||||||
* {% data reusables.interactions.contributor-user-limit-definition %} in the repository.
|
* {% data reusables.interactions.contributor-user-limit-definition %} in the repository.
|
||||||
* {% data reusables.interactions.collaborator-user-limit-definition %} in the repository.
|
* {% data reusables.interactions.collaborator-user-limit-definition %} in the repository.
|
||||||
|
|
||||||
|
If an interaction limit is enabled for the user or organization that owns the repository, the limit cannot be changed for the individual repository. Instead, use the [User](#user) or [Organization](#organization) interactions endpoints to change the interaction limit.
|
||||||
|
|
||||||
{% for operation in currentRestOperations %}
|
{% for operation in currentRestOperations %}
|
||||||
{% if operation.subcategory == 'repos' %}{% include rest_operation %}{% endif %}
|
{% if operation.subcategory == 'repos' %}{% include rest_operation %}{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
## User
|
||||||
|
|
||||||
|
The User Interactions API allows you to temporarily restrict which type of user can comment, open issues, or create pull requests on your public repositories. {% data reusables.interactions.interactions-detail %} Here's more about the types of {% data variables.product.product_name %} users:
|
||||||
|
|
||||||
|
* {% data reusables.interactions.existing-user-limit-definition %} from interacting with your repositories.
|
||||||
|
* {% data reusables.interactions.contributor-user-limit-definition %} from interacting with your repositories.
|
||||||
|
* {% data reusables.interactions.collaborator-user-limit-definition %} from interacting with your repositories.
|
||||||
|
|
||||||
|
Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user. To set different interaction limits for individual repositories owned by the user, use the [Repository](#repository) interactions endpoints instead.
|
||||||
|
|
||||||
|
{% for operation in currentRestOperations %}
|
||||||
|
{% if operation.subcategory == 'user' %}{% include rest_operation %}{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
|||||||
@@ -4,13 +4,9 @@ redirect_from:
|
|||||||
- /v3/oauth_authorizations
|
- /v3/oauth_authorizations
|
||||||
- /v3/oauth-authorizations
|
- /v3/oauth-authorizations
|
||||||
versions:
|
versions:
|
||||||
free-pro-team: '*'
|
|
||||||
enterprise-server: '*'
|
enterprise-server: '*'
|
||||||
---
|
---
|
||||||
|
|
||||||
{% data reusables.apps.deprecating_token_oauth_authorizations %}
|
|
||||||
{% data reusables.apps.deprecating_password_auth %}
|
|
||||||
|
|
||||||
You can use this API to manage the access OAuth applications have to your account. You can only access this API via [Basic Authentication](/rest/overview/other-authentication-methods#basic-authentication) using your username and password, not tokens.
|
You can use this API to manage the access OAuth applications have to your account. You can only access this API via [Basic Authentication](/rest/overview/other-authentication-methods#basic-authentication) using your username and password, not tokens.
|
||||||
|
|
||||||
If you or your users have two-factor authentication enabled, make sure you understand how to [work with two-factor authentication](/rest/overview/other-authentication-methods#working-with-two-factor-authentication).
|
If you or your users have two-factor authentication enabled, make sure you understand how to [work with two-factor authentication](/rest/overview/other-authentication-methods#working-with-two-factor-authentication).
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ Each endpoint in the Search API uses [query parameters](https://en.wikipedia.org
|
|||||||
A query can contain any combination of search qualifiers supported on {% data variables.product.product_name %}. The format of the search query is:
|
A query can contain any combination of search qualifiers supported on {% data variables.product.product_name %}. The format of the search query is:
|
||||||
|
|
||||||
```
|
```
|
||||||
q=SEARCH_KEYWORD_1+SEARCH_KEYWORD_N+QUALIFIER_1+QUALIFIER_N
|
SEARCH_KEYWORD_1 SEARCH_KEYWORD_N QUALIFIER_1 QUALIFIER_N
|
||||||
```
|
```
|
||||||
|
|
||||||
For example, if you wanted to search for all _repositories_ owned by `defunkt` that
|
For example, if you wanted to search for all _repositories_ owned by `defunkt` that
|
||||||
@@ -44,7 +44,13 @@ contained the word `GitHub` and `Octocat` in the README file, you would use the
|
|||||||
following query with the _search repositories_ endpoint:
|
following query with the _search repositories_ endpoint:
|
||||||
|
|
||||||
```
|
```
|
||||||
q=GitHub+Octocat+in:readme+user:defunkt
|
GitHub Octocat in:readme user:defunkt
|
||||||
|
```
|
||||||
|
|
||||||
|
**Note:** Be sure to use your language's preferred HTML-encoder to construct your query strings. For example:
|
||||||
|
```javascript
|
||||||
|
// JavaScript
|
||||||
|
const queryString = 'q=' + encodeURIComponent('GitHub Octocat in:readme user:defunkt');
|
||||||
```
|
```
|
||||||
|
|
||||||
See "[Searching on GitHub](/articles/searching-on-github/)"
|
See "[Searching on GitHub](/articles/searching-on-github/)"
|
||||||
|
|||||||
@@ -193,8 +193,8 @@ Introduce links consistently using a standard format that clearly indicates wher
|
|||||||
Links should be meaningful and provide high value to the user’s journey - link out carefully. Move links that are helpful but not necessary to an article’s further reading section. Do not repeat the same link more than once in the same article or under the same H3 header.
|
Links should be meaningful and provide high value to the user’s journey - link out carefully. Move links that are helpful but not necessary to an article’s further reading section. Do not repeat the same link more than once in the same article or under the same H3 header.
|
||||||
|
|
||||||
For accessibility and readability, avoid inline or midsentence links.
|
For accessibility and readability, avoid inline or midsentence links.
|
||||||
- **Use:** OAuth2 tokens can be acquired programmatically for applications that are not websites. For more information, see "[Setting up and registering OAuth Apps](https://developer.github.com/apps/building-integrations/setting-up-and-registering-oauth-apps/)" and "[Create a new authorization](https://developer.github.com/v3/oauth_authorizations/#create-a-new-authorization)."
|
- **Use:** OAuth2 tokens can be acquired programmatically for applications that are not websites. For more information, see "[Setting up and registering OAuth Apps](https://developer.github.com/apps/building-integrations/setting-up-and-registering-oauth-apps/)" and "[Create a new authorization](https://docs.github.com/en/enterprise-server@2.22/rest/reference/oauth-authorizations/#create-a-new-authorization)."
|
||||||
- **Avoid:** Read [more about OAuth2.](https://developer.github.com/apps/building-integrations/setting-up-and-registering-oauth-apps/) Note that OAuth2 tokens can be [acquired programmatically](https://developer.github.com/v3/oauth_authorizations/#create-a-new-authorization), for applications that are not websites.
|
- **Avoid:** Read [more about OAuth2.](https://developer.github.com/apps/building-integrations/setting-up-and-registering-oauth-apps/) Note that OAuth2 tokens can be [acquired programmatically](https://docs.github.com/en/enterprise-server@2.22/rest/reference/oauth-authorizations/#create-a-new-authorization), for applications that are not websites.
|
||||||
|
|
||||||
For more information on links and accessibility, see “[Links](https://readabilityguidelines.co.uk/content-design/links/)” in the Readability Guidelines project.
|
For more information on links and accessibility, see “[Links](https://readabilityguidelines.co.uk/content-design/links/)” in the Readability Guidelines project.
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,12 @@ As an alternative, you can simply use [GitHub Codespaces](https://github.com/fea
|
|||||||
|
|
||||||
In a matter of minutes, you will be ready to edit, preview and test your changes directly from the comfort of your browser.
|
In a matter of minutes, you will be ready to edit, preview and test your changes directly from the comfort of your browser.
|
||||||
|
|
||||||
|
### Viewing a top-level table of contents
|
||||||
|
|
||||||
|
While running the local server, you can visit [localhost:4000/dev-toc](http://localhost:4000/dev-toc) to view a top-level TOC of all the content in the site. This page is not available on https://docs.github.com. It was created for internal GitHub writers' use.
|
||||||
|
|
||||||
|
At the `/dev-toc` path, you'll see a list of available versions. Click a version, and a list of products will appear. Note that the TOC content is versioned. If you are viewing `free-pro-team@latest` and you click the `Enterprise Admin` product, it will be empty, because there isn't any Admin content available on that version.
|
||||||
|
|
||||||
## Site structure
|
## Site structure
|
||||||
|
|
||||||
This site was originally a Ruby on Rails web application. Some time later it was converted into a static site powered by [Jekyll](https://jekyllrb.com/). A few years after that it was migrated to [Nanoc](https://nanoc.ws/), another Ruby static site generator.
|
This site was originally a Ruby on Rails web application. Some time later it was converted into a static site powered by [Jekyll](https://jekyllrb.com/). A few years after that it was migrated to [Nanoc](https://nanoc.ws/), another Ruby static site generator.
|
||||||
|
|||||||
@@ -32,4 +32,4 @@ Use the following checklist to help make your files more translation-friendly. F
|
|||||||
| Avoid using ambiguous modal auxiliary verbs. | May, might, ought, could, used to, etc. | Be more clear when writing to avoid ambiguity. |
|
| Avoid using ambiguous modal auxiliary verbs. | May, might, ought, could, used to, etc. | Be more clear when writing to avoid ambiguity. |
|
||||||
| Avoid prepositional phrases. | "According to the repository log..." or "After trying many times..." | Write the sentence more directly. |
|
| Avoid prepositional phrases. | "According to the repository log..." or "After trying many times..." | Write the sentence more directly. |
|
||||||
| Avoid vague nouns and pronouns. | "Maintainers and contributors have access to files and comments. In the pull request they make changes to it." In this example it is not clear if the changes are being made to the file or to the comments. Another example “After saving the file in the folder, the user deleted it.” In this sentence it is not clear what was deleted (file or folder). | If a pronoun seems to refer to more than one antecedent, either reword the sentence to make the antecedent clear or replace the pronoun by a noun to eliminate ambiguity. |
|
| Avoid vague nouns and pronouns. | "Maintainers and contributors have access to files and comments. In the pull request they make changes to it." In this example it is not clear if the changes are being made to the file or to the comments. Another example “After saving the file in the folder, the user deleted it.” In this sentence it is not clear what was deleted (file or folder). | If a pronoun seems to refer to more than one antecedent, either reword the sentence to make the antecedent clear or replace the pronoun by a noun to eliminate ambiguity. |
|
||||||
| Keep inline links to a minimum. | Read [more about OAuth2.](https://developer.github.com/apps/building-integrations/setting-up-and-registering-oauth-apps/) Note that OAuth2 tokens can be [acquired programmatically](https://developer.github.com/v3/oauth_authorizations/#create-a-new-authorization), for applications that are not websites. | OAuth2 tokens can be acquired programmatically for applications that are not websites. For more information, see "[Setting up and registering OAuth Apps](https://developer.github.com/apps/building-integrations/setting-up-and-registering-oauth-apps/)" and "[Create a new authorization](https://developer.github.com/v3/oauth_authorizations/#create-a-new-authorization)." |
|
| Keep inline links to a minimum. | Read [more about OAuth2.](https://developer.github.com/apps/building-integrations/setting-up-and-registering-oauth-apps/) Note that OAuth2 tokens can be [acquired programmatically](https://docs.github.com/en/enterprise-server@2.22/rest/reference/oauth-authorizations/#create-a-new-authorization), for applications that are not websites. | OAuth2 tokens can be acquired programmatically for applications that are not websites. For more information, see "[Setting up and registering OAuth Apps](https://developer.github.com/apps/building-integrations/setting-up-and-registering-oauth-apps/)" and "[Create a new authorization](https://docs.github.com/en/enterprise-server@2.22/rest/reference/oauth-authorizations/#create-a-new-authorization)." |
|
||||||
|
|||||||