From d4692b208e5886675c5831709ff0ebd46b078274 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Thu, 16 Jun 2022 09:29:23 -0400 Subject: [PATCH 01/21] put the full plan name in the page titles (#28450) * put the full plan name in the page titles * fix tests --- middleware/render-page.js | 18 +++++++++++++++++- tests/rendering/page-titles.js | 16 ++++++++++++---- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/middleware/render-page.js b/middleware/render-page.js index 54580a791f..d78bc5122c 100644 --- a/middleware/render-page.js +++ b/middleware/render-page.js @@ -4,6 +4,7 @@ import patterns from '../lib/patterns.js' import getMiniTocItems from '../lib/get-mini-toc-items.js' import Page from '../lib/page.js' import statsd from '../lib/statsd.js' +import { allVersions } from '../lib/all-versions.js' import { isConnectionDropped } from './halt-on-dropped-connection.js' import { nextApp, nextHandleRequest } from './next.js' @@ -92,7 +93,22 @@ export default async function renderPage(req, res, next) { // add localized ` - GitHub Docs` suffix to tag (except for the homepage) if (!patterns.homepagePath.test(path)) { - page.fullTitle = page.fullTitle + ' - ' + context.site.data.ui.header.github_docs + if ( + req.context.currentVersion === 'free-pro-team@latest' || + !allVersions[req.context.currentVersion] + ) { + page.fullTitle += ' - ' + context.site.data.ui.header.github_docs + } else { + const { versionTitle } = allVersions[req.context.currentVersion] + page.fullTitle += ' - ' + // Some plans don't have the word "GitHub" in them. + // E.g. "Enterprise Server 3.5" + // In those cases manually prefix the word "GitHub" before it. + if (!versionTitle.includes('GitHub')) { + page.fullTitle += 'GitHub ' + } + page.fullTitle += versionTitle + ' Docs' + } } // Is the request for JSON debugging info? diff --git a/tests/rendering/page-titles.js b/tests/rendering/page-titles.js index 8126587dbe..ac87defb08 100644 --- a/tests/rendering/page-titles.js +++ b/tests/rendering/page-titles.js @@ -20,7 +20,9 @@ describe('page titles', () => { const $ = await getDOM( `/en/enterprise/${enterpriseServerReleases.latest}/user/github/authenticating-to-github/authorizing-oauth-apps` ) - expect($('title').text()).toBe('Authorizing OAuth Apps - GitHub Docs') + expect($('title').text()).toBe( + `Authorizing OAuth Apps - GitHub Enterprise Server ${enterpriseServerReleases.latest} Docs` + ) }) test('dotcom English map topic page', async () => { @@ -35,13 +37,19 @@ describe('page titles', () => { test('dynamically parses liquid in page titles (even on subsequent requests)', async () => { let $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}`) - expect($('title').text()).toBe('GitHub Enterprise Server Help Documentation - GitHub Docs') + expect($('title').text()).toBe( + `GitHub Enterprise Server Help Documentation - GitHub Enterprise Server ${enterpriseServerReleases.latest} Docs` + ) $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.oldestSupported}`) - expect($('title').text()).toBe('GitHub Enterprise Server Help Documentation - GitHub Docs') + expect($('title').text()).toBe( + `GitHub Enterprise Server Help Documentation - GitHub Enterprise Server ${enterpriseServerReleases.oldestSupported} Docs` + ) $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}`) - expect($('title').text()).toBe('GitHub Enterprise Server Help Documentation - GitHub Docs') + expect($('title').text()).toBe( + `GitHub Enterprise Server Help Documentation - GitHub Enterprise Server ${enterpriseServerReleases.latest} Docs` + ) }) // TODO enable this once translated content has synced with the versioning changes From 029291195c60af3fa4f68f983127c1bf88961a17 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson <mail@peterbe.com> Date: Thu, 16 Jun 2022 11:30:02 -0400 Subject: [PATCH 02/21] stop using supertest to unit test archived enterprise static assets (#28528) * stop using supertest to unit test archived enterprise static assets * feedbacked --- tests/helpers/caching-headers.js | 2 +- tests/unit/static-assets.js | 145 ++++++++++++++++++++++++------- 2 files changed, 113 insertions(+), 34 deletions(-) diff --git a/tests/helpers/caching-headers.js b/tests/helpers/caching-headers.js index 76a8b77bd6..6386227b93 100644 --- a/tests/helpers/caching-headers.js +++ b/tests/helpers/caching-headers.js @@ -3,7 +3,7 @@ import { SURROGATE_ENUMS } from '../../middleware/set-fastly-surrogate-key.js' export function checkCachingHeaders(res, defaultSurrogateKey = false, minMaxAge = 60 * 60) { expect(res.headers['set-cookie']).toBeUndefined() expect(res.headers['cache-control']).toContain('public') - const maxAgeSeconds = parseInt(res.header['cache-control'].match(/max-age=(\d+)/)[1], 10) + const maxAgeSeconds = parseInt(res.headers['cache-control'].match(/max-age=(\d+)/)[1], 10) // Let's not be too specific in the tests, just as long as it's testing // that it's a reasonably large number of seconds. expect(maxAgeSeconds).toBeGreaterThanOrEqual(minMaxAge) diff --git a/tests/unit/static-assets.js b/tests/unit/static-assets.js index a138d0429f..780ea38460 100644 --- a/tests/unit/static-assets.js +++ b/tests/unit/static-assets.js @@ -1,8 +1,51 @@ import nock from 'nock' import { expect, jest } from '@jest/globals' -import { get } from '../helpers/supertest.js' import { checkCachingHeaders } from '../helpers/caching-headers.js' +import { setDefaultFastlySurrogateKey } from '../../middleware/set-fastly-surrogate-key.js' +import archivedEnterpriseVersionsAssets from '../../middleware/archived-enterprise-versions-assets.js' + +function mockRequest(path, { headers }) { + const _headers = Object.fromEntries( + Object.entries(headers || {}).map(([key, value]) => [key.toLowerCase(), value]) + ) + return { + path, + url: path, + get: (header) => { + return _headers[header.toLowerCase()] + }, + set: (header, value) => { + _headers[header.toLowerCase()] = value + }, + + headers, + } +} +const mockResponse = () => { + const res = {} + res.status = 404 + res.statusCode = 404 + res.json = (payload) => { + res._json = payload + } + res.send = (body) => { + res.status = 200 + res.statusCode = 200 + res._send = body + } + res.headers = {} + res.set = (key, value) => { + if (typeof key === 'string') { + res.headers[key.toLowerCase()] = value + } else { + for (const [k, value] of Object.entries(key)) { + res.headers[k.toLowerCase()] = value + } + } + } + return res +} describe('archived enterprise static assets', () => { // Sometimes static assets are proxied. The URL for the static asset @@ -51,51 +94,87 @@ describe('archived enterprise static assets', () => { afterAll(() => nock.cleanAll()) it('should proxy if the static asset is prefixed', async () => { - const res = await get('/enterprise/2.21/_next/static/foo.css', { + const req = mockRequest('/enterprise/2.21/_next/static/foo.css', { headers: { Referrer: '/enterprise/2.21', }, }) + const res = mockResponse() + const next = () => { + throw new Error('did not expect this to ever happen') + } + setDefaultFastlySurrogateKey(req, res, () => {}) + await archivedEnterpriseVersionsAssets(req, res, next) expect(res.statusCode).toBe(200) checkCachingHeaders(res, true, 60) }) - it('should proxy if the Referrer header indicates so', async () => { - const res = await get('/_next/static/only-on-proxy.css', { - headers: { - Referrer: '/enterprise/2.21', - }, - }) - expect(res.statusCode).toBe(200) - checkCachingHeaders(res, true, 60) - }) - it('should proxy if the Referrer header indicates so', async () => { - const res = await get('/_next/static/only-on-2.3.css', { - headers: { - Referrer: '/en/enterprise-server@2.3/some/page', - }, - }) - expect(res.statusCode).toBe(200) - checkCachingHeaders(res, true, 60) - }) - it('might still 404 even with the right referrer', async () => { - const res = await get('/_next/static/fourofour.css', { - headers: { - Referrer: '/en/enterprise-server@2.3/some/page', - }, - }) - expect(res.statusCode).toBe(404) - checkCachingHeaders(res, true, 60) - }) - it('404 on the proxy but actually present here', async () => { - const res = await get('/assets/images/site/logo.png', { + it('should proxy if the Referrer header indicates so', async () => { + const req = mockRequest('/_next/static/only-on-proxy.css', { + headers: { + Referrer: '/enterprise/2.21', + }, + }) + const res = mockResponse() + const next = () => { + throw new Error('did not expect this to ever happen') + } + setDefaultFastlySurrogateKey(req, res, () => {}) + await archivedEnterpriseVersionsAssets(req, res, next) + expect(res.statusCode).toBe(200) + checkCachingHeaders(res, true, 60) + }) + + it('should proxy if the Referrer header indicates so', async () => { + const req = mockRequest('/_next/static/only-on-2.3.css', { headers: { Referrer: '/en/enterprise-server@2.3/some/page', }, }) - // It tried to go via the proxy, but it wasn't there, but then it - // tried "our disk" and it's eventually there. + const res = mockResponse() + const next = () => { + throw new Error('did not expect this to ever happen') + } + setDefaultFastlySurrogateKey(req, res, () => {}) + await archivedEnterpriseVersionsAssets(req, res, next) expect(res.statusCode).toBe(200) checkCachingHeaders(res, true, 60) }) + + it('might still 404 even with the right referrer', async () => { + const req = mockRequest('/_next/static/fourofour.css', { + headers: { + Referrer: '/en/enterprise-server@2.3/some/page', + }, + }) + const res = mockResponse() + let nexted = false + const next = () => { + nexted = true + } + setDefaultFastlySurrogateKey(req, res, next) + await archivedEnterpriseVersionsAssets(req, res, next) + expect(res.statusCode).toBe(404) + // It did't exit in that middleware but called next() to move on + // with any other middlewares. + expect(nexted).toBe(true) + }) + + it('404 on the proxy but actually present here', async () => { + const req = mockRequest('/assets/images/site/logo.png', { + headers: { + Referrer: '/en/enterprise-server@2.3/some/page', + }, + }) + const res = mockResponse() + let nexted = false + const next = () => { + nexted = true + } + setDefaultFastlySurrogateKey(req, res, () => {}) + await archivedEnterpriseVersionsAssets(req, res, next) + // It tried to go via the proxy, but it wasn't there, but then it + // tried "our disk" and it's eventually there. + expect(nexted).toBe(true) + }) }) From c3e8b23ddea911abb6e6f375e556c70294cb61d3 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson <mail@peterbe.com> Date: Thu, 16 Jun 2022 11:36:04 -0400 Subject: [PATCH 03/21] run 'Check all English links' on ubuntu-20.04-xl (#28566) * run 'Check all English links' on ubuntu-latest * that didn't work * ubuntu-20.04-xl * increase patience in waiting for server --- .github/workflows/check-all-english-links.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/check-all-english-links.yml b/.github/workflows/check-all-english-links.yml index baae8c5bd6..9697bd818e 100644 --- a/.github/workflows/check-all-english-links.yml +++ b/.github/workflows/check-all-english-links.yml @@ -17,7 +17,7 @@ jobs: check_all_english_links: name: Check all links if: github.repository == 'github/docs-internal' - runs-on: self-hosted + runs-on: ubuntu-20.04-xl env: GITHUB_TOKEN: ${{ secrets.DOCUBOT_READORG_REPO_WORKFLOW_SCOPES }} FIRST_RESPONDER_PROJECT: Docs content first responder @@ -25,6 +25,9 @@ jobs: REPORT_LABEL: broken link report REPORT_REPOSITORY: github/docs-content steps: + - name: Check that gh CLI is installed + run: gh --version + - name: Check out repo's default branch uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 - name: Setup Node @@ -60,8 +63,8 @@ jobs: DISABLE_REWRITE_ASSET_URLS: true run: | node server.mjs > /tmp/stdout.log 2> /tmp/stderr.log & - sleep 5 - curl --retry-connrefused --retry 4 -I http://localhost:4000/ + sleep 6 + curl --retry-connrefused --retry 5 -I http://localhost:4000/ - if: ${{ failure() }} name: Debug server outputs on errors From a39614fdcff0fde839b59792b99715c7df2e3340 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson <mail@peterbe.com> Date: Thu, 16 Jun 2022 11:56:41 -0400 Subject: [PATCH 04/21] remove supertest dependency (#28572) * remove supertest dependency * remove bad test --- lib/cookie-settings.js | 1 - middleware/handle-errors.js | 7 - package-lock.json | 266 ------------------------------------ package.json | 1 - tests/helpers/supertest.js | 65 --------- tests/rendering/server.js | 9 -- 6 files changed, 349 deletions(-) delete mode 100644 tests/helpers/supertest.js diff --git a/lib/cookie-settings.js b/lib/cookie-settings.js index 0169ee2957..cde9c5a0e8 100644 --- a/lib/cookie-settings.js +++ b/lib/cookie-settings.js @@ -2,7 +2,6 @@ export default { httpOnly: true, // can't access these cookies through browser JavaScript secure: !['test', 'development'].includes(process.env.NODE_ENV), // requires https protocol - // `secure` doesn't work with supertest at all // http://localhost fails on chrome with secure sameSite: 'lax', // most browsers are "lax" these days, diff --git a/middleware/handle-errors.js b/middleware/handle-errors.js index eaf2720a6d..be6846ba83 100644 --- a/middleware/handle-errors.js +++ b/middleware/handle-errors.js @@ -30,13 +30,6 @@ async function logException(error, req) { } export default async function handleError(error, req, res, next) { - // When you run tests that use things doing get() requests in - // our supertest handler, if something goes wrong anywhere in the app - // and its middlewares, you get a 500 but the error is never displayed - // anywhere. So this is why we log it additionally. - // Note, not using console.error() because it's arguably handled. - // Some tests might actually expect a 500 error. - const responseDone = res.headersSent || req.aborted if (req.path.startsWith('/assets') || req.path.startsWith('/_next/static')) { diff --git a/package-lock.json b/package-lock.json index 86e8b855b8..83ee046862 100644 --- a/package-lock.json +++ b/package-lock.json @@ -159,7 +159,6 @@ "sass": "^1.52.3", "start-server-and-test": "^1.14.0", "strip-ansi": "^7.0.1", - "supertest": "^6.2.3", "tough-cookie": "4.0.0", "typescript": "^4.7.3" }, @@ -5487,12 +5486,6 @@ "node": ">=0.10.0" } }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true - }, "node_modules/asn1.js": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", @@ -7710,12 +7703,6 @@ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -7860,12 +7847,6 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, - "node_modules/cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==", - "dev": true - }, "node_modules/core-js": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", @@ -8444,16 +8425,6 @@ "integrity": "sha512-VvlVYY+VDJe639yHs5PHISzdWTLL3Aw8rO4cvUtwvoxFd6FHbE4OpHHcde52M6096uYYazAmd4l0o5VuFRO2WA==", "optional": true }, - "node_modules/dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==", - "dev": true, - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, "node_modules/diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -10203,12 +10174,6 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, "node_modules/fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -10528,33 +10493,6 @@ "node": ">=0.4.x" } }, - "node_modules/formidable": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz", - "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==", - "dev": true, - "dependencies": { - "dezalgo": "1.0.3", - "hexoid": "1.0.0", - "once": "1.4.0", - "qs": "6.9.3" - }, - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" - } - }, - "node_modules/formidable/node_modules/qs": { - "version": "6.9.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", - "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==", - "dev": true, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -11448,15 +11386,6 @@ "node": ">=12.0.0" } }, - "node_modules/hexoid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", - "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/highlight.js": { "version": "11.5.1", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.5.1.tgz", @@ -15558,18 +15487,6 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, - "node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -20819,72 +20736,6 @@ "stylis": "^3.5.0" } }, - "node_modules/superagent": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-7.1.6.tgz", - "integrity": "sha512-gZkVCQR1gy/oUXr+kxJMLDjla434KmSOKbx5iGD30Ql+AkJQ/YlPKECJy2nhqOsHLjGHzoDTXNSjhnvWhzKk7g==", - "dev": true, - "dependencies": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.3", - "debug": "^4.3.4", - "fast-safe-stringify": "^2.1.1", - "form-data": "^4.0.0", - "formidable": "^2.0.1", - "methods": "^1.1.2", - "mime": "2.6.0", - "qs": "^6.10.3", - "readable-stream": "^3.6.0", - "semver": "^7.3.7" - }, - "engines": { - "node": ">=6.4.0 <13 || >=14" - } - }, - "node_modules/superagent/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/superagent/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/supertest": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.2.3.tgz", - "integrity": "sha512-3GSdMYTMItzsSYjnIcljxMVZKPW1J9kYHZY+7yLfD0wpPwww97GeImZC1oOk0S5+wYl2niJwuFusBJqwLqYM3g==", - "dev": true, - "dependencies": { - "methods": "^1.1.2", - "superagent": "^7.1.3" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -27058,12 +26909,6 @@ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true - }, "asn1.js": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", @@ -28891,12 +28736,6 @@ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -29009,12 +28848,6 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, - "cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==", - "dev": true - }, "core-js": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", @@ -29464,16 +29297,6 @@ "integrity": "sha512-VvlVYY+VDJe639yHs5PHISzdWTLL3Aw8rO4cvUtwvoxFd6FHbE4OpHHcde52M6096uYYazAmd4l0o5VuFRO2WA==", "optional": true }, - "dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==", - "dev": true, - "requires": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, "diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -30803,12 +30626,6 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, "fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -31051,26 +30868,6 @@ "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=" }, - "formidable": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz", - "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==", - "dev": true, - "requires": { - "dezalgo": "1.0.3", - "hexoid": "1.0.0", - "once": "1.4.0", - "qs": "6.9.3" - }, - "dependencies": { - "qs": { - "version": "6.9.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", - "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==", - "dev": true - } - } - }, "forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -31753,12 +31550,6 @@ "resolved": "https://registry.npmjs.org/helmet/-/helmet-5.1.0.tgz", "integrity": "sha512-klsunXs8rgNSZoaUrNeuCiWUxyc+wzucnEnFejUg3/A+CaF589k9qepLZZ1Jehnzig7YbD4hEuscGXuBY3fq+g==" }, - "hexoid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", - "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", - "dev": true - }, "highlight.js": { "version": "11.5.1", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.5.1.tgz", @@ -34710,12 +34501,6 @@ } } }, - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true - }, "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -38763,57 +38548,6 @@ "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==", "requires": {} }, - "superagent": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-7.1.6.tgz", - "integrity": "sha512-gZkVCQR1gy/oUXr+kxJMLDjla434KmSOKbx5iGD30Ql+AkJQ/YlPKECJy2nhqOsHLjGHzoDTXNSjhnvWhzKk7g==", - "dev": true, - "requires": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.3", - "debug": "^4.3.4", - "fast-safe-stringify": "^2.1.1", - "form-data": "^4.0.0", - "formidable": "^2.0.1", - "methods": "^1.1.2", - "mime": "2.6.0", - "qs": "^6.10.3", - "readable-stream": "^3.6.0", - "semver": "^7.3.7" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "supertest": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.2.3.tgz", - "integrity": "sha512-3GSdMYTMItzsSYjnIcljxMVZKPW1J9kYHZY+7yLfD0wpPwww97GeImZC1oOk0S5+wYl2niJwuFusBJqwLqYM3g==", - "dev": true, - "requires": { - "methods": "^1.1.2", - "superagent": "^7.1.3" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", diff --git a/package.json b/package.json index 6093f94de6..8538269ef3 100644 --- a/package.json +++ b/package.json @@ -161,7 +161,6 @@ "sass": "^1.52.3", "start-server-and-test": "^1.14.0", "strip-ansi": "^7.0.1", - "supertest": "^6.2.3", "tough-cookie": "4.0.0", "typescript": "^4.7.3" }, diff --git a/tests/helpers/supertest.js b/tests/helpers/supertest.js deleted file mode 100644 index 7623584741..0000000000 --- a/tests/helpers/supertest.js +++ /dev/null @@ -1,65 +0,0 @@ -import cheerio from 'cheerio' -import supertest from 'supertest' -import createApp from '../../lib/app.js' -// This file makes an object with utility functions for re-use in -// multiple test files - -const app = createApp() - -const requester = supertest(app) -const request = (method, route) => requester[method](route) - -export async function get( - route, - opts = { followRedirects: false, followAllRedirects: false, headers: {} } -) { - let res = opts.headers - ? await request('get', route).set(opts.headers) - : await request('get', route) - // follow all redirects, or just follow one - if (opts.followAllRedirects && [301, 302].includes(res.status)) { - res = await get(res.headers.location, opts) - } else if (opts.followRedirects && [301, 302].includes(res.status)) { - res = await get(res.headers.location) - } - - return res -} - -export async function head(route, opts = { followRedirects: false }) { - const res = await request('head', route).redirects(opts.followRedirects ? 10 : 0) - return res -} - -export function post(route) { - return request('post', route) -} - -export async function getDOM( - route, - { headers, allow500s, allow404 } = { headers: undefined, allow500s: false, allow404: false } -) { - const res = await get(route, { followRedirects: true, headers }) - if (!allow500s && res.status >= 500) { - throw new Error(`Server error (${res.status}) on ${route}`) - } - if (!allow404 && res.status === 404) { - throw new Error(`Page not found on ${route}`) - } - const $ = cheerio.load(res.text || '', { xmlMode: true }) - $.res = Object.assign({}, res) - return $ -} - -// For use with the ?json query param -// e.g. await getJSON('/en?json=breadcrumbs') -export async function getJSON(route) { - const res = await get(route, { followRedirects: true }) - if (res.status >= 500) { - throw new Error(`Server error (${res.status}) on ${route}`) - } - if (res.status >= 400) { - console.warn(`${res.status} on ${route} and the response might not be JSON`) - } - return JSON.parse(res.text) -} diff --git a/tests/rendering/server.js b/tests/rendering/server.js index 3a82094bcc..a628fa4c0e 100644 --- a/tests/rendering/server.js +++ b/tests/rendering/server.js @@ -588,15 +588,6 @@ describe('server', () => { }) describeViaActionsOnly('Early Access articles', () => { - // Test skipped because this test file is no longer able to - // change the `NODE_ENV` between tests because it depends on - // HTTP and not raw supertest. - // Idea: Move this one test somewhere into tests/unit/ - test.skip('are not listed at /early-access in production', async () => { - const res = await get('/early-access', { followRedirects: true }) - expect(res.statusCode).toBe(404) - }) - test('have noindex meta tags', async () => { const allPages = await loadPages() // This is what the earlyAccessContext middleware does to get a From 9e242eacb782f1c7336861967b423190dde84205 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson <mail@peterbe.com> Date: Thu, 16 Jun 2022 12:09:27 -0400 Subject: [PATCH 05/21] run jest tests on ubuntu-20.04-xl (#28568) * run jest tests on ubuntu-20.04-xl * cpu debug info * compare with unbuntu-latest * tidy back up --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7bd2619fa3..df10beb410 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,9 +23,9 @@ concurrency: jobs: test: - # Run on self-hosted if the private repo or ubuntu-latest if the public repo + # Run on ubuntu-20.04-xl if the private repo or ubuntu-latest if the public repo # See pull # 17442 in the private repo for context - runs-on: ${{ fromJSON('["ubuntu-latest", "self-hosted"]')[github.repository == 'github/docs-internal'] }} + runs-on: ${{ fromJSON('["ubuntu-latest", "ubuntu-20.04-xl"]')[github.repository == 'github/docs-internal'] }} timeout-minutes: 60 strategy: fail-fast: false From 492132f48f2a14b33c39012a9527a9a60b02e56e Mon Sep 17 00:00:00 2001 From: docubot <67483024+docubot@users.noreply.github.com> Date: Thu, 16 Jun 2022 13:09:14 -0400 Subject: [PATCH 06/21] New translation batch for ja (#28542) * Add crowdin translations * Run script/i18n/homogenize-frontmatter.js * Run script/i18n/lint-translation-files.js --check rendering * run script/i18n/reset-files-with-broken-liquid-tags.js --language=ja * run script/i18n/reset-known-broken-translation-files.js * Check in ja CSV report Co-authored-by: Grace Park <gracepark@github.com> --- .../saml-configuration-reference.md | 2 +- .../about-billing-for-codespaces.md | 1 - .../viewing-and-updating-dependabot-alerts.md | 14 ++--- .../about-dependency-review.md | 12 ++++- .../configuring-dependency-review.md | 53 +++++++++++++++++++ .../about-codespaces-prebuilds.md | 8 ++- .../configuring-prebuilds.md | 28 ++++++---- .../prebuilding-your-codespaces/index.md | 3 +- .../managing-prebuilds.md | 2 - .../testing-dev-container-changes.md | 2 - .../troubleshooting-prebuilds.md | 2 - .../saving-repositories-with-stars.md | 10 ++++ .../quickstart/contributing-to-projects.md | 2 +- .../filtering-files-in-a-pull-request.md | 5 +- ...ng-dependency-changes-in-a-pull-request.md | 7 ++- .../working-with-forks/syncing-a-fork.md | 12 ++--- .../about-commits.md | 22 ++++++++ .../ja-JP/content/rest/overview/libraries.md | 6 --- .../permissions-required-for-github-apps.md | 2 +- .../ja-JP/data/features/commit-tree-view.yml | 8 +++ ...dependency-review-action-configuration.yml | 7 +++ .../release-notes/enterprise-server/3-1/0.yml | 5 ++ .../enterprise-server/3-1/22.yml | 20 +++++++ .../release-notes/enterprise-server/3-2/0.yml | 5 ++ .../enterprise-server/3-2/14.yml | 23 ++++++++ .../release-notes/enterprise-server/3-3/0.yml | 6 +++ .../release-notes/enterprise-server/3-3/9.yml | 26 +++++++++ .../release-notes/enterprise-server/3-4/0.yml | 6 +++ .../release-notes/enterprise-server/3-4/4.yml | 34 ++++++++++++ .../release-notes/enterprise-server/3-5/0.yml | 4 +- .../release-notes/enterprise-server/3-5/1.yml | 32 +++++++++++ .../about-billing-for-codespaces.md | 1 - .../codespaces/beta-functionality-limited.md | 5 -- .../codespaces/billing-for-prebuilds.md | 6 +-- .../codespaces/prebuilds-beta-note.md | 5 -- .../reusables/codespaces/unsupported-repos.md | 1 - .../dependency-review-action-beta-note.md | 2 +- .../dependency-review-action-overview.md | 3 ++ ...ns-packages-report-download-org-account.md | 2 +- translations/ja-JP/data/variables/product.yml | 1 + translations/log/ja-resets.csv | 5 +- 41 files changed, 326 insertions(+), 74 deletions(-) create mode 100644 translations/ja-JP/data/features/commit-tree-view.yml create mode 100644 translations/ja-JP/data/features/dependency-review-action-configuration.yml create mode 100644 translations/ja-JP/data/release-notes/enterprise-server/3-1/22.yml create mode 100644 translations/ja-JP/data/release-notes/enterprise-server/3-2/14.yml create mode 100644 translations/ja-JP/data/release-notes/enterprise-server/3-3/9.yml create mode 100644 translations/ja-JP/data/release-notes/enterprise-server/3-4/4.yml create mode 100644 translations/ja-JP/data/release-notes/enterprise-server/3-5/1.yml delete mode 100644 translations/ja-JP/data/reusables/codespaces/about-billing-for-codespaces.md delete mode 100644 translations/ja-JP/data/reusables/codespaces/beta-functionality-limited.md delete mode 100644 translations/ja-JP/data/reusables/codespaces/prebuilds-beta-note.md delete mode 100644 translations/ja-JP/data/reusables/codespaces/unsupported-repos.md create mode 100644 translations/ja-JP/data/reusables/dependency-review/dependency-review-action-overview.md diff --git a/translations/ja-JP/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference.md b/translations/ja-JP/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference.md index fc1b11c225..9ad9f4cbd2 100644 --- a/translations/ja-JP/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference.md +++ b/translations/ja-JP/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference.md @@ -80,7 +80,7 @@ The following SAML attributes are available for {% data variables.product.produc | `NameID` | Yes | A persistent user identifier. Any persistent name identifier format may be used. {% ifversion ghec %}If you use an enterprise with {% data variables.product.prodname_emus %}, {% endif %}{% data variables.product.product_name %} will normalize the `NameID` element to use as a username unless one of the alternative assertions is provided. For more information, see "[Username considerations for external authentication](/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication)." | | `SessionNotOnOrAfter` | No | The date that {% data variables.product.product_name %} invalidates the associated session. After invalidation, the person must authenticate once again to access {% ifversion ghec or ghae %}your enterprise's resources{% elsif ghes %}{% data variables.product.product_location %}{% endif %}. For more information, see "[Session duration and timeout](#session-duration-and-timeout)." | {%- ifversion ghes or ghae %} -| `administrator` | No | When the value is `true`, {% data variables.product.product_name %} will automatically promote the user to be a {% ifversion ghes %}site administrator{% elsif ghae %}enterprise owner{% endif %}. Any other value or a non-existent value will demote the account and remove administrative access. | +| `administrator` | No | When the value is `true`, {% data variables.product.product_name %} will automatically promote the user to be a {% ifversion ghes %}site administrator{% elsif ghae %}enterprise owner{% endif %}. Setting this attribute to anything but `true` will result in demotion, as long as the value is not blank. Omitting this attribute or leaving the value blank will not change the role of the user. | | `username` | No | The username for {% data variables.product.product_location %}. | {%- endif %} | `full_name` | No | {% ifversion ghec %}If you configure SAML SSO for an enterprise and you use {% data variables.product.prodname_emus %}, the{% else %}The{% endif %} full name of the user to display on the user's profile page. | diff --git a/translations/ja-JP/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md b/translations/ja-JP/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md index 35c7b2ce8a..681a686e29 100644 --- a/translations/ja-JP/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md +++ b/translations/ja-JP/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md @@ -42,7 +42,6 @@ Microsoft Enterprise Agreement を通じて {% data variables.product.prodname_e ### {% data variables.product.prodname_codespaces %}プレビルドに対する支払い -{% data reusables.codespaces.prebuilds-beta-note %} {% data reusables.codespaces.billing-for-prebuilds %} diff --git a/translations/ja-JP/content/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts.md b/translations/ja-JP/content/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts.md index 1d82792621..bfabb9ce08 100644 --- a/translations/ja-JP/content/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts.md +++ b/translations/ja-JP/content/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts.md @@ -26,7 +26,7 @@ topics: {% data reusables.dependabot.beta-security-and-version-updates %} {% data reusables.dependabot.enterprise-enable-dependabot %} -リポジトリの{% data variables.product.prodname_dependabot_alerts %}タブには、オープン及びクローズされたすべての{% data variables.product.prodname_dependabot_alerts %}{% ifversion fpt or ghec or ghes > 3.2 %}及び対応する{% data variables.product.prodname_dependabot_security_updates %}{% endif %}がリストされます。 {% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5638 %}アラートはパッケージ、エコシステム、マニフェストでフィルタリングできます。 You can {% endif %} sort the list of alerts, and you can click into specific alerts for more details. {% ifversion dependabot-bulk-alerts %}You can also dismiss or reopen alerts, either one by one or by selecting multiple alerts at once.{% else %}You can also dismiss or reopen alerts. {% endif %} 詳しい情報については、「[{% data variables.product.prodname_dependabot_alerts %} について](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)」を参照してください。 +リポジトリの{% data variables.product.prodname_dependabot_alerts %}タブには、オープン及びクローズされたすべての{% data variables.product.prodname_dependabot_alerts %}{% ifversion fpt or ghec or ghes > 3.2 %}及び対応する{% data variables.product.prodname_dependabot_security_updates %}{% endif %}がリストされます。 {% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5638 %}アラートはパッケージ、エコシステム、マニフェストでフィルタリングできます。 また、{% endif %}アラートのリストはソートでき、特定のアラートをクリックして詳細を見ていくことができます。 {% ifversion dependabot-bulk-alerts %}アラートを1つずつ、あるいは複数のアラートをまとめて選択して、却下したり再オープンしたりできます。{% else %}アラートを却下したり再オープンしたりもできます。 {% endif %} 詳しい情報については、「[{% data variables.product.prodname_dependabot_alerts %} について](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)」を参照してください。 {% ifversion fpt or ghec or ghes > 3.2 %} {% data variables.product.prodname_dependabot_alerts %} と依存関係グラフを使用するリポジトリの自動セキュリティ更新を有効にすることができます。 詳しい情報については、「[{% data variables.product.prodname_dependabot_security_updates %} について](/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-dependabot-security-updates)」を参照してください。 @@ -68,19 +68,19 @@ topics: !["Vulnerable call"ラベルの付いたアラートのアラート詳細ページを表示しているスクリーンショット](/assets/images/help/repository/review-calls-to-vulnerable-functions.png) -For more information, see "[Reviewing and fixing alerts](#reviewing-and-fixing-alerts)" below. +詳しい情報については、下の「[アラートのレビューと修正](#reviewing-and-fixing-alerts)」を参照してください。 {% endif %} -## Viewing {% data variables.product.prodname_dependabot_alerts %} +## {% data variables.product.prodname_dependabot_alerts %}の表示 {% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5638 %} {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-security %} {% data reusables.repositories.sidebar-dependabot-alerts %} -1. あるいは、アラートをフィルタリングするには、**Repository(リポジトリ)**、**Package(パッケージ)**、**Ecosystem(エコシステム)**、**Manifest(マニフェスト)**ドロップダウンメニューを選択し、続いて適用したいフィルタをクリックしてください。 検索バーにフィルタを入力することもできます。 たとえば`ecosystem:npm`あるいは`has:patch`といったようにです。 To sort alerts, select the **Sort** dropdown menu then click the option that you would like to sort by.{% ifversion dependabot-bulk-alerts %} ![Screenshot of the filter and sort menus in the {% data variables.product.prodname_dependabot_alerts %} tab](/assets/images/help/graphs/dependabot-alerts-filters-checkbox.png){% else %} +1. あるいは、アラートをフィルタリングするには、**Repository(リポジトリ)**、**Package(パッケージ)**、**Ecosystem(エコシステム)**、**Manifest(マニフェスト)**ドロップダウンメニューを選択し、続いて適用したいフィルタをクリックしてください。 検索バーにフィルタを入力することもできます。 たとえば`ecosystem:npm`あるいは`has:patch`といったようにです。 アラートをソートするには、**Sort(ソート)**ドロップダウンメニューを選択し、ソートの基準の選択肢をクリックしてください。{% ifversion dependabot-bulk-alerts %} ![Screenshot of the filter and sort menus in the {% data variables.product.prodname_dependabot_alerts %} tab](/assets/images/help/graphs/dependabot-alerts-filters-checkbox.png){% else %} ![Screenshot of the filter and sort menus in the {% data variables.product.prodname_dependabot_alerts %} tab](/assets/images/enterprise/3.5/dependabot/dependabot-alerts-filters.png){% endif %} -2. Click the alert that you would like to view.{% ifversion dependabot-bulk-alerts %} ![Alert selected in list of alerts](/assets/images/help/graphs/click-alert-in-alerts-list-checkbox.png){% else %} +2. 表示したいアラートをクリックしてください。{% ifversion dependabot-bulk-alerts %} ![Alert selected in list of alerts](/assets/images/help/graphs/click-alert-in-alerts-list-checkbox.png){% else %} ![Alert selected in list of alerts](/assets/images/enterprise/3.5/dependabot/click-alert-in-alerts-list-ungrouped.png){% endif %} {% else %} @@ -90,7 +90,7 @@ For more information, see "[Reviewing and fixing alerts](#reviewing-and-fixing-a 1. 表示したいアラートをクリックします。 ![アラートリストで選択されたアラート](/assets/images/help/graphs/click-alert-in-alerts-list.png) {% endif %} -## Reviewing and fixing alerts +## アラートのレビューと修正 すべての依存関係がセキュリティの弱点を確実に持たないようにすることが重要です。 {% data variables.product.prodname_dependabot %}が脆弱性を依存関係に見つけた場合、プロジェクトの露出のレベルを評価し、アプリケーションをセキュアにするための修復ステップを決定しなければなりません。 @@ -106,7 +106,7 @@ For more information, see "[Reviewing and fixing alerts](#reviewing-and-fixing-a ### 脆弱性のある依存関係の修復 -1. アラートの詳細を表示させます。 For more information, see "[Viewing {% data variables.product.prodname_dependabot_alerts %}](#viewing-dependabot-alerts)" (above). +1. アラートの詳細を表示させます。 詳しい情報については上の「[{% data variables.product.prodname_dependabot_alerts %}の表示](#viewing-dependabot-alerts)」を参照してください。 {% ifversion fpt or ghec or ghes > 3.2 %} 1. {% data variables.product.prodname_dependabot_security_updates %}を有効にしているなら、その依存関係を修復するPull Requestへのリンクがあるかもしれません。 あるいは、アラートの詳細ページの上部にある**Create {% data variables.product.prodname_dependabot %} security update**をクリックして、Pull Requestを作成することもできます。 ![{% data variables.product.prodname_dependabot %} セキュリティアップデートボタンを作成](/assets/images/help/repository/create-dependabot-security-update-button-ungrouped.png) 1. あるいは、{% data variables.product.prodname_dependabot_security_updates %}を使っていないなら、ページにある情報を使ってアップグレードすべき依存関係のバージョンを判断し、セキュアなバージョンへ依存関係を更新するためのPull Requestを作成できます。 diff --git a/translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md b/translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md index f58cc959d4..11335e5ea5 100644 --- a/translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md +++ b/translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md @@ -50,11 +50,19 @@ redirect_from: {% data reusables.dependency-review.dependency-review-action-beta-note %} -Dependency Review GitHub Actionをリポジトリで使って、Pull Requestに対する依存関係レビューを施行できます。 このアクションは、Pull Request中のパッケージバージョンの変更によってもたらされる依存関係の脆弱なバージョンをスキャンし、関連するセキュリティ脆弱性について警告してくれます。 これによって、Pull Requestで何が変更されるかが見えやすくなり、リポジトリに脆弱性が追加されることを避けやすくなります。 詳しい情報については[`dependency-review-action`](https://github.com/actions/dependency-review-action)を参照してください。 +The action is available for all {% ifversion fpt or ghec %}public repositories, as well as private {% endif %}repositories that have {% data variables.product.prodname_GH_advanced_security %} enabled. + +You can use the {% data variables.product.prodname_dependency_review_action %} in your repository to enforce dependency reviews on your pull requests. このアクションは、Pull Request中のパッケージバージョンの変更によってもたらされる依存関係の脆弱なバージョンをスキャンし、関連するセキュリティ脆弱性について警告してくれます。 これによって、Pull Requestで何が変更されるかが見えやすくなり、リポジトリに脆弱性が追加されることを避けやすくなります。 詳しい情報については[`dependency-review-action`](https://github.com/actions/dependency-review-action)を参照してください。 ![依存関係レビューアクションの例](/assets/images/help/graphs/dependency-review-action.png) -Dependency Review GitHub Actionのチェックは、脆弱性のあるパッケージを見つけると失敗しますが、リポジトリのオーナーがマージの前にチェックをパスすることを必須としている場合にのみ、そのPull Requestがマージされるのをブロックします。 詳しい情報については、「[保護されたブランチについて](/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#require-status-checks-before-merging)」を参照してください。 +By default, the {% data variables.product.prodname_dependency_review_action %} check will fail if it discovers any vulnerable packages. A failed check blocks a pull request from being merged when the repository owner requires the dependency review check to pass. 詳しい情報については、「[保護されたブランチについて](/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#require-status-checks-before-merging)」を参照してください。 このアクションはDependency Review REST APIを使ってベースコミットとheadコミット間の依存関係の変化のdiffを取得します。 Dependency Review API を使って、リポジトリでの任意の2つのコミット間の脆弱性のデータを含む依存関係の変化のdiffを取ることができます。 詳しい情報については「[依存関係レビュー](/rest/reference/dependency-graph#dependency-review)」を参照してください。 + +{% ifversion dependency-review-action-configuration %} +You can configure the {% data variables.product.prodname_dependency_review_action %} to better suit your needs. For example, you can specify the severity level that will make the action fail, or set an allow or deny list for licenses to scan. For more information, see "[Configuring dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review#configuring-the-dependency-review-github-action)." {% endif %} + +{% endif %} + diff --git a/translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md b/translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md index e9ea74821d..e033c6895f 100644 --- a/translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md +++ b/translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md @@ -47,3 +47,56 @@ topics: 1. "Configure security and analysis features(セキュリティと分析機能の設定)"の下で、依存関係グラフが有効化されているかを確認してください。 1. 依存関係グラフが有効化されているなら、"{% data variables.product.prodname_GH_advanced_security %}"の隣の**Enable(有効化)**をクリックして、依存関係レビューを含む{% data variables.product.prodname_advanced_security %}を有効化してください。 Enterpriseが利用できる{% data variables.product.prodname_advanced_security %}のライセンスを持っていない場合、有効化のボタンは無効になっています。{% ifversion ghes < 3.3 %}![Screenshot of "Code security and analysis" features"](/assets/images/enterprise/3.2/repository/code-security-and-analysis-enable-ghas-3.2.png){% endif %}{% ifversion ghes > 3.2 %}![Screenshot of "Code security and analysis" features"](/assets/images/enterprise/3.4/repository/code-security-and-analysis-enable-ghas-3.4.png){% endif %} {% endif %} + +{% ifversion dependency-review-action-configuration %} +## Configuring the {% data variables.product.prodname_dependency_review_action %} + +{% data reusables.dependency-review.dependency-review-action-beta-note %} +{% data reusables.dependency-review.dependency-review-action-overview %} + +The following configuration options are available. + +| オプション | 必須 | 使い方 | +| ------------------ | -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `fail-on-severity` | 任意 | Defines the threshold for level of severity (`low`, `moderate`, `high`, `critical`).</br>The action will fail on any pull requests that introduce vulnerabilities of the specified severity level or higher. | +| `allow-licenses` | 任意 | Contains a list of allowed licenses. You can find the possible values for this parameter in the [Licenses](/rest/licenses) page of the API documentation.</br>The action will fail on pull requests that introduce dependencies with licenses that do not match the list. | +| `deny-licenses` | 任意 | Contains a list of prohibited licenses. You can find the possible values for this parameter in the [Licenses](/rest/licenses) page of the API documentation.</br>The action will fail on pull requests that introduce dependencies with licenses that match the list. | + +{% tip %} + +**Tip:** The `allow-licenses` and `deny-licenses` options are mutually exclusive. + +{% endtip %} + +This {% data variables.product.prodname_dependency_review_action %} example file illustrates how you can use these configuration options. + +```yaml{:copy} +name: 'Dependency Review' +on: [pull_request] + +permissions: + contents: read + +jobs: + dependency-review: + runs-on: ubuntu-latest + steps: + - name: 'Checkout Repository' + uses: {% data reusables.actions.action-checkout %} + - name: Dependency Review + uses: actions/dependency-review-action@v2 + with: + # Possible values: "critical", "high", "moderate", "low" + fail-on-severity: critical + # You can only can only include one of these two options: `allow-licenses` and `deny-licences` + # ([String]). Only allow these licenses (optional) + # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses + # allow-licenses: GPL-3.0, BSD-3-Clause, MIT + + # ([String]). Block the pull request on these licenses (optional) + # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses + # deny-licenses: LGPL-2.0, BSD-2-Clause +``` + +For further details about the configuration options, see [`dependency-review-action`](https://github.com/actions/dependency-review-action#readme). +{% endif %} diff --git a/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/about-codespaces-prebuilds.md b/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/about-codespaces-prebuilds.md index 7fb4bcd9a2..30b9256840 100644 --- a/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/about-codespaces-prebuilds.md +++ b/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/about-codespaces-prebuilds.md @@ -1,7 +1,7 @@ --- title: About Codespaces prebuilds shortTitle: About prebuilds -intro: Codespaces prebuilds help to speed up the creation of new codespaces. +intro: Codespaces prebuilds help to speed up the creation of new codespaces for large or complex repositories. versions: fpt: '*' ghec: '*' @@ -10,15 +10,13 @@ topics: product: '{% data reusables.gated-features.codespaces %}' --- -{% data reusables.codespaces.prebuilds-beta-note %} - ## 概要 -Prebuilding your codespaces allows you to be more productive and access your codespace faster, regardless of the size and complexity of your project. This is because any source code, editor extensions, project dependencies, commands, and configurations have already been downloaded, installed, and applied before you create a codespace for your project. Think of a prebuild as a "ready-to-go" template for a codespace. +Prebuilding your codespaces allows you to be more productive and access your codespace faster, particularly if your repository is large or complex and new codespaces currently take more than 2 minutes to start. This is because any source code, editor extensions, project dependencies, commands, and configurations have already been downloaded, installed, and applied before you create a codespace for your project. Think of a prebuild as a "ready-to-go" template for a codespace. By default, whenever you push changes to your repository, {% data variables.product.prodname_codespaces %} uses {% data variables.product.prodname_actions %} to automatically update your prebuilds. -When prebuilds are available for a particular branch of a repository, and for your region, you'll see the "{% octicon "zap" aria-label="The zap icon" %} Prebuild ready" label in the list of machine type options when you create a codespace. 詳しい情報については、「[codespace を作成する](/codespaces/developing-in-codespaces/creating-a-codespace#creating-a-codespace)」を参照してください。 +When prebuilds are available for a particular branch of a repository, and for your region, you'll see the "{% octicon "zap" aria-label="The zap icon" %} Prebuild ready" label in the list of machine type options when you create a codespace. If a prebuild is still being created, you will see the "{% octicon "history" aria-label="The history icon" %} Prebuild in progress" label. 詳しい情報については、「[codespace を作成する](/codespaces/developing-in-codespaces/creating-a-codespace#creating-a-codespace)」を参照してください。 ![The dialog box for choosing a machine type](/assets/images/help/codespaces/choose-custom-machine-type.png) diff --git a/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md b/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md index cda5e1ada5..1afb583732 100644 --- a/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md +++ b/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md @@ -13,8 +13,6 @@ product: '{% data reusables.gated-features.codespaces %}' permissions: People with admin access to a repository can configure prebuilds for the repository. --- -{% data reusables.codespaces.prebuilds-beta-note %} - You can set up a prebuild configuration for a specific branch of your repository. Any branch created from a prebuild-enabled base branch will typically also get assigned a prebuild during codespace creation. This is true if the dev container on the branch is the same as on the base branch. This is because the majority of the prebuild configuration for branches with the same dev container configuration are identical, so developers can benefit from faster codespace creation times on those branches also. For more information, see "[Introduction to dev containers](/codespaces/setting-up-your-project-for-codespaces/introduction-to-dev-containers)." @@ -38,7 +36,7 @@ Before you can configure prebuilds for your project the following must be true: ![The 'Set up prebuilds' button](/assets/images/help/codespaces/prebuilds-set-up.png) -1. Choose the branch for which you want to set up a prebuild. +1. Choose the branch for which you want to set up a prebuild. ![The Branch drop-down menu](/assets/images/help/codespaces/prebuilds-choose-branch.png) @@ -48,7 +46,15 @@ Before you can configure prebuilds for your project the following must be true: {% endnote %} -1. Choose the regions in which you want to set up a prebuild. Developers must be located in a region you select to be able to create codespaces from a prebuild. Alternatively, select **All regions**. +1. Choose how you want to automatically trigger updates of the prebuild template. + + * **Every push** (the default setting) - With this setting, prebuild configurations will be updated on every push made to the given branch. This will ensure that codespaces generated from a prebuild template always contain the latest codespace configuration, including any recently added or updated dependencies. + * **On configuration change** - With this setting, prebuild configurations will be updated every time associated configuration files for a given repo and branch are updated. This ensures that changes to the dev container configuration files for the repository are used when a codespace is generated from a prebuild template. The Actions workflow that updates the prebuild template will run less often, so this option will use fewer Actions minutes. However, this option will not guarantee that codespaces always include recently added or updated dependencies, so these may have to be added or updated manually after a codespace has been created. + * **Scheduled** - With this setting, you can have your prebuild configurations update on a custom schedule that's defined by you. This can reduce consumption of Actions minutes, however, with this option, codespaces may be created that do not use the latest dev container configuration changes. + + ![The prebuild trigger options](/assets/images/help/codespaces/prebuilds-triggers.png) + +1. Select **Reduce prebuild available to only specific regions** to limit access to your prebuilt image, then select which regions you want it available in. Developers can only create codespaces from a prebuild if they are located in a region you select. By default, your prebuilt image is available to all regions where codespaces is available and storage costs apply for each region. ![The region selection options](/assets/images/help/codespaces/prebuilds-regions.png) @@ -60,13 +66,17 @@ Before you can configure prebuilds for your project the following must be true: {% endnote %} -1. Choose how you want to automatically trigger updates of the prebuild template. +1. Set the number of prebuild template versions to be retained. You can input any number between 1 and 5. The default number of saved versions is 2, which means that only the latest template version and the previous version are saved. - * **Every push** (the default setting) - With this setting, prebuild configurations will be updated on every push made to the given branch. This will ensure that codespaces generated from a prebuild template always contain the latest codespace configuration, including any recently added or updated dependencies. - * **On configuration change** - With this setting, prebuild configurations will be updated every time associated configuration files for a given repo and branch are updated. This ensures that changes to the dev container configuration files for the repository are used when a codespace is generated from a prebuild template. The Actions workflow that updates the prebuild template will run less often, so this option will use fewer Actions minutes. However, this option will not guarantee that codespaces always include recently added or updated dependencies, so these may have to be added or updated manually after a codespace has been created. - * **Scheduled** - With this setting, you can have your prebuild configurations update on a custom schedule that's defined by you. This can reduce consumption of Actions minutes, and reduce the amount of time during which prebuilds are unavailable because they are being updated. However, with this option, codespaces may be created that do not use the latest dev container configuration changes. + Depending on your prebuild trigger settings, your prebuild template could change with each push or on each dev container configuration change. Retaining older versions of prebuild templates enables you to create a prebuild from an older commit with a different dev container configuration than the current prebuild template. Since there is a storage cost associated with retaining prebuild template versions, you can choose the number of versions to be retained based on the needs of your team. For more information on billing, see "[About billing for {% data variables.product.prodname_codespaces %}](/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces#codespaces-pricing)." - ![The prebuild trigger options](/assets/images/help/codespaces/prebuilds-triggers.png) + If you set the number of prebuild template versions to save to 1, {% data variables.product.prodname_codespaces %} will only save the latest version of the prebuild template and will delete the older version each time the template is updated. This means you will not get a prebuilt codespace if you go back to an older dev container configuration. + + ![The prebuild template history setting](/assets/images/help/codespaces/prebuilds-template-history-setting.png) + +1. Add users or teams to notify when the prebuild workflow run fails for this configuration. You can begin typing a username, team name, or full name, then click the name once it appears to add them to the list. The users or teams you add will receive an email when prebuild failures occur, containing a link to the workflow run logs to help with further investigation. + + ![The prebuild failure notification setting](/assets/images/help/codespaces/prebuilds-failure-notification-setting.png) 1. Click **Create**. diff --git a/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/index.md b/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/index.md index e726b2f76f..d924342f20 100644 --- a/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/index.md +++ b/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/index.md @@ -15,5 +15,4 @@ children: - /managing-prebuilds - /testing-dev-container-changes --- - -{% data reusables.codespaces.prebuilds-beta-note %} + diff --git a/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md b/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md index ca4d3ac16c..2f6ee3da34 100644 --- a/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md +++ b/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md @@ -12,8 +12,6 @@ product: '{% data reusables.gated-features.codespaces %}' miniTocMaxHeadingLevel: 3 --- -{% data reusables.codespaces.prebuilds-beta-note %} - ## Checking, changing, and deleting your prebuild configurations The prebuilds that you configure for a repository are created and updated using a {% data variables.product.prodname_actions %} workflow, managed by the {% data variables.product.prodname_codespaces %} service. diff --git a/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/testing-dev-container-changes.md b/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/testing-dev-container-changes.md index b1344f9e3f..26f152ccce 100644 --- a/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/testing-dev-container-changes.md +++ b/translations/ja-JP/content/codespaces/prebuilding-your-codespaces/testing-dev-container-changes.md @@ -14,8 +14,6 @@ product: '{% data reusables.gated-features.codespaces %}' permissions: People with write permissions to a repository can create or edit the dev container configuration for a branch. --- -{% data reusables.codespaces.prebuilds-beta-note %} - Any changes you make to the dev container configuration for a prebuild-enabled branch will result in an update to the codespace configuration and the associated prebuild template. It’s therefore important to test such changes in a codespace from a test branch before committing your changes to a branch of your repository that's actively used. This will ensure you’re not introducing breaking changes for your team. For more information, see "[Introduction to dev containers](/codespaces/setting-up-your-project-for-codespaces/introduction-to-dev-containers)." diff --git a/translations/ja-JP/content/codespaces/troubleshooting/troubleshooting-prebuilds.md b/translations/ja-JP/content/codespaces/troubleshooting/troubleshooting-prebuilds.md index 25194c1493..c99a8face2 100644 --- a/translations/ja-JP/content/codespaces/troubleshooting/troubleshooting-prebuilds.md +++ b/translations/ja-JP/content/codespaces/troubleshooting/troubleshooting-prebuilds.md @@ -12,8 +12,6 @@ product: '{% data reusables.gated-features.codespaces %}' miniTocMaxHeadingLevel: 3 --- -{% data reusables.codespaces.prebuilds-beta-note %} - For more information about {% data variables.product.prodname_codespaces %} prebuilds, see "[Prebuilding your codespaces](/codespaces/prebuilding-your-codespaces)." ## Checking whether a codespace was created from a prebuild? diff --git a/translations/ja-JP/content/get-started/exploring-projects-on-github/saving-repositories-with-stars.md b/translations/ja-JP/content/get-started/exploring-projects-on-github/saving-repositories-with-stars.md index c787a3af40..20f4a397ed 100644 --- a/translations/ja-JP/content/get-started/exploring-projects-on-github/saving-repositories-with-stars.md +++ b/translations/ja-JP/content/get-started/exploring-projects-on-github/saving-repositories-with-stars.md @@ -40,6 +40,16 @@ Starring a repository is a simple two-step process. 1. Optionally, to unstar a previously starred repository, click **Unstar**. ![Untarring a repository](/assets/images/help/stars/unstarring-a-repository.png) {% ifversion fpt or ghec %} + +## Viewing who has starred a repository + + +You can view everyone who has starred a public repository or a private repository you have access to. + + +To view everyone who has starred a repository, add `/stargazers` to the end of the URL of a repository. For example, to view stargazers for the github/docs repository, visit https://github.com/github/docs/stargazers. + + ## Organizing starred repositories with lists {% note %} diff --git a/translations/ja-JP/content/get-started/quickstart/contributing-to-projects.md b/translations/ja-JP/content/get-started/quickstart/contributing-to-projects.md index 1f4ea8f999..2ad6136496 100644 --- a/translations/ja-JP/content/get-started/quickstart/contributing-to-projects.md +++ b/translations/ja-JP/content/get-started/quickstart/contributing-to-projects.md @@ -81,7 +81,7 @@ gh repo fork <em>repository</em> --clone=true ## Making and pushing changes -Go ahead and make a few changes to the project using your favorite text editor, like [Atom](https://atom.io). You could, for example, change the text in `index.html` to add your GitHub username. +Go ahead and make a few changes to the project using your favorite text editor, like [Visual Studio Code](https://code.visualstudio.com). You could, for example, change the text in `index.html` to add your GitHub username. When you're ready to submit your changes, stage and commit your changes. `git add .` tells Git that you want to include all of your changes in the next commit. `git commit` takes a snapshot of those changes. diff --git a/translations/ja-JP/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md b/translations/ja-JP/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md index 2bc7bbae04..c3abb2e426 100644 --- a/translations/ja-JP/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md +++ b/translations/ja-JP/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md @@ -39,7 +39,8 @@ You can filter files in a pull request by file extension type, such as `.html` o {% data reusables.repositories.sidebar-pr %} 1. プルリクエストのリストで、フィルタしたいプルリクエストをクリックします。 {% data reusables.repositories.changed-files %} -1. If the file tree is hidden, click **Show file tree** to display the file tree. + +1. Click on a file in the file tree to view the corresponding file diff. If the file tree is hidden, click {% octicon "sidebar-collapse" aria-label="The sidebar collapse icon" %} to display the file tree. {% note %} @@ -47,7 +48,7 @@ You can filter files in a pull request by file extension type, such as `.html` o {% endnote %} -1. Click on a file in the file tree to view the corresponding file diff. ![Pull request file tree](/assets/images/help/pull_requests/pr-file-tree.png) + ![Screenshot of filter changed files search box and file tree emphasized](/assets/images/help/repository/file-tree.png) 1. To filter by file path, enter part or all of the file path in the **Filter changed files** search box. Alternatively, use the file filter dropdown. For more information, see "[Using the file filter dropdown](#using-the-file-filter-dropdown)." {% endif %} diff --git a/translations/ja-JP/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md b/translations/ja-JP/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md index de7328d0d4..a0349b0ecd 100644 --- a/translations/ja-JP/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md +++ b/translations/ja-JP/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md @@ -36,9 +36,14 @@ shortTitle: Review dependency changes 依存関係のレビューでは、「左にシフト」することができます。 提供された予測情報を使用して、本番環境に至る前に脆弱性のある依存関係をキャッチできます。 詳しい情報については「[依存関係のレビュー](/code-security/supply-chain-security/about-dependency-review)」を参照してください。 {% ifversion fpt or ghec or ghes > 3.5 or ghae-issue-6396 %} -You can use the Dependency Review GitHub Action to help enforce dependency reviews on pull requests in your repository. For more information, see "[Dependency review enforcement](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement)." + +You can use the {% data variables.product.prodname_dependency_review_action %} to help enforce dependency reviews on pull requests in your repository. {% data reusables.dependency-review.dependency-review-action-overview %} + +{% ifversion dependency-review-action-configuration %} +You can configure the {% data variables.product.prodname_dependency_review_action %} to better suit your needs by specifying the type of dependency vulnerability you wish to catch. For more information, see "[Configuring dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review#configuring-the-dependency-review-github-action)." {% endif %} +{% endif %} ## プルリクエスト内の依存関係を確認する {% data reusables.repositories.sidebar-pr %} diff --git a/translations/ja-JP/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md b/translations/ja-JP/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md index 85c0b62271..da945b8b40 100644 --- a/translations/ja-JP/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md +++ b/translations/ja-JP/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md @@ -41,7 +41,7 @@ If the changes from the upstream repository cause conflict then the {% data vari ## Syncing a fork from the command line {% endif %} -Before you can sync your fork with an upstream repository, you must [configure a remote that points to the upstream repository](/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-for-a-fork) in Git. +上流リポジトリとフォークを同期する前に、Git で[上流リポジトリをポイントするリモートの設定](/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-for-a-fork)をする必要があります。 {% data reusables.command_line.open_the_multi_os_terminal %} 2. ワーキングディレクトリをローカルプロジェクトに変更します。 @@ -75,17 +75,11 @@ Before you can sync your fork with an upstream repository, you must [configure a > 2 files changed, 7 insertions(+), 9 deletions(-) > delete mode 100644 README > create mode 100644 README.md - ``` If your local branch didn't have any unique commits, Git will instead perform a "fast-forward": - ```shell - $ git merge upstream/main - > Updating 34e91da..16c56ad - > Fast-forward - > README.md | 5 +++-- - > 1 file changed, 3 insertions(+), 2 deletions(-) ``` + {% tip %} -**Tip**: Syncing your fork only updates your local copy of the repository. {% data variables.product.product_location %} 上のフォークをアップデートするには、[変更をプッシュする](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/)必要があります。 +**参考**: フォークの同期は、リポジトリのローカルコピーだけをアップデートします。 {% data variables.product.product_location %} 上のフォークをアップデートするには、[変更をプッシュする](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/)必要があります。 {% endtip %} diff --git a/translations/ja-JP/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md b/translations/ja-JP/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md index 23c6396aed..83cca63e32 100644 --- a/translations/ja-JP/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md +++ b/translations/ja-JP/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md @@ -40,5 +40,27 @@ If your commit is not on the default branch (`main`), the label will show the br ![Screenshot of commit with commit tag emphasized](/assets/images/help/commits/commit-tag-label.png) +{% ifversion commit-tree-view %} + +## Using the file tree + +You can use the file tree to navigate between files in a commit. + +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.navigate-to-commit-page %} +1. コミットメッセージリンクをクリックしてコミットに移動します。 ![Screenshot of commit with commit message link emphasized](/assets/images/help/commits/commit-message-link.png) +1. Click on a file in the file tree to view the corresponding file diff. If the file tree is hidden, click {% octicon "sidebar-collapse" aria-label="The sidebar collapse icon" %} to display the file tree. + + {% note %} + + **Note**: The file tree will not display if your screen width is too narrow or if the commit only includes one file. + + {% endnote %} + + ![Screenshot of filter changed files search box and file tree emphasized](/assets/images/help/repository/file-tree.png) +1. To filter by file path, enter part or all of the file path in the **Filter changed files** search box. + +{% endif %} + ## 参考リンク - 「[{% data variables.product.prodname_desktop %} でプロジェクトの変更をコミットしてレビューする](/desktop/contributing-to-projects/committing-and-reviewing-changes-to-your-project#about-commits)」 diff --git a/translations/ja-JP/content/rest/overview/libraries.md b/translations/ja-JP/content/rest/overview/libraries.md index bcf183b842..8c4b02f8cb 100644 --- a/translations/ja-JP/content/rest/overview/libraries.md +++ b/translations/ja-JP/content/rest/overview/libraries.md @@ -24,12 +24,6 @@ topics: </div> </div> -{% warning %} - -警告: 2021年の10月下旬の時点では、公式のOctokitライブラリはメンテナンスされていません。 詳しい情報については[octokit.jsリポジトリのこのディスカッション](https://github.com/octokit/octokit.js/discussions/620)を参照してください。 - -{% endwarning %} - # サードパーティライブラリ ### Clojure diff --git a/translations/ja-JP/content/rest/overview/permissions-required-for-github-apps.md b/translations/ja-JP/content/rest/overview/permissions-required-for-github-apps.md index 6c0bc67cd2..64f3841251 100644 --- a/translations/ja-JP/content/rest/overview/permissions-required-for-github-apps.md +++ b/translations/ja-JP/content/rest/overview/permissions-required-for-github-apps.md @@ -185,7 +185,7 @@ _検索_ - [`PUT /repos/:owner/:repo/topics`](/rest/reference/repos#replace-all-repository-topics) (:write) - [`POST /repos/:owner/:repo/transfer`](/rest/reference/repos#transfer-a-repository) (:write) {% ifversion fpt or ghec -%} -- [`GET /repos/:owner/:repo/vulnerability-alerts`](/rest/reference/repos#enable-vulnerability-alerts) (:write) +- [`GET /repos/:owner/:repo/vulnerability-alerts`](/rest/reference/repos#enable-vulnerability-alerts) (:read) {% endif -%} {% ifversion fpt or ghec -%} - [`PUT /repos/:owner/:repo/vulnerability-alerts`](/rest/reference/repos#enable-vulnerability-alerts) (:write) diff --git a/translations/ja-JP/data/features/commit-tree-view.yml b/translations/ja-JP/data/features/commit-tree-view.yml new file mode 100644 index 0000000000..dcbaf701ba --- /dev/null +++ b/translations/ja-JP/data/features/commit-tree-view.yml @@ -0,0 +1,8 @@ +--- +#Issue 6662 +#Commit file tree view +versions: + fpt: '*' + ghec: '*' + ghes: '>=3.6' + ghae: 'issue-6662' diff --git a/translations/ja-JP/data/features/dependency-review-action-configuration.yml b/translations/ja-JP/data/features/dependency-review-action-configuration.yml new file mode 100644 index 0000000000..1ab87445b9 --- /dev/null +++ b/translations/ja-JP/data/features/dependency-review-action-configuration.yml @@ -0,0 +1,7 @@ +--- +#Reference: Issue #7061 Configuring the dependency review action - [Public Beta] +versions: + fpt: '*' + ghec: '*' + ghes: '>3.5' + ghae: 'issue-7061' diff --git a/translations/ja-JP/data/release-notes/enterprise-server/3-1/0.yml b/translations/ja-JP/data/release-notes/enterprise-server/3-1/0.yml index ccd0725cf4..3b24968dd8 100644 --- a/translations/ja-JP/data/release-notes/enterprise-server/3-1/0.yml +++ b/translations/ja-JP/data/release-notes/enterprise-server/3-1/0.yml @@ -163,6 +163,11 @@ sections: - heading: Deprecation of XenServer Hypervisor support notes: - Beginning in {% data variables.product.prodname_ghe_server %} 3.1, we will begin discontinuing support for Xen Hypervisor. The complete deprecation is scheduled for {% data variables.product.prodname_ghe_server %} 3.3, following the standard one year deprecation window. + - heading: Change to the format of authentication tokens affects GitHub Connect + notes: + # https://github.com/github/releases/issues/1235 + - | + GitHub Connect will no longer work after June 3rd for instances running GitHub Enterprise Server 3.1 or older, due to the format of GitHub authentication tokens changing. To continue using GitHub Connect, upgrade to GitHub Enterprise Server 3.2 or later. For more information, see the [GitHub Blog](https://github.blog/2022-05-20-action-needed-by-github-connect-customers-using-ghes-3-1-and-older-to-adopt-new-authentication-token-format-updates/). [Updated: 2022-06-14] backups: - '{% data variables.product.prodname_ghe_server %} 3.1 requires at least [GitHub Enterprise Backup Utilities 3.1.0](https://github.com/github/backup-utils) for [Backups and Disaster Recovery](/enterprise-server@3.1/admin/configuration/configuring-backups-on-your-appliance).' diff --git a/translations/ja-JP/data/release-notes/enterprise-server/3-1/22.yml b/translations/ja-JP/data/release-notes/enterprise-server/3-1/22.yml new file mode 100644 index 0000000000..d37c2da9e6 --- /dev/null +++ b/translations/ja-JP/data/release-notes/enterprise-server/3-1/22.yml @@ -0,0 +1,20 @@ +date: '2022-06-09' +sections: + security_fixes: + - Packages have been updated to the latest security versions. + bugs: + - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). + - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured. + - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. + - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + changes: + - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. + known_issues: + - The {% data variables.product.prodname_registry %} npm registry no longer returns a time value in metadata responses. This was done to allow for substantial performance improvements. We continue to have all the data necessary to return a time value as part of the metadata response and will resume returning this value in the future once we have solved the existing performance issues. + - On a freshly set up {% data variables.product.prodname_ghe_server %} instance without any users, an attacker could create the first admin user. + - Custom firewall rules are removed during the upgrade process. + - Git LFS tracked files [uploaded through the web interface](https://github.com/blog/2105-upload-files-to-your-repositories) are incorrectly added directly to the repository. + - Issues cannot be closed if they contain a permalink to a blob in the same repository, where the blob's file path is longer than 255 characters. + - When "Users can search GitHub.com" is enabled with {% data variables.product.prodname_github_connect %}, issues in private and internal repositories are not included in {% data variables.product.prodname_dotcom_the_website %} search results. + - If {% data variables.product.prodname_actions %} is enabled for {% data variables.product.prodname_ghe_server %}, teardown of a replica node with `ghe-repl-teardown` will succeed, but may return `ERROR:Running migrations`. + - Resource limits that are specific to processing pre-receive hooks may cause some pre-receive hooks to fail. diff --git a/translations/ja-JP/data/release-notes/enterprise-server/3-2/0.yml b/translations/ja-JP/data/release-notes/enterprise-server/3-2/0.yml index dd9ef8063b..70d42db919 100644 --- a/translations/ja-JP/data/release-notes/enterprise-server/3-2/0.yml +++ b/translations/ja-JP/data/release-notes/enterprise-server/3-2/0.yml @@ -306,6 +306,11 @@ sections: Two legacy GitHub Apps-related webhook events have been removed: `integration_installation` and `integration_installation_repositories`. You should instead be listening to the `installation` and `installation_repositories` events. - | The following REST API endpoint has been removed: `POST /installations/{installation_id}/access_tokens`. You should instead be using the namespaced equivalent `POST /app/installations/{installation_id}/access_tokens`. + - heading: Change to the format of authentication tokens affects GitHub Connect + notes: + # https://github.com/github/releases/issues/1235 + - | + GitHub Connect will no longer work after June 3rd for instances running GitHub Enterprise Server 3.1 or older, due to the format of GitHub authentication tokens changing. To continue using GitHub Connect, upgrade to GitHub Enterprise Server 3.2 or later. For more information, see the [GitHub Blog](https://github.blog/2022-05-20-action-needed-by-github-connect-customers-using-ghes-3-1-and-older-to-adopt-new-authentication-token-format-updates/). [Updated: 2022-06-14] backups: - '{% data variables.product.prodname_ghe_server %} 3.2 requires at least [GitHub Enterprise Backup Utilities 3.2.0](https://github.com/github/backup-utils) for [Backups and Disaster Recovery](/enterprise-server@3.2/admin/configuration/configuring-backups-on-your-appliance).' diff --git a/translations/ja-JP/data/release-notes/enterprise-server/3-2/14.yml b/translations/ja-JP/data/release-notes/enterprise-server/3-2/14.yml new file mode 100644 index 0000000000..18db5c1880 --- /dev/null +++ b/translations/ja-JP/data/release-notes/enterprise-server/3-2/14.yml @@ -0,0 +1,23 @@ +--- +date: '2022-06-09' +sections: + security_fixes: + - パッケージは最新のセキュリティバージョンにアップデートされました。 + bugs: + - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). + - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured. + - The `--gateway` argument was added to the `ghe-setup-network` command, to allow passing the gateway address when configuring network settings using the command line. + - Image attachments that were deleted would return a `500 Internal Server Error` instead of a `404 Not Found` error. + - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. + - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + changes: + - Optimised the inclusion of metrics when generating a cluster support bundle. + - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. + known_issues: + - 新しくセットアップされたユーザを持たない{% data variables.product.prodname_ghe_server %}インスタンスで、攻撃者が最初の管理ユーザを作成できました。 + - アップグレードの過程で、カスタムのファイアウォールのルールが削除されます。 + - Git LFSが追跡するファイル[Webインターフェースからアップロードされたもの](https://github.com/blog/2105-upload-files-to-your-repositories)が、不正にリポジトリに直接追加されてしまいます。 + - 同じリポジトリ内のファイルパスが255文字を超えるblobへのパーマリンクを含むIssueをクローズできませんでした。 + - '{% data variables.product.prodname_github_connect %}で"Users can search GitHub.com(ユーザはGitHub.comの検索が可能)" が有効化されたとき、プライベート及びインターナルリポジトリのIssueが{% data variables.product.prodname_dotcom_the_website %}の検索結果に含まれません。' + - '{% data variables.product.prodname_registry %}のnpmレジストリは、メタデータのレスポンス中で時間の値を返さなくなります。これは、大きなパフォーマンス改善のために行われました。メタデータレスポンスの一部として時間の値を返すために必要なすべてのデータは保持し続け、既存のパフォーマンスの問題を解決した将来に、この値を返すことを再開します。' + - pre-receive フックの処理に固有のリソース制限によって、pre-receive フックに失敗するものが生じることがあります。 diff --git a/translations/ja-JP/data/release-notes/enterprise-server/3-3/0.yml b/translations/ja-JP/data/release-notes/enterprise-server/3-3/0.yml index 1ca3d1f503..a0549ad8a1 100644 --- a/translations/ja-JP/data/release-notes/enterprise-server/3-3/0.yml +++ b/translations/ja-JP/data/release-notes/enterprise-server/3-3/0.yml @@ -295,5 +295,11 @@ sections: To start a repository maintenance task manually, browse to `https://<hostname>/stafftools/repositories/<owner>/<repository>/network` for each affected repository and click the **Schedule** button. + - heading: Change to the format of authentication tokens affects GitHub Connect + notes: + # https://github.com/github/releases/issues/1235 + - | + GitHub Connect will no longer work after June 3rd for instances running GitHub Enterprise Server 3.1 or older, due to the format of GitHub authentication tokens changing. To continue using GitHub Connect, upgrade to GitHub Enterprise Server 3.2 or later. For more information, see the [GitHub Blog](https://github.blog/2022-05-20-action-needed-by-github-connect-customers-using-ghes-3-1-and-older-to-adopt-new-authentication-token-format-updates/). [Updated: 2022-06-14] + backups: - '{% data variables.product.prodname_ghe_server %} 3.3 requires at least [GitHub Enterprise Backup Utilities 3.3.0](https://github.com/github/backup-utils) for [Backups and Disaster Recovery](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance).' diff --git a/translations/ja-JP/data/release-notes/enterprise-server/3-3/9.yml b/translations/ja-JP/data/release-notes/enterprise-server/3-3/9.yml new file mode 100644 index 0000000000..94a7536c92 --- /dev/null +++ b/translations/ja-JP/data/release-notes/enterprise-server/3-3/9.yml @@ -0,0 +1,26 @@ +--- +date: '2022-06-09' +sections: + security_fixes: + - パッケージは最新のセキュリティバージョンにアップデートされました。 + bugs: + - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). + - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured + - The `--gateway` argument was added to the `ghe-setup-network` command, to allow passing the gateway address when configuring network settings using the command line. + - Image attachments that were deleted would return a `500 Internal Server Error` instead of a `404 Not Found` error. + - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. + - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + changes: + - Optimised the inclusion of metrics when generating a cluster support bundle. + - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. + - When using `ghe-migrator` or exporting from {% data variables.product.prodname_dotcom_the_website %}, migrations would fail to export pull request attachments. + known_issues: + - '{% data variables.product.prodname_ghe_server %} 3.3にアップグレード後、{% data variables.product.prodname_actions %}が自動起動に失敗することがあります。この問題を解決するためには、アプライアンスにSSHで接続し、`ghe-actions-start`コマンドを実行してください。' + - 新しくセットアップされたユーザを持たない{% data variables.product.prodname_ghe_server %}インスタンスで、攻撃者が最初の管理ユーザを作成できました。 + - アップグレードの過程で、カスタムのファイアウォールのルールが削除されます。 + - Git LFSが追跡するファイル[Webインターフェースからアップロードされたもの](https://github.com/blog/2105-upload-files-to-your-repositories)が、不正にリポジトリに直接追加されてしまいます。 + - 同じリポジトリ内のファイルパスが255文字を超えるblobへのパーマリンクを含むIssueをクローズできませんでした。 + - '{% data variables.product.prodname_github_connect %}で"Users can search GitHub.com(ユーザはGitHub.comの検索が可能)" が有効化されたとき、プライベート及びインターナルリポジトリのIssueが{% data variables.product.prodname_dotcom_the_website %}の検索結果に含まれません。' + - '{% data variables.product.prodname_registry %}のnpmレジストリは、メタデータのレスポンス中で時間の値を返さなくなります。これは、大きなパフォーマンス改善のために行われました。メタデータレスポンスの一部として時間の値を返すために必要なすべてのデータは保持し続け、既存のパフォーマンスの問題を解決した将来に、この値を返すことを再開します。' + - pre-receive フックの処理に固有のリソース制限によって、pre-receive フックに失敗するものが生じることがあります。 + - '{% data variables.product.prodname_actions %}のストレージ設定は、"Force Path Style(パススタイルの強制)"が選択されている場合、検証できず{% data variables.enterprise.management_console %}に保存できません。その代わりに、`ghe-actions-precheck`コマンドラインユーティリティで設定しなければなりません。' diff --git a/translations/ja-JP/data/release-notes/enterprise-server/3-4/0.yml b/translations/ja-JP/data/release-notes/enterprise-server/3-4/0.yml index ef44b150b3..9d0e448325 100644 --- a/translations/ja-JP/data/release-notes/enterprise-server/3-4/0.yml +++ b/translations/ja-JP/data/release-notes/enterprise-server/3-4/0.yml @@ -297,5 +297,11 @@ sections: To start a repository maintenance task manually, browse to `https://<hostname>/stafftools/repositories/<owner>/<repository>/network` for each affected repository and click the Schedule button. + - heading: Change to the format of authentication tokens affects GitHub Connect + notes: + # https://github.com/github/releases/issues/1235 + - | + GitHub Connect will no longer work after June 3rd for instances running GitHub Enterprise Server 3.1 or older, due to the format of GitHub authentication tokens changing. For more information, see the [GitHub changelog](https://github.blog/2022-05-20-action-needed-by-github-connect-customers-using-ghes-3-1-and-older-to-adopt-new-authentication-token-format-updates/). [Updated: 2022-06-14] + backups: - '{% data variables.product.prodname_ghe_server %} 3.4 requires at least [GitHub Enterprise Backup Utilities 3.4.0](https://github.com/github/backup-utils) for [Backups and Disaster Recovery](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance).' diff --git a/translations/ja-JP/data/release-notes/enterprise-server/3-4/4.yml b/translations/ja-JP/data/release-notes/enterprise-server/3-4/4.yml new file mode 100644 index 0000000000..273f15423b --- /dev/null +++ b/translations/ja-JP/data/release-notes/enterprise-server/3-4/4.yml @@ -0,0 +1,34 @@ +--- +date: '2022-06-09' +sections: + security_fixes: + - パッケージは最新のセキュリティバージョンにアップデートされました。 + bugs: + - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). + - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured. + - When {% data variables.product.prodname_actions %} was enabled but TLS was disabled on {% data variables.product.prodname_ghe_server %} 3.4.1 and later, applying a configuration update would fail. + - The `--gateway` argument was added to the `ghe-setup-network` command, to allow passing the gateway address when configuring network settings using the command line. + - 'The [{% data variables.product.prodname_GH_advanced_security %} billing API](/rest/enterprise-admin/billing#get-github-advanced-security-active-committers-for-an-enterprise) endpoints were not enabled and accessible.' + - Image attachments that were deleted would return a `500 Internal Server Error` instead of a `404 Not Found` error. + - In environments configured with a repository cache server, the `ghe-repl-status` command incorrectly showed gists as being under-replicated. + - The "Get a commit" and "Compare two commits" endpoints in the [Commit API](/rest/commits/commits) would return a `500` error if a file path in the diff contained an encoded and escaped unicode character. + - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. + - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + - The activity timeline for secret scanning alerts wasn't displayed. + changes: + - Optimised the inclusion of metrics when generating a cluster support bundle. + - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. + known_issues: + - 新しくセットアップされたユーザを持たない{% data variables.product.prodname_ghe_server %}インスタンスで、攻撃者が最初の管理ユーザを作成できました。 + - アップグレードの過程で、カスタムのファイアウォールのルールが削除されます。 + - Git LFSが追跡するファイル[Webインターフェースからアップロードされたもの](https://github.com/blog/2105-upload-files-to-your-repositories)が、不正にリポジトリに直接追加されてしまいます。 + - 同じリポジトリ内のファイルパスが255文字を超えるblobへのパーマリンクを含むIssueをクローズできませんでした。 + - '{% data variables.product.prodname_github_connect %}で"Users can search GitHub.com(ユーザはGitHub.comの検索が可能)" が有効化されたとき、プライベート及びインターナルリポジトリのIssueが{% data variables.product.prodname_dotcom_the_website %}の検索結果に含まれません。' + - '{% data variables.product.prodname_registry %}のnpmレジストリは、メタデータのレスポンス中で時間の値を返さなくなります。これは、大きなパフォーマンス改善のために行われました。メタデータレスポンスの一部として時間の値を返すために必要なすべてのデータは保持し続け、既存のパフォーマンスの問題を解決した将来に、この値を返すことを再開します。' + - pre-receive フックの処理に固有のリソース制限によって、pre-receive フックに失敗するものが生じることがあります。 + - | + SAMLの暗号化されたアサーションを{% data variables.product.prodname_ghe_server %} 3.4.0及び3.4.1で使用する場合、`SPSSODescriptor`内の新しいXML属性である`WantAssertionsEncrypted`にはSAMLメタデータの不正な属性が含まれます。このSAMLエンドポイントを利用するIdPは、SAMLメタデータのXMLスキーマの検証の際にエラーが生じることがあります。修正は次回のパッチリリースで提供されます。[2022年04月11日更新] + + この問題を回避するためには、以下の2つの方法のいずれかを取ることができます。 + - `WantAssertionsEncrypted`属性なしのSAMLメタデータの静的なコピーをアップロードして、IdPを再設定する。 + - SAMLメタデータをコピーし、`WantAssertionsEncrypted`を削除し、それをWebサーバーでホストして、そのURLを指してIdPを再設定する。 diff --git a/translations/ja-JP/data/release-notes/enterprise-server/3-5/0.yml b/translations/ja-JP/data/release-notes/enterprise-server/3-5/0.yml index 60b3f6abdc..bf82c0fbce 100644 --- a/translations/ja-JP/data/release-notes/enterprise-server/3-5/0.yml +++ b/translations/ja-JP/data/release-notes/enterprise-server/3-5/0.yml @@ -319,10 +319,10 @@ sections: MinIOは、2022年6月1日からのMinIO Gatewaysの廃止をアナウンスしました。MinIO Gateway for NASは、引き続きGitHub Actions及びGitHub Packagesのサポート対象ストレージプロバイダの1つであり続けますが、MinIOからのサポートとバグ修正を利用し続けるために、MinIO LTSサポートへの移行をおすすめします。レート制限に関する詳しい情報については「[minio/minioリポジトリでのGCS、Azure、HDFS用のMinIO Gatewayの予定された廃止](https://github.com/minio/minio/issues/14331)」を参照してください。 deprecations: - - heading: 認証トークンのフォーマット変更 + heading: Change to the format of authentication tokens affects GitHub Connect notes: - | - GitHub認証トークンのフォーマット変更により、GitHub Enterprise Server 3.1以前を動作させているインスタンスでは、6月3日以降GitHub Connectは動作しなくなります。詳しい情報については[GitHub changelog](https://github.blog/changelog/2021-03-31-authentication-token-format-updates-are-generally-available/)を参照してください。 + GitHub Connect will no longer work after June 3rd for instances running GitHub Enterprise Server 3.1 or older, due to the format of GitHub authentication tokens changing. To continue using GitHub Connect, upgrade to GitHub Enterprise Server 3.2 or later. For more information, see the [GitHub Blog](https://github.blog/2022-05-20-action-needed-by-github-connect-customers-using-ghes-3-1-and-older-to-adopt-new-authentication-token-format-updates/). [Updated: 2022-06-14] - heading: CodeQL runnerはCodeQL CLIを代替として非推奨になりました notes: diff --git a/translations/ja-JP/data/release-notes/enterprise-server/3-5/1.yml b/translations/ja-JP/data/release-notes/enterprise-server/3-5/1.yml new file mode 100644 index 0000000000..be7d707521 --- /dev/null +++ b/translations/ja-JP/data/release-notes/enterprise-server/3-5/1.yml @@ -0,0 +1,32 @@ +--- +date: '2022-06-09' +sections: + security_fixes: + - パッケージは最新のセキュリティバージョンにアップデートされました。 + bugs: + - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). + - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured. + - When {% data variables.product.prodname_actions %} was enabled but TLS was disabled on {% data variables.product.prodname_ghe_server %} 3.4.1 and later, applying a configuration update would fail. + - The `--gateway` argument was added to the `ghe-setup-network` command, to allow passing the gateway address when configuring network settings using the command line. + - 'The [{% data variables.product.prodname_GH_advanced_security %} billing API](/rest/enterprise-admin/billing#get-github-advanced-security-active-committers-for-an-enterprise) endpoints were not enabled and accessible.' + - Image attachments that were deleted would return a `500 Internal Server Error` instead of a `404 Not Found` error. + - In environments configured with a repository cache server, the `ghe-repl-status` command incorrectly showed gists as being under-replicated. + - The "Get a commit" and "Compare two commits" endpoints in the [Commit API](/rest/commits/commits) would return a `500` error if a file path in the diff contained an encoded and escaped unicode character. + - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. + - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + - 'A {% data variables.product.prodname_github_app %} would not be able to subscribe to the [`secret_scanning_alert_location` webhook event](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#secret_scanning_alert_location) on an installation.' + - The activity timeline for secret scanning alerts wasn't displayed. + - Deleted repos were not purged after 90 days. + changes: + - Optimised the inclusion of metrics when generating a cluster support bundle. + - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. + known_issues: + - 新しくセットアップされたユーザを持たない{% data variables.product.prodname_ghe_server %}インスタンスで、攻撃者が最初の管理ユーザを作成できました。 + - アップグレードの過程で、カスタムのファイアウォールのルールが削除されます。 + - Git LFSが追跡するファイル[Webインターフェースからアップロードされたもの](https://github.com/blog/2105-upload-files-to-your-repositories)が、不正にリポジトリに直接追加されてしまいます。 + - 同じリポジトリ内のファイルパスが255文字を超えるblobへのパーマリンクを含むIssueをクローズできませんでした。 + - GitHub Connectで"Users can search GitHub.com"が有効化されている場合、GitHub.comの検索結果にプライベート及びインターナルリポジトリのIssueが含まれません。 + - '{% data variables.product.prodname_registry %}のnpmレジストリは、メタデータのレスポンス中で時間の値を返さなくなります。これは、大きなパフォーマンス改善のために行われました。メタデータレスポンスの一部として時間の値を返すために必要なすべてのデータは保持し続け、既存のパフォーマンスの問題を解決した将来に、この値を返すことを再開します。' + - pre-receive フックの処理に固有のリソース制限によって、pre-receive フックに失敗するものが生じることがあります。 + - 別のホスト上で取られたバックアップからのアプライアンスのリストア後、Actionsサービスを再起動する必要があります。 + - 'Deleted repositories will not be purged from disk automatically after the 90-day retention period ends. This issue is resolved in the 3.5.1 release. [Updated: 2022-06-10]' diff --git a/translations/ja-JP/data/reusables/codespaces/about-billing-for-codespaces.md b/translations/ja-JP/data/reusables/codespaces/about-billing-for-codespaces.md deleted file mode 100644 index edfafd8e2f..0000000000 --- a/translations/ja-JP/data/reusables/codespaces/about-billing-for-codespaces.md +++ /dev/null @@ -1 +0,0 @@ -{% data variables.product.prodname_codespaces %}はベータの間、無料で利用できます。 {% data variables.product.prodname_codespaces %} が一般提供されると、ストレージとコンピューティングの使用量に対して課金されます。 diff --git a/translations/ja-JP/data/reusables/codespaces/beta-functionality-limited.md b/translations/ja-JP/data/reusables/codespaces/beta-functionality-limited.md deleted file mode 100644 index 7a4feb947f..0000000000 --- a/translations/ja-JP/data/reusables/codespaces/beta-functionality-limited.md +++ /dev/null @@ -1,5 +0,0 @@ -ベータの期間中、機能は制限されています。 -- {% data reusables.codespaces.use-chrome %} -- codespaceのサイズは1つだけしか利用できません。 -- Linuxコンテナのみサポートされています。 -- codespaceは完全に再開可能ではありません。 codespaceが停止された時に実行中だったプロセスは、再開されません。 diff --git a/translations/ja-JP/data/reusables/codespaces/billing-for-prebuilds.md b/translations/ja-JP/data/reusables/codespaces/billing-for-prebuilds.md index 12d623d8fd..52166cdf86 100644 --- a/translations/ja-JP/data/reusables/codespaces/billing-for-prebuilds.md +++ b/translations/ja-JP/data/reusables/codespaces/billing-for-prebuilds.md @@ -1,7 +1,7 @@ By default, a {% data variables.product.prodname_actions %} workflow is triggered every time you create or update a prebuild template, or push to a prebuild-enabled branch. As with other workflows, while prebuild workflows are running they will either consume some of the Actions minutes included with your account, if you have any, or they will incur charges for Actions minutes. For more information about pricing for Actions minutes, see "[About billing for {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/about-billing-for-github-actions)." -If you are an organization owner, you can track usage of prebuild workflows by downloading a {% data variables.product.prodname_actions %} usage report for your organization. You can identify workflow runs for prebuilds by filtering the CSV output to only include the workflow called "Create Codespaces Prebuilds." 詳細については、「[{% data variables.product.prodname_actions %} の使用状況を表示する](/billing/managing-billing-for-github-actions/viewing-your-github-actions-usage#viewing-github-actions-usage-for-your-organization)」を参照してください。 +Alongside {% data variables.product.prodname_actions %} minutes, you will also be billed for the storage of prebuild templates associated with each prebuild configuration for a given repository and region. Storage of prebuild templates is billed at the same rate as storage of codespaces. For more information, see "[Calculating storage usage](#calculating-storage-usage)." -To reduce consumption of Actions minutes, you can set a prebuild template to be updated only when you make a change to your dev container configuration files, or only on a custom schedule. For more information, see "[Configuring prebuilds](/codespaces/prebuilding-your-codespaces/configuring-prebuilds#configuring-a-prebuild)." +To reduce consumption of Actions minutes, you can set a prebuild template to be updated only when you make a change to your dev container configuration files, or only on a custom schedule. You can also manage your storage usage by adjusting the number of template versions to be retained for your prebuild configurations. For more information, see "[Configuring prebuilds](/codespaces/prebuilding-your-codespaces/configuring-prebuilds#configuring-a-prebuild)." -While {% data variables.product.prodname_codespaces %} prebuilds is in beta there is no charge for storage of templates. When prebuilds become generally available, you will be billed for storing prebuild templates for each prebuild configuration in each region selected for that configuration. +If you are an organization owner, you can track usage of prebuild workflows and storage by downloading a {% data variables.product.prodname_actions %} usage report for your organization. You can identify workflow runs for prebuilds by filtering the CSV output to only include the workflow called "Create Codespaces Prebuilds." 詳しい情報については「[{% data variables.product.prodname_actions %}の利用状況の表示](/billing/managing-billing-for-github-actions/viewing-your-github-actions-usage#viewing-github-actions-usage-for-your-organization)」を参照してください。 \ No newline at end of file diff --git a/translations/ja-JP/data/reusables/codespaces/prebuilds-beta-note.md b/translations/ja-JP/data/reusables/codespaces/prebuilds-beta-note.md deleted file mode 100644 index 3b343a2954..0000000000 --- a/translations/ja-JP/data/reusables/codespaces/prebuilds-beta-note.md +++ /dev/null @@ -1,5 +0,0 @@ -{% note %} - -**Note:** The ability to prebuild codespaces is currently in beta and subject to change. - -{% endnote %} diff --git a/translations/ja-JP/data/reusables/codespaces/unsupported-repos.md b/translations/ja-JP/data/reusables/codespaces/unsupported-repos.md deleted file mode 100644 index a7046ae35a..0000000000 --- a/translations/ja-JP/data/reusables/codespaces/unsupported-repos.md +++ /dev/null @@ -1 +0,0 @@ -ベータの期間、Organizationが所有するプライベートリポジトリ、あるいはSAMLシングルサインオンを必要とするOrganizationが所有するリポジトリはサポートされません。 diff --git a/translations/ja-JP/data/reusables/dependency-review/dependency-review-action-beta-note.md b/translations/ja-JP/data/reusables/dependency-review/dependency-review-action-beta-note.md index c227b119b0..23aaae3ec2 100644 --- a/translations/ja-JP/data/reusables/dependency-review/dependency-review-action-beta-note.md +++ b/translations/ja-JP/data/reusables/dependency-review/dependency-review-action-beta-note.md @@ -1,5 +1,5 @@ {% note %} -**Note**: The Dependency Review GitHub Action is currently in public beta and subject to change. +**Note**: The {% data variables.product.prodname_dependency_review_action %} is currently in public beta and subject to change. {% endnote %} \ No newline at end of file diff --git a/translations/ja-JP/data/reusables/dependency-review/dependency-review-action-overview.md b/translations/ja-JP/data/reusables/dependency-review/dependency-review-action-overview.md new file mode 100644 index 0000000000..49112365d7 --- /dev/null +++ b/translations/ja-JP/data/reusables/dependency-review/dependency-review-action-overview.md @@ -0,0 +1,3 @@ +The {% data variables.product.prodname_dependency_review_action %} scans your pull requests for dependency changes and raises an error if any new dependencies have known vulnerabilities. The action is supported by an API endpoint that compares the dependencies between two revisions and reports any differences. + +For more information about the action and the API endpoint, see "[About dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-reinforcement)," and "[Dependency review](/rest/dependency-graph/dependency-review)" in the API documentation, respectively. \ No newline at end of file diff --git a/translations/ja-JP/data/reusables/dotcom_billing/actions-packages-report-download-org-account.md b/translations/ja-JP/data/reusables/dotcom_billing/actions-packages-report-download-org-account.md index 09bce7ee87..1375874dfd 100644 --- a/translations/ja-JP/data/reusables/dotcom_billing/actions-packages-report-download-org-account.md +++ b/translations/ja-JP/data/reusables/dotcom_billing/actions-packages-report-download-org-account.md @@ -1 +1 @@ -1. Optionally, next to "Billing & plans", click **Get usage report** to email a CSV report of storage use for {% data variables.product.prodname_actions %}, {% data variables.product.prodname_registry %}, and {% data variables.product.prodname_codespaces %} to the account's primary email address. ![CSVレポートのダウンロード](/assets/images/help/billing/actions-packages-report-download-org.png) +1. Optionally, next to "Usage this month", click **Get usage report** to get an email containing a link for downloading a CSV report of storage use for {% data variables.product.prodname_actions %}, {% data variables.product.prodname_registry %}, and {% data variables.product.prodname_codespaces %}. The email is sent to your account's primary email address. You can choose whether the report should cover the last 7, 30, 90, or 180 days. ![CSVレポートのダウンロード](/assets/images/help/billing/actions-packages-report-download.png) diff --git a/translations/ja-JP/data/variables/product.yml b/translations/ja-JP/data/variables/product.yml index 932f5f2c31..5e9ba2ed60 100644 --- a/translations/ja-JP/data/variables/product.yml +++ b/translations/ja-JP/data/variables/product.yml @@ -143,6 +143,7 @@ prodname_code_scanning_capc: 'Code scanning' prodname_codeql_runner: 'CodeQLランナー' prodname_advisory_database: 'GitHub Advisory Database' prodname_codeql_workflow: 'CodeQL分析ワークフロー' +prodname_dependency_review_action: 'Dependency Review GitHub Action' #Visual Studio prodname_vs: 'Visual Studio' prodname_vscode_shortname: 'VS Code' diff --git a/translations/log/ja-resets.csv b/translations/log/ja-resets.csv index eae3e9751d..58be133e74 100644 --- a/translations/log/ja-resets.csv +++ b/translations/log/ja-resets.csv @@ -234,6 +234,7 @@ translations/ja-JP/data/release-notes/enterprise-server/3-1/19.yml,broken liquid translations/ja-JP/data/release-notes/enterprise-server/3-1/2.yml,broken liquid tags translations/ja-JP/data/release-notes/enterprise-server/3-1/20.yml,broken liquid tags translations/ja-JP/data/release-notes/enterprise-server/3-1/21.yml,broken liquid tags +translations/ja-JP/data/release-notes/enterprise-server/3-1/22.yml,broken liquid tags translations/ja-JP/data/release-notes/enterprise-server/3-1/3.yml,broken liquid tags translations/ja-JP/data/release-notes/enterprise-server/3-1/4.yml,broken liquid tags translations/ja-JP/data/release-notes/enterprise-server/3-1/5.yml,broken liquid tags @@ -271,9 +272,9 @@ translations/ja-JP/data/reusables/dotcom_billing/lfs-remove-data.md,broken liqui translations/ja-JP/data/reusables/education/apply-for-team.md,broken liquid tags translations/ja-JP/data/reusables/enterprise-accounts/actions-tab.md,broken liquid tags translations/ja-JP/data/reusables/enterprise-accounts/hooks-tab.md,Listed in localization-support#489 -translations/ja-JP/data/reusables/enterprise-accounts/hooks-tab.md,rendering error +translations/ja-JP/data/reusables/enterprise-accounts/hooks-tab.md,broken liquid tags translations/ja-JP/data/reusables/enterprise-accounts/messages-tab.md,Listed in localization-support#489 -translations/ja-JP/data/reusables/enterprise-accounts/messages-tab.md,rendering error +translations/ja-JP/data/reusables/enterprise-accounts/messages-tab.md,broken liquid tags translations/ja-JP/data/reusables/enterprise-accounts/pages-tab.md,broken liquid tags translations/ja-JP/data/reusables/enterprise_installation/hardware-considerations-all-platforms.md,broken liquid tags translations/ja-JP/data/reusables/enterprise_installation/upgrade-hardware-requirements.md,broken liquid tags From 20ad46f2401c10161a9453b043f8016921d8db2c Mon Sep 17 00:00:00 2001 From: Peter Bengtsson <mail@peterbe.com> Date: Thu, 16 Jun 2022 13:46:50 -0400 Subject: [PATCH 07/21] run 'Link Checker: All English' on ubuntu-20.04-xl (#28574) --- .github/workflows/link-check-all.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/link-check-all.yml b/.github/workflows/link-check-all.yml index 8cbdac109d..38c615312f 100644 --- a/.github/workflows/link-check-all.yml +++ b/.github/workflows/link-check-all.yml @@ -24,7 +24,7 @@ concurrency: jobs: check-links: - runs-on: ${{ fromJSON('["ubuntu-latest", "self-hosted"]')[github.repository == 'github/docs-internal'] }} + runs-on: ${{ fromJSON('["ubuntu-latest", "ubuntu-20.04-xl"]')[github.repository == 'github/docs-internal'] }} steps: - name: Checkout uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 From 20d10a8b806e662cd02dec4a3c6101af1ad46566 Mon Sep 17 00:00:00 2001 From: Mike Surowiec <mikesurowiec@users.noreply.github.com> Date: Thu, 16 Jun 2022 13:39:38 -0500 Subject: [PATCH 08/21] fix: guides layout cards collapsing (#28570) --- components/landing/GuideCards.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/landing/GuideCards.tsx b/components/landing/GuideCards.tsx index a74d3acce4..fc19658bc0 100644 --- a/components/landing/GuideCards.tsx +++ b/components/landing/GuideCards.tsx @@ -21,7 +21,7 @@ export const GuideCards = () => { return ( <div> <div className="d-lg-flex flex-items-stretch"> - <ul className="d-flex flex-wrap gutter"> + <ul className="d-flex flex-wrap gutter width-full"> {(featuredLinks.guideCards || []).map((guide) => { return <GuideCard key={guide.href} guide={guide} /> })} From e6d18e1f87e171c4a9ff0ba69a28ade08b82b59b Mon Sep 17 00:00:00 2001 From: GitHub Actions <action@github.com> Date: Thu, 16 Jun 2022 18:57:08 +0000 Subject: [PATCH 09/21] update search indexes --- lib/search/indexes/github-docs-3.1-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-pt.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-cn.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-en.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-es.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-ja.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-pt.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-cn.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-en.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-es.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-ja.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-pt.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-cn.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-en.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-es.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-ja.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-pt.json.br | 4 ++-- 80 files changed, 160 insertions(+), 160 deletions(-) diff --git a/lib/search/indexes/github-docs-3.1-cn-records.json.br b/lib/search/indexes/github-docs-3.1-cn-records.json.br index 9ac635bbb8..5ed0287890 100644 --- a/lib/search/indexes/github-docs-3.1-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.1-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e941fbf9aa0ff314a1cb7fb08118c87666f86f42227cb348e75413c47fe1ae0f -size 741222 +oid sha256:29d84f4685b525b857a069459241d71ebbaf932e6ef878d909283ca552828e4e +size 740951 diff --git a/lib/search/indexes/github-docs-3.1-cn.json.br b/lib/search/indexes/github-docs-3.1-cn.json.br index 26b8fa5bb5..477a8d958c 100644 --- a/lib/search/indexes/github-docs-3.1-cn.json.br +++ b/lib/search/indexes/github-docs-3.1-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:998658605c95d756a2d843f9b310c02ffc678f19bc6cd9a25db0bef8fddb7d89 -size 1564624 +oid sha256:e9029be541748fb74c3a2ece986783fb086e8f06fbfccb4fc835abc0c4a24206 +size 1564414 diff --git a/lib/search/indexes/github-docs-3.1-en-records.json.br b/lib/search/indexes/github-docs-3.1-en-records.json.br index d14c36b3bd..116e3330ad 100644 --- a/lib/search/indexes/github-docs-3.1-en-records.json.br +++ b/lib/search/indexes/github-docs-3.1-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0d7c413d5734e3a9ae342ff0fcc9f8e68a5299d3bd579d58709e58bb9a577902 -size 997871 +oid sha256:35febe3243f53772102cd15907460a296bc8b1535b9405bde4127c73112f9ba2 +size 997915 diff --git a/lib/search/indexes/github-docs-3.1-en.json.br b/lib/search/indexes/github-docs-3.1-en.json.br index c5b5a4029f..2171cdbd17 100644 --- a/lib/search/indexes/github-docs-3.1-en.json.br +++ b/lib/search/indexes/github-docs-3.1-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:906a126f978169d03a0f955ae4dbe65f72a794cc480d3fb8088d5eb33cd39144 -size 4001369 +oid sha256:de02f9f48b7a0fd64bbe9d16d99cacdd57dfa9fc8dc7c8963c4165eedbc889d0 +size 4001166 diff --git a/lib/search/indexes/github-docs-3.1-es-records.json.br b/lib/search/indexes/github-docs-3.1-es-records.json.br index 3d1f303d2b..43c93dc367 100644 --- a/lib/search/indexes/github-docs-3.1-es-records.json.br +++ b/lib/search/indexes/github-docs-3.1-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a7577c8db6346a7ef03b753744f9f704587f14561f674f12d68f079e0cb84fc1 -size 683979 +oid sha256:758b3871e314be90f0a94a7f464cd44dab030711c5fd86b35d0e0567ca62a5f5 +size 683946 diff --git a/lib/search/indexes/github-docs-3.1-es.json.br b/lib/search/indexes/github-docs-3.1-es.json.br index 042e13b6aa..0e440ea180 100644 --- a/lib/search/indexes/github-docs-3.1-es.json.br +++ b/lib/search/indexes/github-docs-3.1-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:742b7f4067a1f96617cae7bc2d3f2a3e59a59355908dbd60b9befe601c6cb771 -size 2973461 +oid sha256:ab2ddbeb29ee8a63c13f5fa8ce75b3e9a4d52ea9b346b1354c06577623f6ed7b +size 2973572 diff --git a/lib/search/indexes/github-docs-3.1-ja-records.json.br b/lib/search/indexes/github-docs-3.1-ja-records.json.br index 11970924ac..0643ce8357 100644 --- a/lib/search/indexes/github-docs-3.1-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.1-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5ac2d071e87066ee1634fa2fe98819c4d0df7a366d0a2cdcaa166af1b823b4f1 -size 751614 +oid sha256:58700cbbf9b75e9c2376a9624f3479e9b0c66004e0f8160998cec237b1e8b775 +size 751708 diff --git a/lib/search/indexes/github-docs-3.1-ja.json.br b/lib/search/indexes/github-docs-3.1-ja.json.br index 406d46c570..679f75131c 100644 --- a/lib/search/indexes/github-docs-3.1-ja.json.br +++ b/lib/search/indexes/github-docs-3.1-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a9ba57351509d58435a2638551b7840a937a83b702b7234b0bc2ed11e2ccff17 -size 4134255 +oid sha256:ac08aac8772cff5dcb6369393ff8213f9fd68b0a948a90926cc5f78e812f858b +size 4133674 diff --git a/lib/search/indexes/github-docs-3.1-pt-records.json.br b/lib/search/indexes/github-docs-3.1-pt-records.json.br index d374ac18a1..98cd158c94 100644 --- a/lib/search/indexes/github-docs-3.1-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.1-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7092f4bfe042e1dfbaad5713725b44a599ea75a4a1dae9447b129879e403a1fa -size 674550 +oid sha256:ddb4b10b1c67944ab339c692bd7218521e5b5c284d2c13b2a6cd88ab3b70a6f9 +size 674581 diff --git a/lib/search/indexes/github-docs-3.1-pt.json.br b/lib/search/indexes/github-docs-3.1-pt.json.br index 517b188c7a..b153aec448 100644 --- a/lib/search/indexes/github-docs-3.1-pt.json.br +++ b/lib/search/indexes/github-docs-3.1-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a85d4d0c85527125f5e8590d4b6c4ea58a8d52f641c0f34d966bd52dc6f356d3 -size 2875134 +oid sha256:de80b4cb86354e068dca6cc8d45fbfb955daaf5f281285f1adcd272aee581aab +size 2874541 diff --git a/lib/search/indexes/github-docs-3.2-cn-records.json.br b/lib/search/indexes/github-docs-3.2-cn-records.json.br index a8c9accdfb..d0778284f7 100644 --- a/lib/search/indexes/github-docs-3.2-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.2-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8ad670b4235d65e34a740f898092e5d97c5aa8a66371347a4154ad48349bc71d -size 762753 +oid sha256:9d5c229285a13601db4cd3e13dd32c97745b62de485dc737b4b09bb016d0100b +size 762742 diff --git a/lib/search/indexes/github-docs-3.2-cn.json.br b/lib/search/indexes/github-docs-3.2-cn.json.br index fdc4513233..b6f0cac901 100644 --- a/lib/search/indexes/github-docs-3.2-cn.json.br +++ b/lib/search/indexes/github-docs-3.2-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e50c965c227d14ca06ea2c61513cdd55c76867fdf91af78be2f6c83ad0abc97a -size 1603012 +oid sha256:bb814632ce303309862cd5c21d8113e43103e334e9a1e048bd1f911964f0c445 +size 1603111 diff --git a/lib/search/indexes/github-docs-3.2-en-records.json.br b/lib/search/indexes/github-docs-3.2-en-records.json.br index 7397703116..22510947c1 100644 --- a/lib/search/indexes/github-docs-3.2-en-records.json.br +++ b/lib/search/indexes/github-docs-3.2-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:405791c308a1df7840da028cb1491b570d8d28902dc0891b078a55ab6dc20e88 -size 1034947 +oid sha256:cdfb9820e29c14e1e62c59ce79ad4100c021638fc2ee8aa847544c9b4bb35660 +size 1034923 diff --git a/lib/search/indexes/github-docs-3.2-en.json.br b/lib/search/indexes/github-docs-3.2-en.json.br index 697428aee3..4b1cb6e7ae 100644 --- a/lib/search/indexes/github-docs-3.2-en.json.br +++ b/lib/search/indexes/github-docs-3.2-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e8da156f9f386ca591bf99e0eb971314679a790401928e91c140167f707c04c3 -size 4154948 +oid sha256:3cf8c1b9f5c54d837df86796eb708b0178209618bb1cacc6063f8fd11a96a0a0 +size 4154823 diff --git a/lib/search/indexes/github-docs-3.2-es-records.json.br b/lib/search/indexes/github-docs-3.2-es-records.json.br index 03fd68b7b3..e036a4418e 100644 --- a/lib/search/indexes/github-docs-3.2-es-records.json.br +++ b/lib/search/indexes/github-docs-3.2-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:87573918c41682ba5f8eeedbb37c57b8baea18f83e8eff11f3a1ea77c12d8711 -size 704204 +oid sha256:040179662e9c12538dc4f368c92a639b598c8526b7c747fc1e16cae0e95458b7 +size 704133 diff --git a/lib/search/indexes/github-docs-3.2-es.json.br b/lib/search/indexes/github-docs-3.2-es.json.br index e3e9cb8f90..a8a72d4bdc 100644 --- a/lib/search/indexes/github-docs-3.2-es.json.br +++ b/lib/search/indexes/github-docs-3.2-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e7068d263e1cc0b75d6d262f4e5e028ffc76038e00ff3572b27130fa5d0a48d9 -size 3059373 +oid sha256:b8f3da483ad8e7104e01651cb17a16cf1af457442346694c0c4db70609af2433 +size 3059498 diff --git a/lib/search/indexes/github-docs-3.2-ja-records.json.br b/lib/search/indexes/github-docs-3.2-ja-records.json.br index d7c3395c20..1f98d2ae91 100644 --- a/lib/search/indexes/github-docs-3.2-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.2-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0b4cceb7210f7ae5a9bb01b599adba76ff95ea04ac43d6a9fa018cdd2bf1ee0d -size 772457 +oid sha256:d286f418e3370fe5a587e4662161c108b7d7d6215cc88234898f4d16f6ba8e56 +size 772454 diff --git a/lib/search/indexes/github-docs-3.2-ja.json.br b/lib/search/indexes/github-docs-3.2-ja.json.br index a8ee82174f..7d2c974fe9 100644 --- a/lib/search/indexes/github-docs-3.2-ja.json.br +++ b/lib/search/indexes/github-docs-3.2-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b1e9c97aff60b08fe67cab8ebb8182bf587a6922fa8970667ccfbc3d4d5cbdd2 -size 4251350 +oid sha256:2073fc0dd88df2f7709965ca5ce20eb66a177197c8236cffeb9930873c80b344 +size 4251104 diff --git a/lib/search/indexes/github-docs-3.2-pt-records.json.br b/lib/search/indexes/github-docs-3.2-pt-records.json.br index b37a0dbabd..06dc369248 100644 --- a/lib/search/indexes/github-docs-3.2-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.2-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d7910f32ab363c9636b2787e4fab8e661677d5335247d2496fb233abe02cde59 -size 694015 +oid sha256:ba75ec50c6fd986736c4437d9b15f66e93bc897fb4b512b0afb566d159209716 +size 693985 diff --git a/lib/search/indexes/github-docs-3.2-pt.json.br b/lib/search/indexes/github-docs-3.2-pt.json.br index c342f117f4..d194a272b7 100644 --- a/lib/search/indexes/github-docs-3.2-pt.json.br +++ b/lib/search/indexes/github-docs-3.2-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9b071e3657026a7e5cf9755321a9d32bee2bf4765c0fc47c2982d728e3ed05c4 -size 2954353 +oid sha256:14f11cb28ac23a5da0d7a4f874ff7f2e1861cc468566f6bd0ac19f4c3415bbfa +size 2954128 diff --git a/lib/search/indexes/github-docs-3.3-cn-records.json.br b/lib/search/indexes/github-docs-3.3-cn-records.json.br index f2f248268a..c1228848f7 100644 --- a/lib/search/indexes/github-docs-3.3-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.3-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b2cd5322d50060a05a456c7ec2fa13df48f330e65d23a40f1c66f563c398fa5f -size 786390 +oid sha256:55f3e0e8b3be8f0f57eb2221e84a63a6d634e7873cf9c09626da6c147c4e048f +size 786273 diff --git a/lib/search/indexes/github-docs-3.3-cn.json.br b/lib/search/indexes/github-docs-3.3-cn.json.br index aa05dd6f98..43ff145585 100644 --- a/lib/search/indexes/github-docs-3.3-cn.json.br +++ b/lib/search/indexes/github-docs-3.3-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2570f53cf55786c58465e26f3751033bd59cd720e235aa5d69633673a6d4e19c -size 1644201 +oid sha256:d998e427e0670777a2dad05b789e9940c012d56641731cfa944d07b3cbdf7740 +size 1644024 diff --git a/lib/search/indexes/github-docs-3.3-en-records.json.br b/lib/search/indexes/github-docs-3.3-en-records.json.br index 692644a728..1b5af95c05 100644 --- a/lib/search/indexes/github-docs-3.3-en-records.json.br +++ b/lib/search/indexes/github-docs-3.3-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:170a6fe4637324bdd9091089c2b1e10d2d52330cd9522aa0acf71541d8c5bcc5 -size 1069647 +oid sha256:febf5a29055b4314b5845305c449dea49dca5250efb3f55db7d8e926fc67276c +size 1069627 diff --git a/lib/search/indexes/github-docs-3.3-en.json.br b/lib/search/indexes/github-docs-3.3-en.json.br index 8bd38ceb3e..deb84a5e9f 100644 --- a/lib/search/indexes/github-docs-3.3-en.json.br +++ b/lib/search/indexes/github-docs-3.3-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5d2a935fce89167d2f8514788fb644c80813ec3a7df9e547e1f59d6629c81b1e -size 4250444 +oid sha256:c030d8f4aba89b96b5290ef1c420ddd8cc88bf56e72a2e3cd1ab62b5310615f7 +size 4250810 diff --git a/lib/search/indexes/github-docs-3.3-es-records.json.br b/lib/search/indexes/github-docs-3.3-es-records.json.br index df400efc7a..d9ef4bb499 100644 --- a/lib/search/indexes/github-docs-3.3-es-records.json.br +++ b/lib/search/indexes/github-docs-3.3-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c624a96b032ec49dddd3af208c437195695b11900a1ea0efd6ac2401904b091e -size 723985 +oid sha256:3ccd98b7b9517caa51803eea4190c127fc74da4261101d07ccd43bd530abe528 +size 723861 diff --git a/lib/search/indexes/github-docs-3.3-es.json.br b/lib/search/indexes/github-docs-3.3-es.json.br index 4ac1c3acea..5b5cf21efd 100644 --- a/lib/search/indexes/github-docs-3.3-es.json.br +++ b/lib/search/indexes/github-docs-3.3-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:122c15435ada7e73d37c0e086a730ea29bb6304ffedb265bb75db3cd0a9506de -size 3139940 +oid sha256:7bd8c2cd61dad31c3fcc0054ec535307b93e446cd65a80c98e3ad8f13a37a7a6 +size 3139752 diff --git a/lib/search/indexes/github-docs-3.3-ja-records.json.br b/lib/search/indexes/github-docs-3.3-ja-records.json.br index 9003ee8287..0ffc86adc4 100644 --- a/lib/search/indexes/github-docs-3.3-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.3-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:48454dc8d20bce2f793bf2842225f63ef71dd5e702bf7746b07c8c2049a9d6de -size 796023 +oid sha256:21ccded587f2e69e9548302ec054ebfed9e26ab428f9ba00b692e283506fe1a7 +size 796053 diff --git a/lib/search/indexes/github-docs-3.3-ja.json.br b/lib/search/indexes/github-docs-3.3-ja.json.br index c73b4fc120..19e3644ab5 100644 --- a/lib/search/indexes/github-docs-3.3-ja.json.br +++ b/lib/search/indexes/github-docs-3.3-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5b8b10cb0d647e5e8d3d4953ecfba46d17d1e381887d8a0b8ccf415b00ef8015 -size 4369720 +oid sha256:59e3d93ebddc03692651f4a270008db7226d0998dda8db45c605761f0859c828 +size 4370186 diff --git a/lib/search/indexes/github-docs-3.3-pt-records.json.br b/lib/search/indexes/github-docs-3.3-pt-records.json.br index 5e1b6aa879..76755f4c7e 100644 --- a/lib/search/indexes/github-docs-3.3-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.3-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cb93496dde71c5aab9ae6f1a6ead88a5da34dd1f29c611f28a4470f83043b3dd -size 713769 +oid sha256:a143543f6bb666a0dd08de2dfdfca6667e3ef366e90325f342983878ca581e33 +size 713599 diff --git a/lib/search/indexes/github-docs-3.3-pt.json.br b/lib/search/indexes/github-docs-3.3-pt.json.br index 93338704a7..82215e374b 100644 --- a/lib/search/indexes/github-docs-3.3-pt.json.br +++ b/lib/search/indexes/github-docs-3.3-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7f7b1ab77c46a340c1734b162528fb30cda6ea531d4a6e3807935e7cb52399f9 -size 3033813 +oid sha256:b1aad2b249bcef93f729bade974b2aede636e8ba3e6e6916409350354be231c3 +size 3032909 diff --git a/lib/search/indexes/github-docs-3.4-cn-records.json.br b/lib/search/indexes/github-docs-3.4-cn-records.json.br index 3ca132dc80..02f07b1d48 100644 --- a/lib/search/indexes/github-docs-3.4-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.4-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7c8fee53c859c8e4cf9304542c32f73db53e1694845f4eb488b4f45251cfe56f -size 788264 +oid sha256:b8fc8db4924220cfa2130477bf9adb29771f3c082a1ed6d9d79fbb29cff7b70d +size 788137 diff --git a/lib/search/indexes/github-docs-3.4-cn.json.br b/lib/search/indexes/github-docs-3.4-cn.json.br index 2ae6ba6e79..d67fb56634 100644 --- a/lib/search/indexes/github-docs-3.4-cn.json.br +++ b/lib/search/indexes/github-docs-3.4-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:863bc28fe15e50c45faaf6f5740cdfe9abc1f64365867222069c4fb6126f426e -size 1655799 +oid sha256:087b18b3fd2cea379b84db4f12f558352f3a866390bfbbad3e3bc60fae68e355 +size 1656128 diff --git a/lib/search/indexes/github-docs-3.4-en-records.json.br b/lib/search/indexes/github-docs-3.4-en-records.json.br index 80e1bf8558..cede6b6d9f 100644 --- a/lib/search/indexes/github-docs-3.4-en-records.json.br +++ b/lib/search/indexes/github-docs-3.4-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f77985f5119f23e7cf0d43bff706944a5552e152821d657dde853718dfa387ac -size 1078903 +oid sha256:98476e4da5fb5ffc14ddd82828223ce3836e1ca051587ef3dbcc4e39f49d4370 +size 1078786 diff --git a/lib/search/indexes/github-docs-3.4-en.json.br b/lib/search/indexes/github-docs-3.4-en.json.br index db832333d1..56aca2c932 100644 --- a/lib/search/indexes/github-docs-3.4-en.json.br +++ b/lib/search/indexes/github-docs-3.4-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b976cb5c38086190c26eb024ffe627b63e5007798358c308c1136e0b01387a30 -size 4291799 +oid sha256:81a6da773b22a9876cd922e984095fb0d966dcd3f1320c94295b0fcf688729e9 +size 4291144 diff --git a/lib/search/indexes/github-docs-3.4-es-records.json.br b/lib/search/indexes/github-docs-3.4-es-records.json.br index 1ac36d5f33..c69e6ad682 100644 --- a/lib/search/indexes/github-docs-3.4-es-records.json.br +++ b/lib/search/indexes/github-docs-3.4-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d15ed61b4634c0c7b223d08755da13cb37b57903cff73f88daf4a22ed913420e -size 727401 +oid sha256:7c5703dcebdca429ec602ef4cbc2b6907810186261db3bdeb24e0e19d80cf8d6 +size 727345 diff --git a/lib/search/indexes/github-docs-3.4-es.json.br b/lib/search/indexes/github-docs-3.4-es.json.br index 41e1dd1f7c..804cd49432 100644 --- a/lib/search/indexes/github-docs-3.4-es.json.br +++ b/lib/search/indexes/github-docs-3.4-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:459c351fe33febbc4da59383fdfacf0b162de5c933b7e4734c2acb09f218e27d -size 3158695 +oid sha256:321112fcf06010fcd2e62d0ccf86d3823ddabd9651840c0dfd4242987039d71e +size 3158627 diff --git a/lib/search/indexes/github-docs-3.4-ja-records.json.br b/lib/search/indexes/github-docs-3.4-ja-records.json.br index d7c6a0dcba..ae07933d86 100644 --- a/lib/search/indexes/github-docs-3.4-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.4-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:68de04426fbc7ff8e59a844b6ee3f3f842b30d2a1acda46a6b5d8c5ddabf24bb -size 798683 +oid sha256:24bcb9bc40b2a7835fe8309a6b1e9364a44adc78e67e11166622b567211ad604 +size 798599 diff --git a/lib/search/indexes/github-docs-3.4-ja.json.br b/lib/search/indexes/github-docs-3.4-ja.json.br index 453de1df51..c1f088040a 100644 --- a/lib/search/indexes/github-docs-3.4-ja.json.br +++ b/lib/search/indexes/github-docs-3.4-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:096ed5000a1ee6f2a02010e0aa8d4135dae0ecb0edeeed9a10b46dfe1b04bcb4 -size 4394362 +oid sha256:6eae6b4edeeb7b3b1e9c2009265ca89616ac0936065f1bc2bd55fe9b0b8da0b1 +size 4395289 diff --git a/lib/search/indexes/github-docs-3.4-pt-records.json.br b/lib/search/indexes/github-docs-3.4-pt-records.json.br index 0c0e43762b..a5f4640230 100644 --- a/lib/search/indexes/github-docs-3.4-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.4-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:049e62e838fa8ae3626aa23e735d3ea389e55fcbabaa90cfed283126570d59a3 -size 716831 +oid sha256:83139e2f8013aa76527e8a5ca6203b48481570b954bfbaa7502764dab61c6077 +size 716908 diff --git a/lib/search/indexes/github-docs-3.4-pt.json.br b/lib/search/indexes/github-docs-3.4-pt.json.br index ffcef18e1f..c6d0d066ff 100644 --- a/lib/search/indexes/github-docs-3.4-pt.json.br +++ b/lib/search/indexes/github-docs-3.4-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0e717a7e67b9d46541af406f0838a493155a1f5d6763a5111fd080a5600571d9 -size 3052851 +oid sha256:d92d315791e09124906ec615f5fb44e4570f8489372af5f40d920e9e911863f8 +size 3052975 diff --git a/lib/search/indexes/github-docs-3.5-cn-records.json.br b/lib/search/indexes/github-docs-3.5-cn-records.json.br index da5c93e5f9..1c28035024 100644 --- a/lib/search/indexes/github-docs-3.5-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.5-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9176694627453e109350f1be57348c12e575bdcd8e449ad5adcd930894c80064 -size 816702 +oid sha256:c6af562a1320a7afe7944b27ad36e302b957331c8b6c1fa5f48cfe60b422ca26 +size 816671 diff --git a/lib/search/indexes/github-docs-3.5-cn.json.br b/lib/search/indexes/github-docs-3.5-cn.json.br index 48f79c23fc..8b9a67009b 100644 --- a/lib/search/indexes/github-docs-3.5-cn.json.br +++ b/lib/search/indexes/github-docs-3.5-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:922139ddd24e05338ea9dc6d0dfee73149fe8a0ee49cdd7012d5c22491dbec39 -size 1723737 +oid sha256:22815db71a4129d2bd72c8e620117ef3583f0ff4aa9e6f53d01408c4dc1206d4 +size 1723684 diff --git a/lib/search/indexes/github-docs-3.5-en-records.json.br b/lib/search/indexes/github-docs-3.5-en-records.json.br index a6e364d8b5..4491aae698 100644 --- a/lib/search/indexes/github-docs-3.5-en-records.json.br +++ b/lib/search/indexes/github-docs-3.5-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1fa736fa7888f69d5d2207ffd5a32ea507ebf1a342e20b344dcb5c668dd3a4fa -size 1116932 +oid sha256:95736d7a8b327161cc424123b52711ba62c1c7de27c1fa28ecf514bd262fe43e +size 1116845 diff --git a/lib/search/indexes/github-docs-3.5-en.json.br b/lib/search/indexes/github-docs-3.5-en.json.br index 6f381fc8b0..52b1b06823 100644 --- a/lib/search/indexes/github-docs-3.5-en.json.br +++ b/lib/search/indexes/github-docs-3.5-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:941f9f6d4725da620d1982f202fcac3b438ca1696b7ca9b000511ccdf225682c -size 4450043 +oid sha256:14a1db9534aaf641feb229064f178268f1711fb796eee6ea33dbdb864271dc8e +size 4449919 diff --git a/lib/search/indexes/github-docs-3.5-es-records.json.br b/lib/search/indexes/github-docs-3.5-es-records.json.br index f33c6ee51e..95e0506107 100644 --- a/lib/search/indexes/github-docs-3.5-es-records.json.br +++ b/lib/search/indexes/github-docs-3.5-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:82766ba9fed493add6312da15f7e04335d0bfaf08c4a704276588939f25b5028 -size 750255 +oid sha256:074ba51f8ef4e6c68aa003ab3b0621835ce6cea65a2919ca5a8ee8ab9c376c07 +size 750212 diff --git a/lib/search/indexes/github-docs-3.5-es.json.br b/lib/search/indexes/github-docs-3.5-es.json.br index b0daab5c7a..08af951b10 100644 --- a/lib/search/indexes/github-docs-3.5-es.json.br +++ b/lib/search/indexes/github-docs-3.5-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2c6c43de2014c56595d2bd46d1198e00735220d802b02327c986af060a31e4e8 -size 3272580 +oid sha256:c8ddf51ec6b2b9e1ade829057512000f1253f1751b0d56da05454257a477f9aa +size 3272851 diff --git a/lib/search/indexes/github-docs-3.5-ja-records.json.br b/lib/search/indexes/github-docs-3.5-ja-records.json.br index bab6a66ec0..c72c52958c 100644 --- a/lib/search/indexes/github-docs-3.5-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.5-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c70a11389b253ad7edaaecbca6247b8767fcfeccc916953db7f4d20300e3fb7d -size 823999 +oid sha256:1240dafd5cfc3493e41849f26c15ee79f1302e4fd1d4ef942cd87ab25a6bc059 +size 824015 diff --git a/lib/search/indexes/github-docs-3.5-ja.json.br b/lib/search/indexes/github-docs-3.5-ja.json.br index bf68e584c6..fa067bd538 100644 --- a/lib/search/indexes/github-docs-3.5-ja.json.br +++ b/lib/search/indexes/github-docs-3.5-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a465820ba445d144ba20870af40a087dfa025fd1d07e4e9556835656248ee152 -size 4553580 +oid sha256:42044ff5e0c7257e33c2e1e742baaf5ba803da05acd47f0407381c948575be44 +size 4553323 diff --git a/lib/search/indexes/github-docs-3.5-pt-records.json.br b/lib/search/indexes/github-docs-3.5-pt-records.json.br index 06a0ff2e41..366ccf9259 100644 --- a/lib/search/indexes/github-docs-3.5-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.5-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2a5d1c67cadfd5b90646fda9eda099ac14c708ad54f94843c2f02141d032124f -size 738940 +oid sha256:2eb40e671c4946b490eaa6f50dd9e1647603ad25de6d6d5ce5c1f60668b54969 +size 738880 diff --git a/lib/search/indexes/github-docs-3.5-pt.json.br b/lib/search/indexes/github-docs-3.5-pt.json.br index 154122f99d..1904db1cb2 100644 --- a/lib/search/indexes/github-docs-3.5-pt.json.br +++ b/lib/search/indexes/github-docs-3.5-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:065110e27de91b4ad3ddd1e164ddb7f3297da3d6777082e97cc49f498fdd99c0 -size 3159899 +oid sha256:5f5db7fb0771cf8fea3b0ff3ed6d2d00b026db97d177cda09302f5b208acb9b1 +size 3159839 diff --git a/lib/search/indexes/github-docs-dotcom-cn-records.json.br b/lib/search/indexes/github-docs-dotcom-cn-records.json.br index b8c1640772..c816a97b55 100644 --- a/lib/search/indexes/github-docs-dotcom-cn-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ce667c3afa702a2cff64fd52db368d45f9ab0f9dbf540adb1c630340e424ae07 -size 983392 +oid sha256:d5a4b39025db55fcfc0346a0006464b958e5a5dbaebe9f5fc6f10aa3988141e4 +size 983333 diff --git a/lib/search/indexes/github-docs-dotcom-cn.json.br b/lib/search/indexes/github-docs-dotcom-cn.json.br index 11afb61e7c..3403de8e50 100644 --- a/lib/search/indexes/github-docs-dotcom-cn.json.br +++ b/lib/search/indexes/github-docs-dotcom-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9973c397dfa47c29f7a425b873e65427a4c1a524fa69543c49eaeaf2f0fcc213 -size 1720660 +oid sha256:82bf8b1cdf9f559931fe25c14007acc1511fa533feca45ad0b564f41f783c163 +size 1720572 diff --git a/lib/search/indexes/github-docs-dotcom-en-records.json.br b/lib/search/indexes/github-docs-dotcom-en-records.json.br index 41f475511a..f9b7a696c5 100644 --- a/lib/search/indexes/github-docs-dotcom-en-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:82cb4ed85b583adeee8b405dc105469e84141a896e5e2493259d67b8d97a8aa9 -size 1351525 +oid sha256:a808ecf8d8fc5fa7cbd84c6643d8661e5dd0b83e69580702428831be7a8f16f9 +size 1351524 diff --git a/lib/search/indexes/github-docs-dotcom-en.json.br b/lib/search/indexes/github-docs-dotcom-en.json.br index 48e5a29670..10deddf978 100644 --- a/lib/search/indexes/github-docs-dotcom-en.json.br +++ b/lib/search/indexes/github-docs-dotcom-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7c47dc3c5354ed78f7923e54df707424ae019b509661be4f2764e00b294b7b61 -size 5100335 +oid sha256:d85324d316a2b395de6f98557af40683adbea063bab969e783b7704e438d148f +size 5100753 diff --git a/lib/search/indexes/github-docs-dotcom-es-records.json.br b/lib/search/indexes/github-docs-dotcom-es-records.json.br index 585bce452d..f1f3537c17 100644 --- a/lib/search/indexes/github-docs-dotcom-es-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:84117bb87a0954a8211cd857fbfc41d46650f15fb83962abf4dd3a3e4c8ec75b -size 886905 +oid sha256:4bedb12cdcbc5b7d61093ca70fbc6397e5a3c8657fe044073c3938d8002e6f18 +size 886782 diff --git a/lib/search/indexes/github-docs-dotcom-es.json.br b/lib/search/indexes/github-docs-dotcom-es.json.br index 82abed50d9..ab4704782f 100644 --- a/lib/search/indexes/github-docs-dotcom-es.json.br +++ b/lib/search/indexes/github-docs-dotcom-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e024b2185e739a983b585f63dad9b7f8dd17dc2e1fa43667f1a9b5db0c905d63 -size 3676439 +oid sha256:e193de2c12c3963cddfe1bc6a2513412abee5e55aadd5b5ebbd37fb60e41cc62 +size 3676619 diff --git a/lib/search/indexes/github-docs-dotcom-ja-records.json.br b/lib/search/indexes/github-docs-dotcom-ja-records.json.br index 83a4404655..240a58e7cf 100644 --- a/lib/search/indexes/github-docs-dotcom-ja-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6e96efd110aa17452ad48c9b5703fcee4e81b0c9048e82edf8ee20b4cdc9db6f -size 986025 +oid sha256:a8851d2b7f45749391806967828b42f431c99d99eb0f5e8d1b192ad5489d6198 +size 986018 diff --git a/lib/search/indexes/github-docs-dotcom-ja.json.br b/lib/search/indexes/github-docs-dotcom-ja.json.br index dee55b33ec..18bf18e46d 100644 --- a/lib/search/indexes/github-docs-dotcom-ja.json.br +++ b/lib/search/indexes/github-docs-dotcom-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:98b33562d2dd5e3460dcdfe276f5578c83a4dffe538914e383a8c9658253e81b -size 5229181 +oid sha256:5ca31c3731adf88d6cab9bf3626bf6596ab022a55bcfc64d65e5a5cefeff847b +size 5229169 diff --git a/lib/search/indexes/github-docs-dotcom-pt-records.json.br b/lib/search/indexes/github-docs-dotcom-pt-records.json.br index 92b0e3a0e9..385e9503ba 100644 --- a/lib/search/indexes/github-docs-dotcom-pt-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:51cb5e40a8cbb3dbfb5fbb31ef42ccf6f24de4a585e994a1c35d05647e0c6e4b -size 875235 +oid sha256:7bf0f2b1685edb36d40a0f461ebee923cc25a3e55cdf7327f651eb5885ba0464 +size 875344 diff --git a/lib/search/indexes/github-docs-dotcom-pt.json.br b/lib/search/indexes/github-docs-dotcom-pt.json.br index f96432e82e..636d5da45e 100644 --- a/lib/search/indexes/github-docs-dotcom-pt.json.br +++ b/lib/search/indexes/github-docs-dotcom-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fffbbdf55974ed9d01b52bfd3c467004b54269d274dc82e19e2af994087b82d4 -size 3576682 +oid sha256:b46878203e82a6b64bcf88763ffe5f89fcb08df53d1691859e6cafcb77e7b7f5 +size 3576288 diff --git a/lib/search/indexes/github-docs-ghae-cn-records.json.br b/lib/search/indexes/github-docs-ghae-cn-records.json.br index de3b8e23d4..0a52b52d2d 100644 --- a/lib/search/indexes/github-docs-ghae-cn-records.json.br +++ b/lib/search/indexes/github-docs-ghae-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a3403620d35d41d21f6c50d6f9780f074432b653f73dcdf92e323c8167b38e26 -size 625831 +oid sha256:d4d4da848da797673a15752cfc736c9f5b25532adb9761e7760b0da7ca62c926 +size 625857 diff --git a/lib/search/indexes/github-docs-ghae-cn.json.br b/lib/search/indexes/github-docs-ghae-cn.json.br index 0307279648..5105e6b61b 100644 --- a/lib/search/indexes/github-docs-ghae-cn.json.br +++ b/lib/search/indexes/github-docs-ghae-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1ee40463b0acf6e57e1ae9086e5657f4f503f80fa0e66f780a247ef707c47b11 -size 1268614 +oid sha256:4ab4d7fe1e9ea8718e5c5f43d307ee86246046de2c78a7a798bccf9495625985 +size 1268744 diff --git a/lib/search/indexes/github-docs-ghae-en-records.json.br b/lib/search/indexes/github-docs-ghae-en-records.json.br index 19738f5076..7f1753f64d 100644 --- a/lib/search/indexes/github-docs-ghae-en-records.json.br +++ b/lib/search/indexes/github-docs-ghae-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:45c56309c4d7697b8c7f73804e1cdaf74f1bb2757cd52131fbcf9fe122bdfbca -size 868047 +oid sha256:e7617ffd7c052cfac68b219af15d9f271914b15a4346f36aad20e42c30786727 +size 867992 diff --git a/lib/search/indexes/github-docs-ghae-en.json.br b/lib/search/indexes/github-docs-ghae-en.json.br index 60cb154d61..2ef7c8d1c5 100644 --- a/lib/search/indexes/github-docs-ghae-en.json.br +++ b/lib/search/indexes/github-docs-ghae-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5f2a9fecfaca33cd45247f3143e71c921fde3953a047d80737007f446af6913f -size 3408360 +oid sha256:7573f9add19cee30c07b1e09bcd65f5765b451e49f7b854c7ba39c6802858614 +size 3408016 diff --git a/lib/search/indexes/github-docs-ghae-es-records.json.br b/lib/search/indexes/github-docs-ghae-es-records.json.br index 8887d9125c..00c861bf16 100644 --- a/lib/search/indexes/github-docs-ghae-es-records.json.br +++ b/lib/search/indexes/github-docs-ghae-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:af9bd26fde5debe98594fdaa84e2fbe98f492004532f5805a0b47d1f0a60ad56 -size 582897 +oid sha256:c4fbb392faddedbd10e56872c3b8ac5314b606808480955f588629990fe78258 +size 582930 diff --git a/lib/search/indexes/github-docs-ghae-es.json.br b/lib/search/indexes/github-docs-ghae-es.json.br index c573b90ddb..d598e20ff2 100644 --- a/lib/search/indexes/github-docs-ghae-es.json.br +++ b/lib/search/indexes/github-docs-ghae-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7964103a52b99cdf0785c10ab74ba2c93093b22e6ffde0f10910332ab8f764d2 -size 2459039 +oid sha256:ca91688ba71e1895ccfab9826b0be5dcdfc0823757c9ccb2419832a6a38bf6cf +size 2458730 diff --git a/lib/search/indexes/github-docs-ghae-ja-records.json.br b/lib/search/indexes/github-docs-ghae-ja-records.json.br index fd29d98ff9..269764a0cd 100644 --- a/lib/search/indexes/github-docs-ghae-ja-records.json.br +++ b/lib/search/indexes/github-docs-ghae-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bfcde865c4db4243e6271baf1c67da57a981d28d5693bd061924fabdc25f7055 -size 635668 +oid sha256:651b9c44d156c7cc61a234a6c6ccf160c8ba58e8f660e7f86753313d4d25ef44 +size 635508 diff --git a/lib/search/indexes/github-docs-ghae-ja.json.br b/lib/search/indexes/github-docs-ghae-ja.json.br index 7626b333f1..6be57452dd 100644 --- a/lib/search/indexes/github-docs-ghae-ja.json.br +++ b/lib/search/indexes/github-docs-ghae-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2cd99151cfe067aac323ee8e1b49ef2ebab0dbc5cfeda73d00da4b675bfc3411 -size 3376313 +oid sha256:552821828146fd09250d6d0c60ecaf8175d5653635af52439031ed649c14194b +size 3375798 diff --git a/lib/search/indexes/github-docs-ghae-pt-records.json.br b/lib/search/indexes/github-docs-ghae-pt-records.json.br index 67b4ac6780..1fd0a55ef8 100644 --- a/lib/search/indexes/github-docs-ghae-pt-records.json.br +++ b/lib/search/indexes/github-docs-ghae-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fd7a73dd3b6d6478e50a92d7f1ee285b51c5f346b9f373f0a05f433a5faff0bc -size 575078 +oid sha256:53dc5fe8d6a2afe998ae36f9124433daf0861f8cba1892eada78faeb20475600 +size 574992 diff --git a/lib/search/indexes/github-docs-ghae-pt.json.br b/lib/search/indexes/github-docs-ghae-pt.json.br index 4b1329b705..ad2a09398b 100644 --- a/lib/search/indexes/github-docs-ghae-pt.json.br +++ b/lib/search/indexes/github-docs-ghae-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:11471cacebf365592b5d30012d6074d231fd22ec44aa1372d632fc4bb05d70a5 -size 2353912 +oid sha256:58f31def94fa6665f0484a031b1d1f9a839d027db625290de19aa1116e91f69b +size 2354131 diff --git a/lib/search/indexes/github-docs-ghec-cn-records.json.br b/lib/search/indexes/github-docs-ghec-cn-records.json.br index b5eb1cd235..544509ed76 100644 --- a/lib/search/indexes/github-docs-ghec-cn-records.json.br +++ b/lib/search/indexes/github-docs-ghec-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b3b629b1f8e89b0615efdc38de78bd50c3f4e704159662265bb208c799add33f -size 947135 +oid sha256:3a6e4a421fa46531d4f275c256d7a2b8aaf406da5e86182b6067b505326c6ad5 +size 947212 diff --git a/lib/search/indexes/github-docs-ghec-cn.json.br b/lib/search/indexes/github-docs-ghec-cn.json.br index 362f522afc..e1d2716d16 100644 --- a/lib/search/indexes/github-docs-ghec-cn.json.br +++ b/lib/search/indexes/github-docs-ghec-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bb8a3786e1a6591ff7250cc568a7530d575ac6958a67ba67f1c2487b386e0cf1 -size 1840849 +oid sha256:504383adfb9220a984111654e4578c33903f66f44a62a27791b6a218020236e7 +size 1840891 diff --git a/lib/search/indexes/github-docs-ghec-en-records.json.br b/lib/search/indexes/github-docs-ghec-en-records.json.br index 517a050844..6821c6a62b 100644 --- a/lib/search/indexes/github-docs-ghec-en-records.json.br +++ b/lib/search/indexes/github-docs-ghec-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:978f37fdab4c9365afbaea2a1af0d0dd105d9092f2e6cb9bc52df91281e3474c -size 1280977 +oid sha256:9e9861869837030a9dc6d1774705291c3ce8dfbaf19b8b57787d26c9bba713e6 +size 1280681 diff --git a/lib/search/indexes/github-docs-ghec-en.json.br b/lib/search/indexes/github-docs-ghec-en.json.br index af5cc4de52..9dfbe64387 100644 --- a/lib/search/indexes/github-docs-ghec-en.json.br +++ b/lib/search/indexes/github-docs-ghec-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8d5d49ce48639f2c21d01ed4d073b049e17de03cccb3e6c159c5dcfcffd0804b -size 5075147 +oid sha256:d72c4626b9b5d649cf8ebe580e40621d7f8c28724852fa440e96a6f52d3d2d45 +size 5074901 diff --git a/lib/search/indexes/github-docs-ghec-es-records.json.br b/lib/search/indexes/github-docs-ghec-es-records.json.br index f9a9816b64..912fbef499 100644 --- a/lib/search/indexes/github-docs-ghec-es-records.json.br +++ b/lib/search/indexes/github-docs-ghec-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d3c71b74989616368bf435bbea057680b01cfaa12c82d730936467b467aa6338 -size 874379 +oid sha256:ca2feabe37784a3b98a41423c4a8411a654909007a3b290933b68d6e8a887dc8 +size 874432 diff --git a/lib/search/indexes/github-docs-ghec-es.json.br b/lib/search/indexes/github-docs-ghec-es.json.br index 613d947b25..c2adf4be02 100644 --- a/lib/search/indexes/github-docs-ghec-es.json.br +++ b/lib/search/indexes/github-docs-ghec-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2d2d7342b85677418f11bed3da7d75da422f23cdc56d4f8e5aff3599293c7148 -size 3772667 +oid sha256:7092aca8833d38875591b96e66cfb351229ccd1f9b895569ba9b823089aabf6b +size 3772301 diff --git a/lib/search/indexes/github-docs-ghec-ja-records.json.br b/lib/search/indexes/github-docs-ghec-ja-records.json.br index 9deabe192c..ee84872fe4 100644 --- a/lib/search/indexes/github-docs-ghec-ja-records.json.br +++ b/lib/search/indexes/github-docs-ghec-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1d8327b48a540822d74eab709f5c099d12543fa5510aa7f67949286602184042 -size 954467 +oid sha256:87990524c900b3f6fdd7e5d7c10ed119a4f37de6df1746fc616e0887505c9230 +size 954388 diff --git a/lib/search/indexes/github-docs-ghec-ja.json.br b/lib/search/indexes/github-docs-ghec-ja.json.br index 437c50a2e3..29262ec3e1 100644 --- a/lib/search/indexes/github-docs-ghec-ja.json.br +++ b/lib/search/indexes/github-docs-ghec-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cd73aebea25e77f62d347b25afee1938e2a04daf23aca7f3a2a6e43ed36e45cd -size 5275159 +oid sha256:8ab4b5b40ef6d93b59828d8ea78c91c1a403edce7e489857d076515098a3f486 +size 5274661 diff --git a/lib/search/indexes/github-docs-ghec-pt-records.json.br b/lib/search/indexes/github-docs-ghec-pt-records.json.br index ef1000221a..bb863f2b7e 100644 --- a/lib/search/indexes/github-docs-ghec-pt-records.json.br +++ b/lib/search/indexes/github-docs-ghec-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4a2f6b75ab4412228faf111560dd79ae76baffe4538cbd68f2a9c0a772136d4f -size 863420 +oid sha256:1160f1e7c02581db47603bb5b3410eded073d1c7533432c4d11e1622aacd11cb +size 863448 diff --git a/lib/search/indexes/github-docs-ghec-pt.json.br b/lib/search/indexes/github-docs-ghec-pt.json.br index 4eb5232a20..5268fa790e 100644 --- a/lib/search/indexes/github-docs-ghec-pt.json.br +++ b/lib/search/indexes/github-docs-ghec-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6e06dfb6fe69c38c0d8b5bc884f740472d4010fcbf44b535ff6f073474003393 -size 3666557 +oid sha256:ccbe8c492cb918a26d0ae3464c4611efc074104b82a22c7810e80a138ceb8b7f +size 3666501 From eaa75433aea418fb0533f0862fa922d03784b4fc Mon Sep 17 00:00:00 2001 From: docubot <67483024+docubot@users.noreply.github.com> Date: Thu, 16 Jun 2022 15:11:58 -0400 Subject: [PATCH 10/21] New translation batch for cn (#28539) * Add crowdin translations * Run script/i18n/homogenize-frontmatter.js * Run script/i18n/lint-translation-files.js --check rendering * run script/i18n/reset-files-with-broken-liquid-tags.js --language=cn * run script/i18n/reset-known-broken-translation-files.js * Check in cn CSV report Co-authored-by: Grace Park <gracepark@github.com> --- translations/log/cn-resets.csv | 15 +- .../index.md | 4 +- ...utions-and-achievements-on-your-profile.md | 12 +- .../setting-your-commit-email-address.md | 4 +- .../actions/learn-github-actions/contexts.md | 2 +- .../environment-variables.md | 2 +- ...he-dependency-graph-for-your-enterprise.md | 2 +- .../managing-github-connect.md | 2 +- .../configuring-a-hostname.md | 4 +- .../configuring-tls.md | 6 +- .../enabling-subdomain-isolation.md | 4 +- ...-enterprise-server-with-a-load-balancer.md | 2 +- .../accessing-the-management-console.md | 2 +- .../command-line-utilities.md | 18 +- .../configuring-backups-on-your-appliance.md | 2 +- .../configuring-email-for-notifications.md | 140 ++++++------- ...nabling-and-scheduling-maintenance-mode.md | 2 +- .../enabling-private-mode.md | 2 +- .../site-admin-dashboard.md | 16 +- .../configuring-a-repository-cache.md | 4 +- .../about-clustering.md | 4 +- ...een-clustering-and-high-availability-ha.md | 4 +- .../initializing-the-cluster.md | 8 +- .../about-geo-replication.md | 2 +- .../about-high-availability-configuration.md | 8 +- .../creating-a-high-availability-replica.md | 10 +- ...ng-a-failover-to-your-replica-appliance.md | 4 +- ...ering-a-high-availability-configuration.md | 2 +- .../accessing-the-monitor-dashboard.md | 8 +- .../setting-up-external-monitoring.md | 4 +- .../enabling-automatic-update-checks.md | 4 +- .../increasing-cpu-or-memory-resources.md | 2 +- .../increasing-storage-capacity.md | 8 +- .../index.md | 4 +- ...ng-from-github-enterprise-1110x-to-2123.md | 4 +- .../upgrade-requirements.md | 51 ++--- .../upgrading-github-enterprise-server.md | 18 +- ...ication-for-users-outside-your-provider.md | 2 +- ...f-your-identity-provider-is-unavailable.md | 2 +- ...-accounts-single-sign-on-recovery-codes.md | 10 +- ...for-your-idps-conditional-access-policy.md | 32 +-- ...uring-oidc-for-enterprise-managed-users.md | 16 +- .../index.md | 2 +- .../migrating-from-saml-to-oidc.md | 14 +- .../using-ldap.md | 10 +- ...saml-single-sign-on-for-your-enterprise.md | 2 +- .../saml-configuration-reference.md | 2 +- ...talling-github-enterprise-server-on-aws.md | 2 +- .../audit-log-events-for-your-enterprise.md | 2 +- ...es-in-the-audit-log-for-your-enterprise.md | 44 ++-- .../about-the-github-enterprise-api.md | 4 +- .../creating-a-pre-receive-hook-script.md | 190 +++++++++--------- ...-visibility-for-organization-membership.md | 2 +- .../creating-teams.md | 2 +- ...ctor-authentication-for-an-organization.md | 16 +- .../auditing-users-across-your-enterprise.md | 2 +- .../best-practices-for-user-security.md | 2 +- ...moting-or-demoting-a-site-administrator.md | 10 +- .../suspending-and-unsuspending-users.md | 4 +- ...rom-third-party-version-control-systems.md | 8 +- .../testing-your-ssh-connection.md | 6 + .../reviewing-your-security-log.md | 8 +- .../about-billing-for-codespaces.md | 1 - .../viewing-and-updating-dependabot-alerts.md | 62 ++++-- .../about-dependency-review.md | 12 +- .../configuring-dependency-review.md | 53 +++++ .../about-codespaces-prebuilds.md | 8 +- .../configuring-prebuilds.md | 26 ++- .../prebuilding-your-codespaces/index.md | 3 +- .../managing-prebuilds.md | 2 - .../testing-dev-container-changes.md | 2 - .../troubleshooting-prebuilds.md | 2 - .../webhooks/webhook-events-and-payloads.md | 28 +++ .../about-github-community-exchange.md | 6 +- .../reuse-an-assignment.md | 20 +- .../saving-repositories-with-stars.md | 10 + .../quickstart/contributing-to-projects.md | 2 +- .../get-started/quickstart/create-a-repo.md | 4 +- .../closing-an-issue.md | 14 +- .../managing-projects.md | 28 +-- ...ing-the-audit-log-for-your-organization.md | 8 +- .../about-github-pages.md | 2 +- .../working-with-pre-receive-hooks.md | 2 +- ...eleting-branches-within-your-repository.md | 23 ++- .../filtering-files-in-a-pull-request.md | 5 +- ...ng-dependency-changes-in-a-pull-request.md | 7 +- .../working-with-forks/syncing-a-fork.md | 8 +- ...sitory-is-deleted-or-changes-visibility.md | 2 +- .../about-commits.md | 22 ++ .../about-protected-branches.md | 2 +- .../setting-repository-visibility.md | 2 +- .../about-large-files-on-github.md | 2 +- .../configuring-git-large-file-storage.md | 2 +- .../endpoints-available-for-github-apps.md | 1 + .../zh-CN/content/rest/overview/libraries.md | 6 - .../permissions-required-for-github-apps.md | 2 +- .../github-privacy-statement.md | 2 +- .../providing-data-to-github-support.md | 2 +- .../zh-CN/data/features/commit-tree-view.yml | 8 + .../data/features/dependabot-bulk-alerts.yml | 7 + ...dependency-review-action-configuration.yml | 7 + .../data/features/ghas-enablement-webhook.yml | 7 + .../ghec/graphql_upcoming_changes.public.yml | 7 + .../graphql_upcoming_changes.public.yml | 7 + .../release-notes/enterprise-server/3-1/0.yml | 5 + .../enterprise-server/3-1/22.yml | 20 ++ .../release-notes/enterprise-server/3-2/0.yml | 5 + .../enterprise-server/3-2/14.yml | 23 +++ .../release-notes/enterprise-server/3-3/0.yml | 6 + .../release-notes/enterprise-server/3-3/9.yml | 26 +++ .../release-notes/enterprise-server/3-4/0.yml | 5 + .../release-notes/enterprise-server/3-4/2.yml | 6 - .../release-notes/enterprise-server/3-4/3.yml | 6 - .../release-notes/enterprise-server/3-4/4.yml | 34 ++++ .../release-notes/enterprise-server/3-5/0.yml | 5 +- .../release-notes/enterprise-server/3-5/1.yml | 32 +++ .../data/reusables/actions/ref-description.md | 1 + .../actions/supported-github-runners.md | 5 +- .../classroom/reuse-assignment-link.md | 2 +- .../about-billing-for-codespaces.md | 1 - .../codespaces/beta-functionality-limited.md | 5 - .../codespaces/billing-for-prebuilds.md | 6 +- .../codespaces/prebuilds-beta-note.md | 5 - .../reusables/codespaces/unsupported-repos.md | 1 - .../dependency-review-action-beta-note.md | 2 +- .../dependency-review-action-overview.md | 3 + .../limit_workflow_to_activity_types.md | 2 +- ...ns-packages-report-download-org-account.md | 2 +- .../download-recovery-codes.md | 2 +- .../load_balancer_dns.md | 2 +- .../replacing-a-cluster-node-mark-offline.md | 2 +- ...placing-a-cluster-node-need-three-nodes.md | 2 +- .../replacing-a-cluster-node-provision.md | 2 +- .../use_ghe_cluster_support_bundle.md | 2 +- .../enterprise_installation/download-note.md | 2 +- .../hardware-considerations-all-platforms.md | 2 +- ...save-settings-in-web-based-mgmt-console.md | 2 +- ...warning-on-upgrading-physical-resources.md | 2 +- .../test-domain-settings-failure.md | 2 +- .../maintenance-mode-status.md | 2 +- .../external_auth_disables_2fa.md | 2 +- .../ldap-sync-nested-teams.md | 2 +- .../notifications/access_watching.md | 2 +- .../reusables/projects/reopen-a-project.md | 4 +- .../repositories/navigate-to-branches.md | 2 +- .../set_your_email_address_in_git.md | 2 +- translations/zh-CN/data/variables/product.yml | 1 + 147 files changed, 906 insertions(+), 551 deletions(-) create mode 100644 translations/zh-CN/data/features/commit-tree-view.yml create mode 100644 translations/zh-CN/data/features/dependabot-bulk-alerts.yml create mode 100644 translations/zh-CN/data/features/dependency-review-action-configuration.yml create mode 100644 translations/zh-CN/data/features/ghas-enablement-webhook.yml create mode 100644 translations/zh-CN/data/release-notes/enterprise-server/3-1/22.yml create mode 100644 translations/zh-CN/data/release-notes/enterprise-server/3-2/14.yml create mode 100644 translations/zh-CN/data/release-notes/enterprise-server/3-3/9.yml create mode 100644 translations/zh-CN/data/release-notes/enterprise-server/3-4/4.yml create mode 100644 translations/zh-CN/data/release-notes/enterprise-server/3-5/1.yml create mode 100644 translations/zh-CN/data/reusables/actions/ref-description.md delete mode 100644 translations/zh-CN/data/reusables/codespaces/about-billing-for-codespaces.md delete mode 100644 translations/zh-CN/data/reusables/codespaces/beta-functionality-limited.md delete mode 100644 translations/zh-CN/data/reusables/codespaces/prebuilds-beta-note.md delete mode 100644 translations/zh-CN/data/reusables/codespaces/unsupported-repos.md create mode 100644 translations/zh-CN/data/reusables/dependency-review/dependency-review-action-overview.md diff --git a/translations/log/cn-resets.csv b/translations/log/cn-resets.csv index 691c388a60..2e2f151fa9 100644 --- a/translations/log/cn-resets.csv +++ b/translations/log/cn-resets.csv @@ -42,7 +42,6 @@ translations/zh-CN/content/admin/configuration/configuring-your-enterprise/acces translations/zh-CN/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md,broken liquid tags translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance.md,broken liquid tags translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-custom-footers.md,broken liquid tags -translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications.md,broken liquid tags translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-github-pages-for-your-enterprise.md,broken liquid tags translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md,broken liquid tags translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-the-referrer-policy-for-your-enterprise.md,broken liquid tags @@ -50,7 +49,6 @@ translations/zh-CN/content/admin/configuration/configuring-your-enterprise/deplo translations/zh-CN/content/admin/configuration/configuring-your-enterprise/managing-github-mobile-for-your-enterprise.md,broken liquid tags translations/zh-CN/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md,broken liquid tags translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-cpu-or-memory-resources.md,broken liquid tags -translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrade-requirements.md,broken liquid tags translations/zh-CN/content/admin/github-actions/advanced-configuration-and-troubleshooting/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled.md,broken liquid tags translations/zh-CN/content/admin/github-actions/advanced-configuration-and-troubleshooting/index.md,broken liquid tags translations/zh-CN/content/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise.md,broken liquid tags @@ -77,9 +75,11 @@ translations/zh-CN/content/admin/identity-and-access-management/index.md,renderi translations/zh-CN/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise.md,broken liquid tags translations/zh-CN/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md,broken liquid tags translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users.md,broken liquid tags +translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-oidc-for-enterprise-managed-users.md,broken liquid tags translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-scim-provisioning-for-enterprise-managed-users-with-okta.md,broken liquid tags translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-scim-provisioning-for-enterprise-managed-users.md,broken liquid tags translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/managing-team-memberships-with-identity-provider-groups.md,broken liquid tags +translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc.md,broken liquid tags translations/zh-CN/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-saml-single-sign-on-for-your-enterprise.md,broken liquid tags translations/zh-CN/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-user-provisioning-for-your-enterprise.md,broken liquid tags translations/zh-CN/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/index.md,broken liquid tags @@ -100,7 +100,6 @@ translations/zh-CN/content/admin/packages/getting-started-with-github-packages-f translations/zh-CN/content/admin/packages/quickstart-for-configuring-your-minio-storage-bucket-for-github-packages.md,broken liquid tags translations/zh-CN/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-advanced-security-in-your-enterprise.md,broken liquid tags translations/zh-CN/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise.md,broken liquid tags -translations/zh-CN/content/admin/policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-script.md,broken liquid tags translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/creating-teams.md,broken liquid tags translations/zh-CN/content/admin/user-management/managing-repositories-in-your-enterprise/configuring-git-large-file-storage-for-your-enterprise.md,broken liquid tags translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/promoting-or-demoting-a-site-administrator.md,broken liquid tags @@ -206,6 +205,7 @@ translations/zh-CN/content/discussions/collaborating-with-your-community-using-d translations/zh-CN/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-campus-advisors.md,broken liquid tags translations/zh-CN/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-github-campus-program.md,broken liquid tags translations/zh-CN/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/index.md,broken liquid tags +translations/zh-CN/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-for-your-schoolwork/about-github-community-exchange.md,broken liquid tags translations/zh-CN/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-for-your-schoolwork/why-wasnt-my-application-for-a-student-developer-pack-approved.md,broken liquid tags translations/zh-CN/content/education/manage-coursework-with-github-classroom/integrate-github-classroom-with-an-ide/about-using-makecode-arcade-with-github-classroom.md,broken liquid tags translations/zh-CN/content/education/manage-coursework-with-github-classroom/integrate-github-classroom-with-an-ide/using-github-codespaces-with-github-classroom.md,broken liquid tags @@ -314,6 +314,7 @@ translations/zh-CN/data/release-notes/enterprise-server/3-1/19.yml,broken liquid translations/zh-CN/data/release-notes/enterprise-server/3-1/2.yml,broken liquid tags translations/zh-CN/data/release-notes/enterprise-server/3-1/20.yml,broken liquid tags translations/zh-CN/data/release-notes/enterprise-server/3-1/21.yml,broken liquid tags +translations/zh-CN/data/release-notes/enterprise-server/3-1/22.yml,broken liquid tags translations/zh-CN/data/release-notes/enterprise-server/3-1/3.yml,broken liquid tags translations/zh-CN/data/release-notes/enterprise-server/3-1/4.yml,broken liquid tags translations/zh-CN/data/release-notes/enterprise-server/3-1/5.yml,broken liquid tags @@ -347,14 +348,14 @@ translations/zh-CN/data/reusables/dependabot/dependabot-alerts-dependency-graph- translations/zh-CN/data/reusables/dependabot/enterprise-enable-dependabot.md,broken liquid tags translations/zh-CN/data/reusables/dotcom_billing/downgrade-org-to-free.md,broken liquid tags translations/zh-CN/data/reusables/enterprise-accounts/emu-password-reset-session.md,broken liquid tags -translations/zh-CN/data/reusables/enterprise-accounts/emu-short-summary.md,rendering error +translations/zh-CN/data/reusables/enterprise-accounts/emu-short-summary.md,broken liquid tags translations/zh-CN/data/reusables/enterprise-licensing/about-license-sync.md,broken liquid tags translations/zh-CN/data/reusables/enterprise-licensing/you-can-sync-for-a-combined-view.md,broken liquid tags translations/zh-CN/data/reusables/enterprise_installation/hardware-considerations-all-platforms.md,broken liquid tags translations/zh-CN/data/reusables/enterprise_installation/hardware-rec-table.md,broken liquid tags translations/zh-CN/data/reusables/enterprise_installation/upgrade-hardware-requirements.md,broken liquid tags translations/zh-CN/data/reusables/enterprise_management_console/badge_indicator.md,broken liquid tags -translations/zh-CN/data/reusables/gated-features/enterprise-accounts.md,rendering error +translations/zh-CN/data/reusables/gated-features/enterprise-accounts.md,broken liquid tags translations/zh-CN/data/reusables/gated-features/packages.md,broken liquid tags translations/zh-CN/data/reusables/gated-features/secret-scanning.md,broken liquid tags translations/zh-CN/data/reusables/getting-started/actions.md,broken liquid tags @@ -375,9 +376,9 @@ translations/zh-CN/data/reusables/repositories/deleted_forks_from_private_reposi translations/zh-CN/data/reusables/repositories/enable-security-alerts.md,broken liquid tags translations/zh-CN/data/reusables/repositories/github-reviews-security-advisories.md,broken liquid tags translations/zh-CN/data/reusables/repositories/select-marketplace-apps.md,broken liquid tags -translations/zh-CN/data/reusables/saml/saml-session-oauth.md,rendering error +translations/zh-CN/data/reusables/saml/saml-session-oauth.md,broken liquid tags translations/zh-CN/data/reusables/saml/you-must-periodically-authenticate.md,Listed in localization-support#489 -translations/zh-CN/data/reusables/saml/you-must-periodically-authenticate.md,rendering error +translations/zh-CN/data/reusables/saml/you-must-periodically-authenticate.md,broken liquid tags translations/zh-CN/data/reusables/scim/after-you-configure-saml.md,broken liquid tags translations/zh-CN/data/reusables/secret-scanning/enterprise-enable-secret-scanning.md,broken liquid tags translations/zh-CN/data/reusables/security-advisory/link-browsing-advisory-db.md,broken liquid tags diff --git a/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/index.md b/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/index.md index f0b292a51e..42cd0ed4a6 100644 --- a/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/index.md +++ b/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/index.md @@ -1,5 +1,5 @@ --- -title: Managing contribution settings on your profile +title: 管理个人资料上的贡献设置 intro: 您的贡献(包括提交、提议的拉取请求和打开的议题)将显示在个人资料中,便于人们轻松看到您所做的工作。 redirect_from: - /articles/managing-contribution-graphs-on-your-profile @@ -19,6 +19,6 @@ children: - /sending-enterprise-contributions-to-your-githubcom-profile - /why-are-my-contributions-not-showing-up-on-my-profile - /troubleshooting-commits-on-your-timeline -shortTitle: Manage contribution settings +shortTitle: 管理贡献设置 --- diff --git a/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/showing-your-private-contributions-and-achievements-on-your-profile.md b/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/showing-your-private-contributions-and-achievements-on-your-profile.md index fd82ee6c15..ac538fe29e 100644 --- a/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/showing-your-private-contributions-and-achievements-on-your-profile.md +++ b/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/showing-your-private-contributions-and-achievements-on-your-profile.md @@ -1,5 +1,5 @@ --- -title: Showing your private contributions and achievements on your profile +title: 在您的个人资料中显示您的私人贡献和成就 intro: '您的 {% data variables.product.product_name %} 个人资料显示过去一年中您的仓库贡献图。 除了公共存储库的活动外,您还可以选择显示 {% ifversion fpt or ghes or ghec %}私人和内部{% else %}私人{% endif %} 仓库中的匿名活动{% ifversion fpt or ghes or ghec %}{% endif %}。' redirect_from: - /articles/publicizing-or-hiding-your-private-contributions-on-your-profile @@ -13,7 +13,7 @@ versions: ghec: '*' topics: - Profiles -shortTitle: Private contributions and achievements +shortTitle: 私人贡献和成就 --- 如果公开您的私有贡献,对您处理的私有仓库没有访问权限的人员将无法查看您的私有贡献详情, 而只能看到您在指定日期的贡献数。 您的公共贡献会包含详细信息。 更多信息请参阅“[在个人资料页面中查看贡献](/articles/viewing-contributions-on-your-profile-page)”。 @@ -31,12 +31,12 @@ shortTitle: Private contributions and achievements - 要公开您的私有贡献,在贡献图上方,使用 **Contribution settings(贡献设置)**下拉菜单,然后选择 **Private contributions(私有贡献)**。 访问者将会看到您的私有贡献数,但没有更多详细信息。 ![从贡献设置下拉菜单允许访问者查看私有贡献](/assets/images/help/profile/private-contributions-on.png) - 要隐藏您的私有贡献,在贡献图上方,使用 **Contribution settings(贡献设置)**下拉菜单,然后取消选择 **Private contributions(私有贡献)**。访问者只会看到您的公共贡献。 ![从贡献设置下拉菜单允许访问者查看私有贡献](/assets/images/help/profile/private-contributions-off.png) -## Changing the visibility of Achievements +## 更改成就的可见性 {% data reusables.user-settings.access_settings %} -1. Show or hide Achievements on your profile: - - To show Achievements on your profile, navigate to **Profile settings**, and select the checkbox next to **Show Achievements on my profile.** ![Enable visitors to see Achievements from profile settings](/assets/images/achievements-profile-settings-off.png) - - To hide Achievements from your profile, navigate to **Profile settings**, and unselect the checkbox next to **Show Achievements on my profile.** ![Hide Achievements from visitors in profile settings](/assets/images/achievements-profile-settings-on.png) +1. 在个人资料上显示或隐藏成就: + - 要在个人主页上显示成就,请导航到 **Profile settings(个人资料设置)**,然后选中 **Show Achievements on my profile(在我的个人资料中显示成就)**旁边的复选框。 ![使访问者能够从个人资料设置查看成就](/assets/images/achievements-profile-settings-off.png) + - 要从您的个人资料中隐藏成就,请导航到 **Profile settings(个人资料设置)**,然后取消选中 **Show Achievements on my profile(在我的个人资料上显示成就)**旁边的复选框。 ![在个人资料设置中对访问者隐藏成就](/assets/images/achievements-profile-settings-on.png) ## 延伸阅读 diff --git a/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address.md b/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address.md index 7bf97193d7..86a8ce0211 100644 --- a/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address.md +++ b/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address.md @@ -42,7 +42,7 @@ shortTitle: 设置提交电子邮件地址 {% endif %} -{% ifversion fpt or ghec %}如果您想将个人电子邮件地址设为私密,则可以使用 {% data variables.product.product_name %} 的 `no-reply` 电子邮件地址作为您的提交电子邮件地址。 要将 `noreply` 电子邮件地址用于从命令行推送的提交,请在 Git 中设置提交电子邮件地址时使用该电子邮件地址。 要将 `noreply` 地址用于基于 web 的 Git 操作,请在 GitHub 上设置提交电子邮件地址并选择**对我的电子邮件地址保密**。 +{% ifversion fpt or ghec %}如果您想将个人电子邮件地址设为私密,则可以使用 {% data variables.product.product_name %} 的 `noreply` 电子邮件地址作为您的提交电子邮件地址。 要将 `noreply` 电子邮件地址用于从命令行推送的提交,请在 Git 中设置提交电子邮件地址时使用该电子邮件地址。 要将 `noreply` 地址用于基于 web 的 Git 操作,请在 GitHub 上设置提交电子邮件地址并选择**对我的电子邮件地址保密**。 您也可以选择阻止从命令行推送的提交显示您的个人电子邮件地址。 更多信息请参阅“[阻止推送的命令行显示您的个人电子邮件地址](/articles/blocking-command-line-pushes-that-expose-your-personal-email-address)”。{% endif %} @@ -52,7 +52,7 @@ shortTitle: 设置提交电子邮件地址 {% note %} -**注意:**如果您在 2017 年 7 月 18 日_之后_在 {% data variables.product.product_location %} 上创建了您的帐户,则 {% data variables.product.product_name %} `no-reply` 电子邮件地址是七位数的 ID 号,您的用户名以 <code><em>ID+用户名</em>@users.noreply.github.com</code> 的形式提供。 如果您在 2017 年 7 月 18 日_之前_在 {% data variables.product.product_location %} 上创建了帐户,则 {% data variables.product.product_name %} `no-reply` 电子邮件地址是 <code><em>用户名</em>@users.noreply.github.com</code>。 通过在电子邮件设置中选择(或取消选择并重新选择)**Keep my email address private(将我的电子邮件地址设为私密)**,您可以获得基于 ID 的 {% data variables.product.product_name %} `no-reply` 电子邮件地址。 +**注意:**如果您在 2017 年 7 月 18 日_之后_在 {% data variables.product.product_location %} 上创建了您的帐户,则 {% data variables.product.product_name %} `noreply` 电子邮件地址是七位数的 ID 号,您的用户名以 <code><em>ID+用户名</em>@users.noreply.github.com</code> 的形式提供。 如果您在 2017 年 7 月 18 日_之前_在 {% data variables.product.product_location %} 上创建了帐户,则 {% data variables.product.product_name %} `noreply` 电子邮件地址是 <code><em>用户名</em>@users.noreply.github.com</code>。 通过在电子邮件设置中选择(或取消选择并重新选择)**Keep my email address private(将我的电子邮件地址设为私密)**,您可以获得基于 ID 的 {% data variables.product.product_name %} `noreply` 电子邮件地址。 {% endnote %} diff --git a/translations/zh-CN/content/actions/learn-github-actions/contexts.md b/translations/zh-CN/content/actions/learn-github-actions/contexts.md index 0d0354ed69..00b76fb9f8 100644 --- a/translations/zh-CN/content/actions/learn-github-actions/contexts.md +++ b/translations/zh-CN/content/actions/learn-github-actions/contexts.md @@ -190,7 +190,7 @@ jobs: | `github.graphql_url` | `字符串` | {% data variables.product.prodname_dotcom %} GraphQL API 的 URL。 | | `github.head_ref` | `字符串` | 工作流程运行中拉取请求的 `head_ref` 或来源分支。 此属性仅在触发工作流程运行的事件为 `pull_request` 或 `pull_request_target` 时才可用。 | | `github.job` | `字符串` | 当前作业的 [`job_id`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_id)。 <br /> 注意:此上下文属性由 Actions 运行器设置,并且仅在作业的执行 `steps` 中可用。 否则,此属性的值将为 `null`。 | -| `github.ref` | `字符串` | 触发工作流程的分支或标记参考。 对于分支,格式为 `refs/heads/<branch_name>`,对于标记是 `refs/tags/<tag_name>`。 | +| `github.ref` | `字符串` | {% data reusables.actions.ref-description %} {%- ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5338 %} | `github.ref_name` | `string` | {% data reusables.actions.ref_name-description %} | | `github.ref_protected` | `string` | {% data reusables.actions.ref_protected-description %} | | `github.ref_type` | `string` | {% data reusables.actions.ref_type-description %} {%- endif %} diff --git a/translations/zh-CN/content/actions/learn-github-actions/environment-variables.md b/translations/zh-CN/content/actions/learn-github-actions/environment-variables.md index e00910eb17..dd249ca7ca 100644 --- a/translations/zh-CN/content/actions/learn-github-actions/environment-variables.md +++ b/translations/zh-CN/content/actions/learn-github-actions/environment-variables.md @@ -143,7 +143,7 @@ jobs: | `GITHUB_HEAD_REF` | 工作流程运行中拉取请求的头部引用或来源分支。 此属性仅在触发工作流程运行的事件为 `pull_request` 或 `pull_request_target` 时才设置。 例如,`feature-branch-1`。 | | `GITHUB_JOB` | 当前作业的 [job_id](/actions/reference/workflow-syntax-for-github-actions#jobsjob_id)。 例如,`greeting_job`。 | | `GITHUB_PATH` | 运行器上从工作流程命令到设置系统 `PATH` 变量的文件路径。 此文件对于当前步骤是唯一的,并且会针对作业中的每个步骤进行更改。 例如 `/home/runner/work/_temp/_runner_file_commands/add_path_899b9445-ad4a-400c-aa89-249f18632cf5`。 更多信息请参阅“[{% data variables.product.prodname_actions %} 的工作流程命令](/actions/using-workflows/workflow-commands-for-github-actions#adding-a-system-path)”。 | -| `GITHUB_REF` | 触发工作流程的分支或标记参考。 对于分支,这是格式 `refs/heads/<branch_name>`,对于标记是 `refs/tags/<tag_name>`,对于拉取请求是 `refs/pull/<pr_number>/merge`。 此变量仅在分支或标记可用于事件类型时才会设置。 例如 `refs/heads/feature-branch-1`。 | +| `GITHUB_REF` | {% data reusables.actions.ref-description %} {%- ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5338 %} | `GITHUB_REF_NAME` | {% data reusables.actions.ref_name-description %} For example, `feature-branch-1`.| | `GITHUB_REF_PROTECTED` | {% data reusables.actions.ref_protected-description %} | | `GITHUB_REF_TYPE` | {% data reusables.actions.ref_type-description %} {%- endif %} diff --git a/translations/zh-CN/content/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise.md b/translations/zh-CN/content/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise.md index 17e9d2fb10..239a9d079d 100644 --- a/translations/zh-CN/content/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise.md +++ b/translations/zh-CN/content/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise.md @@ -49,7 +49,7 @@ topics: ```{% endif %} {% note %} - **Note**: For more information about enabling access to the administrative shell via SSH, see "[Accessing the administrative shell (SSH)](/enterprise/{{ currentVersion }}/admin/configuration/accessing-the-administrative-shell-ssh)." + **Note**: For more information about enabling access to the administrative shell via SSH, see "[Accessing the administrative shell (SSH)](/enterprise/admin/configuration/accessing-the-administrative-shell-ssh)." {% endnote %} 2. 应用配置。 diff --git a/translations/zh-CN/content/admin/configuration/configuring-github-connect/managing-github-connect.md b/translations/zh-CN/content/admin/configuration/configuring-github-connect/managing-github-connect.md index 6989f4d264..b3559ba542 100644 --- a/translations/zh-CN/content/admin/configuration/configuring-github-connect/managing-github-connect.md +++ b/translations/zh-CN/content/admin/configuration/configuring-github-connect/managing-github-connect.md @@ -43,7 +43,7 @@ To use {% data variables.product.prodname_github_connect %}, you must have an or {% ifversion ghes %} If your organization or enterprise account on {% data variables.product.prodname_dotcom_the_website %} uses IP allow lists, you must add the IP address or network for {% data variables.product.product_location %} to your IP allow list on {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[Managing allowed IP addresses for your organization](/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization)" and "[Enforcing policies for security settings in your enterprise](/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise#managing-allowed-ip-addresses-for-organizations-in-your-enterprise)" in the {% data variables.product.prodname_ghe_cloud %} documentation. -To configure a connection, your proxy configuration must allow connectivity to `github.com`, `api.github.com`, and `uploads.github.com`. For more information, see "[Configuring an outbound web proxy server](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-an-outbound-web-proxy-server)." +To configure a connection, your proxy configuration must allow connectivity to `github.com`, `api.github.com`, and `uploads.github.com`. For more information, see "[Configuring an outbound web proxy server](/enterprise/admin/guides/installation/configuring-an-outbound-web-proxy-server)." {% endif %} ## Enabling {% data variables.product.prodname_github_connect %} diff --git a/translations/zh-CN/content/admin/configuration/configuring-network-settings/configuring-a-hostname.md b/translations/zh-CN/content/admin/configuration/configuring-network-settings/configuring-a-hostname.md index 70d586a489..6de9229294 100644 --- a/translations/zh-CN/content/admin/configuration/configuring-network-settings/configuring-a-hostname.md +++ b/translations/zh-CN/content/admin/configuration/configuring-network-settings/configuring-a-hostname.md @@ -19,7 +19,7 @@ topics: {% data variables.enterprise.management_console %} 中的主机名设置应设置为合适的完全限定域名 (FQDN),此域名可在互联网上或您的内部网络内解析。 例如,您的主机名设置可能是 `github.companyname.com。` Web 和 API 请求将自动重定向到 {% data variables.enterprise.management_console %} 中配置的主机名。 -配置主机名后,可以启用子域隔离以进一步提高 {% data variables.product.product_location %} 的安全性。 更多信息请参阅“[启用子域隔离](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-subdomain-isolation/)”。 +配置主机名后,可以启用子域隔离以进一步提高 {% data variables.product.product_location %} 的安全性。 更多信息请参阅“[启用子域隔离](/enterprise/admin/guides/installation/enabling-subdomain-isolation/)”。 有关支持的主机名类型的详细信息,请参阅 [HTTP RFC 2.1 节](https://tools.ietf.org/html/rfc1123#section-2)。 @@ -33,4 +33,4 @@ topics: {% data reusables.enterprise_management_console.test-domain-settings-failure %} {% data reusables.enterprise_management_console.save-settings %} -为了帮助缓解各种跨站点脚本漏洞,我们建议您在配置主机名后为 {% data variables.product.product_location %} 启用子域隔离。 更多信息请参阅“[启用子域隔离](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-subdomain-isolation/)”。 +为了帮助缓解各种跨站点脚本漏洞,我们建议您在配置主机名后为 {% data variables.product.product_location %} 启用子域隔离。 更多信息请参阅“[启用子域隔离](/enterprise/admin/guides/installation/enabling-subdomain-isolation/)”。 diff --git a/translations/zh-CN/content/admin/configuration/configuring-network-settings/configuring-tls.md b/translations/zh-CN/content/admin/configuration/configuring-network-settings/configuring-tls.md index b0fd50df26..3f5c09c330 100644 --- a/translations/zh-CN/content/admin/configuration/configuring-network-settings/configuring-tls.md +++ b/translations/zh-CN/content/admin/configuration/configuring-network-settings/configuring-tls.md @@ -32,9 +32,9 @@ topics: 要在生产中使用 TLS,您必须具有由可信证书颁发机构签名的未加密 PEM 格式的证书。 -您的证书还需要为“[启用子域隔离](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-subdomain-isolation#about-subdomain-isolation)”中列出的子域配置使用者可选名称,如果证书已由中间证书颁发机构签名,将需要包含完整的证书链。 更多信息请参阅 Wikipedia 上的“[使用者可选名称](http://en.wikipedia.org/wiki/SubjectAltName)”。 +您的证书还需要为“[启用子域隔离](/enterprise/admin/guides/installation/enabling-subdomain-isolation#about-subdomain-isolation)”中列出的子域配置使用者可选名称,如果证书已由中间证书颁发机构签名,将需要包含完整的证书链。 更多信息请参阅 Wikipedia 上的“[使用者可选名称](http://en.wikipedia.org/wiki/SubjectAltName)”。 -您可以使用 `ghe-ssl-generate-csr` 命令为实例生成证书签名请求 (CSR)。 更多信息请参阅“[命令行实用程序](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities/#ghe-ssl-generate-csr)”。 +您可以使用 `ghe-ssl-generate-csr` 命令为实例生成证书签名请求 (CSR)。 更多信息请参阅“[命令行实用程序](/enterprise/admin/guides/installation/command-line-utilities/#ghe-ssl-generate-csr)”。 ## 上传自定义 TLS 证书 @@ -63,7 +63,7 @@ Let's Encrypt 是公共证书颁发机构,他们使用 ACME 协议颁发受浏 在您启用通过 Let's Encrypt 自动进行 TLS 证书管理后,{% data variables.product.product_location %} 将与 Let's Encrypt 服务器通信,以获取证书。 要续订证书,Let's Encrypt 服务器必须通过入站 HTTP 请求验证已配置域名的控制。 -您还可以在 {% data variables.product.product_location %} 上使用 `ghe-ssl-acme` 命令行实用程序自动生成 Let's Encrypt 证书。 更多信息请参阅“[命令行实用程序](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities#ghe-ssl-acme)”。 +您还可以在 {% data variables.product.product_location %} 上使用 `ghe-ssl-acme` 命令行实用程序自动生成 Let's Encrypt 证书。 更多信息请参阅“[命令行实用程序](/enterprise/admin/guides/installation/command-line-utilities#ghe-ssl-acme)”。 ## 使用 Let's Encrypt 配置 TLS diff --git a/translations/zh-CN/content/admin/configuration/configuring-network-settings/enabling-subdomain-isolation.md b/translations/zh-CN/content/admin/configuration/configuring-network-settings/enabling-subdomain-isolation.md index 9333e24de0..e86a0533dd 100644 --- a/translations/zh-CN/content/admin/configuration/configuring-network-settings/enabling-subdomain-isolation.md +++ b/translations/zh-CN/content/admin/configuration/configuring-network-settings/enabling-subdomain-isolation.md @@ -50,13 +50,13 @@ shortTitle: 启用子域隔离 启用子域隔离之前,您必须为新域配置网络设置。 -- 指定有效域名作为主机名,而不是指定 IP 地址。 更多信息请参阅“[配置主机名](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-a-hostname)。” +- 指定有效域名作为主机名,而不是指定 IP 地址。 更多信息请参阅“[配置主机名](/enterprise/admin/guides/installation/configuring-a-hostname)。” {% data reusables.enterprise_installation.changing-hostname-not-supported %} - 为上文列出的子域设置通配符域名系统 (DNS) 记录或单独的 DNS 记录。 建议为指向您的服务器 IP 地址的 `*.HOSTNAME` 创建一条 A 记录,从而无需为各个子域创建多条记录。 - 为 `*.HOSTNAME` 获取一个使用者可选名称 (SAN) 同时适用于 `HOSTNAME` 和通配符域 `*.HOSTNAME` 的通配符传输层安全 (TLS) 证书。 例如,如果您的主机名为 `github.octoinc.com`,则获取一个通用名值设为 `*.github.octoinc.com`、SAN 值同时设为 `github.octoinc.com` 和 `*.github.octoinc.com` 的证书。 -- 在设备上启用 TLS。 更多信息请参阅“[配置 TLS](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-tls/)”。 +- 在设备上启用 TLS。 更多信息请参阅“[配置 TLS](/enterprise/admin/guides/installation/configuring-tls/)”。 ## 启用子域隔离 diff --git a/translations/zh-CN/content/admin/configuration/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer.md b/translations/zh-CN/content/admin/configuration/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer.md index 8f247f7d7b..95bfa9e7ef 100644 --- a/translations/zh-CN/content/admin/configuration/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer.md +++ b/translations/zh-CN/content/admin/configuration/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer.md @@ -69,7 +69,7 @@ We strongly recommend enabling PROXY protocol support for both your instance and ## Configuring health checks -Health checks allow a load balancer to stop sending traffic to a node that is not responding if a pre-configured check fails on that node. If the instance is offline due to maintenance or unexpected failure, the load balancer can display a status page. In a High Availability (HA) configuration, a load balancer can be used as part of a failover strategy. However, automatic failover of HA pairs is not supported. You must manually promote the replica instance before it will begin serving requests. For more information, see "[Configuring {% data variables.product.prodname_ghe_server %} for High Availability](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-github-enterprise-server-for-high-availability/)." +Health checks allow a load balancer to stop sending traffic to a node that is not responding if a pre-configured check fails on that node. If the instance is offline due to maintenance or unexpected failure, the load balancer can display a status page. In a High Availability (HA) configuration, a load balancer can be used as part of a failover strategy. However, automatic failover of HA pairs is not supported. You must manually promote the replica instance before it will begin serving requests. For more information, see "[Configuring {% data variables.product.prodname_ghe_server %} for High Availability](/enterprise/admin/guides/installation/configuring-github-enterprise-server-for-high-availability/)." {% data reusables.enterprise_clustering.health_checks %} {% data reusables.enterprise_site_admin_settings.maintenance-mode-status %} diff --git a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/accessing-the-management-console.md b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/accessing-the-management-console.md index 93b08d2844..e484ec6513 100644 --- a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/accessing-the-management-console.md +++ b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/accessing-the-management-console.md @@ -54,7 +54,7 @@ The first time that you access the {% data variables.enterprise.management_conso The {% data variables.enterprise.management_console %} locks after ten failed login attempts are made in the span of ten minutes. You must wait for the login screen to automatically unlock before attempting to log in again. The login screen automatically unlocks as soon as the previous ten minute period contains fewer than ten failed login attempts. The counter resets after a successful login occurs. -To immediately unlock the {% data variables.enterprise.management_console %}, use the `ghe-reactivate-admin-login` command via the administrative shell. For more information, see "[Command line utilities](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities#ghe-reactivate-admin-login)" and "[Accessing the administrative shell (SSH)](/enterprise/{{ currentVersion }}/admin/guides/installation/accessing-the-administrative-shell-ssh/)." +To immediately unlock the {% data variables.enterprise.management_console %}, use the `ghe-reactivate-admin-login` command via the administrative shell. For more information, see "[Command line utilities](/enterprise/admin/guides/installation/command-line-utilities#ghe-reactivate-admin-login)" and "[Accessing the administrative shell (SSH)](/enterprise/admin/guides/installation/accessing-the-administrative-shell-ssh/)." ## Troubleshooting failed connections to the {% data variables.enterprise.management_console %} diff --git a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md index 3335f4cc4d..a2f233ddf6 100644 --- a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md +++ b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md @@ -15,7 +15,7 @@ topics: - Enterprise - SSH --- -You can execute these commands from anywhere on the VM after signing in as an SSH admin user. For more information, see "[Accessing the administrative shell (SSH)](/enterprise/{{ currentVersion }}/admin/guides/installation/accessing-the-administrative-shell-ssh/)." +You can execute these commands from anywhere on the VM after signing in as an SSH admin user. For more information, see "[Accessing the administrative shell (SSH)](/enterprise/admin/guides/installation/accessing-the-administrative-shell-ssh/)." ## General @@ -124,7 +124,7 @@ $ ghe-config app.github.rate-limiting-exempt-users "<em>hubot</em> <em>github-ac ### ghe-config-apply -This utility applies {% data variables.enterprise.management_console %} settings, reloads system services, prepares a storage device, reloads application services, and runs any pending database migrations. It is equivalent to clicking **Save settings** in the {% data variables.enterprise.management_console %}'s web UI or to sending a POST request to [the `/setup/api/configure` endpoint](/enterprise/{{ currentVersion }}/user/rest/reference/enterprise-admin#management-console). +This utility applies {% data variables.enterprise.management_console %} settings, reloads system services, prepares a storage device, reloads application services, and runs any pending database migrations. It is equivalent to clicking **Save settings** in the {% data variables.enterprise.management_console %}'s web UI or to sending a POST request to [the `/setup/api/configure` endpoint](/enterprise/user/rest/reference/enterprise-admin#management-console). You will probably never need to run this manually, but it's available if you want to automate the process of saving your settings via SSH. @@ -352,7 +352,7 @@ stop/waiting ### ghe-set-password -With `ghe-set-password`, you can set a new password to authenticate into the [{% data variables.enterprise.management_console %}](/enterprise/{{ currentVersion }}/admin/guides/installation/accessing-the-management-console). +With `ghe-set-password`, you can set a new password to authenticate into the [{% data variables.enterprise.management_console %}](/enterprise/admin/guides/installation/accessing-the-management-console). ```shell ghe-set-password <new_password> @@ -394,7 +394,7 @@ existing keys in /etc/ssh/ssh_host_* and generate new ones. [y/N] ### ghe-ssh-weak-fingerprints -This utility returns a report of known weak SSH keys stored on the {% data variables.product.prodname_enterprise %} appliance. You can optionally revoke user keys as a bulk action. The utility will report weak system keys, which you must manually revoke in the [{% data variables.enterprise.management_console %}](/enterprise/{{ currentVersion }}/admin/guides/installation/accessing-the-management-console). +This utility returns a report of known weak SSH keys stored on the {% data variables.product.prodname_enterprise %} appliance. You can optionally revoke user keys as a bulk action. The utility will report weak system keys, which you must manually revoke in the [{% data variables.enterprise.management_console %}](/enterprise/admin/guides/installation/accessing-the-management-console). ```shell # Print a report of weak user and system SSH keys @@ -406,7 +406,7 @@ $ ghe-ssh-weak-fingerprints --revoke ### ghe-ssl-acme -This utility allows you to install a Let's Encrypt certificate on your {% data variables.product.prodname_enterprise %} appliance. For more information, see "[Configuring TLS](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-tls)." +This utility allows you to install a Let's Encrypt certificate on your {% data variables.product.prodname_enterprise %} appliance. For more information, see "[Configuring TLS](/enterprise/admin/guides/installation/configuring-tls)." You can use the `-x` flag to remove the ACME configuration. @@ -418,7 +418,7 @@ ghe-ssl-acme -e This utility allows you to install a custom root CA certificate on your {% data variables.product.prodname_enterprise %} server. The certificate must be in PEM format. Furthermore, if your certificate provider includes multiple CA certificates in a single file, you must separate them into individual files that you then pass to `ghe-ssl-ca-certificate-install` one at a time. -Run this utility to add a certificate chain for S/MIME commit signature verification. For more information, see "[About commit signature verification](/enterprise/{{ currentVersion }}/user/articles/about-commit-signature-verification/)." +Run this utility to add a certificate chain for S/MIME commit signature verification. For more information, see "[About commit signature verification](/enterprise/user/articles/about-commit-signature-verification/)." Run this utility when {% data variables.product.product_location %} is unable to connect to another server because the latter is using a self-signed SSL certificate or an SSL certificate for which it doesn't provide the necessary CA bundle. One way to confirm this is to run `openssl s_client -connect host:port -verify 0 -CApath /etc/ssl/certs` from {% data variables.product.product_location %}. If the remote server's SSL certificate can be verified, your `SSL-Session` should have a return code of 0, as shown below. @@ -470,7 +470,7 @@ ghe-ssl-certificate-setup ### ghe-ssl-generate-csr -This utility allows you to generate a private key and certificate signing request (CSR), which you can share with a commercial or private certificate authority to get a valid certificate to use with your instance. For more information, see "[Configuring TLS](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-tls)." +This utility allows you to generate a private key and certificate signing request (CSR), which you can share with a commercial or private certificate authority to get a valid certificate to use with your instance. For more information, see "[Configuring TLS](/enterprise/admin/guides/installation/configuring-tls)." For more information about this command or for additional options, use the `-h` flag. @@ -812,7 +812,7 @@ In this example, `ghe-repl-status -vv` sends verbose status information from a r ### ghe-upgrade -This utility installs or verifies an upgrade package. You can also use this utility to roll back a patch release if an upgrade fails or is interrupted. For more information, see "[Upgrading {% data variables.product.prodname_ghe_server %}](/enterprise/{{ currentVersion }}/admin/guides/installation/upgrading-github-enterprise-server/)." +This utility installs or verifies an upgrade package. You can also use this utility to roll back a patch release if an upgrade fails or is interrupted. For more information, see "[Upgrading {% data variables.product.prodname_ghe_server %}](/enterprise/admin/guides/installation/upgrading-github-enterprise-server/)." To verify an upgrade package: ```shell @@ -872,7 +872,7 @@ ghe-license-usage ### ghe-org-membership-update -This utility will enforce the default organization membership visibility setting on all members in your instance. For more information, see "[Configuring visibility for organization membership](/enterprise/{{ currentVersion }}/admin/guides/user-management/configuring-visibility-for-organization-membership)." Setting options are `public` or `private`. +This utility will enforce the default organization membership visibility setting on all members in your instance. For more information, see "[Configuring visibility for organization membership](/enterprise/admin/guides/user-management/configuring-visibility-for-organization-membership)." Setting options are `public` or `private`. ```shell ghe-org-membership-update --visibility=<em>SETTING</em> diff --git a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance.md b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance.md index dd064138a6..75a747021b 100644 --- a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance.md +++ b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance.md @@ -72,7 +72,7 @@ More resources may be required depending on your usage, such as user activity an {% endnote %} 4. Set the `GHE_DATA_DIR` value to the filesystem location where you want to store backup snapshots. -5. Open your primary instance's settings page at `https://HOSTNAME/setup/settings` and add the backup host's SSH key to the list of authorized SSH keys. For more information, see [Accessing the administrative shell (SSH)](/enterprise/{{ currentVersion }}/admin/guides/installation/accessing-the-administrative-shell-ssh/). +5. Open your primary instance's settings page at `https://HOSTNAME/setup/settings` and add the backup host's SSH key to the list of authorized SSH keys. For more information, see [Accessing the administrative shell (SSH)](/enterprise/admin/guides/installation/accessing-the-administrative-shell-ssh/). 6. Verify SSH connectivity with {% data variables.product.product_location %} with the `ghe-host-check` command. ```shell $ bin/ghe-host-check diff --git a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications.md b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications.md index a9f03fb889..f0d176e832 100644 --- a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications.md +++ b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications.md @@ -1,6 +1,6 @@ --- -title: Configuring email for notifications -intro: 'To make it easy for users to respond quickly to activity on {% data variables.product.product_name %}, you can configure {% data variables.product.product_location %} to send email notifications for issue, pull request, and commit comments.' +title: 配置电子邮件通知 +intro: '为了让用户轻松地快速响应 {% data variables.product.product_name %} 上的活动,您可以配置 {% data variables.product.product_location %} 对议题、拉取请求和提交注释发送电子邮件通知。' redirect_from: - /enterprise/admin/guides/installation/email-configuration - /enterprise/admin/articles/configuring-email @@ -17,90 +17,78 @@ topics: - Fundamentals - Infrastructure - Notifications -shortTitle: Configure email notifications +shortTitle: 配置电子邮件通知 --- + {% ifversion ghae %} -Enterprise owners can configure email for notifications. +企业所有者可以配置以电子邮件发送通知。 {% endif %} -## Configuring SMTP for your enterprise +## 为企业配置 SMTP {% ifversion ghes %} {% data reusables.enterprise_site_admin_settings.email-settings %} -4. Select **Enable email**. This will enable both outbound and inbound email, however for inbound email to work you will also need to configure your DNS settings as described below in "[Configuring DNS and firewall -settings to allow incoming emails](#configuring-dns-and-firewall-settings-to-allow-incoming-emails)." -![Enable outbound email](/assets/images/enterprise/management-console/enable-outbound-email.png) -5. Type the settings for your SMTP server. - - In the **Server address** field, type the address of your SMTP server. - - In the **Port** field, type the port that your SMTP server uses to send email. - - In the **Domain** field, type the domain name that your SMTP server will send with a HELO response, if any. - - Select the **Authentication** dropdown, and choose the type of encryption used by your SMTP server. - - In the **No-reply email address** field, type the email address to use in the From and To fields for all notification emails. -6. If you want to discard all incoming emails that are addressed to the no-reply email address, select **Discard email addressed to the no-reply email address**. -![Checkbox to discard emails addressed to the no-reply email address](/assets/images/enterprise/management-console/discard-noreply-emails.png) -7. Under **Support**, choose a type of link to offer additional support to your users. - - **Email:** An internal email address. - - **URL:** A link to an internal support site. You must include either `http://` or `https://`. - ![Support email or URL](/assets/images/enterprise/management-console/support-email-url.png) -8. [Test email delivery](#testing-email-delivery). +4. 选择 **Enable email**。 这将同时启用出站和入站电子邮件,不过,要想入站电子邮件正常运行,您还需要按照下文“[配置 DNS 和防火墙设置以允许传入的电子邮件](#configuring-dns-and-firewall-settings-to-allow-incoming-emails)”所述配置您的 DNS 设置。 ![启用出站电子邮件](/assets/images/enterprise/management-console/enable-outbound-email.png) +5. 键入 SMTP 服务器的设置。 + - 在 **Server address** 字段中,输入您的 SMTP 服务器的地址。 + - 在 **Port** 字段中,输入 SMTP 服务器用于发送电子邮件的端口。 + - 在 **Domain** 字段中,输入您的 SMTP 服务器将随 HELO 响应(如有)发送的域名。 + - 在 **Authentication(身份验证)**下拉菜单中选择您的 SMTP 服务器使用的加密类型。 + - 在 **No-reply email address** 字段中,输入要在所有通知电子邮件的 From 和 To 字段中使用的电子邮件地址。 +6. 如果您想丢弃发送到无回复电子邮件地址的所有传入电子邮件,请选中 **Discard email addressed to the no-reply email address**。 ![用于丢弃发送到无回复电子邮件地址的电子邮件的复选框](/assets/images/enterprise/management-console/discard-noreply-emails.png) +7. 在 **Support(支持)**下,选择用于向您的用户提供附加支持的链接类型。 + - **Email(电子邮件)**:内部电子邮件地址。 + - **URL**:内部支持站点的链接。 您必须包括 `http://` 或 `https://`。 ![支持电子邮件或 URL](/assets/images/enterprise/management-console/support-email-url.png) +8. [测试电子邮件递送](#testing-email-delivery)。 {% elsif ghae %} {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.email-tab %} -2. Select **Enable email**. - !["Enable" checkbox for email settings configuration](/assets/images/enterprise/configuration/ae-enable-email-configure.png) -3. Type the settings for your email server. - - In the **Server address** field, type the address of your SMTP server. - - In the **Port** field, type the port that your SMTP server uses to send email. - - In the **Domain** field, type the domain name that your SMTP server will send with a HELO response, if any. - - Select the **Authentication** dropdown, and choose the type of encryption used by your SMTP server. - - In the **No-reply email address** field, type the email address to use in the From and To fields for all notification emails. -4. If you want to discard all incoming emails that are addressed to the no-reply email address, select **Discard email addressed to the no-reply email address**. - !["Discard" checkbox for email settings configuration](/assets/images/enterprise/configuration/ae-discard-email.png) -5. Click **Test email settings**. - !["Test email settings" button for email settings configuration](/assets/images/enterprise/configuration/ae-test-email.png) -6. Under "Send test email to," type the email address where you want to send a test email, then click **Send test email**. - !["Send test email" button for email settings configuration](/assets/images/enterprise/configuration/ae-send-test-email.png) -7. Click **Save**. - !["Save" button for enterprise support contact configuration](/assets/images/enterprise/configuration/ae-save.png) +2. 选择 **Enable email**。 ![用于电子邮件设置配置的"Enable(启用)"复选框](/assets/images/enterprise/configuration/ae-enable-email-configure.png) +3. 键入电子邮件服务器的设置。 + - 在 **Server address** 字段中,输入您的 SMTP 服务器的地址。 + - 在 **Port** 字段中,输入 SMTP 服务器用于发送电子邮件的端口。 + - 在 **Domain** 字段中,输入您的 SMTP 服务器将随 HELO 响应(如有)发送的域名。 + - 在 **Authentication(身份验证)**下拉菜单中选择您的 SMTP 服务器使用的加密类型。 + - 在 **No-reply email address** 字段中,输入要在所有通知电子邮件的 From 和 To 字段中使用的电子邮件地址。 +4. 如果您想丢弃发送到无回复电子邮件地址的所有传入电子邮件,请选中 **Discard email addressed to the no-reply email address**。 ![用于电子邮件设置配置的"Discard(放弃)"复选框](/assets/images/enterprise/configuration/ae-discard-email.png) +5. 单击 **Test email settings(测试电子邮件设置)**。 ![用于电子邮件设置配置的"Test email settings(测试电子邮件设置)"按钮](/assets/images/enterprise/configuration/ae-test-email.png) +6. 在“Send test email to(发送测试电子邮件到)”下,请输入测试电子邮件要发送到的电子邮件地址,然后单击 **Send test email(发送测试电子邮件)**。 ![用于电子邮件设置配置的"Send test email(发送测试电子邮件)"按钮](/assets/images/enterprise/configuration/ae-send-test-email.png) +7. 单击 **Save(保存)**。 ![用于企业支持联系人配置的"Save(保存)"按钮](/assets/images/enterprise/configuration/ae-save.png) {% endif %} {% ifversion ghes %} -## Testing email delivery +## 测试电子邮件递送 -1. At the top of the **Email** section, click **Test email settings**. -![Test email settings](/assets/images/enterprise/management-console/test-email.png) -2. In the **Send test email to** field, type an address to send the test email to. -![Test email address](/assets/images/enterprise/management-console/test-email-address.png) -3. Click **Send test email**. -![Send test email](/assets/images/enterprise/management-console/test-email-address-send.png) +1. 在 **Email** 部分的顶部,单击 **Test email settings**。 ![测试电子邮件设置](/assets/images/enterprise/management-console/test-email.png) +2. 在 **Send test email to** 字段中,输入用于接收测试电子邮件的地址。 ![测试电子邮件地址](/assets/images/enterprise/management-console/test-email-address.png) +3. 单击 **Send test email**。 ![发送测试电子邮件](/assets/images/enterprise/management-console/test-email-address-send.png) {% tip %} - **Tip:** If SMTP errors occur while sending a test email—such as an immediate delivery failure or an outgoing mail configuration error—you will see them in the Test email settings dialog box. + **提示**:如果在发送测试电子邮件时发生 SMTP 错误(例如即时递送失败或传出邮件配置错误),您将在 Test email settings 对话框中看到这些错误。 {% endtip %} -4. If the test email fails, [troubleshoot your email settings](#troubleshooting-email-delivery). -5. When the test email succeeds, at the bottom of the page, click **Save settings**. -![Save settings button](/assets/images/enterprise/management-console/save-settings.png) +4. 如果测试电子邮件失败,请[排查电子邮件设置问题](#troubleshooting-email-delivery)。 +5. 当测试电子邮件成功后,在页面的底部单击 **Save settings**。 ![Save settings 按钮](/assets/images/enterprise/management-console/save-settings.png) {% data reusables.enterprise_site_admin_settings.wait-for-configuration-run %} -## Configuring DNS and firewall settings to allow incoming emails +## 配置 DNS 和防火墙设置以允许传入的电子邮件 -If you want to allow email replies to notifications, you must configure your DNS settings. +如果您希望允许通知的电子邮件回复,则必须配置 DNS 设置。 -1. Ensure that port 25 on the instance is accessible to your SMTP server. -2. Create an A record that points to `reply.[hostname]`. Depending on your DNS provider and instance host configuration, you may be able to instead create a single A record that points to `*.[hostname]`. -3. Create an MX record that points to `reply.[hostname]` so that emails to that domain are routed to the instance. -4. Create an MX record that points `noreply.[hostname]` to `[hostname]` so that replies to the `cc` address in notification emails are routed to the instance. For more information, see {% ifversion ghes %}"[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications){% else %}"[About email notifications](/github/receiving-notifications-about-activity-on-github/about-email-notifications){% endif %}." +1. 确保您的 SMTP 服务器可以访问实例上的端口 25。 +2. 创建一个指向 `reply.[hostname]` 的 A 记录。 根据您的 DNS 提供商和实例主机配置,您可以创建一个指向 `*.[hostname]` 的 A 记录。 +3. 创建一个指向 `reply.[hostname]` 的 MX 记录,以便发送到该域的电子邮件可以路由到实例。 +4. 创建一个将 `noreply.[hostname]` 指向 `[hostname]` 的 MX 记录,以便对通知电子邮件中 `cc` 地址的回复可以路由到实例。 更多信息请参阅{% ifversion ghes %}"[配置通知](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications){% else %}“[关于电子邮件通知](/github/receiving-notifications-about-activity-on-github/about-email-notifications){% endif %}。” -## Troubleshooting email delivery +## 排查电子邮件递送问题 -### Create a Support Bundle +### 创建支持包 -If you cannot determine what is wrong from the displayed error message, you can download a [support bundle](/enterprise/{{ currentVersion }}/admin/guides/enterprise-support/providing-data-to-github-support) containing the entire SMTP conversation between your mail server and {% data variables.product.prodname_ghe_server %}. Once you've downloaded and extracted the bundle, check the entries in *enterprise-manage-logs/unicorn.log* for the entire SMTP conversation log and any related errors. +如果您无法根据显示的错误消息确定什么地方出错,可以下载包含您的邮件服务器与 {% data variables.product.prodname_ghe_server %} 之间的整个 SMTP 对话的[支持包](/enterprise/admin/guides/enterprise-support/providing-data-to-github-support)。 在下载并提取支持包后,请检查 *enterprise-manage-logs/unicorn.log* 中的条目,查看整个 SMTP 对话日志和任何相关错误。 -The unicorn log should show a transaction similar to the following: +该独角兽日志应以类似于下面所示的方式显示事务: ```shell This is a test email generated from https://10.0.0.68/setup/settings @@ -132,18 +120,18 @@ TLS connection started -> "535 5.7.1 http://support.yourdomain.com/smtp/auth-not-accepted nt3sm2942435pbc.14\r\n" ``` -This log shows that the appliance: +此日志显示该设备: -* Opened a connection with the SMTP server (`Connection opened: smtp.yourdomain.com:587`). -* Successfully made a connection and chose to use TLS (`TLS connection started`). -* The `login` authentication type was performed (`<- "AUTH LOGIN\r\n"`). -* The SMTP Server rejected the authentication as invalid (`-> "535-5.7.1 Username and Password not accepted.`). +* 打开了与 SMTP 服务器的连接 (`Connection opened: smtp.yourdomain.com:587`)。 +* 成功连接并选择使用 TLS (`TLS connection started`)。 +* 执行了 `login` 身份验证类型 (`<- "AUTH LOGIN\r\n"`)。 +* SMTP 服务器以无效为原因拒绝了身份验证 (`-> "535-5.7.1 Username and Password not accepted.`)。 -### Check {% data variables.product.product_location %} logs +### 检查 {% data variables.product.product_location %} 日志 -If you need to verify that your inbound email is functioning, there are two log files that you can examine on your instance: To verify that */var/log/mail.log* and */var/log/mail-replies/metroplex.log*. +如果您需要验证入站电子邮件是否正常运行,可以在实例上检查两个日志文件:验证 */var/log/mail.log* 和 */var/log/mail-replies/metroplex.log*。 -*/var/log/mail.log* verifies that messages are reaching your server. Here's an example of a successful email reply: +*/var/log/mail.log* 可以验证消息是否抵达您的服务器。 下面是一个成功电子邮件回复的示例: ``` Oct 30 00:47:18 54-171-144-1 postfix/smtpd[13210]: connect from st11p06mm-asmtp002.mac.com[17.172.124.250] @@ -155,9 +143,9 @@ Oct 30 00:47:19 54-171-144-1 postfix/qmgr[17250]: 51DC9163323: removed Oct 30 00:47:19 54-171-144-1 postfix/smtpd[13210]: disconnect from st11p06mm-asmtp002.mac.com[17.172.124.250] ``` -Note that the client first connects; then, the queue becomes active. Then, the message is delivered, the client is removed from the queue, and the session disconnects. +请注意,客户端先连接,然后队列变成活动状态。 接着,消息递送,客户端从队列中移除,会话断开连接。 -*/var/log/mail-replies/metroplex.log* shows whether inbound emails are being processed to add to issues and pull requests as replies. Here's an example of a successful message: +*/var/log/mail-replies/metroplex.log* 可以显示入站电子邮件是否正在处理,以便作为回复添加到问题和拉取请求中。 下面是一个成功消息的示例: ``` [2014-10-30T00:47:23.306 INFO (5284) #] metroplex: processing <b2b9c260-4aaa-4a93-acbb-0b2ddda68579@me.com> @@ -165,19 +153,19 @@ Note that the client first connects; then, the queue becomes active. Then, the m [2014-10-30T00:47:23.334 DEBUG (5284) #] Moving /data/user/mail/reply/new/1414630039.Vfc00I12000eM445784.ghe-tjl2-co-ie => /data/user/incoming-mail/success ``` -You'll notice that `metroplex` catches the inbound message, processes it, then moves the file over to `/data/user/incoming-mail/success`.{% endif %} +您将注意到,`metroplex` 会缓存、处理入站消息,然后将文件移动到 `/data/user/incoming-mail/success` 中。{% endif %} -### Verify your DNS settings +### 验证 DNS 设置 -In order to properly process inbound emails, you must configure a valid A Record (or CNAME), as well as an MX Record. For more information, see "[Configuring DNS and firewall settings to allow incoming emails](#configuring-dns-and-firewall-settings-to-allow-incoming-emails)." +为了正确处理入站电子邮件,您必须配置有效的 A 记录(或 CNAME)和 MX 记录。 更多信息请参阅“[配置 DNS 和防火墙设置以允许传入的电子邮件](#configuring-dns-and-firewall-settings-to-allow-incoming-emails)”。 -### Check firewall or AWS Security Group settings +### 检查防火墙或 AWS 安全组设置 -If {% data variables.product.product_location %} is behind a firewall or is being served through an AWS Security Group, make sure port 25 is open to all mail servers that send emails to `reply@reply.[hostname]`. +如果 {% data variables.product.product_location %} 位于防火墙后或者正在通过 AWS 安全组提供,请确保端口 25 对将电子邮件发送到 `reply@reply.[hostname]` 的所有邮件服务器开放。 -### Contact support +### 联系支持 {% ifversion ghes %} -If you're still unable to resolve the problem, contact {% data variables.contact.contact_ent_support %}. Please attach the output file from `http(s)://[hostname]/setup/diagnostics` to your email to help us troubleshoot your problem. +如果您仍然无法解决问题,请联系 {% data variables.contact.contact_ent_support %}。 请在您的电子邮件中附上 `http(s)://[hostname]/setup/diagnostics` 的输出文件,以便帮助我们排查您的问题。 {% elsif ghae %} -You can contact {% data variables.contact.github_support %} for help configuring email for notifications to be sent through your SMTP server. For more information, see "[Receiving help from {% data variables.contact.github_support %}](/admin/enterprise-support/receiving-help-from-github-support)." +您可以联系 {% data variables.contact.github_support %} 寻求帮助配置通过 SMTP 服务器发送电子邮件通知。 更多信息请参阅“[从 {% data variables.contact.github_support %} 获取帮助](/admin/enterprise-support/receiving-help-from-github-support)”。 {% endif %} diff --git a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode.md b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode.md index 9672d490d5..72d22eb429 100644 --- a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode.md +++ b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode.md @@ -79,7 +79,7 @@ IP 例外列表提供对 {% data variables.product.product_location %} 的受控 ## 通过 {% data variables.product.prodname_enterprise_api %} 排定维护模式 -您可以通过 {% data variables.product.prodname_enterprise_api %} 排定在其他时间或日期进行维护。 更多信息请参阅“[管理控制台](/enterprise/{{ currentVersion }}/user/rest/reference/enterprise-admin#enable-or-disable-maintenance-mode)”。 +您可以通过 {% data variables.product.prodname_enterprise_api %} 排定在其他时间或日期进行维护。 更多信息请参阅“[管理控制台](/enterprise/user/rest/reference/enterprise-admin#enable-or-disable-maintenance-mode)”。 ## 为集群中的所有节点启用或禁用维护模式 diff --git a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/enabling-private-mode.md b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/enabling-private-mode.md index 5e2a6633ac..b1d8efbb71 100644 --- a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/enabling-private-mode.md +++ b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/enabling-private-mode.md @@ -26,7 +26,7 @@ topics: {% data reusables.enterprise_installation.image-urls-viewable-warning %} -启用私有模式后,您可以允许未验证的 Git 操作(以及对 {% data variables.product.product_location %} 具有网络访问权限的任何人)读取已启用匿名 Git 读取权限的实例上的公共仓库代码。 更多信息请参阅“[允许管理员启用对公共仓库的匿名 Git 读取权限](/enterprise/{{ currentVersion }}/admin/guides/user-management/allowing-admins-to-enable-anonymous-git-read-access-to-public-repositories)”。 +启用私有模式后,您可以允许未验证的 Git 操作(以及对 {% data variables.product.product_location %} 具有网络访问权限的任何人)读取已启用匿名 Git 读取权限的实例上的公共仓库代码。 更多信息请参阅“[允许管理员启用对公共仓库的匿名 Git 读取权限](/enterprise/admin/guides/user-management/allowing-admins-to-enable-anonymous-git-read-access-to-public-repositories)”。 {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} diff --git a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md index 3871535de8..e074b64fd8 100644 --- a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md +++ b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md @@ -215,21 +215,21 @@ Refer to this section of the site admin dashboard to manage organizations, peopl This is a list of the repositories on {% data variables.product.product_location %}. You can click on a repository name and access functions for administering the repository. -- [Blocking force pushes to a repository](/enterprise/{{ currentVersion }}/admin/guides/developer-workflow/blocking-force-pushes-to-a-repository/) -- [Configuring {% data variables.large_files.product_name_long %}](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-git-large-file-storage/#configuring-git-large-file-storage-for-an-individual-repository) -- [Archiving and unarchiving repositories](/enterprise/{{ currentVersion }}/admin/guides/user-management/archiving-and-unarchiving-repositories/) +- [Blocking force pushes to a repository](/enterprise/admin/guides/developer-workflow/blocking-force-pushes-to-a-repository/) +- [Configuring {% data variables.large_files.product_name_long %}](/enterprise/admin/guides/installation/configuring-git-large-file-storage/#configuring-git-large-file-storage-for-an-individual-repository) +- [Archiving and unarchiving repositories](/enterprise/admin/guides/user-management/archiving-and-unarchiving-repositories/) ## All users -Here you can see all of the users on {% data variables.product.product_location %}, and [initiate an SSH key audit](/enterprise/{{ currentVersion }}/admin/guides/user-management/auditing-ssh-keys). +Here you can see all of the users on {% data variables.product.product_location %}, and [initiate an SSH key audit](/enterprise/admin/guides/user-management/auditing-ssh-keys). ## Site admins -Here you can see all of the administrators on {% data variables.product.product_location %}, and [initiate an SSH key audit](/enterprise/{{ currentVersion }}/admin/guides/user-management/auditing-ssh-keys). +Here you can see all of the administrators on {% data variables.product.product_location %}, and [initiate an SSH key audit](/enterprise/admin/guides/user-management/auditing-ssh-keys). ## Dormant users {% ifversion ghes %} -Here you can see and [suspend](/enterprise/{{ currentVersion }}/admin/guides/user-management/suspending-and-unsuspending-users) all of the inactive users on {% data variables.product.product_location %}. A user account is considered to be inactive ("dormant") when it: +Here you can see and [suspend](/enterprise/admin/guides/user-management/suspending-and-unsuspending-users) all of the inactive users on {% data variables.product.product_location %}. A user account is considered to be inactive ("dormant") when it: {% endif %} {% ifversion ghae %} Here you can see and suspend all of the inactive users on {% data variables.product.product_location %}. A user account is considered to be inactive ("dormant") when it: @@ -239,8 +239,8 @@ Here you can see and suspend all of the inactive users on {% data variables.prod - Has not generated any activity within that time period. - Is not a site administrator. -{% data reusables.enterprise_site_admin_settings.dormancy-threshold %} For more information, see "[Managing dormant users](/enterprise/{{ currentVersion }}/admin/guides/user-management/managing-dormant-users/#configuring-the-dormancy-threshold)." +{% data reusables.enterprise_site_admin_settings.dormancy-threshold %} For more information, see "[Managing dormant users](/enterprise/admin/guides/user-management/managing-dormant-users/#configuring-the-dormancy-threshold)." ## Suspended users -Here you can see all of the users who have been suspended on {% data variables.product.product_location %}, and [initiate an SSH key audit](/enterprise/{{ currentVersion }}/admin/guides/user-management/auditing-ssh-keys). +Here you can see all of the users who have been suspended on {% data variables.product.product_location %}, and [initiate an SSH key audit](/enterprise/admin/guides/user-management/auditing-ssh-keys). diff --git a/translations/zh-CN/content/admin/enterprise-management/caching-repositories/configuring-a-repository-cache.md b/translations/zh-CN/content/admin/enterprise-management/caching-repositories/configuring-a-repository-cache.md index ac3054b2b2..8c39ef91ed 100644 --- a/translations/zh-CN/content/admin/enterprise-management/caching-repositories/configuring-a-repository-cache.md +++ b/translations/zh-CN/content/admin/enterprise-management/caching-repositories/configuring-a-repository-cache.md @@ -62,10 +62,10 @@ topics: $ ghe-repl-setup <em>PRIMARY IP</em> ``` -1. 为存储库缓存设置 `cache_location`,将 *CACHE-LOCATION* 替换为字母数字标识符,例如部署缓存的区域。 +1. 为存储库缓存设置 `cache_location`,将 *CACHE-LOCATION* 替换为字母数字标识符,例如部署缓存的区域。 还要为此缓存设置数据中心名称;新缓存将尝试从同一数据中心中的另一个缓存设定种子。 ```shell - $ ghe-repl-node --cache <em>CACHE-LOCATION</em> + $ ghe-repl-node --cache <em>CACHE-LOCATION</em> --datacenter <em>REPLICA-DC-NAME</em> ``` {% data reusables.enterprise_installation.replication-command %} diff --git a/translations/zh-CN/content/admin/enterprise-management/configuring-clustering/about-clustering.md b/translations/zh-CN/content/admin/enterprise-management/configuring-clustering/about-clustering.md index fec293b249..ea19e964d2 100644 --- a/translations/zh-CN/content/admin/enterprise-management/configuring-clustering/about-clustering.md +++ b/translations/zh-CN/content/admin/enterprise-management/configuring-clustering/about-clustering.md @@ -19,7 +19,7 @@ topics: {% data variables.product.prodname_ghe_server %} 由一组服务组成。 在集群中,这些服务跨多个节点运行,请求在它们之间进行负载均衡。 更改会与冗余副本一起自动存储在到单独的节点上。 大多数服务与相同服务的其他实例是对等的。 这种情况的例外是 `mysql-server` 和 `redis-server` 服务。 它们使用具有一个或多个_副本_节点的单个_主_节点来操作。 -详细了解[群集所需的服务](/enterprise/{{ currentVersion }}/admin/enterprise-management/about-cluster-nodes#services-required-for-clustering)。 +详细了解[群集所需的服务](/enterprise/admin/enterprise-management/about-cluster-nodes#services-required-for-clustering)。 ## 集群是否适合我的组织? @@ -27,7 +27,7 @@ topics: {% data variables.product.prodname_ghe_server %} 要求节点之间保持较低的延迟,不适用于跨地理位置的冗余。 -集群提供了冗余功能,但不适用于替换高可用性配置。 更多信息请参阅[高可用性配置](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-github-enterprise-server-for-high-availability)。 主设备/辅助设备故障切换配置远比集群简单,可以满足许多组织的需求。 更多信息请参阅[集群与高可用性之间的差异](/enterprise/{{ currentVersion }}/admin/guides/clustering/differences-between-clustering-and-high-availability-ha/)。 +集群提供了冗余功能,但不适用于替换高可用性配置。 更多信息请参阅[高可用性配置](/enterprise/admin/guides/installation/configuring-github-enterprise-server-for-high-availability)。 主设备/辅助设备故障切换配置远比集群简单,可以满足许多组织的需求。 更多信息请参阅[集群与高可用性之间的差异](/enterprise/admin/guides/clustering/differences-between-clustering-and-high-availability-ha/)。 {% data reusables.package_registry.packages-cluster-support %} diff --git a/translations/zh-CN/content/admin/enterprise-management/configuring-clustering/differences-between-clustering-and-high-availability-ha.md b/translations/zh-CN/content/admin/enterprise-management/configuring-clustering/differences-between-clustering-and-high-availability-ha.md index f3f5dfa2f7..94e745cd73 100644 --- a/translations/zh-CN/content/admin/enterprise-management/configuring-clustering/differences-between-clustering-and-high-availability-ha.md +++ b/translations/zh-CN/content/admin/enterprise-management/configuring-clustering/differences-between-clustering-and-high-availability-ha.md @@ -39,8 +39,8 @@ HA 或集群都不应被视为常规备份的替代品。 更多信息请参阅 ## 监视 -可用性功能,尤其是具有自动故障切换的功能(如集群)可以屏蔽故障,因为在发生故障时通常不会中断服务。 无论您使用的是 HA 还是集群,监视每个实例的状态都十分重要,这样您就可以了解何时发生了故障。 有关监视的更多信息,请参阅“[建议的警报阈值](/enterprise/{{ currentVersion }}/admin/guides/installation/recommended-alert-thresholds/)”和“[监视集群节点](/enterprise/{{ currentVersion}}/admin/guides/clustering/monitoring-cluster-nodes/)”。 +可用性功能,尤其是具有自动故障切换的功能(如集群)可以屏蔽故障,因为在发生故障时通常不会中断服务。 无论您使用的是 HA 还是集群,监视每个实例的状态都十分重要,这样您就可以了解何时发生了故障。 有关监控的详细信息,请参阅“[建议的警报阈值](/enterprise/admin/guides/installation/recommended-alert-thresholds/)”和“[监控群集节点](/enterprise/{{ currentVersion}}/admin/guides/clustering/monitoring-cluster-nodes/)”。 ## 延伸阅读 - 有关 {% data variables.product.prodname_ghe_server %} 集群的更多信息,请参阅“[关于集群](/enterprise/{{ currentVersion}}/admin/guides/clustering/about-clustering/)”。 -- 有关 HA 的更多信息,请参阅“[配置 {% data variables.product.prodname_ghe_server %} 以实现高可用性](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-github-enterprise-server-for-high-availability/)”。 +- 有关 HA 的更多信息,请参阅“[配置 {% data variables.product.prodname_ghe_server %} 以实现高可用性](/enterprise/admin/guides/installation/configuring-github-enterprise-server-for-high-availability/)”。 diff --git a/translations/zh-CN/content/admin/enterprise-management/configuring-clustering/initializing-the-cluster.md b/translations/zh-CN/content/admin/enterprise-management/configuring-clustering/initializing-the-cluster.md index 82c9c6f06e..c924307ec7 100644 --- a/translations/zh-CN/content/admin/enterprise-management/configuring-clustering/initializing-the-cluster.md +++ b/translations/zh-CN/content/admin/enterprise-management/configuring-clustering/initializing-the-cluster.md @@ -17,12 +17,12 @@ topics: ## 安装 {% data variables.product.prodname_ghe_server %} -1. 在每个集群节点上,提供并安装 {% data variables.product.prodname_ghe_server %}。 更多信息请参阅“[设置 {% data variables.product.prodname_ghe_server %} 实例](/enterprise/{{ currentVersion }}/admin/guides/installation/setting-up-a-github-enterprise-server-instance)”。 +1. 在每个集群节点上,提供并安装 {% data variables.product.prodname_ghe_server %}。 更多信息请参阅“[设置 {% data variables.product.prodname_ghe_server %} 实例](/enterprise/admin/guides/installation/setting-up-a-github-enterprise-server-instance)”。 2. 使用管理 shell 或 DHCP,**仅**配置每个节点的 IP 地址。 不要配置任何其他设置。 ## 配置第一个节点 -1. 连接到将在 `cluster.conf` 中指定为 MySQL 主要节点的节点。 更多信息请参阅“[关于集群配置文件](/enterprise/{{ currentVersion }}/admin/guides/clustering/initializing-the-cluster/#about-the-cluster-configuration-file)”。 +1. 连接到将在 `cluster.conf` 中指定为 MySQL 主要节点的节点。 更多信息请参阅“[关于集群配置文件](/enterprise/admin/guides/clustering/initializing-the-cluster/#about-the-cluster-configuration-file)”。 2. 在 Web 浏览器中,访问 `https://<ip address>:8443/setup/`。 {% data reusables.enterprise_installation.upload-a-license-file %} {% data reusables.enterprise_installation.save-settings-in-web-based-mgmt-console %} @@ -30,7 +30,7 @@ topics: ## 初始化集群 -要初始化集群,您需要一个集群配置文件 (`cluster.conf`)。 更多信息请参阅“[关于集群配置文件](/enterprise/{{ currentVersion }}/admin/guides/clustering/initializing-the-cluster/#about-the-cluster-configuration-file)”。 +要初始化集群,您需要一个集群配置文件 (`cluster.conf`)。 更多信息请参阅“[关于集群配置文件](/enterprise/admin/guides/clustering/initializing-the-cluster/#about-the-cluster-configuration-file)”。 1. 从配置的第一个节点开始,运行 `ghe-cluster-config-init`。 如果集群配置文件中存在未配置的节点,此操作会初始化集群。 2. 运行 `ghe-cluster-config-apply`。 这将验证 `cluster.conf` 文件,将配置应用于每个节点文件,并在每个节点上显示已配置的服务。 @@ -39,7 +39,7 @@ topics: ## 关于集群配置文件 -集群配置文件 (`cluster.conf`) 会定义集群中的节点以及它们运行的​​服务。 更多信息请参阅“[关于集群节点](/enterprise/{{ currentVersion }}/admin/guides/clustering/about-cluster-nodes)”。 +集群配置文件 (`cluster.conf`) 会定义集群中的节点以及它们运行的​​服务。 更多信息请参阅“[关于集群节点](/enterprise/admin/guides/clustering/about-cluster-nodes)”。 此示例 `cluster.conf` 定义了一个包含五个节点的集群。 diff --git a/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/about-geo-replication.md b/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/about-geo-replication.md index 3223a93978..abb69ba448 100644 --- a/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/about-geo-replication.md +++ b/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/about-geo-replication.md @@ -34,4 +34,4 @@ Geo-replication 不会增大 {% data variables.product.prodname_ghe_server %} {% data reusables.enterprise_installation.monitoring-replicas %} ## 延伸阅读 -- “[创建 Geo-replication 副本](/enterprise/{{ currentVersion }}/admin/guides/installation/creating-a-high-availability-replica/#creating-geo-replication-replicas)” +- “[创建 Geo-replication 副本](/enterprise/admin/guides/installation/creating-a-high-availability-replica/#creating-geo-replication-replicas)” diff --git a/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/about-high-availability-configuration.md b/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/about-high-availability-configuration.md index 70a948f6a6..ed3fe9d59a 100644 --- a/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/about-high-availability-configuration.md +++ b/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/about-high-availability-configuration.md @@ -30,7 +30,7 @@ shortTitle: 关于 HA 配置 高可用性配置不适用于: - - **扩展**。 虽然可以使用 Geo-replication 将流量分布在不同地理位置,但写入性能受限于主设备的速度和可用性。 更多信息请参阅“[关于 Geo-replication](/enterprise/{{ currentVersion }}/admin/guides/installation/about-geo-replication/)”。{% ifversion ghes > 3.2 %} + - **扩展**。 虽然可以使用 Geo-replication 将流量分布在不同地理位置,但写入性能受限于主设备的速度和可用性。 更多信息请参阅“[关于 Geo-replication](/enterprise/admin/guides/installation/about-geo-replication/)”。{% ifversion ghes > 3.2 %} - **CI/CD 负载**。 如果您有大量在地理位置上远离主实例的 CI 客户端,则配置仓库缓存可能会使您受益匪浅。 更多信息请参阅“[关于仓库缓存](/admin/enterprise-management/caching-repositories/about-repository-caching)”。{% endif %} - **备份主设备**。 高可用性副本不会替代灾难恢复计划中的非现场备份。 某些形式的数据损坏或数据丢失可能会立即从主设备复制到副本。 为确保安全回滚到稳定的过去状态,必须通过历史快照执行定期备份。 - **零停机时间升级**。 为避免受控升级场景下出现数据丢失和裂脑的状况,请先将主设备置于维护模式并等待所有写入操作完成,然后再对副本进行升级。 @@ -45,13 +45,13 @@ shortTitle: 关于 HA 配置 在故障转移期间,必须将主设备置于维护模式,并将其 DNS 记录重定向到副本的 IP 地址。 将流量从主设备重新定向到副本所需的时间将取决于 TTL 配置以及更新 DNS 记录所需的时间。 -如果您要使用 Geo-replication,则必须配置 Geo DNS,将流量定向到距离最近的副本。 更多信息请参阅“[关于 Geo-replication](/enterprise/{{ currentVersion }}/admin/guides/installation/about-geo-replication/)”。 +如果您要使用 Geo-replication,则必须配置 Geo DNS,将流量定向到距离最近的副本。 更多信息请参阅“[关于 Geo-replication](/enterprise/admin/guides/installation/about-geo-replication/)”。 ### 负载均衡器 {% data reusables.enterprise_clustering.load_balancer_intro %} {% data reusables.enterprise_clustering.load_balancer_dns %} -在故障转移期间,您必须将主设备置于维护模式。 您可以将负载均衡器配置为自动检测副本何时已升级为主设备,或者可能需要手动更改配置。 您必须先将副本手动升级为主设备,随后副本才能对用户流量作出响应。 更多信息请参阅“[结合使用 {% data variables.product.prodname_ghe_server %} 和负载均衡器](/enterprise/{{ currentVersion }}/admin/guides/installation/using-github-enterprise-server-with-a-load-balancer/)”。 +在故障转移期间,您必须将主设备置于维护模式。 您可以将负载均衡器配置为自动检测副本何时已升级为主设备,或者可能需要手动更改配置。 您必须先将副本手动升级为主设备,随后副本才能对用户流量作出响应。 更多信息请参阅“[结合使用 {% data variables.product.prodname_ghe_server %} 和负载均衡器](/enterprise/admin/guides/installation/using-github-enterprise-server-with-a-load-balancer/)”。 {% data reusables.enterprise_installation.monitoring-replicas %} @@ -187,5 +187,5 @@ Success: Replica has been promoted to primary and is now accepting requests. ## 延伸阅读 -- “[创建高可用性副本](/enterprise/{{ currentVersion }}/admin/guides/installation/creating-a-high-availability-replica)” +- “[创建高可用性副本](/enterprise/admin/guides/installation/creating-a-high-availability-replica)” - "[网络端口](/admin/configuration/configuring-network-settings/network-ports)" diff --git a/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/creating-a-high-availability-replica.md b/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/creating-a-high-availability-replica.md index 712817f2f2..2967175c90 100644 --- a/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/creating-a-high-availability-replica.md +++ b/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/creating-a-high-availability-replica.md @@ -19,7 +19,7 @@ shortTitle: 创建 HA 副本 ## 创建高可用性副本 -1. 在所需平台上设置新的 {% data variables.product.prodname_ghe_server %} 设备。 副本设备应镜像主设备的 CPU、RAM 和存储设置。 建议您在独立环境中安装副本设备。 底层硬件、软件和网络组件应与主设备的相应部分隔离。 如果要使用云提供商,请使用单独的区域或分区。 更多信息请参阅“[设置 {% data variables.product.prodname_ghe_server %} 实例](/enterprise/{{ currentVersion }}/admin/guides/installation/setting-up-a-github-enterprise-server-instance)”。 +1. 在所需平台上设置新的 {% data variables.product.prodname_ghe_server %} 设备。 副本设备应镜像主设备的 CPU、RAM 和存储设置。 建议您在独立环境中安装副本设备。 底层硬件、软件和网络组件应与主设备的相应部分隔离。 如果要使用云提供商,请使用单独的区域或分区。 更多信息请参阅“[设置 {% data variables.product.prodname_ghe_server %} 实例](/enterprise/admin/guides/installation/setting-up-a-github-enterprise-server-instance)”。 1. 确保主设备和新的副本设备可以通过端口 122/TCP 和 1194/UDP 相互通信。 更多信息请参阅“[网络端口](/admin/configuration/configuring-network-settings/network-ports#administrative-ports)”。 1. 在浏览器中,导航到新副本设备的 IP 地址并上传您的 {% data variables.product.prodname_enterprise %} 许可。 {% data reusables.enterprise_installation.replica-steps %} @@ -38,7 +38,7 @@ shortTitle: 创建 HA 副本 ## 创建 Geo-replication 副本 -此示例配置使用一个主设备和两个副本,它们位于三个不同的地理区域。 由于三个节点可以位于不同网络中,要求所有节点均可从其他所有节点到达。 必需的管理端口至少应向其他所有节点开放。 有关端口要求的更多信息,请参阅“[网络端口](/enterprise/{{ currentVersion }}/admin/guides/installation/network-ports/#administrative-ports)”。 +此示例配置使用一个主设备和两个副本,它们位于三个不同的地理区域。 由于三个节点可以位于不同网络中,要求所有节点均可从其他所有节点到达。 必需的管理端口至少应向其他所有节点开放。 有关端口要求的更多信息,请参阅“[网络端口](/enterprise/admin/guides/installation/network-ports/#administrative-ports)”。 1. 在第一个副本上运行 `ghe-repl-setup`,采用与创建标准双节点配置相同的方式创建第一个副本。 ```shell @@ -98,6 +98,6 @@ shortTitle: 创建 HA 副本 ## 延伸阅读 -- "[关于高可用性配置](/enterprise/{{ currentVersion }}/admin/guides/installation/about-high-availability-configuration)" -- "[用于复制管理的实用程序](/enterprise/{{ currentVersion }}/admin/guides/installation/about-high-availability-configuration/#utilities-for-replication-management)" -- “[关于 Geo-replication](/enterprise/{{ currentVersion }}/admin/guides/installation/about-geo-replication/)” +- "[关于高可用性配置](/enterprise/admin/guides/installation/about-high-availability-configuration)" +- "[用于复制管理的实用程序](/enterprise/admin/guides/installation/about-high-availability-configuration/#utilities-for-replication-management)" +- “[关于 Geo-replication](/enterprise/admin/guides/installation/about-geo-replication/)” diff --git a/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/initiating-a-failover-to-your-replica-appliance.md b/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/initiating-a-failover-to-your-replica-appliance.md index c79b0888ed..57013e8ab6 100644 --- a/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/initiating-a-failover-to-your-replica-appliance.md +++ b/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/initiating-a-failover-to-your-replica-appliance.md @@ -50,7 +50,7 @@ shortTitle: 启动故障转移到设备 ``` 5. 将 DNS 记录更新为指向副本的 IP 地址。 流量会在经过 TTL 周期后定向到副本。 如果您要使用负载均衡器,请务必将其配置为向副本发送流量。 6. 通知用户他们可以恢复正常操作。 -7. 如有需要,请设置从新的主设备复制到现有设备和之前的主设备。 更多信息请参阅“[关于高可用性配置](/enterprise/{{ currentVersion }}/admin/guides/installation/about-high-availability-configuration/#utilities-for-replication-management)”。 +7. 如有需要,请设置从新的主设备复制到现有设备和之前的主设备。 更多信息请参阅“[关于高可用性配置](/enterprise/admin/guides/installation/about-high-availability-configuration/#utilities-for-replication-management)”。 8. 您不打算在故障转移之前将复制设置为高可用性配置一部分的设备需由 UUID 从高可用性配置中删除。 - 在以前的设备上,通过 `cat /data/user/common/uuid` 获取其 UUID。 ```shell @@ -63,4 +63,4 @@ shortTitle: 启动故障转移到设备 ## 延伸阅读 -- "[用于复制管理的实用程序](/enterprise/{{ currentVersion }}/admin/guides/installation/about-high-availability-configuration/#utilities-for-replication-management)" +- "[用于复制管理的实用程序](/enterprise/admin/guides/installation/about-high-availability-configuration/#utilities-for-replication-management)" diff --git a/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/recovering-a-high-availability-configuration.md b/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/recovering-a-high-availability-configuration.md index be5fc0a2e8..cdac95d871 100644 --- a/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/recovering-a-high-availability-configuration.md +++ b/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/recovering-a-high-availability-configuration.md @@ -17,7 +17,7 @@ shortTitle: 恢复 HA 配置 ## 关于高可用性配置的恢复 -如果故障转移是在计划内进行的,或者与设备的健康状态无关,则可以将之前的主设备用作新的副本设备。 如果故障转移与主设备的问题相关,则最好创建新的副本设备。 更多信息请参阅“[创建高可用性副本](/enterprise/{{ currentVersion }}/admin/guides/installation/creating-a-high-availability-replica/)”。 +如果故障转移是在计划内进行的,或者与设备的健康状态无关,则可以将之前的主设备用作新的副本设备。 如果故障转移与主设备的问题相关,则最好创建新的副本设备。 更多信息请参阅“[创建高可用性副本](/enterprise/admin/guides/installation/creating-a-high-availability-replica/)”。 {% warning %} diff --git a/translations/zh-CN/content/admin/enterprise-management/monitoring-your-appliance/accessing-the-monitor-dashboard.md b/translations/zh-CN/content/admin/enterprise-management/monitoring-your-appliance/accessing-the-monitor-dashboard.md index 882f79881e..17ba3b2e8a 100644 --- a/translations/zh-CN/content/admin/enterprise-management/monitoring-your-appliance/accessing-the-monitor-dashboard.md +++ b/translations/zh-CN/content/admin/enterprise-management/monitoring-your-appliance/accessing-the-monitor-dashboard.md @@ -27,7 +27,7 @@ shortTitle: 访问监控仪表板 {% note %} -**注**:由于通过持续集成 (CI) 或构建服务器定期轮询 {% data variables.product.product_location %} 会引发拒绝服务攻击,从而导致问题的出现,因此,建议使用 web 挂钩推送更新。 更多信息请参阅“[关于 web 挂钩](/enterprise/{{ currentVersion }}/user/articles/about-webhooks/)”。 +**注**:由于通过持续集成 (CI) 或构建服务器定期轮询 {% data variables.product.product_location %} 会引发拒绝服务攻击,从而导致问题的出现,因此,建议使用 web 挂钩推送更新。 更多信息请参阅“[关于 web 挂钩](/enterprise/user/articles/about-webhooks/)”。 {% endnote %} @@ -35,8 +35,8 @@ shortTitle: 访问监控仪表板 | 问题 | 可能原因 | 建议 | | ---------- | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| CPU 利用率高 | 在同一主机上运行的其他服务或程序争用 VM | 如有可能,请将其他服务或程序重新配置为占用较少的 CPU 资源。 要增加 VM 的总 CPU 资源,请参阅“[增加 CPU 或内存资源](/enterprise/{{ currentVersion }}/admin/guides/installation/increasing-cpu-or-memory-resources/)”。 | -| 内存使用量高 | 在同一主机上运行的其他服务或程序争用 VM | 如有可能,请将其他服务或程序重新配置为占用较少内存。 要增加 VM 上可用的总内存大小,请参阅“[增加 CPU 或内存资源](/enterprise/{{ currentVersion }}/admin/guides/installation/increasing-cpu-or-memory-resources/)”。 | -| 可用磁盘空间小 | 较大的二进制或日志文件占用磁盘空间 | 如有可能,请在独立服务器上托管较大的二进制文件,并压缩或存档日志文件。 如有必要,请按“[增加存储容量](/enterprise/{{ currentVersion }}/admin/guides/installation/increasing-storage-capacity/)”中的步骤操作,为您的平台增加 VM 的磁盘空间。 | +| CPU 利用率高 | 在同一主机上运行的其他服务或程序争用 VM | 如有可能,请将其他服务或程序重新配置为占用较少的 CPU 资源。 要增加 VM 的总 CPU 资源,请参阅“[增加 CPU 或内存资源](/enterprise/admin/guides/installation/increasing-cpu-or-memory-resources/)”。 | +| 内存使用量高 | 在同一主机上运行的其他服务或程序争用 VM | 如有可能,请将其他服务或程序重新配置为占用较少内存。 要增加 VM 上可用的总内存大小,请参阅“[增加 CPU 或内存资源](/enterprise/admin/guides/installation/increasing-cpu-or-memory-resources/)”。 | +| 可用磁盘空间小 | 较大的二进制或日志文件占用磁盘空间 | 如有可能,请在独立服务器上托管较大的二进制文件,并压缩或存档日志文件。 如有必要,请按“[增加存储容量](/enterprise/admin/guides/installation/increasing-storage-capacity/)”中的步骤操作,为您的平台增加 VM 的磁盘空间。 | | 响应时间较正常时间长 | 通常是上述问题之一造成的 | 确定并解决根本问题。 如果响应时间仍较长,请联系 {% data variables.contact.contact_ent_support %}。 | | 错误率提高 | 软件问题 | 联系 {% data variables.contact.contact_ent_support %} 并附上支持包。 更多信息请参阅“[向 {% data variables.product.prodname_enterprise %} Support 提供数据](/enterprise/{{ currentVersion}}/admin/guides/enterprise-support/providing-data-to-github-support#creating-and-sharing-support-bundles)”。 | diff --git a/translations/zh-CN/content/admin/enterprise-management/monitoring-your-appliance/setting-up-external-monitoring.md b/translations/zh-CN/content/admin/enterprise-management/monitoring-your-appliance/setting-up-external-monitoring.md index fc03d449f6..bb38837dc9 100644 --- a/translations/zh-CN/content/admin/enterprise-management/monitoring-your-appliance/setting-up-external-monitoring.md +++ b/translations/zh-CN/content/admin/enterprise-management/monitoring-your-appliance/setting-up-external-monitoring.md @@ -18,10 +18,10 @@ shortTitle: 设置外部监控 ## 关于 SNMP -简单网络管理协议 (SNMP) 是一种受到广泛支持的网络设备和服务器监视方法。 SNMP 默认禁用,但可以通过 {% data variables.product.prodname_enterprise %} 监视仪表板进行配置。 UDP 端口 161 必须打开,并且可以通过您的网络管理站到达。 更多信息请参阅“[使用 SNMP 进行监视](/enterprise/{{ currentVersion }}/admin/guides/installation/monitoring-using-snmp/)”。 +简单网络管理协议 (SNMP) 是一种受到广泛支持的网络设备和服务器监视方法。 SNMP 默认禁用,但可以通过 {% data variables.product.prodname_enterprise %} 监视仪表板进行配置。 UDP 端口 161 必须打开,并且可以通过您的网络管理站到达。 更多信息请参阅“[使用 SNMP 进行监视](/enterprise/admin/guides/installation/monitoring-using-snmp/)”。 ## 关于 collectd -collectd 属于开源统计信息收集和报告守护程序,内置对写入 RRD 文件的支持。 可以将关于 CPU 利用率、内存与磁盘占用量、网络接口流量与错误以及系统负荷的统计信息转发到外部 collectd 服务器,可在该服务器中使用各种可用工具和插件配置图表、分析和警报。 要配置 `collectd` 转发,请参阅“[配置 collectd](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-collectd/)”。 +collectd 属于开源统计信息收集和报告守护程序,内置对写入 RRD 文件的支持。 可以将关于 CPU 利用率、内存与磁盘占用量、网络接口流量与错误以及系统负荷的统计信息转发到外部 collectd 服务器,可在该服务器中使用各种可用工具和插件配置图表、分析和警报。 要配置 `collectd` 转发,请参阅“[配置 collectd](/enterprise/admin/guides/installation/configuring-collectd/)”。 此外,也可以使用内置到底层虚拟化平台的监视工具对系统资源进行基本监视和警报。 更多信息请参阅 [Amazon CloudWatch](http://aws.amazon.com/cloudwatch/) 和 [VMware vSphere 监视](http://pubs.vmware.com/vsphere-50/topic/com.vmware.ICbase/PDF/vsphere-esxi-vcenter-server-50-monitoring-performance-guide.pdf)文档。 diff --git a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/enabling-automatic-update-checks.md b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/enabling-automatic-update-checks.md index f08b222c40..4ac7175d1c 100644 --- a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/enabling-automatic-update-checks.md +++ b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/enabling-automatic-update-checks.md @@ -14,9 +14,9 @@ topics: shortTitle: 启用自动更新检查 --- -在 {% data variables.product.product_location %} 的升级包自动下载后,您将收到一条消息,通知您可以升级 {% data variables.product.prodname_ghe_server %}。 升级包会下载到 {% data variables.product.product_location %} 上的 `/var/lib/ghe-updates` 目录中。 更多信息请参阅“[升级 {% data variables.product.prodname_ghe_server %}](/enterprise/{{ currentVersion }}/admin/guides/installation/upgrading-github-enterprise-server)”。 +在 {% data variables.product.product_location %} 的升级包自动下载后,您将收到一条消息,通知您可以升级 {% data variables.product.prodname_ghe_server %}。 升级包会下载到 {% data variables.product.product_location %} 上的 `/var/lib/ghe-updates` 目录中。 更多信息请参阅“[升级 {% data variables.product.prodname_ghe_server %}](/enterprise/admin/guides/installation/upgrading-github-enterprise-server)。” -如果升级存在可用的热补丁,将自动下载 `.hpkg`。 在 Management Console 中,您可以选择立即安装热补丁或排定稍后安装。 更多信息请参阅“[通过热补丁升级](/enterprise/{{ currentVersion }}/admin/guides/installation/upgrading-github-enterprise-server#upgrading-with-a-hotpatch)”。 +如果升级存在可用的热补丁,将自动下载 `.hpkg`。 在 Management Console 中,您可以选择立即安装热补丁或排定稍后安装。 更多信息请参阅“[通过热补丁升级](/enterprise/admin/guides/installation/upgrading-github-enterprise-server#upgrading-with-a-hotpatch)”。 {% tip %} diff --git a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-cpu-or-memory-resources.md b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-cpu-or-memory-resources.md index 05428a11ca..d117fdaf09 100644 --- a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-cpu-or-memory-resources.md +++ b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-cpu-or-memory-resources.md @@ -18,7 +18,7 @@ shortTitle: Increase CPU or memory {% note %} -**Note:** Before increasing CPU or memory resources, put your instance in maintenance mode.{% ifversion ip-exception-list %} You can validate changes by configuring an IP exception list to allow access from specified IP addresses. {% endif %} For more information, see "[Enabling and scheduling maintenance mode](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-and-scheduling-maintenance-mode)." +**Note:** Before increasing CPU or memory resources, put your instance in maintenance mode.{% ifversion ip-exception-list %} You can validate changes by configuring an IP exception list to allow access from specified IP addresses. {% endif %} For more information, see "[Enabling and scheduling maintenance mode](/enterprise/admin/guides/installation/enabling-and-scheduling-maintenance-mode)." {% endnote %} diff --git a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-storage-capacity.md b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-storage-capacity.md index f2791f43ff..e522f9589d 100644 --- a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-storage-capacity.md +++ b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-storage-capacity.md @@ -24,7 +24,7 @@ shortTitle: 增加存储容量 {% note %} -**注意:** 在调整任何存储卷的大小之前,请将您的实例置于维护模式。{% ifversion ip-exception-list %} 您可以通过配置 IP 例外列表以允许从指定的 IP 地址进行访问来验证更改。 {% endif %} 更多信息请参阅“[启用和计划维护模式](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-and-scheduling-maintenance-mode)”。 +**注意:** 在调整任何存储卷的大小之前,请将您的实例置于维护模式。{% ifversion ip-exception-list %} 您可以通过配置 IP 例外列表以允许从指定的 IP 地址进行访问来验证更改。 {% endif %} 更多信息请参阅“[启用和计划维护模式](/enterprise/admin/guides/installation/enabling-and-scheduling-maintenance-mode)”。 {% endnote %} @@ -36,7 +36,7 @@ shortTitle: 增加存储容量 1. 使用虚拟平台工具调整现有用户卷磁盘大小。 {% data reusables.enterprise_installation.ssh-into-instance %} -3. 将设备置于维护模式。 更多信息请参阅“[启用和排定维护模式](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-and-scheduling-maintenance-mode)”。 +3. 将设备置于维护模式。 更多信息请参阅“[启用和排定维护模式](/enterprise/admin/guides/installation/enabling-and-scheduling-maintenance-mode)”。 4. 重启设备,以检测新存储分配。 ```shell $ sudo reboot @@ -48,7 +48,7 @@ shortTitle: 增加存储容量 ## 使用新设备增加根分区大小 -1. 使用版本与当前设备相同的较大根磁盘来设置新的 {% data variables.product.prodname_ghe_server %} 实例。 更多信息请参阅“[设置 {% data variables.product.prodname_ghe_server %} 实例](/enterprise/{{ currentVersion }}/admin/guides/installation/setting-up-a-github-enterprise-server-instance)”。 +1. 使用版本与当前设备相同的较大根磁盘来设置新的 {% data variables.product.prodname_ghe_server %} 实例。 更多信息请参阅“[设置 {% data variables.product.prodname_ghe_server %} 实例](/enterprise/admin/guides/installation/setting-up-a-github-enterprise-server-instance)”。 2. 关闭当前设备: ```shell $ sudo poweroff @@ -60,7 +60,7 @@ shortTitle: 增加存储容量 {% warning %} -**警告:** 在增加根分区大小之前,您必须将您的实例置于维护模式。 更多信息请参阅“[启用和排定维护模式](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-and-scheduling-maintenance-mode)”。 +**警告:** 在增加根分区大小之前,您必须将您的实例置于维护模式。 更多信息请参阅“[启用和排定维护模式](/enterprise/admin/guides/installation/enabling-and-scheduling-maintenance-mode)”。 {% endwarning %} diff --git a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/index.md b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/index.md index 423de2b563..bc902930d4 100644 --- a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/index.md +++ b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/index.md @@ -2,8 +2,8 @@ title: 更新虚拟机和物理资源 intro: 升级虚拟软件和虚拟硬件需要您的实例停机一段时间,因此,请务必提前规划升级。 redirect_from: - - '/enterprise/{{ currentVersion }}/admin/guides/installation/upgrading-the-vm' - - '/enterprise/{{ currentVersion }}/admin/guides/installation/upgrading-physical-resources' + - /enterprise/admin/guides/installation/upgrading-the-vm + - /enterprise/admin/guides/installation/upgrading-physical-resources - /enterprise/admin/installation/updating-the-virtual-machine-and-physical-resources - /enterprise/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources versions: diff --git a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/migrating-from-github-enterprise-1110x-to-2123.md b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/migrating-from-github-enterprise-1110x-to-2123.md index 5b6cc94575..3a16d52c60 100644 --- a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/migrating-from-github-enterprise-1110x-to-2123.md +++ b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/migrating-from-github-enterprise-1110x-to-2123.md @@ -54,7 +54,7 @@ shortTitle: 从 11.10.x 迁移到 2.1.23 6. 将备份主机访问 SSH 密钥粘贴到“Add new SSH key”中。 ![授权备份](/assets/images/enterprise/migration/migration-authorize-backup-host.png) 7. 单击 **Add key(添加密钥)**,然后单击 **Continue(继续)**。 8. 复制您将在备份主机上运行的 `ghe-restore` 命令,将数据迁移到新实例。 ![开始迁移](/assets/images/enterprise/migration/migration-restore-start.png) -9. 在旧实例上启用维护模式,并等待所有活动进程完成。 更多信息请参阅“[启用和排定维护模式](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-and-scheduling-maintenance-mode)”。 +9. 在旧实例上启用维护模式,并等待所有活动进程完成。 更多信息请参阅“[启用和排定维护模式](/enterprise/admin/guides/installation/enabling-and-scheduling-maintenance-mode)”。 {% note %} @@ -95,4 +95,4 @@ shortTitle: 从 11.10.x 迁移到 2.1.23 {% endnote %} 15. 使用 DNS 或 IP 地址分配将用户网络流量从旧实例切换到新实例。 -16. 升级到 {{ currentVersion }} 的最新补丁版本。 更多信息请参阅“[升级 {% data variables.product.prodname_ghe_server %}](/enterprise/admin/guides/installation/upgrading-github-enterprise-server/)。” +16. 升级到 {% data variables.product.prodname_ghe_server %} 的最新修补程序版本。 更多信息请参阅“[升级 {% data variables.product.prodname_ghe_server %}](/enterprise/admin/guides/installation/upgrading-github-enterprise-server/)。” diff --git a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrade-requirements.md b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrade-requirements.md index fa32f2c3f2..3966c11437 100644 --- a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrade-requirements.md +++ b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrade-requirements.md @@ -1,6 +1,6 @@ --- -title: Upgrade requirements -intro: 'Before upgrading {% data variables.product.prodname_ghe_server %}, review these recommendations and requirements to plan your upgrade strategy.' +title: 升级要求 +intro: '对 {% data variables.product.prodname_ghe_server %} 进行升级之前,请查阅升级策略规划的建议和要求。' redirect_from: - /enterprise/admin/installation/upgrade-requirements - /enterprise/admin/guides/installation/finding-the-current-github-enterprise-release @@ -13,42 +13,43 @@ topics: - Enterprise - Upgrades --- + {% note %} -**Notes:** -{% ifversion ghes < 3.3 %}- Features such as {% data variables.product.prodname_actions %}, {% data variables.product.prodname_registry %}, {% data variables.product.prodname_mobile %} and {% data variables.product.prodname_GH_advanced_security %} are available on {% data variables.product.prodname_ghe_server %} 3.0 or higher. We highly recommend upgrading to 3.0 or later releases to take advantage of critical security updates, bug fixes and feature enhancements.{% endif %} -- Upgrade packages are available at [enterprise.github.com](https://enterprise.github.com/releases) for supported versions. Verify the availability of the upgrade packages you will need to complete the upgrade. If a package is not available, contact {% data variables.contact.contact_ent_support %} for assistance. -- If you're using {% data variables.product.prodname_ghe_server %} Clustering, see "[Upgrading a cluster](/enterprise/{{ currentVersion }}/admin/guides/clustering/upgrading-a-cluster/)" in the {% data variables.product.prodname_ghe_server %} Clustering Guide for specific instructions unique to clustering. -- The release notes for {% data variables.product.prodname_ghe_server %} provide a comprehensive list of new features for every version of {% data variables.product.prodname_ghe_server %}. For more information, see the [releases page](https://enterprise.github.com/releases). +**注意:** +{% ifversion ghes < 3.3 %}- {% data variables.product.prodname_actions %}、{% data variables.product.prodname_registry %}、{% data variables.product.prodname_mobile %} 和 {% data variables.product.prodname_GH_advanced_security %} 等功能在 {% data variables.product.prodname_ghe_server %} 3.0 或更高版本中可用。 我们强烈建议升级到 3.0 或更高版本,以利用关键安全更新、错误修复和功能增强。{% endif %} +- 为受支持版本提供的升级包位于 [enterprise.github.com](https://enterprise.github.com/releases)。 验证完成升级所需的升级包的可用性。 如果升级包不可用,请联系 {% data variables.contact.contact_ent_support %} 获得帮助。 +- 如果您使用 {% data variables.product.prodname_ghe_server %} 集群,请参阅 {% data variables.product.prodname_ghe_server %} 集群指南中的“[升级集群](/enterprise/admin/guides/clustering/upgrading-a-cluster/)”,了解集群特有的说明。 +- {% data variables.product.prodname_ghe_server %} 版本说明提供了 {% data variables.product.prodname_ghe_server %} 每一版本的新功能一览表。 更多信息请参阅[版本页面](https://enterprise.github.com/releases)。 {% endnote %} -## Recommendations +## 建议 -- Include as few upgrades as possible in your upgrade process. For example, instead of upgrading from {% data variables.product.prodname_enterprise %} {{ enterpriseServerReleases.supported[2] }} to {{ enterpriseServerReleases.supported[1] }} to {{ enterpriseServerReleases.latest }}, you could upgrade from {% data variables.product.prodname_enterprise %} {{ enterpriseServerReleases.supported[2] }} to {{ enterpriseServerReleases.latest }}. Use the [{% data variables.enterprise.upgrade_assistant %}](https://support.github.com/enterprise/server-upgrade) to find the upgrade path from your current release version. -- If you’re several versions behind, upgrade {% data variables.product.product_location %} as far forward as possible with each step of your upgrade process. Using the latest version possible on each upgrade allows you to take advantage of performance improvements and bug fixes. For example, you could upgrade from {% data variables.product.prodname_enterprise %} 2.7 to 2.8 to 2.10, but upgrading from {% data variables.product.prodname_enterprise %} 2.7 to 2.9 to 2.10 uses a later version in the second step. -- Use the latest patch release when upgrading. {% data reusables.enterprise_installation.enterprise-download-upgrade-pkg %} -- Use a staging instance to test the upgrade steps. For more information, see "[Setting up a staging instance](/enterprise/{{ currentVersion }}/admin/guides/installation/setting-up-a-staging-instance/)." -- When running multiple upgrades, wait at least 24 hours between feature upgrades to allow data migrations and upgrade tasks running in the background to fully complete. -- Take a snapshot before upgrading your virtual machine. For more information, see "[Taking a snapshot](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server#taking-a-snapshot)." -- Ensure you have a recent, successful backup of your instance. For more information, see the [{% data variables.product.prodname_enterprise_backup_utilities %} README.md file](https://github.com/github/backup-utils#readme). +- 尽量减少升级过程中的升级次数。 例如,不要从 {% data variables.product.prodname_enterprise %} {{ enterpriseServerReleases.supported[2] }} 升级到 {{ enterpriseServerReleases.supported[1] }} 再升级到 {{ enterpriseServerReleases.latest }},而应从 {% data variables.product.prodname_enterprise %} {{ enterpriseServerReleases.supported[2] }} 升级到 {{ enterpriseServerReleases.latest }}。 使用 [{% data variables.enterprise.upgrade_assistant %}](https://support.github.com/enterprise/server-upgrade) 查找当前发行版的升级路径。 +- 如果您的版本比最新版本低几个版本,请通过升级过程的每一步骤尽量将 {% data variables.product.product_location %} 升级为更高版本。 在每次升级时尽可能使用最新版本,这样一来您可以充分利用性能改进和错误修复。 例如,您可以从 {% data variables.product.prodname_enterprise %} 2.7 升级到 2.8 再升级到 2.10,但从 {% data variables.product.prodname_enterprise %} 2.7 升级到 2.9 再升级到 2.10 会在第二步中使用更高版本。 +- 升级时使用最新补丁版本。 {% data reusables.enterprise_installation.enterprise-download-upgrade-pkg %} +- 使用暂存实例测试升级步骤。 更多信息请参阅“[设置暂存实例](/enterprise/admin/guides/installation/setting-up-a-staging-instance/)”。 +- 如果运行多次升级,两次功能升级之间至少应间隔 24 小时,以便使数据迁移和后台升级任务能够彻底完成。 +- 在升级虚拟机之前拍摄快照。 更多信息请参阅“[生成快照](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server#taking-a-snapshot)”。 +- 确保您最近成功备份了实例。 更多信息请参阅 [{% data variables.product.prodname_enterprise_backup_utilities %} README.md 文件](https://github.com/github/backup-utils#readme)。 -## Requirements +## 要求 -- You must upgrade from a feature release that's **at most** two releases behind. For example, to upgrade to {% data variables.product.prodname_enterprise %} {{ enterpriseServerReleases.latest }}, you must be on {% data variables.product.prodname_enterprise %} {{ enterpriseServerReleases.supported[1] }} or {{ enterpriseServerReleases.supported[2] }}. -- When upgrading using an upgrade package, schedule a maintenance window for {% data variables.product.prodname_ghe_server %} end users. +- 您必须从**最近**两个版本的功能版本开始升级。 例如,要升级到 {% data variables.product.prodname_enterprise %} {{ enterpriseServerReleases.latest }},您必须使用 {% data variables.product.prodname_enterprise %} {{ enterpriseServerReleases.supported[1] }} 或 {{ enterpriseServerReleases.supported[2] }}。 +- 使用升级包进行升级时,请为 {% data variables.product.prodname_ghe_server %} 最终用户安排维护时段。 - {% data reusables.enterprise_installation.hotpatching-explanation %} -- A hotpatch may require downtime if the affected services (like kernel, MySQL, or Elasticsearch) require a VM reboot or a service restart. You'll be notified when a reboot or restart is required. You can complete the reboot or restart at a later time. -- Additional root storage must be available when upgrading through hotpatching, as it installs multiple versions of certain services until the upgrade is complete. Pre-flight checks will notify you if you don't have enough root disk storage. -- When upgrading through hotpatching, your instance cannot be too heavily loaded, as it may impact the hotpatching process. -- Upgrading to {% data variables.product.prodname_ghe_server %} 2.17 migrates your audit logs from Elasticsearch to MySQL. This migration also increases the amount of time and disk space it takes to restore a snapshot. Before migrating, check the number of bytes in your Elasticsearch audit log indices with this command: +- 如果受影响的服务(例如内核、MySQL 或 Elasticsearch)需要重启 VM 或服务,热补丁可能需要停机一段时间。 需要重启时,系统会通知您。 您可以在稍后完成重启。 +- 通过热补丁升级时,必须提供额外的根存储,因为热补丁会安装某些服务的多个版本,直至升级完成。 如果根磁盘存储空间不足,运行前检查将发出通知。 +- 通过热补丁进行升级时,您的实例负荷不能过大,否则可能影响热补丁过程。 +- 升级到 {% data variables.product.prodname_ghe_server %} 2.17 会将您的审核日志从 ElasticSearchElasticSearch 迁移到 MySQL。 这种迁移还会增加恢复快照所需的时长和磁盘空间大小。 迁移之前,请使用此命令检查 ElasticSearch 审核日志索引中的字节数: ``` shell curl -s http://localhost:9201/audit_log/_stats/store | jq ._all.primaries.store.size_in_bytes ``` -Use the number to estimate the amount of disk space the MySQL audit logs will need. The script also monitors your free disk space while the import is in progress. Monitoring this number is especially useful if your free disk space is close to the amount of disk space necessary for migration. +使用此数字估算 MySQL 审核日志将需要的磁盘空间大小。 该脚本还会在导入过程中监视可用磁盘空间大小。 在可用磁盘空间大小接近于迁移必需的磁盘空间大小时,监视此数字尤为重要。 {% data reusables.enterprise_installation.upgrade-hardware-requirements %} -## Next steps +## 后续步骤 -After reviewing these recommendations and requirements, you can upgrade {% data variables.product.prodname_ghe_server %}. For more information, see "[Upgrading {% data variables.product.prodname_ghe_server %}](/enterprise/{{ currentVersion }}/admin/guides/installation/upgrading-github-enterprise-server/)." +查看这些建议和要求后,您可以对 {% data variables.product.prodname_ghe_server %} 进行升级。 更多信息请参阅“[升级 {% data variables.product.prodname_ghe_server %}](/enterprise/admin/guides/installation/upgrading-github-enterprise-server/)。” diff --git a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md index f30f1a9b23..07351d2039 100644 --- a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md +++ b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md @@ -27,14 +27,14 @@ shortTitle: 升级 GHES ## 准备升级 -1. 确定升级策略并选择要升级到的版本。 更多信息请参阅“[升级要求](/enterprise/{{ currentVersion }}/admin/guides/installation/upgrade-requirements/)”,并参考 [{% data variables.enterprise.upgrade_assistant %}](https://support.github.com/enterprise/server-upgrade) 以查找当前发行版的升级路径。 +1. 确定升级策略并选择要升级到的版本。 更多信息请参阅“[升级要求](/enterprise/admin/guides/installation/upgrade-requirements/)”,并参考 [{% data variables.enterprise.upgrade_assistant %}](https://support.github.com/enterprise/server-upgrade) 以查找当前发行版的升级路径。 1. 使用 {% data variables.product.prodname_enterprise_backup_utilities %} 创建全新的主实例备份。 更多信息请参阅 [{% data variables.product.prodname_enterprise_backup_utilities %} README.md 文件](https://github.com/github/backup-utils#readme)。 1. 如果 {% data variables.product.product_location %} 使用临时自托管运行器进行 {% data variables.product.prodname_actions %} 并且您已禁用自动更新,请将运行器升级到已升级实例将运行的运行器应用程序的版本。 1. 如果您要使用升级包进行升级,请为 {% data variables.product.prodname_ghe_server %} 最终用户排定维护窗口。 如果您要使用热补丁,则不需要使用维护模式。 {% note %} - **注**:维护窗口取决于所执行升级的类型。 使用热补丁进行升级通常不需要维护窗口。 有时需要重启,不过您可以在之后的某个时间重启。 按照 MAJOR.FEATURE.PATCH 的版本控制方案,使用升级包的补丁版本通常需要不到 5 分钟的停机时间。 包含数据迁移的功能版本需要的时间更长,具体视存储性能以及迁移的数据量而定。 更多信息请参阅“[启用和排定维护模式](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-and-scheduling-maintenance-mode)”。 + **注**:维护窗口取决于所执行升级的类型。 使用热补丁进行升级通常不需要维护窗口。 有时需要重启,不过您可以在之后的某个时间重启。 按照 MAJOR.FEATURE.PATCH 的版本控制方案,使用升级包的补丁版本通常需要不到 5 分钟的停机时间。 包含数据迁移的功能版本需要的时间更长,具体视存储性能以及迁移的数据量而定。 更多信息请参阅“[启用和排定维护模式](/enterprise/admin/guides/installation/enabling-and-scheduling-maintenance-mode)”。 {% endnote %} @@ -72,7 +72,7 @@ shortTitle: 升级 GHES {% data reusables.enterprise_installation.hotpatching-explanation %} -使用 {% data variables.enterprise.management_console %},您可以立即安装热补丁,也可以安排以后安装。 您可以使用管理 shell 的 `ghe-upgrade` 实用程序安装热补丁。 更多信息请参阅“[升级要求](/enterprise/{{ currentVersion }}/admin/guides/installation/upgrade-requirements/)”。 +使用 {% data variables.enterprise.management_console %},您可以立即安装热补丁,也可以安排以后安装。 您可以使用管理 shell 的 `ghe-upgrade` 实用程序安装热补丁。 更多信息请参阅“[升级要求](/enterprise/admin/guides/installation/upgrade-requirements/)”。 {% note %} @@ -81,7 +81,7 @@ shortTitle: 升级 GHES {% ifversion ghes %} - 如果 {% data variables.product.product_location %} 正在运行发布候选版本,则无法使用热补丁升级。 -- {% endif %}无法在集群环境中使用 {% data variables.enterprise.management_console %} 安装热补丁。 要在集群环境中安装热补丁,请参阅“[升级集群](/enterprise/{{ currentVersion }}/admin/clustering/upgrading-a-cluster#upgrading-with-a-hotpatch)”。 +- {% endif %}无法在集群环境中使用 {% data variables.enterprise.management_console %} 安装热补丁。 要在集群环境中安装热补丁,请参阅“[升级集群](/enterprise/admin/clustering/upgrading-a-cluster#upgrading-with-a-hotpatch)”。 {% endnote %} @@ -93,7 +93,7 @@ shortTitle: 升级 GHES 如果显示的升级目标是功能版本而不是修补程序版本,则无法使用 {% data variables.enterprise.management_console %} 来安装修补程序。 您必须改为使用管理 shell 安装热补丁。 更多信息请参阅“[使用管理 shell 安装热补丁](#installing-a-hotpatch-using-the-administrative-shell)”。 -1. 启用自动更新。 更多信息请参阅“[启用自动更新](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-automatic-update-checks/)”。 +1. 启用自动更新。 更多信息请参阅“[启用自动更新](/enterprise/admin/guides/installation/enabling-automatic-update-checks/)”。 {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_management_console.updates-tab %} @@ -144,7 +144,7 @@ shortTitle: 升级 GHES ## 使用升级包升级 -虽然您可以使用热补丁升级到功能系列中的最新补丁版本,但必须使用升级包升级到更新的功能版本。 例如,要从 `2.11.10` 升级到 `2.12.4`,您必须使用升级包,因为两者在不同的功能系列中。 更多信息请参阅“[升级要求](/enterprise/{{ currentVersion }}/admin/guides/installation/upgrade-requirements/)”。 +虽然您可以使用热补丁升级到功能系列中的最新补丁版本,但必须使用升级包升级到更新的功能版本。 例如,要从 `2.11.10` 升级到 `2.12.4`,您必须使用升级包,因为两者在不同的功能系列中。 更多信息请参阅“[升级要求](/enterprise/admin/guides/installation/upgrade-requirements/)”。 ### 使用升级包升级单个设备 @@ -153,7 +153,7 @@ shortTitle: 升级 GHES {% data reusables.enterprise_installation.ssh-into-instance %} 2. {% data reusables.enterprise_installation.enterprise-download-upgrade-pkg %} 选择适当的平台并复制升级包(*.pkg* 文件)的 URL。 {% data reusables.enterprise_installation.download-package %} -4. 启用维护模式并等待 {% data variables.product.prodname_ghe_server %} 实例上的所有活动进程完成。 更多信息请参阅“[启用和排定维护模式](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-and-scheduling-maintenance-mode)”。 +4. 启用维护模式并等待 {% data variables.product.prodname_ghe_server %} 实例上的所有活动进程完成。 更多信息请参阅“[启用和排定维护模式](/enterprise/admin/guides/installation/enabling-and-scheduling-maintenance-mode)”。 {% note %} @@ -197,7 +197,7 @@ shortTitle: 升级 GHES {% endwarning %} -1. 在主实例上,启用维护模式并等待所有活动进程完成。 更多信息请参阅“[启用维护模式](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-and-scheduling-maintenance-mode/)”。 +1. 在主实例上,启用维护模式并等待所有活动进程完成。 更多信息请参阅“[启用维护模式](/enterprise/admin/guides/installation/enabling-and-scheduling-maintenance-mode/)”。 {% data reusables.enterprise_installation.replica-ssh %} 3. 在副本实例或者所有副本实例(如果您将多个副本实例作为 Geo-replication 的一部分运行)上,运行 `ghe-repl-stop` 以停止复制。 4. 按照“[使用升级包升级单个设备](#upgrading-a-single-appliance-with-an-upgrade-package)”中的说明升级主实例。 @@ -239,7 +239,7 @@ shortTitle: 升级 GHES 回滚完成后,通过在所有副本上运行 `ghe-repl-start` 来重新启动复制。 -更多信息请参阅“[命令行实用程序](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities/#ghe-upgrade)”。 +更多信息请参阅“[命令行实用程序](/enterprise/admin/guides/installation/command-line-utilities/#ghe-upgrade)”。 ### 回滚功能版本 diff --git a/translations/zh-CN/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/allowing-built-in-authentication-for-users-outside-your-provider.md b/translations/zh-CN/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/allowing-built-in-authentication-for-users-outside-your-provider.md index dcba8765de..8f293b177b 100644 --- a/translations/zh-CN/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/allowing-built-in-authentication-for-users-outside-your-provider.md +++ b/translations/zh-CN/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/allowing-built-in-authentication-for-users-outside-your-provider.md @@ -28,7 +28,7 @@ shortTitle: 回退身份验证 {% warning %} -**警告**:如果您禁用内置身份验证,则必须单独挂起不应具有实例访问权限的任何用户。 更多信息请参阅“[挂起和取消挂起用户](/enterprise/{{ currentVersion }}/admin/guides/user-management/suspending-and-unsuspending-users)”。 +**警告**:如果您禁用内置身份验证,则必须单独挂起不应具有实例访问权限的任何用户。 更多信息请参阅“[挂起和取消挂起用户](/enterprise/admin/guides/user-management/suspending-and-unsuspending-users)”。 {% endwarning %} diff --git a/translations/zh-CN/content/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/accessing-your-enterprise-account-if-your-identity-provider-is-unavailable.md b/translations/zh-CN/content/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/accessing-your-enterprise-account-if-your-identity-provider-is-unavailable.md index 86070d7b70..ac8dd264ee 100644 --- a/translations/zh-CN/content/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/accessing-your-enterprise-account-if-your-identity-provider-is-unavailable.md +++ b/translations/zh-CN/content/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/accessing-your-enterprise-account-if-your-identity-provider-is-unavailable.md @@ -15,7 +15,7 @@ permissions: Enterprise owners can use a recovery code to access an enterprise a 当身份验证配置错误或身份提供程序 (IdP) 问题阻止您使用 SSO 时,您可以使用恢复代码访问您的企业帐户。 -要以这种方式访问您的企业帐户,您必须以前下载并存储了企业的恢复代码。 For more information, see "[Downloading your enterprise account's single sign-on recovery codes](/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/downloading-your-enterprise-accounts-single-sign-on-recovery-codes)." +要以这种方式访问您的企业帐户,您必须以前下载并存储了企业的恢复代码。 更多信息请参阅“[下载企业帐户的单点登录恢复代码](/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/downloading-your-enterprise-accounts-single-sign-on-recovery-codes)”。 {% data reusables.saml.recovery-code-caveats %} diff --git a/translations/zh-CN/content/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/downloading-your-enterprise-accounts-single-sign-on-recovery-codes.md b/translations/zh-CN/content/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/downloading-your-enterprise-accounts-single-sign-on-recovery-codes.md index f761bb8269..be3eb524ea 100644 --- a/translations/zh-CN/content/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/downloading-your-enterprise-accounts-single-sign-on-recovery-codes.md +++ b/translations/zh-CN/content/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/downloading-your-enterprise-accounts-single-sign-on-recovery-codes.md @@ -1,7 +1,7 @@ --- -title: Downloading your enterprise account's single sign-on recovery codes +title: 下载企业帐户的单点登录恢复代码 shortTitle: 下载恢复代码 -intro: 'To ensure that you can access {% data variables.product.product_name %} if your identity provider (IdP) is unavailable, you should download your enterprise account''s single sign-on (SSO) recovery codes.' +intro: '为确保在身份提供程序 (IdP) 不可用时可以访问 {% data variables.product.product_name %} ,应下载企业帐户的单点登录 (SSO) 恢复代码。' versions: ghec: '*' type: how_to @@ -17,7 +17,7 @@ permissions: Enterprise owners can download the SSO recovery codes for the enter 如果您的 IdP 不可用,您可以使用恢复代码登录并通过 {% data variables.product.product_location %} 访问您的企业。 更多信息请参阅“[在身份提供程序不可用时访问企业帐户](/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/accessing-your-enterprise-account-if-your-identity-provider-is-unavailable)”。 -If you did not save your recovery codes when you configured SSO, you can still access the codes from your enterprise's settings. +如果在配置 SSO 时未保存恢复代码,您仍然可以从企业的设置中访问这些代码。 @@ -25,10 +25,10 @@ If you did not save your recovery codes when you configured SSO, you can still a {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.security-tab %} -1. Under{% ifversion oidc-for-emu %} either{% endif %} "Require SAML authentication"{% ifversion oidc-for-emu %} or "Require OIDC authentication"{% endif %}, click **Save your recovery codes**.{% ifversion oidc-for-emu %} +1. 在{% ifversion oidc-for-emu %}{% endif %} “Require SAML authentication(需要 SAML 身份验证)”{% ifversion oidc-for-emu %} 或“Require OIDC authentication(需要 OIDC 身份验证)”{% endif %} 下,单击 **Save your recovery codes(保存恢复代码)**。{% ifversion oidc-for-emu %} {% note %} - **Note:** OIDC SSO is only available for {% data variables.product.prodname_emus %}. 更多信息请参阅“[关于企业管理用户](/admin/identity-and-access-management/using-enterprise-managed-users-and-saml-for-iam/about-enterprise-managed-users)”。 + **注意:**OIDC SSO 仅适用于 {% data variables.product.prodname_emus %}。 更多信息请参阅“[关于企业管理用户](/admin/identity-and-access-management/using-enterprise-managed-users-and-saml-for-iam/about-enterprise-managed-users)”。 {% endnote %}{% endif %} diff --git a/translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-support-for-your-idps-conditional-access-policy.md b/translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-support-for-your-idps-conditional-access-policy.md index 7b756626da..ef85ae0631 100644 --- a/translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-support-for-your-idps-conditional-access-policy.md +++ b/translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-support-for-your-idps-conditional-access-policy.md @@ -1,7 +1,7 @@ --- -title: About support for your IdP's Conditional Access Policy -shortTitle: Conditional access policy -intro: 'When your enterprise uses OIDC SSO, {% data variables.product.prodname_dotcom %} will validate access to your enterprise and its resources using your IdP''s Conditional Access Policy (CAP).' +title: 关于对 IdP 的条件访问策略的支持 +shortTitle: 条件访问策略 +intro: '当您的企业使用 OIDC SSO 时,{% data variables.product.prodname_dotcom %} 将使用 IdP 的条件访问策略 (CAP) 验证对您的企业及其资源的访问。' product: '{% data reusables.gated-features.emus %}' versions: feature: oidc-for-emu @@ -14,34 +14,34 @@ topics: {% data reusables.enterprise-accounts.oidc-beta-notice %} -## About support for Conditional Access Policies +## 关于对条件访问策略的支持 {% data reusables.enterprise-accounts.emu-cap-validates %} -CAP support is enabled automatically for any {% data variables.product.prodname_emu_enterprise %} that enables OIDC SSO and cannot be disabled. {% data variables.product.prodname_dotcom %} enforces your IdP's IP conditions but not device compliance conditions. +对于启用 OIDC SSO 的任何 {% data variables.product.prodname_emu_enterprise %},CAP 支持都会自动启用,并且无法禁用。 {% data variables.product.prodname_dotcom %} 强制执行 IdP 的 IP 条件,但不强制执行设备合规性条件。 -For more information about using OIDC with {% data variables.product.prodname_emus %}, see "[Configuring OIDC for Enterprise Managed Users](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-oidc-for-enterprise-managed-users)" and "[Migrating from SAML to OIDC](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc)." +有关将 OIDC 与 {% data variables.product.prodname_emus %} 配合使用的更多信息,请参阅“[为企业托管用户配置 OIDC](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-oidc-for-enterprise-managed-users)”和“[从 SAML 迁移到 OIDC](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc)”。 -## About using CAP with IP allow lists +## 关于将 CAP 与 IP 允许列表一起使用 -We recommend disabling your enterprise account's IP allow list and relying on your IdP's CAP. If you enable IP allow lists for your enterprise and also make use of your IdP's CAP, both the IP allow list and CAP will be enforced. If either restriction rejects a user's IP address, the request fails. For more information about IP allow lists, see "[Enforcing policies for security settings in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise#managing-allowed-ip-addresses-for-organizations-in-your-enterprise)." +我们建议您禁用企业帐户的 IP 允许列表,并依靠 IdP 的 CAP。 如果您为企业启用 IP 允许列表,并且还利用 IdP 的 CAP,则将强制执行 IP 允许列表和 CAP。 如果限制或拒绝用户的 IP 地址,则请求将失败。 有关 IP 允许列表的更多信息,请参阅“[在企业中实施安全设置策略](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise#managing-allowed-ip-addresses-for-organizations-in-your-enterprise)”。 -## Considerations for integrations and automations +## 集成和自动化的注意事项 -{% data variables.product.prodname_dotcom %} sends the originating IP address to your IdP for validation against your CAP. To make sure actions and apps are not blocked by your IdP's CAP, you will need to make changes to your configuration. +{% data variables.product.prodname_dotcom %} 将原始 IP 地址发送到您的 IdP,以便对您的 CAP 进行验证。 要确保操作和应用程序未被 IdP 的 CAP 阻止,您需要对配置进行更改。 {% data reusables.enterprise-accounts.oidc-gei-warning %} ### {% data variables.product.prodname_actions %} -Actions that use a personal access token will likely be blocked by your IdP's CAP. We recommend that personal access tokens are created by a service account which is then exempted from IP controls in your IdP's CAP. +使用个人访问令牌的操作可能会被 IdP 的 CAP 阻止。 我们建议由服务帐户创建个人访问令牌,然后从 IdP CAP 中的 IP 控制中免除该帐户。 -If you're unable to use a service account, another option for unblocking actions that use personal access tokens is to allow the IP ranges used by {% data variables.product.prodname_actions %}. 更多信息请参阅“[关于 GitHub 的 IP 地址](/authentication/keeping-your-account-and-data-secure/about-githubs-ip-addresses)”。 +如果无法使用服务帐户,则取消阻止使用个人访问令牌的操作的另一个选项是允许 {% data variables.product.prodname_actions %} 使用的 IP 范围。 更多信息请参阅“[关于 GitHub 的 IP 地址](/authentication/keeping-your-account-and-data-secure/about-githubs-ip-addresses)”。 -### {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %} +### {% data variables.product.prodname_github_apps %} 和 {% data variables.product.prodname_oauth_apps %} -When {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %} make requests on a member's behalf, {% data variables.product.prodname_dotcom %} will send the IP address of the app's server to your IdP for validation. If the IP address of the app's server is not validated by your IdP's CAP, the request will fail. +当 {% data variables.product.prodname_github_apps %} 和 {% data variables.product.prodname_oauth_apps %} 代表成员发出请求时,{% data variables.product.prodname_dotcom %} 会将应用程序服务器的 IP 地址发送到您的 IdP 进行验证。 如果应用程序服务器的 IP 地址未通过 IdP 的 CAP 验证,则请求将失败。 -You can contact the owners of the apps you want to use, ask for their IP ranges, and configure your IdP's CAP to allow access from those IP ranges. If you're unable to contact the owners, you can review your IdP sign-in logs to review the IP addresses seen in the requests, then allow-list those addresses. +您可以联系要使用的应用程序的所有者,询问他们的 IP 范围,并配置 IdP 的 CAP 以允许从这些 IP 范围进行访问。 如果您无法联系所有者,可以查看 IdP 登录日志以查看请求中看到的 IP 地址,然后允许列出这些地址。 -You can also enable IP allow list configuration for installed {% data variables.product.prodname_github_apps %}. When enabled, all {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %} will continue working regardless of the originating IP address. 更多信息请参阅“[在企业中实施安全设置策略](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise#allowing-access-by-github-apps)”。 +您还可以为已安装的 {% data variables.product.prodname_github_apps %} 启用 IP 允许列表配置。 启用后,无论原始 IP 地址如何,所有 {% data variables.product.prodname_github_apps %} 和 {% data variables.product.prodname_oauth_apps %} 都将继续工作。 更多信息请参阅“[在企业中实施安全设置策略](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise#allowing-access-by-github-apps)”。 diff --git a/translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-oidc-for-enterprise-managed-users.md b/translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-oidc-for-enterprise-managed-users.md index 97fbc37d84..14ea2d5367 100644 --- a/translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-oidc-for-enterprise-managed-users.md +++ b/translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-oidc-for-enterprise-managed-users.md @@ -4,7 +4,7 @@ shortTitle: OIDC for managed users intro: 'You can automatically manage access to your enterprise account on {% data variables.product.prodname_dotcom %} by configuring OpenID Connect (OIDC) single sign-on (SSO) and enable support for your IdP''s Conditional Access Policy (CAP).' product: '{% data reusables.gated-features.emus %}' versions: - feature: oidc-for-emu + feature: 'oidc-for-emu' topics: - Accounts - Authentication @@ -22,17 +22,19 @@ With {% data variables.product.prodname_emus %}, your enterprise uses your ident You can adjust the lifetime of a session, and how often a {% data variables.product.prodname_managed_user %} needs to reauthenticate with your IdP, by changing the lifetime policy property of the ID tokens issued for {% data variables.product.prodname_dotcom %} from your IdP. The default lifetime is one hour. For more information, see "[Configurable token lifetimes in the Microsoft identity platform](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-configurable-token-lifetimes)" in the Azure AD documentation. -If you currently use SAML SSO for authentication and would prefer to use OIDC and benefit from CAP support, you can follow a migration path. For more information, see "[Migrating from SAML to OIDC](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc)." +If you currently use SAML SSO for authentication and would prefer to use OIDC and benefit from CAP support, you can follow a migration path. For more information, see "[Migrating from SAML to OIDC](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc)." {% data reusables.enterprise-accounts.oidc-gei-warning %} -## 身份提供程序支持 +## Identity provider support -Support for OIDC is in public beta and available for customers using Azure Active Directory (Azure AD). +Support for OIDC is in public beta and available for customers using Azure Active Directory (Azure AD). + +Each Azure AD tenant can support only one OIDC integration with {% data variables.product.prodname_emus %}. If you want to connect Azure AD to more than one enterprise on {% data variables.product.prodname_dotcom %}, use SAML instead. For more information, see "[Configuring SAML single sign-on for {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-saml-single-sign-on-for-enterprise-managed-users)." ## Configuring OIDC for Enterprise Managed Users -1. 以新企业的设置用户身份登录 {% data variables.product.prodname_dotcom_the_website %} ,用户名为 **@<em>SHORT-CODE</em>_admin**。 +1. Sign into {% data variables.product.prodname_dotcom_the_website %} as the setup user for your new enterprise with the username **@<em>SHORT-CODE</em>_admin**. {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.security-tab %} @@ -42,6 +44,6 @@ Support for OIDC is in public beta and available for customers using Azure Activ {% data reusables.enterprise-accounts.emu-azure-admin-consent %} {% data reusables.enterprise-accounts.download-recovery-codes %} -## 启用预配 +## Enabling provisioning -After you enable OIDC SSO, enable provisioning. 更多信息请参阅“[配置企业托管用户的 SCIM 预配](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/configuring-scim-provisioning-for-enterprise-managed-users)”。 +After you enable OIDC SSO, enable provisioning. For more information, see "[Configuring SCIM provisioning for enterprise managed users](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/configuring-scim-provisioning-for-enterprise-managed-users)." diff --git a/translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/index.md b/translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/index.md index 294d7335e1..4d933364bf 100644 --- a/translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/index.md +++ b/translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/index.md @@ -1,5 +1,5 @@ --- -title: Using Enterprise Managed Users for IAM +title: 对 IAM 使用企业托管用户 shortTitle: 企业托管用户 product: '{% data reusables.gated-features.emus %}' intro: 您可以使用身份提供程序管理身份和访问权限,并预配只能参与您的企业的帐户。 diff --git a/translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc.md b/translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc.md index 273f3e7263..946351bb9d 100644 --- a/translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc.md +++ b/translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc.md @@ -4,7 +4,7 @@ shortTitle: Migrating from SAML to OIDC intro: 'If you''re using SAML to authenticate members in your {% data variables.product.prodname_emu_enterprise %}, you can migrate to OpenID Connect (OIDC) and benefit from support for your IdP''s Conditional Access Policy.' product: '{% data reusables.gated-features.emus %}' versions: - feature: oidc-for-emu + feature: 'oidc-for-emu' topics: - Accounts - Authentication @@ -31,13 +31,13 @@ If you're new to {% data variables.product.prodname_emus %} and haven't yet conf {% endnote %} 1. Before you begin the migration, sign in to Azure and disable provisioning in the existing {% data variables.product.prodname_emu_idp_application %} application. -1. Sign into {% data variables.product.prodname_dotcom_the_website %} as the setup user for your enterprise with the username **@<em>SHORT-CODE</em>_admin**. +1. Sign into {% data variables.product.prodname_dotcom_the_website %} as the setup user for your enterprise with the username **@<em>SHORT-CODE</em>_admin**. 1. When prompted to continue to your identity provider, click **Use a recovery code** and sign in using one of your enterprise's recovery codes. {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.security-tab %} -1. At the bottom of the page, next to "Migrate to OpenID Connect single sign-on", click **Configure with Azure**. - {% warning %} +1. At the bottom of the page, next to "Migrate to OpenID Connect single sign-on", click **Configure with Azure**. + {% warning %} **Warning:** The migration can take up to an hour, and it is important that no users are provisioned during the migration. You can confirm if the migration is still in progress by returning to your enterprise's security settings page; if "Require SAML authentication" is still checked, the migration is still in progress. @@ -47,12 +47,12 @@ If you're new to {% data variables.product.prodname_emus %} and haven't yet conf 1. Read both warnings and click to continue. {% data reusables.enterprise-accounts.emu-azure-admin-consent %} 1. In a new tab or window, while signed in as the setup user on {% data variables.product.prodname_dotcom_the_website %}, create a personal access token with the **admin:enterprise** scope and **no expiration** and copy it to your clipboard. For more information about creating a new token, see "[Creating a personal access token](/github/setting-up-and-managing-your-enterprise/managing-your-enterprise-users-with-your-identity-provider/configuring-scim-provisioning-for-enterprise-managed-users#creating-a-personal-access-token)." -1. In the settings for the {% data variables.product.prodname_emu_idp_oidc_application %} application in Azure Portal, under "Tenant URL", type `https://api.github.com/scim/v2/enterprises/YOUR_ENTERPRISE`, replacing YOUR_ENTERPRISE with the name of your enterprise account. - +1. In the settings for the {% data variables.product.prodname_emu_idp_oidc_application %} application in Azure Portal, under "Tenant URL", type `https://api.github.com/scim/v2/enterprises/YOUR_ENTERPRISE`, replacing YOUR_ENTERPRISE with the name of your enterprise account. + For example, if your enterprise account's URL is `https://github.com/enterprises/octo-corp`, the name of the enterprise account is `octo-corp`. 1. Under "Secret token", paste the personal access token with the **admin:enterprise** scope that you created earlier. 1. To test the configuration, click **Test Connection**. 1. To save your changes, at the top of the form, click **Save**. 1. In Azure Portal, copy the users and groups from the old {% data variables.product.prodname_emu_idp_application %} application to the new {% data variables.product.prodname_emu_idp_oidc_application %} application. 1. Test your configuration by provisioning a single new user. -1. If your test is successful, start provisioning for all users by clicking **Start provisioning**. +1. If your test is successful, start provisioning for all users by clicking **Start provisioning**. \ No newline at end of file diff --git a/translations/zh-CN/content/admin/identity-and-access-management/using-ldap-for-enterprise-iam/using-ldap.md b/translations/zh-CN/content/admin/identity-and-access-management/using-ldap-for-enterprise-iam/using-ldap.md index 7eac3ac4c0..5d3558b005 100644 --- a/translations/zh-CN/content/admin/identity-and-access-management/using-ldap-for-enterprise-iam/using-ldap.md +++ b/translations/zh-CN/content/admin/identity-and-access-management/using-ldap-for-enterprise-iam/using-ldap.md @@ -113,7 +113,7 @@ LDAP 是用于访问和维护目录信息服务的常用应用程序协议,是 {% endnote %} -借助 LDAP 同步,您可以将 {% data variables.product.prodname_ghe_server %} 用户和团队成员关系与建立的 LDAP 组同步。 这样,您可以在 LDAP 服务器中为用户建立基于角色的权限控制,而不用在 {% data variables.product.prodname_ghe_server %} 中手动建立。 更多信息请参阅“[创建团队](/enterprise/{{ currentVersion }}/admin/guides/user-management/creating-teams#creating-teams-with-ldap-sync-enabled)”。 +借助 LDAP 同步,您可以将 {% data variables.product.prodname_ghe_server %} 用户和团队成员关系与建立的 LDAP 组同步。 这样,您可以在 LDAP 服务器中为用户建立基于角色的权限控制,而不用在 {% data variables.product.prodname_ghe_server %} 中手动建立。 更多信息请参阅“[创建团队](/enterprise/admin/guides/user-management/creating-teams#creating-teams-with-ldap-sync-enabled)”。 要启用 LDAP 同步,请在您的 LDAP 设置中选择 **Synchronize Emails(同步电子邮件)**、**Synchronize SSH Keys(同步 SSH 密钥)**或 **Synchronize GPG Keys(同步 GPG 密钥)**。 @@ -187,8 +187,8 @@ LDAP 是用于访问和维护目录信息服务的常用应用程序协议,是 除非[启用 LDAP 同步](#enabling-ldap-sync),否则 LDAP 帐户的变更将不会自动与 {% data variables.product.prodname_ghe_server %} 同步。 * 要使用新的 LDAP 管理员组,必须在 {% data variables.product.prodname_ghe_server %} 上手动升级和降级用户,以反映 LDAP 中的变更。 -* 要在 LDAP 管理员组中添加或移除 LDAP 帐户,请[在 {% data variables.product.prodname_ghe_server %} 上升级或降级帐户](/enterprise/{{ currentVersion }}/admin/guides/user-management/promoting-or-demoting-a-site-administrator)。 -* 要移除 LDAP 帐户,请[挂起 {% data variables.product.prodname_ghe_server %} 帐户](/enterprise/{{ currentVersion }}/admin/guides/user-management/suspending-and-unsuspending-users)。 +* 要在 LDAP 管理员组中添加或移除 LDAP 帐户,请[在 {% data variables.product.prodname_ghe_server %} 上升级或降级帐户](/enterprise/admin/guides/user-management/promoting-or-demoting-a-site-administrator)。 +* 要移除 LDAP 帐户,请[挂起 {% data variables.product.prodname_ghe_server %} 帐户](/enterprise/admin/guides/user-management/suspending-and-unsuspending-users)。 ### 手动同步 LDAP 帐户 @@ -200,10 +200,10 @@ LDAP 是用于访问和维护目录信息服务的常用应用程序协议,是 {% data reusables.enterprise_site_admin_settings.admin-tab %} 5. 在“LDAP”下,单击 **Sync now**,使用您的 LDAP 服务器中的数据手动更新帐户。 ![LDAP Sync now 按钮](/assets/images/enterprise/site-admin-settings/ldap-sync-now-button.png) -您也可以[使用 API 触发手动同步](/enterprise/{{ currentVersion }}/user/rest/reference/enterprise-admin#ldap)。 +您也可以[使用 API 触发手动同步](/enterprise/user/rest/reference/enterprise-admin#ldap)。 ## 撤销 {% data variables.product.product_location %} 的权限 如果[启用 LDAP 同步](#enabling-ldap-sync),移除用户的 LDAP 凭据将在下一次同步操作后挂起他们的帐户。 -如果**未**启用 LDAP 同步,您必须在移除 LDAP 凭据后手动挂起 {% data variables.product.prodname_ghe_server %} 帐户。 更多信息请参阅“[挂起和取消挂起用户](/enterprise/{{ currentVersion }}/admin/guides/user-management/suspending-and-unsuspending-users)”。 +如果**未**启用 LDAP 同步,您必须在移除 LDAP 凭据后手动挂起 {% data variables.product.prodname_ghe_server %} 帐户。 更多信息请参阅“[挂起和取消挂起用户](/enterprise/admin/guides/user-management/suspending-and-unsuspending-users)”。 diff --git a/translations/zh-CN/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-saml-single-sign-on-for-your-enterprise.md b/translations/zh-CN/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-saml-single-sign-on-for-your-enterprise.md index b8afbf3028..be095b071c 100644 --- a/translations/zh-CN/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-saml-single-sign-on-for-your-enterprise.md +++ b/translations/zh-CN/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-saml-single-sign-on-for-your-enterprise.md @@ -137,7 +137,7 @@ You can enable or disable SAML authentication for {% data variables.product.prod ![Screenshot of "Enable encrypted assertions" checkbox within management console's "Authentication" section](/assets/images/help/saml/management-console-enable-encrypted-assertions.png) {%- endif %} -1. In the **Single sign-on URL** field, type the HTTP or HTTPS endpoint on your IdP for single sign-on requests. This value is provided by your IdP configuration. If the host is only available from your internal network, you may need to [configure {% data variables.product.product_location %} to use internal nameservers](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-dns-nameservers/). +1. In the **Single sign-on URL** field, type the HTTP or HTTPS endpoint on your IdP for single sign-on requests. This value is provided by your IdP configuration. If the host is only available from your internal network, you may need to [configure {% data variables.product.product_location %} to use internal nameservers](/enterprise/admin/guides/installation/configuring-dns-nameservers/). ![Screenshot of text field for single sign-on URL](/assets/images/enterprise/management-console/saml-single-sign-url.png) 1. Optionally, in the **Issuer** field, type your SAML issuer's name. This verifies the authenticity of messages sent to {% data variables.product.product_location %}. diff --git a/translations/zh-CN/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference.md b/translations/zh-CN/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference.md index ce0e5d44a5..531176dddd 100644 --- a/translations/zh-CN/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference.md +++ b/translations/zh-CN/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference.md @@ -80,7 +80,7 @@ topics: | `NameID` | 是 | 持久用户标识符。 可以使用任意持久名称标识符格式。 {% ifversion ghec %}如果将企业与 {% data variables.product.prodname_emus %} 一起使用, {% endif %}{% data variables.product.product_name %} 将规范化 `NameID` 元素以用作用户名,除非提供了替代断言之一。 更多信息请参阅“[外部身份验证的用户名注意事项](/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication)”。 | | `SessionNotOnOrAfter` | 否 | {% data variables.product.product_name %} 使关联的会话失效的日期。 失效后,此人必须再次进行身份验证才能访问 {% ifversion ghec or ghae %}企业的资源{% elsif ghes %}{% data variables.product.product_location %}{% endif %}。 更多信息请参阅“[会话持续时间和超时](#session-duration-and-timeout)”。 | {%- ifversion ghes or ghae %} -| `administrator` | 无|当值为 `true` 时,{% data variables.product.product_name %} 会自动将用户提升为 {% ifversion ghes %}站点管理员{% elsif ghae %}企业所有者{% endif %}。 任何其他值或不存在的值都将降级帐户并删除管理访问权限。 | | `username` | 无 | {% data variables.product.product_location %} 的用户名。 | +| `administrator` | 无|当值为 `true` 时,{% data variables.product.product_name %} 会自动将用户提升为 {% ifversion ghes %}站点管理员{% elsif ghae %}企业所有者{% endif %}。 Setting this attribute to anything but `true` will result in demotion, as long as the value is not blank. Omitting this attribute or leaving the value blank will not change the role of the user. | | `username` | 无 | {% data variables.product.product_location %} 的用户名。 | {%- endif %} | `full_name` |无| {% ifversion ghec %}如果为企业配置 SAML SSO 并使用 {% data variables.product.prodname_emus %},则{% else %}{% endif %} 用户的全名显示在用户的个人资料页上。 | | `emails` | 无| 用户的电子邮件地址。{% ifversion ghes or ghae %} 您可以指定多个地址。{% endif %}{% ifversion ghec or ghes %} 如果在 {% data variables.product.prodname_ghe_server %} 和 {% data variables.product.prodname_ghe_cloud %} 之间同步许可证使用情况,{% data variables.product.prodname_github_connect %} 将使用 `emails` 跨产品识别唯一用户。 更多信息请参阅“[在 {% data variables.product.prodname_ghe_server %} 和 {% data variables.product.prodname_ghe_cloud %} 之间同步许可证使用情况](/billing/managing-your-license-for-github-enterprise/syncing-license-usage-between-github-enterprise-server-and-github-enterprise-cloud)”。{% endif %} | | `public_keys` |无| {% ifversion ghec %}如果为企业配置 SAML SSO 并使用 {% data variables.product.prodname_emus %},则为{% else %}{% endif %} 用户的公有 SSH 密钥。 您可以指定多个键。 | | `gpg_keys` |无| {% ifversion ghec %}如果为企业配置 SAML SSO 并使用 {% data variables.product.prodname_emus %},则{% else %}{% endif %}为用户的 GPG 密钥。 您可以指定多个键。 | diff --git a/translations/zh-CN/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-aws.md b/translations/zh-CN/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-aws.md index 26009b8f3d..f770fafed1 100644 --- a/translations/zh-CN/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-aws.md +++ b/translations/zh-CN/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-aws.md @@ -124,7 +124,7 @@ aws ec2 run-instances \ If this is a production instance, we strongly recommend allocating an Elastic IP (EIP) and associating it with the instance before proceeding to {% data variables.product.prodname_ghe_server %} configuration. Otherwise, the public IP address of the instance will not be retained after instance restarts. For more information, see "[Allocating an Elastic IP Address](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-eips-allocating)" and "[Associating an Elastic IP Address with a Running Instance](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-eips-associating)" in the Amazon documentation. -Both primary and replica instances should be assigned separate EIPs in production High Availability configurations. For more information, see "[Configuring {% data variables.product.prodname_ghe_server %} for High Availability](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-github-enterprise-server-for-high-availability/)." +Both primary and replica instances should be assigned separate EIPs in production High Availability configurations. For more information, see "[Configuring {% data variables.product.prodname_ghe_server %} for High Availability](/enterprise/admin/guides/installation/configuring-github-enterprise-server-for-high-availability/)." ## Configuring the {% data variables.product.prodname_ghe_server %} instance diff --git a/translations/zh-CN/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise.md b/translations/zh-CN/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise.md index fad869426b..5914f200a2 100644 --- a/translations/zh-CN/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise.md +++ b/translations/zh-CN/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise.md @@ -1010,7 +1010,7 @@ Action | Description | `repo.code_scanning_analysis_deleted` | Code scanning analysis for a repository was deleted. For more information, see "[Delete a code scanning analysis from a repository](/rest/reference/code-scanning#delete-a-code-scanning-analysis-from-a-repository)." | `repo.change_merge_setting` | Pull request merge options were changed for a repository. | `repo.clear_actions_settings` | A repository administrator cleared {% data variables.product.prodname_actions %} policy settings for a repository. -| `repo.config` | A repository administrator blocked force pushes. For more information, see [Blocking force pushes to a repository](/enterprise/{{ currentVersion }}/admin/guides/developer-workflow/blocking-force-pushes-to-a-repository/) to a repository. +| `repo.config` | A repository administrator blocked force pushes. For more information, see [Blocking force pushes to a repository](/enterprise/admin/guides/developer-workflow/blocking-force-pushes-to-a-repository/) to a repository. {%- ifversion fpt or ghec %} | `repo.config.disable_collaborators_only` | The interaction limit for collaborators only was disabled. For more information, see "[Limiting interactions in your repository](/communities/moderating-comments-and-conversations/limiting-interactions-in-your-repository)." | `repo.config.disable_contributors_only` | The interaction limit for prior contributors only was disabled in a repository. For more information, see "[Limiting interactions in your repository](/communities/moderating-comments-and-conversations/limiting-interactions-in-your-repository)." diff --git a/translations/zh-CN/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/displaying-ip-addresses-in-the-audit-log-for-your-enterprise.md b/translations/zh-CN/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/displaying-ip-addresses-in-the-audit-log-for-your-enterprise.md index 762a678b40..c16c35ee8d 100644 --- a/translations/zh-CN/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/displaying-ip-addresses-in-the-audit-log-for-your-enterprise.md +++ b/translations/zh-CN/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/displaying-ip-addresses-in-the-audit-log-for-your-enterprise.md @@ -1,7 +1,7 @@ --- -title: Displaying IP addresses in the audit log for your enterprise -intro: You can display the source IP address for events in your enterprise's audit log. -shortTitle: IP addresses in audit log +title: 在企业的审核日志中显示 IP 地址 +intro: 您可以在企业的审核日志中显示事件的源 IP 地址。 +shortTitle: 审核日志中的 IP 地址 permissions: Enterprise owners can display IP addresses in the audit log for an enterprise. versions: feature: enterprise-audit-log-ip-addresses @@ -16,43 +16,43 @@ topics: {% note %} -**Note:** Display of IP addresses in the enterprise audit log is currently in public beta and is subject to change. +**注意:** 企业审核日志中 IP 地址的显示目前处于公开测试阶段,可能会发生更改。 {% endnote %} -## About display of IP addresses in the audit log +## 关于在审核日志中显示 IP 地址 -By default, {% data variables.product.product_name %} does not display the source IP address for events in your enterprise's audit log. Optionally, to ensure compliance and respond to threats, you can display the full IP address associated with the actor responsible for each event. Actors are typically users, but can also be apps or integrations. +默认情况下,{% data variables.product.product_name %} 不会在企业的审核日志中显示事件的源 IP 地址。 (可选)为了确保合规性并响应威胁,您可以显示与负责每个事件的参与者关联的完整 IP 地址。 参与者通常是用户,但也可以是应用程序或集成。 -You are responsible for meeting any legal obligations that accompany the viewing or storage of IP addresses displayed within your enterprise's audit log. +您负责履行查看或存储企业审核日志中显示的 IP 地址时附带的任何法律义务。 -If you choose to display IP addresses, the IP addresses only appear in your enterprise's audit log. IP addresses will not appear for events in the audit logs for individual organizations owned by your enterprise. For more information about organization audit logs, see "[Reviewing the audit log for your organization](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization)." +如果选择显示 IP 地址,则 IP 地址仅显示在企业的审核日志中。 对于企业拥有的各个组织的审核日志中的事件,不会显示 IP 地址。 有关组织审核日志的详细信息,请参阅“[查看组织的审核日志](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization)”。 -You can display IP addresses in the audit log regardless of which authentication method you use for your enterprise on {% data variables.product.product_location %}. 更多信息请参阅“[关于企业的身份验证](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise)”。 +您可以在审核日志中显示 IP 地址,而不管您在 {% data variables.product.product_location %} 上对企业使用哪种身份验证方法。 更多信息请参阅“[关于企业的身份验证](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise)”。 -When anyone creates an account on {% data variables.product.product_location %}, the person agrees to {% data variables.product.company_short %}'s collection of basic information about connections to {% data variables.product.company_short %}'s services, including source IP address. For more information, see "[GitHub Privacy Statement](/free-pro-team@latest/site-policy/privacy-policies/github-privacy-statement#usage-information)." +当任何人在 {% data variables.product.product_location %} 上创建帐户时,此人同意 {% data variables.product.company_short %} 收集有关连接到 {% data variables.product.company_short %} 服务的基本信息,包括源 IP 地址。 更多信息请参阅“[GitHub 隐私声明](/free-pro-team@latest/site-policy/privacy-policies/github-privacy-statement#usage-information)”。 -## Events that display IP addresses in the audit log +## 在审核日志中显示 IP 地址的事件 -{% data variables.product.product_name %} displays an IP address in the audit log when a member of the enterprise interacts with a resource owned by your enterprise or an organization in your enterprise. For example, you will see an IP address for audited events involving an internal or private repository owned by an organization in your enterprise, or resources associated with those repositories, such as an issue, pull request, action, or project. +在企业成员与企业或企业中的组织拥有的资源交互时,{% data variables.product.product_name %} 会在审核日志中显示 IP 地址。 例如,您将看到涉及企业中组织拥有的内部或私有存储库或这些存储库关联资源的已审核事件的 IP 地址,例如议题、拉取请求、操作或项目。 -If members of your enterprise access {% data variables.product.product_location %} with personal accounts that they manage, because you do not use {% data variables.product.prodname_emus %}, {% data variables.product.product_name %} does not display an event or IP address in the audit log for the following actions. +如果企业成员使用他们管理的个人帐户访问 {% data variables.product.product_location %},因为您不使用 {% data variables.product.prodname_emus %},所以 {% data variables.product.product_name %} 不会在审核日志中显示以下操作的事件或 IP 地址。 -- Authentication to {% data variables.product.product_location %} -- Interactions with a resource owned by the personal account, including a repository, gist, or project -- Interactions with a public repository owned by an organization in your enterprise +- 向 {% data variables.product.product_location %} 验证 +- 与个人帐户拥有的资源(包括存储库、要点或项目)的交互 +- 与企业中组织拥有的公共存储库的交互 -## Enabling display of IP addresses in the audit log +## 启用在审核日志中显示 IP 地址 {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.audit-log-tab %} -1. Under "Audit log", click **Source IP disclosure**. +1. 在“Audit log(审核日志)”下,单击 **Source IP disclosure(源 IP 披露)**。 - ![Screenshot of "Source IP disclosure" tab](/assets/images/help/enterprises/audit-log-source-ip-disclosure-tab.png) -1. Under "Disclose actor IP addresses in audit logs", select **Enable source IP disclosure**. + !["源 IP 披露"选项卡屏幕截图](/assets/images/help/enterprises/audit-log-source-ip-disclosure-tab.png) +1. 在“Disclose actor IP addresses in audit logs(在审核日志中披露参与者 IP 地址)”下,选择 **Enable source IP disclosure(启用源 IP 披露)**。 - ![Screenshot of checkbox to enable display of IP addresses in audit logs](/assets/images/help/enterprises/audit-log-enable-source-ip-disclosure-checkbox.png) + ![启用在审核日志中显示 IP 地址的复选框屏幕截图](/assets/images/help/enterprises/audit-log-enable-source-ip-disclosure-checkbox.png) 1. 单击 **Save(保存)**。 -After you enable the feature, you can access the audit log to view events that include IP addresses. 更多信息请参阅“[访问企业的审核日志](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/accessing-the-audit-log-for-your-enterprise)”。 +启用该功能后,可以访问审核日志以查看包含 IP 地址的事件。 更多信息请参阅“[访问企业的审核日志](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/accessing-the-audit-log-for-your-enterprise)”。 diff --git a/translations/zh-CN/content/admin/overview/about-the-github-enterprise-api.md b/translations/zh-CN/content/admin/overview/about-the-github-enterprise-api.md index 1d1e711050..198f6e4c2e 100644 --- a/translations/zh-CN/content/admin/overview/about-the-github-enterprise-api.md +++ b/translations/zh-CN/content/admin/overview/about-the-github-enterprise-api.md @@ -19,8 +19,8 @@ shortTitle: GitHub Enterprise API 利用 API,您可以自动处理多种管理任务。 包含以下例子: {% ifversion ghes %} -- 对 {% data variables.enterprise.management_console %} 进行更改。 更多信息请参阅“[{% data variables.enterprise.management_console %}](/enterprise/{{ currentVersion }}/user/rest/reference/enterprise-admin#management-console)”。 -- 配置 LDAP 同步。 更多信息请参阅“[LDAP](/enterprise/{{ currentVersion }}/user/rest/reference/enterprise-admin#ldap)”。{% endif %} +- 对 {% data variables.enterprise.management_console %} 进行更改。 更多信息请参阅“[{% data variables.enterprise.management_console %}](/enterprise/user/rest/reference/enterprise-admin#management-console)”。 +- 配置 LDAP 同步。 更多信息请参阅“[LDAP](/enterprise/user/rest/reference/enterprise-admin#ldap)”。{% endif %} - 收集关于企业的统计信息。 更多信息请参阅“[管理统计](/rest/reference/enterprise-admin#admin-stats)”。 - 管理企业帐户。 更多信息请参阅“[企业帐户](/graphql/guides/managing-enterprise-accounts)”。 diff --git a/translations/zh-CN/content/admin/policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-script.md b/translations/zh-CN/content/admin/policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-script.md index ab45abcb90..0c1ecef720 100644 --- a/translations/zh-CN/content/admin/policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-script.md +++ b/translations/zh-CN/content/admin/policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-script.md @@ -1,6 +1,6 @@ --- -title: Creating a pre-receive hook script -intro: Use pre-receive hook scripts to create requirements for accepting or rejecting a push based on the contents. +title: 创建预接收挂钩脚本 +intro: 使用预接收挂钩脚本创建基于内容来接受或拒绝推送的要求。 miniTocMaxHeadingLevel: 3 redirect_from: - /enterprise/admin/developer-workflow/creating-a-pre-receive-hook-script @@ -13,146 +13,140 @@ topics: - Enterprise - Policies - Pre-receive hooks -shortTitle: Pre-receive hook scripts +shortTitle: 预接收挂钩脚本 --- -You can see examples of pre-receive hooks for {% data variables.product.prodname_ghe_server %} in the [`github/platform-samples` repository](https://github.com/github/platform-samples/tree/master/pre-receive-hooks). -## Writing a pre-receive hook script -A pre-receive hook script executes in a pre-receive hook environment on {% data variables.product.product_location %}. When you create a pre-receive hook script, consider the available input, output, exit status, and environment variables. +您可以在 [`github/platform-samples` 仓库](https://github.com/github/platform-samples/tree/master/pre-receive-hooks)中查看 {% data variables.product.prodname_ghe_server %} 的预接收挂钩示例。 -### Input (`stdin`) -After a push occurs and before any refs are updated for the remote repository, the `git-receive-pack` process on {% data variables.product.product_location %} invokes the pre-receive hook script. Standard input for the script, `stdin`, is a string containing a line for each ref to update. Each line contains the old object name for the ref, the new object name for the ref, and the full name of the ref. +## 编写预接收挂钩脚本 +预接收挂钩脚本在 {% data variables.product.product_location %} 上的预接收挂钩环境中执行。 创建预接收挂钩脚本时,请考虑可用的输入、输出、退出状态和环境变量。 + +### 输入 (`stdin`) +推送发生后,在为远程仓库更新任何引用之前,在 {% data variables.product.product_location %} 上的 `git-receive-pack` 进程将调用预接收挂钩脚本。 脚本 `stdin` 的标准输入是一个字符串,对每个要更新的 ref 包含一行。 每行都包含 ref 的旧对象名称、引用的新对象名称和 ref 的全名。 ``` <old-value> SP <new-value> SP <ref-name> LF ``` -This string represents the following arguments. +此字符串表示以下参数。 -| Argument | Description | -| :------------- | :------------- | -| `<old-value>` | Old object name stored in the ref.<br> When you create a new ref, the value is 40 zeroes. | -| `<new-value>` | New object name to be stored in the ref.<br> When you delete a ref, the value is 40 zeroes. | -| `<ref-name>` | The full name of the ref. | +| 参数 | 描述 | +|:------------------- |:------------------------------------------------ | +| `<old-value>` | 存储在 ref 中的旧对象名称。<br>当您创建新的 ref 时,值是 40 个零。 | +| `<new-value>` | 要存储在 ref 中的新对象名称。<br>当您删除 ref 时,值是 40 个零。 | +| `<ref-name>` | ref 的全名。 | -For more information about `git-receive-pack`, see "[git-receive-pack](https://git-scm.com/docs/git-receive-pack)" in the Git documentation. For more information about refs, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in *Pro Git*. +有关 `git-receive-pack` 的更多信息,请参阅 Git 文档中的“[git-receive-pack](https://git-scm.com/docs/git-receive-pack)”。 有关 ref 的更多信息,请参阅 *Pro Git* 中的“[Git 引用](https://git-scm.com/book/en/v2/Git-Internals-Git-References)”。 -### Output (`stdout`) +### 输出 (`stdout`) -The standard output for the script, `stdout`, is passed back to the client. Any `echo` statements will be visible to the user on the command line or in the user interface. +脚本 `stdout` 的标准输出传回客户端。 任何 `echo` 语句将在命令行或用户界面上对用户可见。 -### Exit status +### 退出状态 -The exit status of a pre-receive script determines if the push will be accepted. +预接收脚本的退出状态决定是否接受推送。 -| Exit-status value | Action | -| :- | :- | -| 0 | The push will be accepted. | -| non-zero | The push will be rejected. | +| Exit-status 值 | 操作 | +|:------------- |:------ | +| 0 | 将接受推送。 | +| 非零 | 将拒绝推送。 | -### Environment variables +### 环境变量 -In addition to the standard input for your pre-receive hook script, `stdin`, {% data variables.product.prodname_ghe_server %} makes the following variables available in the Bash environment for your script's execution. For more information about `stdin` for your pre-receive hook script, see "[Input (`stdin`)](#input-stdin)." +除了预接收挂钩脚本 `stdin` 的标准输入外,,{% data variables.product.prodname_ghe_server %} 在 Bash 环境中为您的脚本执行提供以下变量。 有关预接收钩脚本 `stdin` 的更多信息,请参阅“[输入 (`stdin`)](#input-stdin)”。 -Different environment variables are available to your pre-receive hook script depending on what triggers the script to run. +预接收挂钩脚本可使用不同的环境变量,具体取决于触发脚本运行的因素。 -- [Always available](#always-available) -- [Available for pushes from the web interface or API](#available-for-pushes-from-the-web-interface-or-api) -- [Available for pull request merges](#available-for-pull-request-merges) -- [Available for pushes using SSH authentication](#available-for-pushes-using-ssh-authentication) +- [始终可用](#always-available) +- [可用于从 Web 界面或 API 推送](#available-for-pushes-from-the-web-interface-or-api) +- [可用于拉取请求合并](#available-for-pull-request-merges) +- [可用于使用 SSH 身份验证的推送](#available-for-pushes-using-ssh-authentication) -#### Always available +#### 始终可用 -The following variables are always available in the pre-receive hook environment. +以下变量在预接收挂钩环境中始终可用。 -| Variable | Description | Example value | -| :- | :- | :- | -| <pre>$GIT_DIR</pre> | Path to the remote repository on the instance | /data/user/repositories/a/ab/<br>a1/b2/34/100001234/1234.git | -| <pre>$GIT_PUSH_OPTION_COUNT</pre> | The number of push options that were sent by the client with `--push-option`. For more information, see "[git-push](https://git-scm.com/docs/git-push#Documentation/git-push.txt---push-optionltoptiongt)" in the Git documentation. | 1 | -| <pre>$GIT\_PUSH\_OPTION\_<em>N</em></pre> | Where _N_ is an integer starting at 0, this variable contains the push option string that was sent by the client. The first option that was sent is stored in `GIT_PUSH_OPTION_0`, the second option that was sent is stored in `GIT_PUSH_OPTION_1`, and so on. For more information about push options, see "[git-push](https://git-scm.com/docs/git-push#git-push---push-optionltoptiongt)" in the Git documentation. | abcd |{% ifversion ghes %} -| <pre>$GIT_USER_AGENT</pre> | User-agent string sent by the Git client that pushed the changes | git/2.0.0{% endif %} -| <pre>$GITHUB_REPO_NAME</pre> | Name of the repository being updated in _NAME_/_OWNER_ format | octo-org/hello-enterprise | -| <pre>$GITHUB_REPO_PUBLIC</pre> | Boolean representing whether the repository being updated is public | <ul><li>true: Repository's visibility is public</li><li>false: Repository's visibility is private or internal</li></ul> -| <pre>$GITHUB_USER_IP</pre> | IP address of client that initiated the push | 192.0.2.1 | -| <pre>$GITHUB_USER_LOGIN</pre> | Username for account that initiated the push | octocat | +| 变量 | 描述 | 示例值 | +|:------------------------- |:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |:------------------------------------------------------------------ | +| <pre>$GIT_DIR</pre> | 实例上远程仓库的路径 | /data/user/repositories/a/ab/<br>a1/b2/34/100001234/1234.git | +| <pre>$GIT_PUSH_OPTION_COUNT</pre> | 由客户端使用 `--pub-option` 发送的推送选项数量。 更多信息请参阅 Git 文档中的“[git-push](https://git-scm.com/docs/git-push#Documentation/git-push.txt---push-optionltoptiongt)”。 | 1 | +| <pre>$GIT\_PUSH\_OPTION\_<em>N</em></pre> | 其中 _N_ 是一个从 0 开始的整数,此变量包含客户端发送的推送选项字符串。 发送的第一个选项存储在 `GIT_PUSH_OPTION_0` 中,发送的第二个选项存储在 `GIT_PUSH_OPTION_1` 中,依此类推。 关于推送选项的更多信息,请参阅 Git 文档中的“[git-push](https://git-scm.com/docs/git-push#git-push---push-optionltoptiongt)”。 | abcd |{% ifversion ghes %} +| <pre>$GIT_USER_AGENT</pre> | 推送更改的 Git 客户端发送的 user-agent 字符串。 | git/2.0.0{% endif %} +| <pre>$GITHUB_REPO_NAME</pre> | 以 _NAME_/_OWNER_ 格式更新的仓库名称 | octo-org/hello-enterprise | +| <pre>$GITHUB_REPO_PUBLIC</pre> | 表示更新的仓库是否公开的布尔值 | <ul><li>true:仓库的可见性是公开的</li><li>false:仓库的可见性是私密或内部的</li></ul> | +| <pre>$GITHUB_USER_IP</pre> | 发起推送的客户端 IP 地址 | 192.0.2.1 | +| <pre>$GITHUB_USER_LOGIN</pre> | 发起推送的帐户的用户名 | octocat | -#### Available for pushes from the web interface or API +#### 可用于从 Web 界面或 API 推送 -The `$GITHUB_VIA` variable is available in the pre-receive hook environment when the ref update that triggers the hook occurs via either the web interface or the API for {% data variables.product.prodname_ghe_server %}. The value describes the action that updated the ref. +当触发挂钩的 ref 更新通过 {% data variables.product.prodname_ghe_server %} 的 Web 界面或 API 进行时,`$GITHUB_VIA` 变量可用于预接收挂钩环境。 该值描述了更新 ref 的操作。 + +| 值 | 操作 | 更多信息 | +|:-------------------------- |:-------------------- |:-------------------------------------------------------------------------------------------------------------------------------------------- | +| <pre>auto-merge deployment api</pre> | 通过 API 创建的部署自动合并基础分支 | REST API 文档中的“[创建部署](/rest/reference/deployments#create-a-deployment)” | +| <pre>blob#save</pre> | 在 Web 界面中更改文件的内容 | "[编辑文件](/repositories/working-with-files/managing-files/editing-files)" | +| <pre>branch merge api</pre> | 通过 API 合并分支 | REST API 文档中的“[合并分支](/rest/reference/branches#merge-a-branch)” | +| <pre>branches page delete button</pre> | 在 Web 界面中删除分支 | “[在仓库内创建和删除分支](/github/collaborating-with-issues-and-pull-requests/creating-and-deleting-branches-within-your-repository#deleting-a-branch)” | +| <pre>git refs create api</pre> | 通过 API 创建 ref | REST API 文档中的“[Git 数据库](/rest/reference/git#create-a-reference)” | +| <pre>git refs delete api</pre> | 通过 API 删除 ref | REST API 文档中的“[Git 数据库](/rest/reference/git#delete-a-reference)” | +| <pre>git refs update api</pre> | 通过 API 更新 ref | REST API 文档中的“[Git 数据库](/rest/reference/git#update-a-reference)” | +| <pre>git repo contents api</pre> | 通过 API 更改文件的内容 | REST API 文档中的“[创建或更新文件内容](/rest/reference/repos#create-or-update-file-contents)” | -| Value | Action | More information | -| :- | :- | :- | -| <pre>auto-merge deployment api</pre> | Automatic merge of the base branch via a deployment created with the API | "[Create a deployment](/rest/reference/deployments#create-a-deployment)" in the REST API documentation | -| <pre>blob#save</pre> | Change to a file's contents in the web interface | "[Editing files](/repositories/working-with-files/managing-files/editing-files)" | -| <pre>branch merge api</pre> | Merge of a branch via the API | "[Merge a branch](/rest/reference/branches#merge-a-branch)" in the REST API documentation | -| <pre>branches page delete button</pre> | Deletion of a branch in the web interface | "[Creating and deleting branches within your repository](/github/collaborating-with-issues-and-pull-requests/creating-and-deleting-branches-within-your-repository#deleting-a-branch)" | -| <pre>git refs create api</pre> | Creation of a ref via the API | "[Git database](/rest/reference/git#create-a-reference)" in the REST API documentation | -| <pre>git refs delete api</pre> | Deletion of a ref via the API | "[Git database](/rest/reference/git#delete-a-reference)" in the REST API documentation | -| <pre>git refs update api</pre> | Update of a ref via the API | "[Git database](/rest/reference/git#update-a-reference)" in the REST API documentation | -| <pre>git repo contents api</pre> | Change to a file's contents via the API | "[Create or update file contents](/rest/reference/repos#create-or-update-file-contents)" in the REST API documentation | {%- ifversion ghes %} -| `merge ` | Merge of a pull request using auto-merge | "[Automatically merging a pull request](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request)" | +| + +`merge` | 使用 auto-merge 合并拉取请求 | "[自动合并拉取请求](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request)" | {%- endif %} -| <pre>merge base into head</pre> | Update of the topic branch from the base branch when the base branch requires strict status checks (via **Update branch** in a pull request, for example) | "[About protected branches](/github/administering-a-repository/about-protected-branches#require-status-checks-before-merging)" | -| <pre>pull request branch delete button</pre> | Deletion of a topic branch from a pull request in the web interface | "[Deleting and restoring branches in a pull request](/github/administering-a-repository/deleting-and-restoring-branches-in-a-pull-request#deleting-a-branch-used-for-a-pull-request)" | -| <pre>pull request branch undo button</pre> | Restoration of a topic branch from a pull request in the web interface | "[Deleting and restoring branches in a pull request](/github/administering-a-repository/deleting-and-restoring-branches-in-a-pull-request#restoring-a-deleted-branch)" | -| <pre>pull request merge api</pre> | Merge of a pull request via the API | "[Pulls](/rest/reference/pulls#merge-a-pull-request)" in the REST API documentation | -| <pre>pull request merge button</pre> | Merge of a pull request in the web interface | "[Merging a pull request](/github/collaborating-with-issues-and-pull-requests/merging-a-pull-request#merging-a-pull-request-on-github)" | -| <pre>pull request revert button</pre> | Revert of a pull request | "[Reverting a pull request](/github/collaborating-with-issues-and-pull-requests/reverting-a-pull-request)" | -| <pre>releases delete button</pre> | Deletion of a release | "[Managing releases in a repository](/github/administering-a-repository/managing-releases-in-a-repository#deleting-a-release)" | -| <pre>stafftools branch restore</pre> | Restoration of a branch from the site admin dashboard | "[Site admin dashboard](/admin/configuration/site-admin-dashboard#repositories)" | -| <pre>tag create api</pre> | Creation of a tag via the API | "[Git database](/rest/reference/git#create-a-tag-object)" in the REST API documentation | -| <pre>slumlord (#<em>SHA</em>)</pre> | Commit via Subversion | "[Support for Subversion clients](/github/importing-your-projects-to-github/support-for-subversion-clients#making-commits-to-subversion)" | -| <pre>web branch create</pre> | Creation of a branch via the web interface | "[Creating and deleting branches within your repository](/github/collaborating-with-issues-and-pull-requests/creating-and-deleting-branches-within-your-repository#creating-a-branch)" | +| <pre>merge base into head</pre> |当基本分支需要严格的状态检查时,从基本分支更新主题分支(例如,通过拉取请求中的**更新分支**)|"[关于受保护分支](/github/administering-a-repository/about-protected-branches#require-status-checks-before-merging)"| | <pre>pull request branch delete button</pre> |从 Web 界面中的拉取请求中删除主题分支|"[在拉取请求中删除和恢复分支](/github/administering-a-repository/deleting-and-restoring-branches-in-a-pull-request#deleting-a-branch-used-for-a-pull-request)"| | <pre>pull request branch undo button</pre> |从 Web 界面中的拉取请求恢复主题分支|"[在拉取请求中删除和恢复分支](/github/administering-a-repository/deleting-and-restoring-branches-in-a-pull-request#restoring-a-deleted-branch)"| | <pre>pull request merge api</pre> |通过 API 合并拉取请求|REST API 文档中的“[拉取](/rest/reference/pulls#merge-a-pull-request)”| | <pre>pull request merge button</pre> |在 Web 界面中合并拉取请求|"[合并拉取请求](/github/collaborating-with-issues-and-pull-requests/merging-a-pull-request#merging-a-pull-request-on-github)"| | <pre>拉取请求还原按钮</pre> |还原拉取请求|"[](/github/collaborating-with-issues-and-pull-requests/reverting-a-pull-request)"还原拉取请求"| | <pre>releases delete button</pre> |删除发行版|"[管理存储库中的发行版](/github/administering-a-repository/managing-releases-in-a-repository#deleting-a-release)" | | <pre>stafftools branch restore</pre> |从站点管理仪表板还原分支|"[站点管理仪表板](/admin/configuration/site-admin-dashboard#repositories)" | | <pre>tag create api</pre> |通过 API |创建标签|REST API 文档中的“[Git 数据库](/rest/reference/git#create-a-tag-object)”| | <pre>slumlord (#<em>SHA</em>)</pre> |通过 Subversion 提交| "[支持 Subversion 客户端](/github/importing-your-projects-to-github/support-for-subversion-clients#making-commits-to-subversion)" | | <pre>web branch create</pre> | 通过 web 接口创建分支 | "[在仓库中创建和删除分支](/github/collaborating-with-issues-and-pull-requests/creating-and-deleting-branches-within-your-repository#creating-a-branch)| -#### Available for pull request merges +#### 可用于拉取请求合并 -The following variables are available in the pre-receive hook environment when the push that triggers the hook is a push due to the merge of a pull request. +当触发挂钩的推送由于拉取请求请求合并而成为推送时,以下变量在预接收挂钩环境中可用。 -| Variable | Description | Example value | -| :- | :- | :- | -| <pre>$GITHUB_PULL_REQUEST_AUTHOR_LOGIN</pre> | Username of account that authored the pull request | octocat | -| <pre>$GITHUB_PULL_REQUEST_HEAD</pre> | The name of the pull request's topic branch, in the format `USERNAME:BRANCH` | <nobr>octocat:fix-bug</nobr> | -| <pre>$GITHUB_PULL_REQUEST_BASE</pre> | The name of the pull request's base branch, in the format `USERNAME:BRANCH` | octocat:main | +| 变量 | 描述 | 示例值 | +|:-------------------------- |:---------------------------------- |:---------------------------- | +| <pre>$GITHUB_PULL_REQUEST_AUTHOR_LOGIN</pre> | 编写拉取请求的帐户的用户名 | octocat | +| <pre>$GITHUB_PULL_REQUEST_HEAD</pre> | 拉取请求的主题分支的名称,格式为 `USERNAME:BRANCH` | <nobr>octocat:fix-bug</nobr> | +| <pre>$GITHUB_PULL_REQUEST_BASE</pre> | 拉取请求的基础分支的名称,格式为 `USERNAME:BRANCH` | octocat:main | -#### Available for pushes using SSH authentication +#### 可用于使用 SSH 身份验证的推送 -| Variable | Description | Example value | -| :- | :- | :- | -| <pre>$GITHUB_PUBLIC_KEY_FINGERPRINT</pre> | The public key fingerprint for the user who pushed the changes | a1:b2:c3:d4:e5:f6:g7:h8:i9:j0:k1:l2:m3:n4:o5:p6 | +| 变量 | 描述 | 示例值 | +|:-------------------------- |:------------ |:----------------------------------------------- | +| <pre>$GITHUB_PUBLIC_KEY_FINGERPRINT</pre> | 推送更改的用户的公钥指纹 | a1:b2:c3:d4:e5:f6:g7:h8:i9:j0:k1:l2:m3:n4:o5:p6 | -## Setting permissions and pushing a pre-receive hook to {% data variables.product.prodname_ghe_server %} +## 设置权限并将预接收挂钩推送到 {% data variables.product.prodname_ghe_server %} -A pre-receive hook script is contained in a repository on {% data variables.product.product_location %}. A site administrator must take into consideration the repository permissions and ensure that only the appropriate users have access. +{% data variables.product.product_location %} 上的仓库中包含预接收挂钩脚本。 站点管理员必须考虑仓库权限,确保只有适当的用户才能访问。 -We recommend consolidating hooks to a single repository. If the consolidated hook repository is public, the `README.md` can be used to explain policy enforcements. Also, contributions can be accepted via pull requests. However, pre-receive hooks can only be added from the default branch. For a testing workflow, forks of the repository with configuration should be used. +我们建议将挂钩合并到单个仓库。 如果统一的挂钩仓库是公共的,则可以使用 `README.md` 来解释策略强制实施。 此外,也可以通过拉取请求接受贡献。 但是,只能从默认分支添加预接收挂钩。 对于测试工作流程,应使用具有配置的仓库的分支。 -1. For Mac users, ensure the scripts have execute permissions: +1. 对于 Mac 用户,确保脚本具有执行权限: ```shell $ sudo chmod +x <em>SCRIPT_FILE.sh</em> ``` - For Windows users, ensure the scripts have execute permissions: + 对于 Windows 用户,确保脚本具有执行权限: ```shell git update-index --chmod=+x <em>SCRIPT_FILE.sh</em> ``` -2. Commit and push to the designated repository for pre-receive hooks on {% data variables.product.product_location %}. +2. 在 {% data variables.product.product_location %} 提交并推送到指定的预接收挂钩仓库。 ```shell $ git commit -m "<em>YOUR COMMIT MESSAGE</em>" $ git push ``` -3. [Create the pre-receive hook](/enterprise/{{ currentVersion }}/admin/guides/developer-workflow/managing-pre-receive-hooks-on-the-github-enterprise-server-appliance/#creating-pre-receive-hooks) on the {% data variables.product.prodname_ghe_server %} instance. +3. 在 {% data variables.product.prodname_ghe_server %} 实例上[创建预接收挂钩](/enterprise/admin/guides/developer-workflow/managing-pre-receive-hooks-on-the-github-enterprise-server-appliance/#creating-pre-receive-hooks)。 -## Testing pre-receive scripts locally -You can test a pre-receive hook script locally before you create or update it on {% data variables.product.product_location %}. One method is to create a local Docker environment to act as a remote repository that can execute the pre-receive hook. +## 在本地测试预接收脚本 +在 {% data variables.product.product_location %} 上创建或更新预接收挂钩脚本之前,您可以在本地对其进行测试。 一种方法是创建本地 Docker 环境以充当可以执行预接收挂钩的远程仓库。 {% data reusables.linux.ensure-docker %} -2. Create a file called `Dockerfile.dev` containing: +2. 创建一个名为 `Dockerfile.dev` 的文件,其中包含: ```dockerfile FROM gliderlabs/alpine:3.3 @@ -174,7 +168,7 @@ You can test a pre-receive hook script locally before you create or update it on CMD ["/usr/sbin/sshd", "-D"] ``` -3. Create a test pre-receive script called `always_reject.sh`. This example script will reject all pushes, which is useful for locking a repository: +3. 创建一个名为 `always_reject.sh` 的测试预接收脚本。 此示例脚本将拒绝所有推送,这对于锁定仓库非常有用: ``` #!/usr/bin/env bash @@ -183,13 +177,13 @@ You can test a pre-receive hook script locally before you create or update it on exit 1 ``` -4. Ensure the `always_reject.sh` scripts has execute permissions: +4. 确保 `always_reject.sh` 脚本具有执行权限: ```shell $ chmod +x always_reject.sh ``` -5. From the directory containing `Dockerfile.dev`, build an image: +5. 从包含 `Dockerfile.dev` 的目录中,构建一个镜像: ```shell $ docker build -f Dockerfile.dev -t pre-receive.dev . @@ -212,32 +206,32 @@ You can test a pre-receive hook script locally before you create or update it on > Successfully built dd8610c24f82 ``` -6. Run a data container that contains a generated SSH key: +6. 运行包含生成的 SSH 密钥的数据容器: ```shell $ docker run --name data pre-receive.dev /bin/true ``` -7. Copy the test pre-receive hook `always_reject.sh` into the data container: +7. 将测试预接收挂钩 `always_reject.sh` 复制到数据容器中: ```shell $ docker cp always_reject.sh data:/home/git/test.git/hooks/pre-receive ``` -8. Run an application container that runs `sshd` and executes the hook. Take note of the container id that is returned: +8. 启动一个运行 `sshd` 的应用程序容器并执行挂钩。 记下返回的容器 ID: ```shell $ docker run -d -p 52311:22 --volumes-from data pre-receive.dev > 7f888bc700b8d23405dbcaf039e6c71d486793cad7d8ae4dd184f4a47000bc58 ``` -9. Copy the generated SSH key from the data container to the local machine: +9. 将生成的 SSH 密钥从数据容器复制到本地计算机: ```shell $ docker cp data:/home/git/.ssh/id_ed25519 . ``` -10. Modify the remote of a test repository and push to the `test.git` repo within the Docker container. This example uses `git@github.com:octocat/Hello-World.git` but you can use any repository you want. This example assumes your local machine (127.0.0.1) is binding port 52311, but you can use a different IP address if docker is running on a remote machine. +10. 修改远程测试仓库并将其推送到 Docker 容器中的 `test.git` 仓库。 此示例使用了 `git@github.com:octocat/Hello-World.git`,但您可以使用想要的任何仓库。 此示例假定您的本地计算机 (127.0.0.1) 绑定了端口 52311,但如果 docker 在远程计算机上运行,则可以使用不同的 IP 地址。 ```shell $ git clone git@github.com:octocat/Hello-World.git @@ -256,7 +250,7 @@ You can test a pre-receive hook script locally before you create or update it on > error: failed to push some refs to 'git@192.168.99.100:test.git' ``` - Notice that the push was rejected after executing the pre-receive hook and echoing the output from the script. + 请注意,在执行预接收挂钩并回显脚本中的输出后,将拒绝推送。 -## Further reading - - "[Customizing Git - An Example Git-Enforced Policy](https://git-scm.com/book/en/v2/Customizing-Git-An-Example-Git-Enforced-Policy)" from the *Pro Git website* +## 延伸阅读 + - 来自 *Pro Git 网站*的“[自定义 Git - Git 强制实施策略示例](https://git-scm.com/book/en/v2/Customizing-Git-An-Example-Git-Enforced-Policy)” diff --git a/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/configuring-visibility-for-organization-membership.md b/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/configuring-visibility-for-organization-membership.md index ffaeab9e6c..97cce1c699 100644 --- a/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/configuring-visibility-for-organization-membership.md +++ b/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/configuring-visibility-for-organization-membership.md @@ -28,4 +28,4 @@ shortTitle: 设置成员资格可见性 {% data reusables.enterprise-accounts.options-tab %} 3. 在“Default organization membership visibility(默认组织成员可见性)”下,使用下拉菜单,然后单击 **Private(私密)**或 **Public(公开)**。 ![包含用于将默认组织成员关系可见性配置为公开或私密的选项的下拉菜单](/assets/images/enterprise/site-admin-settings/default-organization-membership-visibility-drop-down-menu.png) 4. 或者,为了阻止成员将他们的成员关系可见性改为非默认值,也可以选择 **Enforce on organization members**。 ![Checkbox to enforce the default setting on all members](/assets/images/enterprise/site-admin-settings/enforce-default-org-membership-visibility-setting.png){% ifversion ghes %} -5. 如果您想在所有现有成员中强制使用新的可见性设置,请使用 `ghe-org-membership-update` 命令行实用程序。 更多信息请参阅“[命令行实用程序](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities#ghe-org-membership-update)”。{% endif %} +5. 如果您想在所有现有成员中强制使用新的可见性设置,请使用 `ghe-org-membership-update` 命令行实用程序。 更多信息请参阅“[命令行实用程序](/enterprise/admin/guides/installation/command-line-utilities#ghe-org-membership-update)”。{% endif %} diff --git a/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/creating-teams.md b/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/creating-teams.md index e59701591a..0e51eb9d2d 100644 --- a/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/creating-teams.md +++ b/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/creating-teams.md @@ -18,7 +18,7 @@ Teams are central to many of {% data variables.product.prodname_dotcom %}'s coll A team can represent a group within your company or include people with certain interests or expertise. For example, a team of accessibility experts on {% data variables.product.product_location %} could comprise of people from several different departments. Teams can represent functional concerns that complement a company's existing divisional hierarchy. -Organizations can create multiple levels of nested teams to reflect a company or group's hierarchy structure. For more information, see "[About teams](/enterprise/{{ currentVersion }}/user/articles/about-teams/#nested-teams)." +Organizations can create multiple levels of nested teams to reflect a company or group's hierarchy structure. For more information, see "[About teams](/enterprise/user/articles/about-teams/#nested-teams)." ## Creating a team diff --git a/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/requiring-two-factor-authentication-for-an-organization.md b/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/requiring-two-factor-authentication-for-an-organization.md index 098ae6444c..c683eada54 100644 --- a/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/requiring-two-factor-authentication-for-an-organization.md +++ b/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/requiring-two-factor-authentication-for-an-organization.md @@ -24,19 +24,19 @@ shortTitle: 需要 2FA ## 强制执行双重身份验证的要求 -在可以要求组织成员和外部协作者使用双重身份验证之前,您必须为自己的个人帐户[启用双重身份验证](/enterprise/{{ currentVersion }}/user/articles/securing-your-account-with-two-factor-authentication-2fa/)。 +在可以要求组织成员和外部协作者使用双重身份验证之前,您必须为自己的个人帐户[启用双重身份验证](/enterprise/user/articles/securing-your-account-with-two-factor-authentication-2fa/)。 {% warning %} **警告:** -- 如果您要求双重身份验证,则不使用双重身份验证的成员和外部协作者(包括自动程序帐户)将从组织中移除,并失去对仓库的访问权限,包括他们的私有仓库分叉。 如果他们在被从组织移除的三个月内为个人帐户启用双重身份验证,您可以[恢复他们的访问权限和设置](/enterprise/{{ currentVersion }}/user/articles/reinstating-a-former-member-of-your-organization)。 +- 如果您要求双重身份验证,则不使用双重身份验证的成员和外部协作者(包括自动程序帐户)将从组织中移除,并失去对仓库的访问权限,包括他们的私有仓库分叉。 如果他们在被从组织移除的三个月内为个人帐户启用双重身份验证,您可以[恢复他们的访问权限和设置](/enterprise/user/articles/reinstating-a-former-member-of-your-organization)。 - 如果需要双重身份验证,则禁用双重身份验证的组织成员或外部协作者将被自动从组织中移除。 - 如果您是某个要求双重身份验证的组织的唯一所有者,则在不为组织禁用双重身份验证要求的情况下,您将无法为个人帐户禁用双重身份验证。 {% endwarning %} -在您要求使用双重身份验证之前,我们建议通知组织成员和外部协作者,并要求他们为帐户设置双重身份验证。 您可以在组织的 People 选项卡上[查看成员和外部协作者是否已使用双重身份验证](/enterprise/{{ currentVersion }}/user/articles/viewing-whether-users-in-your-organization-have-2fa-enabled)。 +在您要求使用双重身份验证之前,我们建议通知组织成员和外部协作者,并要求他们为帐户设置双重身份验证。 您可以在组织的 People 选项卡上[查看成员和外部协作者是否已使用双重身份验证](/enterprise/user/articles/viewing-whether-users-in-your-organization-have-2fa-enabled)。 {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} @@ -46,7 +46,7 @@ shortTitle: 需要 2FA ## 查看从您的组织中删除的人员 -要查看在您要求双重身份验证时因为不合规而被从组织中自动移除的用户,您可以在搜索字段中使用 `reason:two_factor_requirement_non_compliance` [搜索审核日志](/enterprise/{{ currentVersion }}/admin/guides/installation/searching-the-audit-log/)。 +要查看在您要求双重身份验证时因为不合规而被从组织中自动移除的用户,您可以在搜索字段中使用 `reason:two_factor_requirement_non_compliance` [搜索审核日志](/enterprise/admin/guides/installation/searching-the-audit-log/)。 {% data reusables.audit_log.octicon_icon %} {% data reusables.enterprise_site_admin_settings.access-settings %} @@ -65,7 +65,7 @@ shortTitle: 需要 2FA ## 延伸阅读 -- "[查看组织中的用户是否已启用双重身份验证](/enterprise/{{ currentVersion }}/user/articles/viewing-whether-users-in-your-organization-have-2fa-enabled)" -- "[使用双重身份验证 (2FA) 确保帐户的安全](/enterprise/{{ currentVersion }}/user/articles/securing-your-account-with-two-factor-authentication-2fa)" -- "[恢复组织的前成员](/enterprise/{{ currentVersion }}/user/articles/reinstating-a-former-member-of-your-organization)" -- "[恢复前外部协作者对您的组织的访问权限](/enterprise/{{ currentVersion }}/user/articles/reinstating-a-former-outside-collaborator-s-access-to-your-organization)" +- "[查看组织中的用户是否已启用双重身份验证](/enterprise/user/articles/viewing-whether-users-in-your-organization-have-2fa-enabled)" +- "[使用双重身份验证 (2FA) 确保帐户的安全](/enterprise/user/articles/securing-your-account-with-two-factor-authentication-2fa)" +- "[恢复组织的前成员](/enterprise/user/articles/reinstating-a-former-member-of-your-organization)" +- “[恢复前外部协作者对组织的访问权限](/enterprise/user/articles/reinstating-a-former-outside-collaborator-s-access-to-your-organization)” diff --git a/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/auditing-users-across-your-enterprise.md b/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/auditing-users-across-your-enterprise.md index 072f5948ec..39c96a28be 100644 --- a/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/auditing-users-across-your-enterprise.md +++ b/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/auditing-users-across-your-enterprise.md @@ -113,7 +113,7 @@ shortTitle: 审计用户 `created` 限定符可根据事件发生的时间筛选操作。 - 使用 `YYYY-MM-DD` 格式定义日期,即年后面是月份,之后是具体日期。 -- 日期支持[大于、小于和范围限定符](/enterprise/{{ currentVersion }}/user/articles/search-syntax)。 例如: +- 日期支持[大于、小于和范围限定符](/enterprise/user/articles/search-syntax)。 例如: * `created:2014-07-08` 会找到在 2014 年 7 月 8 日发生的所有事件。 * `created:>=2014-07-01` 会找到在 2014 年 7 月 8 日或之后发生的所有事件。 * `created:<=2014-07-01` 会找到在 2014 年 7 月 8 日或之前发生的所有事件。 diff --git a/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/best-practices-for-user-security.md b/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/best-practices-for-user-security.md index 1fa9a0c690..b8635330e6 100644 --- a/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/best-practices-for-user-security.md +++ b/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/best-practices-for-user-security.md @@ -20,7 +20,7 @@ shortTitle: 用户安全最佳实践 双重身份验证 (2FA) 是登录网站和服务的一种方法,需要使用密码以外的第二重因素来验证身份。 对于 {% data variables.product.prodname_ghe_server %},第二重因素为用户智能手机上的应用程序生成的一次性验证码。 我们强烈建议要求您的用户在他们的帐户上启用双重身份验证。 使用双重身份验证时,只有用户的密码和智能手机同时被盗,他们的帐户才会遭到入侵。 -有关如何配置双重身份验证的更多信息,请参阅“[关于双重身份验证](/enterprise/{{ currentVersion }}/user/articles/about-two-factor-authentication)”。 +有关如何配置双重身份验证的更多信息,请参阅“[关于双重身份验证](/enterprise/user/articles/about-two-factor-authentication)”。 {% endif %} ## 需要密码管理器 diff --git a/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/promoting-or-demoting-a-site-administrator.md b/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/promoting-or-demoting-a-site-administrator.md index 0227145d68..2ca2fcfec5 100644 --- a/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/promoting-or-demoting-a-site-administrator.md +++ b/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/promoting-or-demoting-a-site-administrator.md @@ -22,7 +22,7 @@ shortTitle: Manage administrators {% endtip %} -For information about promoting a user to an organization owner, see the `ghe-org-admin-promote` section of "[Command-line utilities](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities#ghe-org-admin-promote)." +For information about promoting a user to an organization owner, see the `ghe-org-admin-promote` section of "[Command-line utilities](/enterprise/admin/guides/installation/command-line-utilities#ghe-org-admin-promote)." ## Promoting a user from the enterprise settings @@ -47,16 +47,16 @@ For information about promoting a user to an organization owner, see the `ghe-or ## Promoting a user from the command line -1. [SSH](/enterprise/{{ currentVersion }}/admin/guides/installation/accessing-the-administrative-shell-ssh/) into your appliance. -2. Run [ghe-user-promote](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities#ghe-user-promote) with the username to promote. +1. [SSH](/enterprise/admin/guides/installation/accessing-the-administrative-shell-ssh/) into your appliance. +2. Run [ghe-user-promote](/enterprise/admin/guides/installation/command-line-utilities#ghe-user-promote) with the username to promote. ```shell $ ghe-user-promote <em>username</em> ``` ## Demoting a site administrator from the command line -1. [SSH](/enterprise/{{ currentVersion }}/admin/guides/installation/accessing-the-administrative-shell-ssh/) into your appliance. -2. Run [ghe-user-demote](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities#ghe-user-demote) with the username to demote. +1. [SSH](/enterprise/admin/guides/installation/accessing-the-administrative-shell-ssh/) into your appliance. +2. Run [ghe-user-demote](/enterprise/admin/guides/installation/command-line-utilities#ghe-user-demote) with the username to demote. ```shell $ ghe-user-demote <em>username</em> ``` diff --git a/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users.md b/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users.md index f64cdf6334..eee374e9ef 100644 --- a/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users.md +++ b/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users.md @@ -69,7 +69,7 @@ As when suspending a user, unsuspending a user takes effect immediately. The use ## Suspending a user from the command line {% data reusables.enterprise_installation.ssh-into-instance %} -2. Run [ghe-user-suspend](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities#ghe-user-suspend) with the username to suspend. +2. Run [ghe-user-suspend](/enterprise/admin/guides/installation/command-line-utilities#ghe-user-suspend) with the username to suspend. ```shell $ ghe-user-suspend <em>username</em> ``` @@ -94,7 +94,7 @@ You can create a custom message that suspended users will see when attempting to ## Unsuspending a user from the command line {% data reusables.enterprise_installation.ssh-into-instance %} -2. Run [ghe-user-unsuspend](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities#ghe-user-unsuspend) with the username to unsuspend. +2. Run [ghe-user-unsuspend](/enterprise/admin/guides/installation/command-line-utilities#ghe-user-unsuspend) with the username to unsuspend. ```shell $ ghe-user-unsuspend <em>username</em> ``` diff --git a/translations/zh-CN/content/admin/user-management/migrating-data-to-and-from-your-enterprise/importing-data-from-third-party-version-control-systems.md b/translations/zh-CN/content/admin/user-management/migrating-data-to-and-from-your-enterprise/importing-data-from-third-party-version-control-systems.md index bf7e86b74d..7a16761d8c 100644 --- a/translations/zh-CN/content/admin/user-management/migrating-data-to-and-from-your-enterprise/importing-data-from-third-party-version-control-systems.md +++ b/translations/zh-CN/content/admin/user-management/migrating-data-to-and-from-your-enterprise/importing-data-from-third-party-version-control-systems.md @@ -27,7 +27,7 @@ shortTitle: 从另一个 VCS 导入 ```shell $ git-import-rewrite --flavor hg --authors /<em>PATH</em>/<em>AUTHORS-MAP-FILE</em>.csv /<em>PATH</em>/<em>REPO-NAME</em>.git ``` -5. 如果您还没有创建,请[在 {% data variables.product.prodname_ghe_server %} 上创建新的空仓库](/enterprise/{{ currentVersion }}/user/articles/creating-a-new-repository)。 +5. 如果您还没有创建,请[在 {% data variables.product.prodname_ghe_server %} 上创建新的空仓库](/enterprise/user/articles/creating-a-new-repository)。 {% data reusables.command_line.switching_directories_procedural %} 7. 将导入的仓库推送到 {% data variables.product.prodname_ghe_server %}: ```shell @@ -47,7 +47,7 @@ shortTitle: 从另一个 VCS 导入 ```shell $ git-import-rewrite --flavor svn --authors /<em>PATH</em>/<em>AUTHORS-MAP-FILE</em>.csv /<em>PATH</em>/<em>REPO-NAME</em>.git ``` -5. 如果您还没有创建,请[在 {% data variables.product.prodname_ghe_server %} 上创建新的空仓库](/enterprise/{{ currentVersion }}/user/articles/creating-a-new-repository)。 +5. 如果您还没有创建,请[在 {% data variables.product.prodname_ghe_server %} 上创建新的空仓库](/enterprise/user/articles/creating-a-new-repository)。 {% data reusables.command_line.switching_directories_procedural %} 7. 将导入的仓库推送到 {% data variables.product.prodname_ghe_server %}: ```shell @@ -67,7 +67,7 @@ shortTitle: 从另一个 VCS 导入 ```shell $ git-import-rewrite --flavor tfs --authors /<em>PATH</em>/<em>AUTHORS-MAP-FILE</em>.csv /<em>PATH</em>/<em>REPO-NAME</em>.git ``` -5. 如果您还没有创建,请[在 {% data variables.product.prodname_ghe_server %} 上创建新的空仓库](/enterprise/{{ currentVersion }}/user/articles/creating-a-new-repository)。 +5. 如果您还没有创建,请[在 {% data variables.product.prodname_ghe_server %} 上创建新的空仓库](/enterprise/user/articles/creating-a-new-repository)。 {% data reusables.command_line.switching_directories_procedural %} 7. 将导入的仓库推送到 {% data variables.product.prodname_ghe_server %}: ```shell @@ -76,4 +76,4 @@ shortTitle: 从另一个 VCS 导入 ## 延伸阅读 -- "[命令行实用程序](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities/#import-and-export)" +- "[命令行实用程序](/enterprise/admin/guides/installation/command-line-utilities/#import-and-export)" diff --git a/translations/zh-CN/content/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection.md b/translations/zh-CN/content/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection.md index cd6d5c3614..501b4e980d 100644 --- a/translations/zh-CN/content/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection.md +++ b/translations/zh-CN/content/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection.md @@ -57,4 +57,10 @@ shortTitle: 测试 SSH 连接 {% endlinux %} + {% note %} + + **注意:** 远程命令应以代码 1 退出。 + + {% endnote %} + 4. 验证生成的消息包含您的用户名。 如果收到“权限被拒绝”消息,请参阅[“错误:权限被拒绝(公钥)”](/articles/error-permission-denied-publickey)。 diff --git a/translations/zh-CN/content/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log.md b/translations/zh-CN/content/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log.md index 54a543559b..54a45e15cd 100644 --- a/translations/zh-CN/content/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log.md +++ b/translations/zh-CN/content/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log.md @@ -155,10 +155,10 @@ shortTitle: 安全日志 | `add_member` | 当 {% data variables.product.product_name %} 用户{% ifversion fpt or ghec %}[被邀请协作使用](/articles/inviting-collaborators-to-a-personal-repository){% else %}[被授权协作使用](/articles/inviting-collaborators-to-a-personal-repository){% endif %}仓库时触发。 | | `add_topic` | 当仓库所有者向仓库[添加主题](/articles/classifying-your-repository-with-topics)时触发。 | | `archived` | 当仓库所有者[存档仓库](/articles/about-archiving-repositories)时触发。{% ifversion ghes %} -| `config.disable_anonymous_git_access` | 当公共仓库中[禁用匿名 Git 读取权限](/enterprise/{{ currentVersion }}/user/articles/enabling-anonymous-git-read-access-for-a-repository)时触发。 | -| `config.enable_anonymous_git_access` | 当公共仓库中[启用匿名 Git 读取权限](/enterprise/{{ currentVersion }}/user/articles/enabling-anonymous-git-read-access-for-a-repository)时触发。 | -| `config.lock_anonymous_git_access` | 当仓库的[匿名 Git 读取权限设置被锁定](/enterprise/{{ currentVersion }}/admin/guides/user-management/preventing-users-from-changing-anonymous-git-read-access)时触发。 | -| `config.unlock_anonymous_git_access` | 当仓库的[匿名 Git 读取权限设置被解锁](/enterprise/{{ currentVersion }}/admin/guides/user-management/preventing-users-from-changing-anonymous-git-read-access)时触发。{% endif %} +| `config.disable_anonymous_git_access` | 当公共仓库中[禁用匿名 Git 读取权限](/enterprise/user/articles/enabling-anonymous-git-read-access-for-a-repository)时触发。 | +| `config.enable_anonymous_git_access` | 当公共仓库中[启用匿名 Git 读取权限](/enterprise/user/articles/enabling-anonymous-git-read-access-for-a-repository)时触发。 | +| `config.lock_anonymous_git_access` | 当仓库的[匿名 Git 读取权限设置被锁定](/enterprise/admin/guides/user-management/preventing-users-from-changing-anonymous-git-read-access)时触发。 | +| `config.unlock_anonymous_git_access` | 当仓库的[匿名 Git 读取权限设置被解锁](/enterprise/admin/guides/user-management/preventing-users-from-changing-anonymous-git-read-access)时触发。{% endif %} | `create` | 在[创建新仓库](/articles/creating-a-new-repository)时触发。 | | `destroy` | 当[仓库被删除](/articles/deleting-a-repository)时触发。{% ifversion fpt or ghec %} | `禁用` | 当仓库被禁用(例如,因[资金不足](/articles/unlocking-a-locked-account))时触发。{% endif %}{% ifversion fpt or ghec %} diff --git a/translations/zh-CN/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md b/translations/zh-CN/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md index b182f567a8..54dd6180ca 100644 --- a/translations/zh-CN/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md +++ b/translations/zh-CN/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md @@ -42,7 +42,6 @@ topics: ### {% data variables.product.prodname_codespaces %} 预构建的计费 -{% data reusables.codespaces.prebuilds-beta-note %} {% data reusables.codespaces.billing-for-prebuilds %} diff --git a/translations/zh-CN/content/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts.md b/translations/zh-CN/content/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts.md index 305dd9e31f..7907b5fbb9 100644 --- a/translations/zh-CN/content/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts.md +++ b/translations/zh-CN/content/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts.md @@ -26,14 +26,12 @@ topics: {% data reusables.dependabot.beta-security-and-version-updates %} {% data reusables.dependabot.enterprise-enable-dependabot %} -仓库的 {% data variables.product.prodname_dependabot_alerts %} 选项卡列出所有打开和关闭的 {% data variables.product.prodname_dependabot_alerts %}{% ifversion fpt or ghec or ghes > 3.2 %} 以及对应的 {% data variables.product.prodname_dependabot_security_updates %}{% endif %}。 可以{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5638 %} 按程序包、生态系统或清单筛选警报。 您还可以{% endif %} 对警报列表进行排序,单击特定警报以获取更多详细信息。 更多信息请参阅“[关于 {% data variables.product.prodname_dependabot_alerts %} 警报](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)”。 +仓库的 {% data variables.product.prodname_dependabot_alerts %} 选项卡列出所有打开和关闭的 {% data variables.product.prodname_dependabot_alerts %}{% ifversion fpt or ghec or ghes > 3.2 %} 以及对应的 {% data variables.product.prodname_dependabot_security_updates %}{% endif %}。 可以{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5638 %} 按程序包、生态系统或清单筛选警报。 您可以{% endif %} 对警报列表进行排序,单击特定警报以获取更多详细信息。 {% ifversion dependabot-bulk-alerts %}您还可以逐个关闭或重新打开警报,也可以一次选择多个警报。{% else %}您还可以关闭或重新打开警报。 {% endif %} 更多信息请参阅“[关于 {% data variables.product.prodname_dependabot_alerts %}](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)”。 {% ifversion fpt or ghec or ghes > 3.2 %} 您可以为使用 {% data variables.product.prodname_dependabot_alerts %} 和依赖关系图的任何仓库启用自动安全更新。 更多信息请参阅“[关于 {% data variables.product.prodname_dependabot_security_updates %}](/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-dependabot-security-updates)“。 {% endif %} -{% data reusables.repositories.dependency-review %} - {% ifversion fpt or ghec or ghes > 3.2 %} ## 关于仓库中有漏洞的依赖项的更新 @@ -70,18 +68,20 @@ topics: ![显示警报的并带有"有漏洞的调用"标签的警报详细信息页面屏幕截图](/assets/images/help/repository/review-calls-to-vulnerable-functions.png) -更多信息请参阅下面的“[查看和修复有漏洞的依赖项](#reviewing-and-fixing-vulnerable-dependencies)”。 +更多信息请参阅下面的“[查看和修复警报](#reviewing-and-fixing-alerts)”。 {% endif %} -## 查看有漏洞的依赖项 +## 查看 {% data variables.product.prodname_dependabot_alerts %} {% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5638 %} {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-security %} {% data reusables.repositories.sidebar-dependabot-alerts %} -1. (可选)若要筛选警报,请选择 **Repository(仓库)**、**Package(包)**、**Ecosystem(生态系统)**或 **Manifest(清单)**下拉菜单,然后单击要应用的筛选器。 您还可以在搜索栏中键入过滤条件。 例如 `ecosystem:npm` 或 `has:patch`。 要对警报进行排序,请选择 **Sort(排序)**下拉菜单,然后单击要作为排序依据的选项。 ![{% data variables.product.prodname_dependabot_alerts %} 选项卡中过滤器和排序菜单的屏幕截图](/assets/images/help/graphs/dependabot-alerts-filters.png) -1. 单击要查看的警报。 ![在警报列表中选择的警报](/assets/images/help/graphs/click-alert-in-alerts-list-ungrouped.png) +1. (可选)若要筛选警报,请选择 **Repository(仓库)**、**Package(包)**、**Ecosystem(生态系统)**或 **Manifest(清单)**下拉菜单,然后单击要应用的筛选器。 您还可以在搜索栏中键入过滤条件。 例如 `ecosystem:npm` 或 `has:patch`。 要对警报进行排序,请选择 **Sort(排序)**下拉菜单,然后单击要作为排序依据的选项。{% ifversion dependabot-bulk-alerts %} ![Screenshot of the filter and sort menus in the {% data variables.product.prodname_dependabot_alerts %} tab](/assets/images/help/graphs/dependabot-alerts-filters-checkbox.png){% else %} +![Screenshot of the filter and sort menus in the {% data variables.product.prodname_dependabot_alerts %} tab](/assets/images/enterprise/3.5/dependabot/dependabot-alerts-filters.png){% endif %} +2. 单击要查看的警报。{% ifversion dependabot-bulk-alerts %} ![Alert selected in list of alerts](/assets/images/help/graphs/click-alert-in-alerts-list-checkbox.png){% else %} +![Alert selected in list of alerts](/assets/images/enterprise/3.5/dependabot/click-alert-in-alerts-list-ungrouped.png){% endif %} {% else %} {% data reusables.repositories.navigate-to-repo %} @@ -90,7 +90,7 @@ topics: 1. 单击您想要查看的警报。 ![在警报列表中选择的警报](/assets/images/help/graphs/click-alert-in-alerts-list.png) {% endif %} -## 查看和修复有漏洞的依赖项 +## 查看和修复警报 请务必确保所有依赖项都没有任何安全漏洞。 当 {% data variables.product.prodname_dependabot %} 发现依赖项中的漏洞时,应评估项目的暴露水平,并确定要采取哪些补救措施来保护应用程序。 @@ -106,7 +106,7 @@ topics: ### 修复有漏洞的依赖项 -1. 查看警报的详细信息。 更多信息请参阅“[查看有漏洞的依赖项](#viewing-vulnerable-dependencies)”(上文)。 +1. 查看警报的详细信息。 更多信息请参阅“[查看 {% data variables.product.prodname_dependabot_alerts %}](#viewing-dependabot-alerts)”(上文)。 {% ifversion fpt or ghec or ghes > 3.2 %} 1. 如果启用了 {% data variables.product.prodname_dependabot_security_updates %} ,则可能存在指向将修复依赖项的拉取请求的链接。 或者,可以单击警报详细信息页面顶部的 **创建 {% data variables.product.prodname_dependabot %} 安全更新**以创建拉取请求。 ![创建 {% data variables.product.prodname_dependabot %} 安全更新按钮](/assets/images/help/repository/create-dependabot-security-update-button-ungrouped.png) 1. (可选)如果不使用 {% data variables.product.prodname_dependabot_security_updates %},则可以使用页面上的信息来决定要升级到的依赖项版本,并创建拉取请求以将依赖项更新到安全版本。 @@ -119,22 +119,56 @@ topics: {% data variables.product.prodname_dependabot %} 提出的每个拉取请求都包含可用于控制 {% data variables.product.prodname_dependabot %} 的命令的相关信息。 更多信息请参阅“[管理依赖项更新的拉取请求](/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/managing-pull-requests-for-dependency-updates#managing-dependabot-pull-requests-with-comment-commands)”。 {% endif %} -### 忽略 {% data variables.product.prodname_dependabot_alerts %} +## 忽略 {% data variables.product.prodname_dependabot_alerts %} + +{% tip %} + +**提示:** 您只能关闭打开的警报。 +{% endtip %} 如果计划大量工作来升级依赖项,或者决定不需要修复警报,则可以忽略警报。 通过忽略已评估的警报,可以更轻松地在新警报出现时对其进行分类。 -1. 查看警报的详细信息。 更多信息请参阅“[查看有漏洞的依赖项](#viewing-vulnerable-dependencies)”(上文)。 +1. 查看警报的详细信息。 更多信息请参阅“[查看有漏洞的依赖项](#viewing-dependabot-alerts)”(上文)。 1. 选择“Dismiss(忽略)”下拉列表,然后单击忽略警报的原因。{% ifversion reopen-dependabot-alerts %} 未修复的已忽略警报可以稍后重新打开。{% endif %} ![选择通过 "Dismiss(忽略)"下拉菜单忽略警报的原因](/assets/images/help/repository/dependabot-alert-dismiss-drop-down-ungrouped.png) +{% ifversion dependabot-bulk-alerts %} + +### 一次忽略多个警报 + +1. 查看打开的 {% data variables.product.prodname_dependabot_alerts %}。 更多信息请参阅“[查看 {% data variables.product.prodname_dependabot_alerts %}](/en/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts#viewing-dependabot-alerts)”。 +2. (可选)通过选择下拉菜单,然后单击要应用的筛选器来筛选警报列表。 您还可以在搜索栏中键入过滤条件。 +3. 在每个警报标题的左侧,选择要忽略的警报。 ![突出显示了复选框的打开警报的屏幕截图](/assets/images/help/graphs/select-multiple-alerts.png) +4. (可选)在警报列表的顶部,选择页面上的所有警报。 ![选择的所有已打开警报的屏幕截图](/assets/images/help/graphs/select-all-alerts.png) +5. 选择“Dismiss alerts(忽略警报)”下拉列表,然后单击忽略警报的原因。 ![突出显示了“"忽略警报"下拉列表的已打开警报页面屏幕截图](/assets/images/help/graphs/dismiss-multiple-alerts.png) + +{% endif %} {% ifversion reopen-dependabot-alerts %} ## 查看和更新已关闭的警报 +{% tip %} + +**提示:** 您只能重新打开以前已忽略的警报。 无法重新打开已修复的已关闭警报。 +{% endtip %} + {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-security %} {% data reusables.repositories.sidebar-dependabot-alerts %} -1. 要仅查看已关闭的警报,请单击 **Closed(已关闭)**。 ![显示"已关闭"选项的屏幕截图](/assets/images/help/repository/dependabot-alerts-closed.png) -1. 单击要查看或更新的警报。 ![显示突出显示的 dependabot 警报的屏幕截图](/assets/images/help/repository/dependabot-alerts-select-closed-alert.png) -2. (可选)如果警报已消除,并且您希望重新打开它,请单击 **Reopen(重新打开)**。 ![显示"重新打开"按钮的屏幕截图](/assets/images/help/repository/reopen-dismissed-alert.png) +1. 要仅查看已关闭的警报,请单击 **Closed(已关闭)**。{% ifversion dependabot-bulk-alerts %} ![Screenshot showing the "Closed" option](/assets/images/help/repository/dependabot-alerts-closed-checkbox.png){% else %} +![Screenshot showing the "Closed" option](/assets/images/help/repository/dependabot-alerts-closed.png){% endif %} +1. 单击要查看或更新的警报。{% ifversion dependabot-bulk-alerts %} ![Screenshot showing a highlighted dependabot alert](/assets/images/help/repository/dependabot-alerts-select-closed-alert-checkbox.png){% else %} +![Screenshot showing a highlighted dependabot alert](/assets/images/help/repository/dependabot-alerts-select-closed-alert.png){% endif %} +2. (可选)如果警报已消除,并且您希望重新打开它,请单击 **Reopen(重新打开)**。 无法重新打开已修复的警报。 ![显示"重新打开"按钮的屏幕截图](/assets/images/help/repository/reopen-dismissed-alert.png) + +{% endif %} + +{% ifversion dependabot-bulk-alerts %} + +### 一次重新打开多个警报 + +1. 查看关闭的 {% data variables.product.prodname_dependabot_alerts %}。 更多信息请参阅“[查看和更新关闭的警报](/en/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts#viewing-and-updating-closed-alerts)”(上文)。 +2. 在每个警报标题的左侧,选择要重新打开的警报。 ![突出显示了复选框的已关闭警报的屏幕截图](/assets/images/help/repository/dependabot-alerts-open-checkbox.png) +3. (可选)在警报列表的顶部,选择页面上所有已关闭的警报。 ![选中了所有警报的已关闭警报的屏幕截图](/assets/images/help/graphs/select-all-closed-alerts.png) +4. 单击 **Reopen(重新打开)**以重新打开警报。 无法重新打开已修复的警报。 ![突出显示了"重新打开"按钮的已关闭警报的屏幕截图](/assets/images/help/graphs/reopen-multiple-alerts.png) {% endif %} diff --git a/translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md b/translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md index 00efca6505..c1c7144f27 100644 --- a/translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md +++ b/translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md @@ -50,11 +50,19 @@ redirect_from: {% data reusables.dependency-review.dependency-review-action-beta-note %} -可以使用存储库中的依赖项审查 GitHub 操作对拉取请求强制执行依赖项审查。 该操作将扫描由拉取请求中的包版本更改是否引入有漏洞的依赖项版本,并向您示警相关的安全漏洞。 这便于您更好地了解拉取请求中发生的变化,并有助于防止将漏洞添加到存储库中。 更多信息请参阅 [`dependency-review-action`](https://github.com/actions/dependency-review-action)。 +The action is available for all {% ifversion fpt or ghec %}public repositories, as well as private {% endif %}repositories that have {% data variables.product.prodname_GH_advanced_security %} enabled. + +You can use the {% data variables.product.prodname_dependency_review_action %} in your repository to enforce dependency reviews on your pull requests. 该操作将扫描由拉取请求中的包版本更改是否引入有漏洞的依赖项版本,并向您示警相关的安全漏洞。 这便于您更好地了解拉取请求中发生的变化,并有助于防止将漏洞添加到存储库中。 更多信息请参阅 [`dependency-review-action`](https://github.com/actions/dependency-review-action)。 ![依赖项审查操作示例](/assets/images/help/graphs/dependency-review-action.png) -依赖项审查 GitHub 操作检查在发现任何易受攻击的包时会失败,但只有在存储库所有者要求在合并之前通过检查时,才会阻止合并拉取请求。 更多信息请参阅“[关于受保护分支](/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#require-status-checks-before-merging)”。 +By default, the {% data variables.product.prodname_dependency_review_action %} check will fail if it discovers any vulnerable packages. A failed check blocks a pull request from being merged when the repository owner requires the dependency review check to pass. 更多信息请参阅“[关于受保护分支](/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#require-status-checks-before-merging)”。 该操作使用依赖项审查 REST API 来获取基本提交和头部提交之间的依赖项更改差异。 您可以使用依赖项审查 API 来获取存储库上任意两个提交之间的依赖项更改差异(包括漏洞数据)。 更多信息请参阅“[依赖项审查](/rest/reference/dependency-graph#dependency-review)”。 + +{% ifversion dependency-review-action-configuration %} +You can configure the {% data variables.product.prodname_dependency_review_action %} to better suit your needs. For example, you can specify the severity level that will make the action fail, or set an allow or deny list for licenses to scan. For more information, see "[Configuring dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review#configuring-the-dependency-review-github-action)." {% endif %} + +{% endif %} + diff --git a/translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md b/translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md index 1aa92c76df..649c7f57e0 100644 --- a/translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md +++ b/translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md @@ -47,3 +47,56 @@ topics: 1. 在“Configure security and analysis features(配置安全和分析功能)”下,检查是否启用了依赖关系图。 1. 如果启用了依赖关系图,请单击“{% data variables.product.prodname_GH_advanced_security %}”旁边的 **Enable(启用)**以启用 {% data variables.product.prodname_advanced_security %},包括依赖项审查。 如果您的企业没有可用于 {% data variables.product.prodname_advanced_security %} 的许可证,则启用按钮处于禁用状态。{% ifversion ghes < 3.3 %} ![Screenshot of "Code security and analysis" features"](/assets/images/enterprise/3.2/repository/code-security-and-analysis-enable-ghas-3.2.png){% endif %}{% ifversion ghes > 3.2 %} ![Screenshot of "Code security and analysis" features"](/assets/images/enterprise/3.4/repository/code-security-and-analysis-enable-ghas-3.4.png){% endif %} {% endif %} + +{% ifversion dependency-review-action-configuration %} +## Configuring the {% data variables.product.prodname_dependency_review_action %} + +{% data reusables.dependency-review.dependency-review-action-beta-note %} +{% data reusables.dependency-review.dependency-review-action-overview %} + +The following configuration options are available. + +| 选项 | 必选 | 用法 | +| ------------------ | -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `fail-on-severity` | 可选 | Defines the threshold for level of severity (`low`, `moderate`, `high`, `critical`).</br>The action will fail on any pull requests that introduce vulnerabilities of the specified severity level or higher. | +| `allow-licenses` | 可选 | Contains a list of allowed licenses. You can find the possible values for this parameter in the [Licenses](/rest/licenses) page of the API documentation.</br>The action will fail on pull requests that introduce dependencies with licenses that do not match the list. | +| `deny-licenses` | 可选 | Contains a list of prohibited licenses. You can find the possible values for this parameter in the [Licenses](/rest/licenses) page of the API documentation.</br>The action will fail on pull requests that introduce dependencies with licenses that match the list. | + +{% tip %} + +**Tip:** The `allow-licenses` and `deny-licenses` options are mutually exclusive. + +{% endtip %} + +This {% data variables.product.prodname_dependency_review_action %} example file illustrates how you can use these configuration options. + +```yaml{:copy} +name: 'Dependency Review' +on: [pull_request] + +permissions: + contents: read + +jobs: + dependency-review: + runs-on: ubuntu-latest + steps: + - name: 'Checkout Repository' + uses: {% data reusables.actions.action-checkout %} + - name: Dependency Review + uses: actions/dependency-review-action@v2 + with: + # Possible values: "critical", "high", "moderate", "low" + fail-on-severity: critical + # You can only can only include one of these two options: `allow-licenses` and `deny-licences` + # ([String]). Only allow these licenses (optional) + # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses + # allow-licenses: GPL-3.0, BSD-3-Clause, MIT + + # ([String]). Block the pull request on these licenses (optional) + # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses + # deny-licenses: LGPL-2.0, BSD-2-Clause +``` + +For further details about the configuration options, see [`dependency-review-action`](https://github.com/actions/dependency-review-action#readme). +{% endif %} diff --git a/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/about-codespaces-prebuilds.md b/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/about-codespaces-prebuilds.md index 1b931d9b37..a7b1d1e4e3 100644 --- a/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/about-codespaces-prebuilds.md +++ b/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/about-codespaces-prebuilds.md @@ -1,7 +1,7 @@ --- title: 关于代码空间预构建 shortTitle: 关于预构建 -intro: 代码空间预构建有助于加快新代码空间的创建速度。 +intro: Codespaces prebuilds help to speed up the creation of new codespaces for large or complex repositories. versions: fpt: '*' ghec: '*' @@ -10,15 +10,13 @@ topics: product: '{% data reusables.gated-features.codespaces %}' --- -{% data reusables.codespaces.prebuilds-beta-note %} - ## 概览 -预构建代码空间可让您提高工作效率并更快地访问代码空间,而不管项目的大小和复杂性如何。 这是因为在为项目创建代码空间之前,任何源代码、编辑器扩展、项目依赖项、命令和配置都已下载、安装和应用。 将预构建视为代码空间的“准备就绪”模板。 +Prebuilding your codespaces allows you to be more productive and access your codespace faster, particularly if your repository is large or complex and new codespaces currently take more than 2 minutes to start. 这是因为在为项目创建代码空间之前,任何源代码、编辑器扩展、项目依赖项、命令和配置都已下载、安装和应用。 将预构建视为代码空间的“准备就绪”模板。 默认情况下,每当您将更改推送到存储库时,{% data variables.product.prodname_codespaces %} 都会使用 {% data variables.product.prodname_actions %} 自动更新您的预构建。 -当预构建可用于存储库的特定分支以及您所在的地区时,则创建代码空间时在计算机类型选项列表中会看到“{% octicon "zap" aria-label="The zap icon" %} 预构建就绪”标签。 更多信息请参阅“[创建代码空间](/codespaces/developing-in-codespaces/creating-a-codespace#creating-a-codespace)”。 +当预构建可用于存储库的特定分支以及您所在的地区时,则创建代码空间时在计算机类型选项列表中会看到“{% octicon "zap" aria-label="The zap icon" %} 预构建就绪”标签。 If a prebuild is still being created, you will see the "{% octicon "history" aria-label="The history icon" %} Prebuild in progress" label. 更多信息请参阅“[创建代码空间](/codespaces/developing-in-codespaces/creating-a-codespace#creating-a-codespace)”。 ![用于选择计算机类型的对话框](/assets/images/help/codespaces/choose-custom-machine-type.png) diff --git a/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md b/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md index 91eca5bdcb..57ff4a9c34 100644 --- a/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md +++ b/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md @@ -13,8 +13,6 @@ product: '{% data reusables.gated-features.codespaces %}' permissions: People with admin access to a repository can configure prebuilds for the repository. --- -{% data reusables.codespaces.prebuilds-beta-note %} - 您可以为存储库的特定分支设置预构建配置。 从启用了预构建的基础分支创建的任何分支通常也会在代码空间创建期间分配一个预构建。 如果分支上的开发容器与基本分支上的开发容器相同,则会出现这种情况。 这是因为具有相同开发容器配置的分支的大多数预构建配置都相同,因此开发人员也可以从这些分支上更快的代码空间创建时间中受益。 更多信息请参阅“[开发容器简介](/codespaces/setting-up-your-project-for-codespaces/introduction-to-dev-containers)”。 @@ -48,7 +46,15 @@ permissions: People with admin access to a repository can configure prebuilds fo {% endnote %} -1. 选择要在其中设置预构建的区域。 开发人员必须位于您选择的区域中,才能从预构建创建代码空间。 或者,选择 **All regions(所有区域)**。 +1. 选择自动触发预构建模板更新的方式。 + + * **每次推送**(默认设置)- 使用此设置,每次推送到给定分支时,都会更新预构建配置。 这将确保从预构建模板生成的代码空间始终包含最新的代码空间配置,包括任何最近添加或更新的依赖项。 + * **在配置更改时** - 使用此设置,每次更新给定存储库和分支的关联配置文件时,都会更新预构建配置。 这可确保在从预构建模板生成代码空间时使用对存储库的开发容器配置文件所做的更改。 更新预构建模板的 Actions 工作流程的运行频率较低,因此此选项将使用较少的 Actions 分钟数。 但是,此选项不保证代码空间始终包含最近添加或更新的依赖项,因此在创建代码空间后,可能必须手动添加或更新这些依赖项。 + * **计划** - 使用此设置,您可以按照自己定义的自定义计划更新预构建配置。 This can reduce consumption of Actions minutes, however, with this option, codespaces may be created that do not use the latest dev container configuration changes. + + ![预构建触发器选项](/assets/images/help/codespaces/prebuilds-triggers.png) + +1. Select **Reduce prebuild available to only specific regions** to limit access to your prebuilt image, then select which regions you want it available in. Developers can only create codespaces from a prebuild if they are located in a region you select. By default, your prebuilt image is available to all regions where codespaces is available and storage costs apply for each region. ![区域选择选项](/assets/images/help/codespaces/prebuilds-regions.png) @@ -60,13 +66,17 @@ permissions: People with admin access to a repository can configure prebuilds fo {% endnote %} -1. 选择自动触发预构建模板更新的方式。 +1. Set the number of prebuild template versions to be retained. You can input any number between 1 and 5. The default number of saved versions is 2, which means that only the latest template version and the previous version are saved. - * **每次推送**(默认设置)- 使用此设置,每次推送到给定分支时,都会更新预构建配置。 这将确保从预构建模板生成的代码空间始终包含最新的代码空间配置,包括任何最近添加或更新的依赖项。 - * **在配置更改时** - 使用此设置,每次更新给定存储库和分支的关联配置文件时,都会更新预构建配置。 这可确保在从预构建模板生成代码空间时使用对存储库的开发容器配置文件所做的更改。 更新预构建模板的 Actions 工作流程的运行频率较低,因此此选项将使用较少的 Actions 分钟数。 但是,此选项不保证代码空间始终包含最近添加或更新的依赖项,因此在创建代码空间后,可能必须手动添加或更新这些依赖项。 - * **计划** - 使用此设置,您可以按照自己定义的自定义计划更新预构建配置。 这可以减少 Actions 分钟数的消耗,并减少预构建因更新而不可用的时间。 但是,使用此选项,可以创建不使用最新开发容器配置更改的代码空间。 + Depending on your prebuild trigger settings, your prebuild template could change with each push or on each dev container configuration change. Retaining older versions of prebuild templates enables you to create a prebuild from an older commit with a different dev container configuration than the current prebuild template. Since there is a storage cost associated with retaining prebuild template versions, you can choose the number of versions to be retained based on the needs of your team. For more information on billing, see "[About billing for {% data variables.product.prodname_codespaces %}](/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces#codespaces-pricing)." - ![预构建触发器选项](/assets/images/help/codespaces/prebuilds-triggers.png) + If you set the number of prebuild template versions to save to 1, {% data variables.product.prodname_codespaces %} will only save the latest version of the prebuild template and will delete the older version each time the template is updated. This means you will not get a prebuilt codespace if you go back to an older dev container configuration. + + ![The prebuild template history setting](/assets/images/help/codespaces/prebuilds-template-history-setting.png) + +1. Add users or teams to notify when the prebuild workflow run fails for this configuration. You can begin typing a username, team name, or full name, then click the name once it appears to add them to the list. The users or teams you add will receive an email when prebuild failures occur, containing a link to the workflow run logs to help with further investigation. + + ![The prebuild failure notification setting](/assets/images/help/codespaces/prebuilds-failure-notification-setting.png) 1. 单击 **Create(创建)**。 diff --git a/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/index.md b/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/index.md index cba7bdc3f7..f63cb3a836 100644 --- a/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/index.md +++ b/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/index.md @@ -15,5 +15,4 @@ children: - /managing-prebuilds - /testing-dev-container-changes --- - -{% data reusables.codespaces.prebuilds-beta-note %} + diff --git a/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md b/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md index 90494d097a..749ea97769 100644 --- a/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md +++ b/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md @@ -12,8 +12,6 @@ product: '{% data reusables.gated-features.codespaces %}' miniTocMaxHeadingLevel: 3 --- -{% data reusables.codespaces.prebuilds-beta-note %} - ## 检查、更改和删除预构建配置 您为存储库配置的预构建是使用 {% data variables.product.prodname_actions %} 工作流程创建和更新的,由 {% data variables.product.prodname_codespaces %} 服务管理。 diff --git a/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/testing-dev-container-changes.md b/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/testing-dev-container-changes.md index c1a2e333eb..937e73b11f 100644 --- a/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/testing-dev-container-changes.md +++ b/translations/zh-CN/content/codespaces/prebuilding-your-codespaces/testing-dev-container-changes.md @@ -14,8 +14,6 @@ product: '{% data reusables.gated-features.codespaces %}' permissions: People with write permissions to a repository can create or edit the dev container configuration for a branch. --- -{% data reusables.codespaces.prebuilds-beta-note %} - 对启用了预构建的分支的开发容器配置所做任何更改,都将导致代码空间配置和关联的预构建模板更新。 因此,在将更改提交到当前使用的存储库分支之前,在代码空间中从测试分支测试此类更改非常重要。 这将确保您不会为团队引入破坏性更改。 更多信息请参阅“[开发容器简介](/codespaces/setting-up-your-project-for-codespaces/introduction-to-dev-containers)”。 diff --git a/translations/zh-CN/content/codespaces/troubleshooting/troubleshooting-prebuilds.md b/translations/zh-CN/content/codespaces/troubleshooting/troubleshooting-prebuilds.md index c182a38d34..bbca709909 100644 --- a/translations/zh-CN/content/codespaces/troubleshooting/troubleshooting-prebuilds.md +++ b/translations/zh-CN/content/codespaces/troubleshooting/troubleshooting-prebuilds.md @@ -12,8 +12,6 @@ product: '{% data reusables.gated-features.codespaces %}' miniTocMaxHeadingLevel: 3 --- -{% data reusables.codespaces.prebuilds-beta-note %} - 有关 {% data variables.product.prodname_codespaces %} 预构建的详细信息,请参阅“[预构建代码空间](/codespaces/prebuilding-your-codespaces)”。 ## 检查代码空间是否是从预构建创建的? diff --git a/translations/zh-CN/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md b/translations/zh-CN/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md index 704772a14b..074ec3f1ed 100644 --- a/translations/zh-CN/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md +++ b/translations/zh-CN/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md @@ -1337,6 +1337,34 @@ Key | Type | Description {% endif %} +{% ifversion ghas-enablement-webhook %} + +## security_and_analysis + +Activity related to enabling or disabling code security and analysis features for a repository or organization. + +### Availability + +- Repository webhooks +- Organization webhooks +- {% data variables.product.prodname_github_apps %} with at least `read-only` access on repositories administration + +### Webhook payload object + +Key | Type | Description +----|------|------------- +`changes`|`object` | The changes that were made to the code security and analysis features. +{% data reusables.webhooks.repo_desc %} +{% data reusables.webhooks.org_desc %} +{% data reusables.webhooks.app_desc %} +{% data reusables.webhooks.sender_desc %} + +### Webhook payload example + +{{ webhookPayloadsForCurrentVersion.security_and_analysis }} + +{% endif %} + {% ifversion fpt or ghec %} ## sponsorship diff --git a/translations/zh-CN/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-for-your-schoolwork/about-github-community-exchange.md b/translations/zh-CN/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-for-your-schoolwork/about-github-community-exchange.md index ad8dd4e30c..ec7a6ca8c8 100644 --- a/translations/zh-CN/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-for-your-schoolwork/about-github-community-exchange.md +++ b/translations/zh-CN/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-for-your-schoolwork/about-github-community-exchange.md @@ -6,7 +6,7 @@ versions: shortTitle: Community Exchange --- -## 关于 {% data variables.product.prodname_community_exchange %} +## About {% data variables.product.prodname_community_exchange %} {% data variables.product.prodname_community_exchange %} is a student community within the {% data variables.product.prodname_global_campus %} portal. As a student, it's a place where you can get exposure for your project and discover other student repositories in need of collaborators and maintainers. @@ -25,6 +25,6 @@ To access {% data variables.product.prodname_community_exchange %}, visit your { If you're a student or faculty member at an accredited educational institution, you can apply for {% data variables.product.prodname_education %} benefits, which includes access to {% data variables.product.prodname_community_exchange %} within {% data variables.product.prodname_global_campus %}. -- If you’re a student and you haven't joined {% data variables.product.prodname_education %} yet, apply using the [student application form](https://education.github.com/discount_requests/student_application). For more information, see "[About GitHub Education for students](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-for-your-schoolwork/about-github-education-for-students)." +- If you’re a student and you haven't joined {% data variables.product.prodname_education %} yet, apply using the [student application form]( https://education.github.com/discount_requests/student_application). For more information, see "[About GitHub Education for students](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-for-your-schoolwork/about-github-education-for-students)." -- If you’re an educator and you haven't joined {% data variables.product.prodname_education %} yet, apply using the [teacher application form](https://education.github.com/discount_requests/teacher_application). For more information, see "[About GitHub Education for educators](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-in-your-classroom-and-research/apply-for-an-educator-or-researcher-discount)." +- If you’re an educator and you haven't joined {% data variables.product.prodname_education %} yet, apply using the [teacher application form]( https://education.github.com/discount_requests/teacher_application). For more information, see "[About GitHub Education for educators](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-in-your-classroom-and-research/apply-for-an-educator-or-researcher-discount)." diff --git a/translations/zh-CN/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/reuse-an-assignment.md b/translations/zh-CN/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/reuse-an-assignment.md index fa4cca7bb0..7ccee9590c 100644 --- a/translations/zh-CN/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/reuse-an-assignment.md +++ b/translations/zh-CN/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/reuse-an-assignment.md @@ -9,7 +9,7 @@ shortTitle: 重复使用分配 ## 关于重复使用作业 -您可以在您有权访问的任何其他教室(包括其他组织中的教室)中重复使用现有的个人或小组作业。 如果您选择重复使用作业,{% data variables.product.prodname_classroom %} 会将作业复制到您选择的教室。 如果作业使用模板存储库,并且您选择在其他组织的教室中重复使用它,{% data variables.product.prodname_classroom %} 将在目标组织中创建存储库及其内容的副本。 +您可以在您有权访问的任何其他教室(包括其他组织中的教室)中重复使用现有的个人或小组作业。 您还可以在一个教室中一次重复使用多个作业。 如果您选择重复使用作业,{% data variables.product.prodname_classroom %} 会将作业复制到您选择的教室。 如果作业使用模板存储库,并且您选择在其他组织的教室中重复使用它,{% data variables.product.prodname_classroom %} 将在目标组织中创建存储库及其内容的副本。 复制的作业包括作业详细信息,例如名称、源存储库、自动评分测试和首选编辑器。 复制任务后,您可以对其进行编辑以进行更改。 您无法对首选编辑器进行更改。 @@ -36,3 +36,21 @@ shortTitle: 重复使用分配 1. 作业将复制到所选教室,并显示一条确认消息。 如果选择在模板存储库中重复使用作业,则复制过程可能需要几分钟才能完成,并且可能需要刷新页面才能看到已完成的消息。 ![重复使用的作业已完成消息](/assets/images/help/classroom/reuse-assignment-completed-message.png) + +## 重复使用教室中的多个作业 + +1. 登录 {% data variables.product.prodname_classroom_with_url %}。 +2. 在教室名称的右侧,选择 {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %} 下拉菜单,然后单击“**Reuse assignment(重复使用作业)**”。 + + ![强调下拉列表的课堂概述页面的屏幕截图](/assets/images/help/classroom/classroom-reuse-assignment-modal.png) + +3. 在“Reuse assignment(重复使用作业)”模式中,使用 **Choose an organization(选择组织)**下拉菜单选择您希望作业所在的组织。 然后使用 **Choose a classroom(选择教室)**下拉菜单选择要将作业复制到的组织中教室。 + + ![重用作业模式的屏幕截图](/assets/images/help/classroom/reuse-multiple-assignments-modal.png) + +4. 在每个作业的左侧,选择要重复使用的作业。 + + ![多个选定作业的屏幕截图](/assets/images/help/classroom/multiple-assignments-selected.png) + +5. 单击 **Create assignments(创建作业)**。 +6. 作业将复制到所选教室。 如果选择使用模板存储库重用分配,则复制过程可能需要几分钟才能完成。 diff --git a/translations/zh-CN/content/get-started/exploring-projects-on-github/saving-repositories-with-stars.md b/translations/zh-CN/content/get-started/exploring-projects-on-github/saving-repositories-with-stars.md index 8787cd94e9..3602efc398 100644 --- a/translations/zh-CN/content/get-started/exploring-projects-on-github/saving-repositories-with-stars.md +++ b/translations/zh-CN/content/get-started/exploring-projects-on-github/saving-repositories-with-stars.md @@ -40,6 +40,16 @@ shortTitle: 保存有星标的仓库 1. (可选)要取消先前已标星仓库的星标,请点击 **Unstar(取消星标)**。 ![解压仓库](/assets/images/help/stars/unstarring-a-repository.png) {% ifversion fpt or ghec %} + +## Viewing who has starred a repository + + +You can view everyone who has starred a public repository or a private repository you have access to. + + +To view everyone who has starred a repository, add `/stargazers` to the end of the URL of a repository. For example, to view stargazers for the github/docs repository, visit https://github.com/github/docs/stargazers. + + ## 使用列表组织带星标的存储库 {% note %} diff --git a/translations/zh-CN/content/get-started/quickstart/contributing-to-projects.md b/translations/zh-CN/content/get-started/quickstart/contributing-to-projects.md index 729d06ee46..c78f1e5e46 100644 --- a/translations/zh-CN/content/get-started/quickstart/contributing-to-projects.md +++ b/translations/zh-CN/content/get-started/quickstart/contributing-to-projects.md @@ -81,7 +81,7 @@ gh repo fork <em>repository</em> --clone=true ## 创建和推送更改 -继续使用您喜欢的文本编辑器对项目进行一些更改,例如 [Atom](https://atom.io)。 例如,您可以更改 `index.html` 中的文本以添加您的 GitHub 用户名。 +Go ahead and make a few changes to the project using your favorite text editor, like [Visual Studio Code](https://code.visualstudio.com). 例如,您可以更改 `index.html` 中的文本以添加您的 GitHub 用户名。 当您准备好提交更改时,请暂存并提交更改。 `git add .` 告诉 Git 您希望在下一次提交中包含所有更改。 `git commit` 会拍摄这些更改的快照。 diff --git a/translations/zh-CN/content/get-started/quickstart/create-a-repo.md b/translations/zh-CN/content/get-started/quickstart/create-a-repo.md index 1782bc23cd..417c76ee0c 100644 --- a/translations/zh-CN/content/get-started/quickstart/create-a-repo.md +++ b/translations/zh-CN/content/get-started/quickstart/create-a-repo.md @@ -35,9 +35,9 @@ topics: {% note %} **注意:** -- You can create public repositories for an open source project. 创建公共仓库时,请确保包含[许可文件](https://choosealicense.com/)以确定您希望与其他人共享项目。 {% data reusables.open-source.open-source-guide-repositories %} +- 您可以为开源项目创建公共仓库。 创建公共仓库时,请确保包含[许可文件](https://choosealicense.com/)以确定您希望与其他人共享项目。 {% data reusables.open-source.open-source-guide-repositories %} - {% data reusables.open-source.open-source-learning %} -- You can also add community health files to your repositories, to set guidelines on how to contribute, keep your repositories safe, and much more. 更多信息请参阅“[创建默认社区健康文件](/communities/setting-up-your-project-for-healthy-contributions/creating-a-default-community-health-file)”。 +- 您还可以将社区健康文件添加到存储库,以设置有关如何贡献、确保存储库安全等的准则。 更多信息请参阅“[创建默认社区健康文件](/communities/setting-up-your-project-for-healthy-contributions/creating-a-default-community-health-file)”。 {% endnote %} diff --git a/translations/zh-CN/content/issues/tracking-your-work-with-issues/closing-an-issue.md b/translations/zh-CN/content/issues/tracking-your-work-with-issues/closing-an-issue.md index b9c17f55bb..55987a22f5 100644 --- a/translations/zh-CN/content/issues/tracking-your-work-with-issues/closing-an-issue.md +++ b/translations/zh-CN/content/issues/tracking-your-work-with-issues/closing-an-issue.md @@ -1,6 +1,6 @@ --- -title: Closing an issue -intro: 'You can close an issue when bugs are fixed, feedback is acted on, or to show that work is not planned.' +title: 关闭议题 +intro: 您可以在修复 Bug、对反馈执行操作或显示未计划工作时关闭议题。 permissions: 'Anyone can close an issue they opened.<br><br>Repository owners, collaborators on repositories owned by a personal account, and people with triage permissions or greater on repositories owned by an organization can close issues opened by others. {% data reusables.enterprise-accounts.emu-permission-repo %}' versions: fpt: '*' @@ -15,16 +15,16 @@ shortTitle: 关闭议题 {% note %} -**Note:** You can also close issues automatically with keywords in pull requests and commit messages. 更多信息请参阅“[将拉取请求链接到议题](/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword#linking-a-pull-request-to-an-issue-using-a-keyword)”。 +**注意:** 您还可以使用拉取请求中的关键字自动关闭议题并提交消息。 更多信息请参阅“[将拉取请求链接到议题](/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword#linking-a-pull-request-to-an-issue-using-a-keyword)”。 {% endnote %} {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-issues %} -1. In the list of issues, click the issue you'd like to close. +1. 在议题列表中,单击您想要关闭的议题。 {%- ifversion issue-close-reasons %} -1. Optionally, to change the reason for closing the issue, select {% octicon "triangle-down" aria-label="The down triangle octicon" %} next to "Close issue" and click a reason. ![Screenshot showing dropdown menu containing issue close reasons](/assets/images/help/issues/close-issue-select-reason.png) -2. Click **Close issue**. ![Screenshot showing "close issue" button](/assets/images/help/issues/close-issue-with-reason.png) +1. (可选)要更改关闭议题的原因,请选择“Close issue(关闭议题)”旁边的 {% octicon "triangle-down" aria-label="The down triangle octicon" %} ,然后单击原因。 ![显示包含议题关闭原因的下拉菜单的屏幕截图](/assets/images/help/issues/close-issue-select-reason.png) +2. 单击 **Close issue(关闭议题)**。 ![显示 "关闭议题" 按钮的屏幕截图](/assets/images/help/issues/close-issue-with-reason.png) {%- else %} -1. At the bottom of the page, click **Close issue**. ![Screenshot showing "close issue" button](/assets/images/help/issues/close-issue.png) +1. 在页面底部,单击 **Close issue(关闭议题)**。 ![显示 "关闭议题" 按钮的屏幕截图](/assets/images/help/issues/close-issue.png) {% endif %} diff --git a/translations/zh-CN/content/issues/trying-out-the-new-projects-experience/managing-projects.md b/translations/zh-CN/content/issues/trying-out-the-new-projects-experience/managing-projects.md index 131afe51b7..ec9a425f54 100644 --- a/translations/zh-CN/content/issues/trying-out-the-new-projects-experience/managing-projects.md +++ b/translations/zh-CN/content/issues/trying-out-the-new-projects-experience/managing-projects.md @@ -1,6 +1,6 @@ --- -title: Managing projects (beta) -intro: 'You can close and re-open projects, or you can permanently delete projects.' +title: 管理项目(测试版) +intro: 您可以关闭并重新打开项目,也可以永久删除项目。 allowTitleToDifferFromFilename: true miniTocMaxHeadingLevel: 2 versions: @@ -11,33 +11,33 @@ topics: - Organizations --- -## Deleting a project +## 删除项目 -You can delete a project to permanently remove it. +您可以删除项目以将其永久删除。 {% data reusables.projects.project-settings %} -1. At the bottom of the page, click **Delete this project**. ![Screenshot showing project delete button](/assets/images/help/issues/delete-project-button.png) -1. Read the warnings, then type the name of your project into the text box. ![Screenshot showing project delete confirmation](/assets/images/help/issues/project-delete-confirm.png) -1. Click **I understand the consequences, delete this project**. +1. 在页面底部,单击 **Delete this project(删除此项目)**。 ![显示项目删除按钮的屏幕截图](/assets/images/help/issues/delete-project-button.png) +1. 阅读警告,然后在文本框中键入项目名称。 ![显示项目删除确认的屏幕截图](/assets/images/help/issues/project-delete-confirm.png) +1. 单击 **I understand the consequences, delete this project(我理解后果,删除此项目)**。 -## Closing a project +## 关闭项目 -You can close a project to remove it from the list of projects but retain the contents and ability to re-open the project later. +您可以关闭项目以将其从项目列表中删除,但保留内容和以后重新打开项目的功能。 {% data reusables.projects.project-settings %} -1. At the bottom of the page, click **Close this project**. ![Screenshot showing project close button](/assets/images/help/issues/close-project-button.png) +1. 在页面底部,单击 **Close this project(关闭此项目)**。 ![显示项目关闭按钮的屏幕截图](/assets/images/help/issues/close-project-button.png) -## Re-opening an organization project +## 重新打开组织项目 -You can reopen a previously closed project. +您可以重新打开以前关闭的项目。 {% data reusables.profile.access_org %} {% data reusables.user-settings.access_org %} {% data reusables.projects.reopen-a-project %} -## Re-opening a user project +## 重新打开用户项目 -You can reopen a previously closed project. +您可以重新打开以前关闭的项目。 {% data reusables.profile.access_profile %} {% data reusables.projects.reopen-a-project %} diff --git a/translations/zh-CN/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization.md b/translations/zh-CN/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization.md index c22493a223..baf35fadbf 100644 --- a/translations/zh-CN/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization.md +++ b/translations/zh-CN/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization.md @@ -622,10 +622,10 @@ For more information, see "[Managing the publication of {% data variables.produc | `advanced_security_disabled` | Triggered when a repository administrator disables {% data variables.product.prodname_GH_advanced_security %} features for 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)." | `advanced_security_enabled` | Triggered when a repository administrator enables {% data variables.product.prodname_GH_advanced_security %} features for 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).". | `archived` | Triggered when a repository admin [archives a repository](/articles/about-archiving-repositories).{% ifversion ghes %} -| `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 %} +| `config.disable_anonymous_git_access` | Triggered when [anonymous Git read access is disabled](/enterprise/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/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/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/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).{% ifversion fpt or ghes or ghec %} | `create_actions_secret` |Triggered when a {% data variables.product.prodname_actions %} secret is created for a repository. For more information, see "[Creating encrypted secrets for a repository](/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository)."{% endif %} | `destroy` | Triggered when [a repository is deleted](/articles/deleting-a-repository).{% ifversion fpt or ghec %} diff --git a/translations/zh-CN/content/pages/getting-started-with-github-pages/about-github-pages.md b/translations/zh-CN/content/pages/getting-started-with-github-pages/about-github-pages.md index 5d0a1ff8c7..6e8072ac21 100644 --- a/translations/zh-CN/content/pages/getting-started-with-github-pages/about-github-pages.md +++ b/translations/zh-CN/content/pages/getting-started-with-github-pages/about-github-pages.md @@ -66,7 +66,7 @@ Organization | `http(s)://pages.<hostname>/<organization>` | `http(s)://<hostnam Project site owned by personal account | `http(s)://pages.<hostname>/<username>/<repository>/` | `http(s)://<hostname>/pages/<username>/<repository>/` Project site owned by organization account | `http(s)://pages.<hostname>/<orgname>/<repository>/` | `http(s)://<hostname>/pages/<orgname>/<repository>/` -For more information, see "[Enabling subdomain isolation](/enterprise/{{ currentVersion }}/admin/installation/enabling-subdomain-isolation)" or contact your site administrator. +For more information, see "[Enabling subdomain isolation](/enterprise/admin/installation/enabling-subdomain-isolation)" or contact your site administrator. {% endif %} ## Publishing sources for {% data variables.product.prodname_pages %} sites diff --git a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/working-with-pre-receive-hooks.md b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/working-with-pre-receive-hooks.md index 453457b3f8..45afa0d699 100644 --- a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/working-with-pre-receive-hooks.md +++ b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/working-with-pre-receive-hooks.md @@ -31,4 +31,4 @@ error: failed to push some refs to 'https://54.204.174.51/hodor/nope.git' ![失败预接收挂钩的错误消息](/assets/images/help/pull_requests/pre-receive-hook-failed-error.png) -您的 {% data variables.product.product_name %} 站点管理员可以创建和删除组织或仓库的预接收挂钩,并可允许组织或仓库管理员启用或禁用预接收挂钩。 更多信息请参阅“[使用预接收挂钩来强制实施策略](/enterprise/{{ currentVersion }}/admin/guides/developer-workflow/using-pre-receive-hooks-to-enforce-policy)”。 +您的 {% data variables.product.product_name %} 站点管理员可以创建和删除组织或仓库的预接收挂钩,并可允许组织或仓库管理员启用或禁用预接收挂钩。 更多信息请参阅“[使用预接收挂钩来强制实施策略](/enterprise/admin/guides/developer-workflow/using-pre-receive-hooks-to-enforce-policy)”。 diff --git a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository.md b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository.md index 69f4fb26f5..671ad880cd 100644 --- a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository.md +++ b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository.md @@ -17,13 +17,30 @@ shortTitle: 创建和删除分支 --- ## 创建分支 +您可以在 {% data variables.product.product_name %} 上以不同的方式创建分支。 +{% note %} + +**注意:** 您只能在您具有推送访问权限的存储库中创建分支。 + +{% endnote %} + +### 通过分支概述创建分支 {% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.navigate-to-branches %} +1. 单击 **New Branch(新分支)**。 ![突出显示了新分支按钮的分支概述页面的屏幕截图](/assets/images/help/branches/new-branch-button.png) +2. 在对话框中,输入分支名称,并根据需要更改分支源。 +3. 单击 **Create Branch(创建分支)**。 ![突出显示了创建分支按钮的分支创建模式的屏幕截图](/assets/images/help/branches/branch-creation-popup.png) -1. (可选)如果要从仓库的默认分支以外的分支创建新分支,请单击 {% octicon "git-branch" aria-label="The branch icon" %} **<em>NUMBER</em> 分支**,然后选择另一个分支: ![概述页面上的分支链接](/assets/images/help/branches/branches-link.png) +### 使用分支下拉列表创建分支 +{% data reusables.repositories.navigate-to-repo %} +1. (可选)如果要从仓库的默认分支以外的分支创建新分支,请单击 {% octicon "git-branch" aria-label="The branch icon" %}**Branches(分支)**,然后选择另一个分支。 ![概述页面上的分支链接](/assets/images/help/branches/branches-overview-link.png) 1. 单击分支选择器菜单。 ![分支选择器菜单](/assets/images/help/branch/branch-selection-dropdown.png) 1. 为新分支键入唯一名称,然后选择 **Create branch(创建分支)**。 ![分支创建文本框](/assets/images/help/branch/branch-creation-text-box.png) - +{% ifversion fpt or ghec or ghes > 3.4 %} +### 为议题创建分支 +您可以创建一个分支,直接从议题页面处理议题,然后立即开始。 更多信息请参阅“[创建分支以处理议题](/issues/tracking-your-work-with-issues/creating-a-branch-for-an-issue)”。 +{% endif %} ## 删除分支 {% data reusables.pull_requests.automatically-delete-branches %} @@ -44,7 +61,7 @@ shortTitle: 创建和删除分支 ![确认删除分支](/assets/images/help/branches/confirm-deleting-branch.png){% endif %} {% data reusables.pull_requests.retargeted-on-branch-deletion %} -更多信息请参阅“[关于分支](/github/collaborating-with-issues-and-pull-requests/about-branches#working-with-branches)”。 +更多信息请参阅“[关于分支](/github/collaborating-with-issues-and-pull-requests/about-branches#working-with-branches)。” ## 延伸阅读 diff --git a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md index 103d626525..9519a99b9e 100644 --- a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md +++ b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md @@ -39,7 +39,8 @@ shortTitle: 筛选文件 {% data reusables.repositories.sidebar-pr %} 1. 在拉取请求列表中,单击要过滤的拉取请求。 {% data reusables.repositories.changed-files %} -1. 如果文件树处于隐藏状态,请单击 **Show file tree(显示文件树)**以显示文件树。 + +1. 单击文件树中的文件可查看相应的文件差异 If the file tree is hidden, click {% octicon "sidebar-collapse" aria-label="The sidebar collapse icon" %} to display the file tree. {% note %} @@ -47,7 +48,7 @@ shortTitle: 筛选文件 {% endnote %} -1. 单击文件树中的文件可查看相应的文件差异 ![拉取请求文件树](/assets/images/help/pull_requests/pr-file-tree.png) + ![Screenshot of filter changed files search box and file tree emphasized](/assets/images/help/repository/file-tree.png) 1. 要按文件路径进行筛选,请在 **Filter changed files(筛选已更改的文件)**搜索框中输入部分或全部文件路径。 或者,使用文件筛选器下拉列表。 更多信息请参阅“[使用文件筛选器下拉列表](#using-the-file-filter-dropdown)”。 {% endif %} diff --git a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md index 333149afce..1a2e6e7e87 100644 --- a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md +++ b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md @@ -36,9 +36,14 @@ shortTitle: 查看依赖项更改 依赖关系审核允许您“左移”。 您可以使用所提供的预测信息在易受攻击的依赖项进入生产之前捕获它们。 更多信息请参阅“[关于依赖项审查](/code-security/supply-chain-security/about-dependency-review)”。 {% ifversion fpt or ghec or ghes > 3.5 or ghae-issue-6396 %} -可以使用依赖项审查 GitHub 操作来帮助对存储库中的拉取请求强制实施依赖项审查。 更多信息请参阅“[依赖项审查实施](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement)”。 + +You can use the {% data variables.product.prodname_dependency_review_action %} to help enforce dependency reviews on pull requests in your repository. {% data reusables.dependency-review.dependency-review-action-overview %} + +{% ifversion dependency-review-action-configuration %} +You can configure the {% data variables.product.prodname_dependency_review_action %} to better suit your needs by specifying the type of dependency vulnerability you wish to catch. For more information, see "[Configuring dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review#configuring-the-dependency-review-github-action)." {% endif %} +{% endif %} ## 审查拉取请求中的依赖项 {% data reusables.repositories.sidebar-pr %} diff --git a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md index 3c2acc9ea4..aae6e4a761 100644 --- a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md +++ b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md @@ -75,15 +75,9 @@ $ gh repo sync owner/cli-fork > 2 files changed, 7 insertions(+), 9 deletions(-) > delete mode 100644 README > create mode 100644 README.md - ``` If your local branch didn't have any unique commits, Git will instead perform a "fast-forward": - ```shell - $ git merge upstream/main - > Updating 34e91da..16c56ad - > Fast-forward - > README.md | 5 +++-- - > 1 file changed, 3 insertions(+), 2 deletions(-) ``` + {% tip %} **提示**:同步复刻仅更新仓库的本地副本。 要在 {% data variables.product.product_location %} 上更新复刻,您必须[推送更改](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/)。 diff --git a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/working-with-forks/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility.md b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/working-with-forks/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility.md index 63babbcf1f..c015e498a3 100644 --- a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/working-with-forks/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility.md +++ b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/working-with-forks/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility.md @@ -44,7 +44,7 @@ shortTitle: 删除或更改可见性 换句话说,即使将父仓库设为私有后,公共仓库的复刻也将在其各自的仓库网络中保持公开。 这样复刻所有者便可继续工作和协作,而不会中断。 如果公共复刻没有通过这种方式移动到单独的网络中,则这些复刻的所有者将需要获得适当的[访问权限](/articles/access-permissions-on-github)以从(现在私有的)父仓库中拉取更改并提交拉取请求 — 即使它们以前不需要这些权限。 {% ifversion ghes or ghae %} -如果公共仓库启用了匿名 Git 读取权限并且该仓库设为私有,则所有仓库的复刻都将失去匿名 Git 读取权限并恢复为默认的禁用设置。 如果将复刻的仓库设为公共,则仓库管理员可以重新启用 Git 读取权限。 更多信息请参阅“[为仓库启用匿名 Git 读取权限](/enterprise/{{ currentVersion }}/user/articles/enabling-anonymous-git-read-access-for-a-repository)。” +如果公共仓库启用了匿名 Git 读取权限并且该仓库设为私有,则所有仓库的复刻都将失去匿名 Git 读取权限并恢复为默认的禁用设置。 如果将复刻的仓库设为公共,则仓库管理员可以重新启用 Git 读取权限。 更多信息请参阅“[为仓库启用匿名 Git 读取权限](/enterprise/user/articles/enabling-anonymous-git-read-access-for-a-repository)。” {% endif %} ### 删除私有仓库 diff --git a/translations/zh-CN/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md b/translations/zh-CN/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md index 759332e33c..fb5b43c833 100644 --- a/translations/zh-CN/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md +++ b/translations/zh-CN/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md @@ -40,5 +40,27 @@ versions: ![强调提交标记的提交屏幕截图](/assets/images/help/commits/commit-tag-label.png) +{% ifversion commit-tree-view %} + +## 使用文件树 + +You can use the file tree to navigate between files in a commit. + +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.navigate-to-commit-page %} +1. 通过单击提交消息链接导航到提交。 ![强调提交消息链接的提交屏幕截图](/assets/images/help/commits/commit-message-link.png) +1. 单击文件树中的文件可查看相应的文件差异 If the file tree is hidden, click {% octicon "sidebar-collapse" aria-label="The sidebar collapse icon" %} to display the file tree. + + {% note %} + + **Note**: The file tree will not display if your screen width is too narrow or if the commit only includes one file. + + {% endnote %} + + ![Screenshot of filter changed files search box and file tree emphasized](/assets/images/help/repository/file-tree.png) +1. 要按文件路径进行筛选,请在 **Filter changed files(筛选已更改的文件)**搜索框中输入部分或全部文件路径。 + +{% endif %} + ## 延伸阅读 - {% data variables.product.prodname_desktop %} 上的“[提交和审查对项目的更改](/desktop/contributing-to-projects/committing-and-reviewing-changes-to-your-project#about-commits)” diff --git a/translations/zh-CN/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches.md b/translations/zh-CN/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches.md index 19b0fa30d5..0871d6dc69 100644 --- a/translations/zh-CN/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches.md +++ b/translations/zh-CN/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches.md @@ -186,7 +186,7 @@ remote: error: Changes have been requested. 启用强制推送不会覆盖任何其他分支保护规则。 例如,如果分支需要线性提交历史记录,则无法强制推送合并提交到该分支。 -{% ifversion ghes or ghae %}如果站点管理员阻止了强制推送到仓库中的所有分支,则无法对受保护分支启用强制推送。 更多信息请参阅“[阻止强制推送到个人帐户或组织拥有的仓库](/enterprise/{{ currentVersion }}/admin/developer-workflow/blocking-force-pushes-to-repositories-owned-by-a-user-account-or-organization)”。 +{% ifversion ghes or ghae %}如果站点管理员阻止了强制推送到仓库中的所有分支,则无法对受保护分支启用强制推送。 更多信息请参阅“[阻止强制推送到个人帐户或组织拥有的仓库](/enterprise/admin/developer-workflow/blocking-force-pushes-to-repositories-owned-by-a-user-account-or-organization)”。 如果站点管理员只阻止强制推送到默认分支,您仍然可以为任何其他受保护分支启用强制推送。{% endif %} diff --git a/translations/zh-CN/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility.md b/translations/zh-CN/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility.md index 79064401a0..eae10cafab 100644 --- a/translations/zh-CN/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility.md +++ b/translations/zh-CN/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility.md @@ -61,7 +61,7 @@ shortTitle: 仓库可见性 {%- endif %} {%- ifversion ghes %} -* 匿名 Git 读取权限不再可用。 更多信息请参阅“[为仓库启用匿名 Git 读取权限](/enterprise/{{ currentVersion }}/user/articles/enabling-anonymous-git-read-access-for-a-repository)。” +* 匿名 Git 读取权限不再可用。 更多信息请参阅“[为仓库启用匿名 Git 读取权限](/enterprise/user/articles/enabling-anonymous-git-read-access-for-a-repository)。” {%- endif %} {% ifversion ghes or ghec or ghae %} diff --git a/translations/zh-CN/content/repositories/working-with-files/managing-large-files/about-large-files-on-github.md b/translations/zh-CN/content/repositories/working-with-files/managing-large-files/about-large-files-on-github.md index 5a2061dda6..701c20ac45 100644 --- a/translations/zh-CN/content/repositories/working-with-files/managing-large-files/about-large-files-on-github.md +++ b/translations/zh-CN/content/repositories/working-with-files/managing-large-files/about-large-files-on-github.md @@ -40,7 +40,7 @@ shortTitle: 大文件 {% endnote %} -{% ifversion ghes %}默认情况下, {% endif %}{% data variables.product.product_name %} 阻止超过 {% data variables.large_files.max_github_size %} 的推送。 {% ifversion ghes %}但站点管理员可为您的 {% data variables.product.product_location %} 配置不同的限制。 更多信息请参阅“[设置 Git 推送限制](/enterprise/{{ currentVersion }}/admin/guides/installation/setting-git-push-limits)”。{% endif %} +{% ifversion ghes %}默认情况下, {% endif %}{% data variables.product.product_name %} 阻止超过 {% data variables.large_files.max_github_size %} 的推送。 {% ifversion ghes %}但站点管理员可为您的 {% data variables.product.product_location %} 配置不同的限制。 更多信息请参阅“[设置 Git 推送限制](/enterprise/admin/guides/installation/setting-git-push-limits)”。{% endif %} 要跟踪超出此限制的文件,必须使用 {% data variables.large_files.product_name_long %} ({% data variables.large_files.product_name_short %})。 更多信息请参阅“[关于 {% data variables.large_files.product_name_long %}](/repositories/working-with-files/managing-large-files/about-git-large-file-storage)”。 diff --git a/translations/zh-CN/content/repositories/working-with-files/managing-large-files/configuring-git-large-file-storage.md b/translations/zh-CN/content/repositories/working-with-files/managing-large-files/configuring-git-large-file-storage.md index 967b2fcdd8..1ea5fb6f8e 100644 --- a/translations/zh-CN/content/repositories/working-with-files/managing-large-files/configuring-git-large-file-storage.md +++ b/translations/zh-CN/content/repositories/working-with-files/managing-large-files/configuring-git-large-file-storage.md @@ -22,7 +22,7 @@ shortTitle: 配置 Git LFS {% tip %} -**注:**尝试向 {% data variables.product.product_name %} 推送大文件之前,请确保在您的企业上启用了 {% data variables.large_files.product_name_short %}。 更多信息请参阅“[在 GitHub Enterprise Server 上配置 Git Large File Storage](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-git-large-file-storage-on-github-enterprise-server/)”。 +**注:**尝试向 {% data variables.product.product_name %} 推送大文件之前,请确保在您的企业上启用了 {% data variables.large_files.product_name_short %}。 更多信息请参阅“[在 GitHub Enterprise Server 上配置 Git Large File Storage](/enterprise/admin/guides/installation/configuring-git-large-file-storage-on-github-enterprise-server/)”。 {% endtip %} diff --git a/translations/zh-CN/content/rest/overview/endpoints-available-for-github-apps.md b/translations/zh-CN/content/rest/overview/endpoints-available-for-github-apps.md index ad2699635b..fdab310194 100644 --- a/translations/zh-CN/content/rest/overview/endpoints-available-for-github-apps.md +++ b/translations/zh-CN/content/rest/overview/endpoints-available-for-github-apps.md @@ -1,6 +1,7 @@ --- title: 可用于 GitHub 应用程序的端点 intro: 您的应用程序可以向以下 REST 端点发出请求。 +permissions: 'You must use an installation access token to access endpoints using your {% data variables.product.prodname_github_app %}. For more information, see "[Authenticating with {% data variables.product.prodname_github_apps %}](/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation)."' redirect_from: - /v3/apps/available-endpoints - /rest/reference/endpoints-available-for-github-apps diff --git a/translations/zh-CN/content/rest/overview/libraries.md b/translations/zh-CN/content/rest/overview/libraries.md index 96e2ed2dd2..ef57780c7d 100644 --- a/translations/zh-CN/content/rest/overview/libraries.md +++ b/translations/zh-CN/content/rest/overview/libraries.md @@ -24,12 +24,6 @@ topics: </div> </div> -{% warning %} - -警告:截至 2021 年 10 月下旬,官方 Octokit 库目前尚未维护。 更多信息请参阅 [octokit.js 存储库中的此讨论](https://github.com/octokit/octokit.js/discussions/620)。 - -{% endwarning %} - # 第三方库 ### Clojure diff --git a/translations/zh-CN/content/rest/overview/permissions-required-for-github-apps.md b/translations/zh-CN/content/rest/overview/permissions-required-for-github-apps.md index cc2a8f77ca..e10818aa71 100644 --- a/translations/zh-CN/content/rest/overview/permissions-required-for-github-apps.md +++ b/translations/zh-CN/content/rest/overview/permissions-required-for-github-apps.md @@ -185,7 +185,7 @@ _搜索_ - [`PUT /repos/:owner/:repo/topics`](/rest/reference/repos#replace-all-repository-topics) (:write) - [`POST /repos/:owner/:repo/transfer`](/rest/reference/repos#transfer-a-repository) (:write) {% ifversion fpt or ghec -%} -- [`GET /repos/:owner/:repo/vulnerability-alerts`](/rest/reference/repos#enable-vulnerability-alerts) (:write) +- [`GET /repos/:owner/:repo/vulnerability-alerts`](/rest/reference/repos#enable-vulnerability-alerts) (:read) {% endif -%} {% ifversion fpt or ghec -%} - [`PUT /repos/:owner/:repo/vulnerability-alerts`](/rest/reference/repos#enable-vulnerability-alerts) (:write) diff --git a/translations/zh-CN/content/site-policy/privacy-policies/github-privacy-statement.md b/translations/zh-CN/content/site-policy/privacy-policies/github-privacy-statement.md index 5c75ed6753..08f3b3a0d5 100644 --- a/translations/zh-CN/content/site-policy/privacy-policies/github-privacy-statement.md +++ b/translations/zh-CN/content/site-policy/privacy-policies/github-privacy-statement.md @@ -177,7 +177,7 @@ GitHub 可能会向执法部门或其他政府机构披露我们收集的有关 如果 GitHub 处理除您的个人资料信息以外的个人数据,例如 GitHub 从[第三方](/github/site-policy/github-privacy-statement#information-we-collect-from-third-parties)收到的有关您的信息,则根据适用法律,您可以联系 [GitHub 支持](https://support.github.com/contact) 或 [GitHub 高级支持](https://enterprise.githubsupport.com/hc/en-us)访问、更新、更改、删除、反对或限制处理您的个人数据。 -You can adjust the settings on your Account regarding the display of your Personal Data in private or public repositories or Personal Data processed in connection with Community Features (such as GitHub Feed, GitHub Sponsors, and GitHub Explore) through [profile settings](https://github.com/settings/profile). +您可以通过[个人资料设置](https://github.com/settings/profile)来调整帐户上的设置,包括将您的个人数据显示在私人或公共存储库中,或与社区功能(例如 GitHub Feed、GitHub Sponsors 和 GitHub Explore)相关的个人数据。 此外,如果您无法通过上述方式访问我们拥有的某些个人数据,您可以按照本隐私声明底部所述与我们联系以请求访问。 diff --git a/translations/zh-CN/content/support/contacting-github-support/providing-data-to-github-support.md b/translations/zh-CN/content/support/contacting-github-support/providing-data-to-github-support.md index 64f92527a9..37787e65bb 100644 --- a/translations/zh-CN/content/support/contacting-github-support/providing-data-to-github-support.md +++ b/translations/zh-CN/content/support/contacting-github-support/providing-data-to-github-support.md @@ -68,7 +68,7 @@ topics: 您无需登录 {% data variables.enterprise.management_console %} 即可使用此方法。 -使用 [ghe-diagnostics](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities#ghe-diagnostics) 命令行实用程序检索实例的诊断。 +使用 [ghe-diagnostics](/enterprise/admin/guides/installation/command-line-utilities#ghe-diagnostics) 命令行实用程序检索实例的诊断。 ```shell $ ssh -p122 admin@<em>hostname</em> -- 'ghe-diagnostics' > diagnostics.txt diff --git a/translations/zh-CN/data/features/commit-tree-view.yml b/translations/zh-CN/data/features/commit-tree-view.yml new file mode 100644 index 0000000000..dcbaf701ba --- /dev/null +++ b/translations/zh-CN/data/features/commit-tree-view.yml @@ -0,0 +1,8 @@ +--- +#Issue 6662 +#Commit file tree view +versions: + fpt: '*' + ghec: '*' + ghes: '>=3.6' + ghae: 'issue-6662' diff --git a/translations/zh-CN/data/features/dependabot-bulk-alerts.yml b/translations/zh-CN/data/features/dependabot-bulk-alerts.yml new file mode 100644 index 0000000000..1a1108e133 --- /dev/null +++ b/translations/zh-CN/data/features/dependabot-bulk-alerts.yml @@ -0,0 +1,7 @@ +--- +#Reference: Issue #6076 ability to dismiss or re-open multiple Dependabot alerts +versions: + fpt: '*' + ghec: '*' + ghes: '>3.5' + ghae: 'issue-6628' diff --git a/translations/zh-CN/data/features/dependency-review-action-configuration.yml b/translations/zh-CN/data/features/dependency-review-action-configuration.yml new file mode 100644 index 0000000000..1ab87445b9 --- /dev/null +++ b/translations/zh-CN/data/features/dependency-review-action-configuration.yml @@ -0,0 +1,7 @@ +--- +#Reference: Issue #7061 Configuring the dependency review action - [Public Beta] +versions: + fpt: '*' + ghec: '*' + ghes: '>3.5' + ghae: 'issue-7061' diff --git a/translations/zh-CN/data/features/ghas-enablement-webhook.yml b/translations/zh-CN/data/features/ghas-enablement-webhook.yml new file mode 100644 index 0000000000..919039ef0d --- /dev/null +++ b/translations/zh-CN/data/features/ghas-enablement-webhook.yml @@ -0,0 +1,7 @@ +--- +#docs-content 7314. GHAS enablement webhook +versions: + fpt: '*' + ghec: '*' + ghes: '>3.6' + ghae: 'issue-7314' diff --git a/translations/zh-CN/data/graphql/ghec/graphql_upcoming_changes.public.yml b/translations/zh-CN/data/graphql/ghec/graphql_upcoming_changes.public.yml index 7d0b966a84..a0b9d7465a 100644 --- a/translations/zh-CN/data/graphql/ghec/graphql_upcoming_changes.public.yml +++ b/translations/zh-CN/data/graphql/ghec/graphql_upcoming_changes.public.yml @@ -98,6 +98,13 @@ upcoming_changes: date: '2022-07-01T00:00:00+00:00' criticality: 重大 owner: cheshire137 + - + location: DependencyGraphDependency.packageLabel + description: '`packageLabel` will be removed. Use normalized `packageName` field instead.' + reason: '`packageLabel` will be removed.' + date: '2022-10-01T00:00:00+00:00' + criticality: 重大 + owner: github/dependency_graph - location: RemovePullRequestFromMergeQueueInput.branch description: '`branch` 将被删除。' diff --git a/translations/zh-CN/data/graphql/graphql_upcoming_changes.public.yml b/translations/zh-CN/data/graphql/graphql_upcoming_changes.public.yml index 7d0b966a84..a0b9d7465a 100644 --- a/translations/zh-CN/data/graphql/graphql_upcoming_changes.public.yml +++ b/translations/zh-CN/data/graphql/graphql_upcoming_changes.public.yml @@ -98,6 +98,13 @@ upcoming_changes: date: '2022-07-01T00:00:00+00:00' criticality: 重大 owner: cheshire137 + - + location: DependencyGraphDependency.packageLabel + description: '`packageLabel` will be removed. Use normalized `packageName` field instead.' + reason: '`packageLabel` will be removed.' + date: '2022-10-01T00:00:00+00:00' + criticality: 重大 + owner: github/dependency_graph - location: RemovePullRequestFromMergeQueueInput.branch description: '`branch` 将被删除。' diff --git a/translations/zh-CN/data/release-notes/enterprise-server/3-1/0.yml b/translations/zh-CN/data/release-notes/enterprise-server/3-1/0.yml index ccd0725cf4..3b24968dd8 100644 --- a/translations/zh-CN/data/release-notes/enterprise-server/3-1/0.yml +++ b/translations/zh-CN/data/release-notes/enterprise-server/3-1/0.yml @@ -163,6 +163,11 @@ sections: - heading: Deprecation of XenServer Hypervisor support notes: - Beginning in {% data variables.product.prodname_ghe_server %} 3.1, we will begin discontinuing support for Xen Hypervisor. The complete deprecation is scheduled for {% data variables.product.prodname_ghe_server %} 3.3, following the standard one year deprecation window. + - heading: Change to the format of authentication tokens affects GitHub Connect + notes: + # https://github.com/github/releases/issues/1235 + - | + GitHub Connect will no longer work after June 3rd for instances running GitHub Enterprise Server 3.1 or older, due to the format of GitHub authentication tokens changing. To continue using GitHub Connect, upgrade to GitHub Enterprise Server 3.2 or later. For more information, see the [GitHub Blog](https://github.blog/2022-05-20-action-needed-by-github-connect-customers-using-ghes-3-1-and-older-to-adopt-new-authentication-token-format-updates/). [Updated: 2022-06-14] backups: - '{% data variables.product.prodname_ghe_server %} 3.1 requires at least [GitHub Enterprise Backup Utilities 3.1.0](https://github.com/github/backup-utils) for [Backups and Disaster Recovery](/enterprise-server@3.1/admin/configuration/configuring-backups-on-your-appliance).' diff --git a/translations/zh-CN/data/release-notes/enterprise-server/3-1/22.yml b/translations/zh-CN/data/release-notes/enterprise-server/3-1/22.yml new file mode 100644 index 0000000000..d37c2da9e6 --- /dev/null +++ b/translations/zh-CN/data/release-notes/enterprise-server/3-1/22.yml @@ -0,0 +1,20 @@ +date: '2022-06-09' +sections: + security_fixes: + - Packages have been updated to the latest security versions. + bugs: + - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). + - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured. + - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. + - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + changes: + - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. + known_issues: + - The {% data variables.product.prodname_registry %} npm registry no longer returns a time value in metadata responses. This was done to allow for substantial performance improvements. We continue to have all the data necessary to return a time value as part of the metadata response and will resume returning this value in the future once we have solved the existing performance issues. + - On a freshly set up {% data variables.product.prodname_ghe_server %} instance without any users, an attacker could create the first admin user. + - Custom firewall rules are removed during the upgrade process. + - Git LFS tracked files [uploaded through the web interface](https://github.com/blog/2105-upload-files-to-your-repositories) are incorrectly added directly to the repository. + - Issues cannot be closed if they contain a permalink to a blob in the same repository, where the blob's file path is longer than 255 characters. + - When "Users can search GitHub.com" is enabled with {% data variables.product.prodname_github_connect %}, issues in private and internal repositories are not included in {% data variables.product.prodname_dotcom_the_website %} search results. + - If {% data variables.product.prodname_actions %} is enabled for {% data variables.product.prodname_ghe_server %}, teardown of a replica node with `ghe-repl-teardown` will succeed, but may return `ERROR:Running migrations`. + - Resource limits that are specific to processing pre-receive hooks may cause some pre-receive hooks to fail. diff --git a/translations/zh-CN/data/release-notes/enterprise-server/3-2/0.yml b/translations/zh-CN/data/release-notes/enterprise-server/3-2/0.yml index dd9ef8063b..70d42db919 100644 --- a/translations/zh-CN/data/release-notes/enterprise-server/3-2/0.yml +++ b/translations/zh-CN/data/release-notes/enterprise-server/3-2/0.yml @@ -306,6 +306,11 @@ sections: Two legacy GitHub Apps-related webhook events have been removed: `integration_installation` and `integration_installation_repositories`. You should instead be listening to the `installation` and `installation_repositories` events. - | The following REST API endpoint has been removed: `POST /installations/{installation_id}/access_tokens`. You should instead be using the namespaced equivalent `POST /app/installations/{installation_id}/access_tokens`. + - heading: Change to the format of authentication tokens affects GitHub Connect + notes: + # https://github.com/github/releases/issues/1235 + - | + GitHub Connect will no longer work after June 3rd for instances running GitHub Enterprise Server 3.1 or older, due to the format of GitHub authentication tokens changing. To continue using GitHub Connect, upgrade to GitHub Enterprise Server 3.2 or later. For more information, see the [GitHub Blog](https://github.blog/2022-05-20-action-needed-by-github-connect-customers-using-ghes-3-1-and-older-to-adopt-new-authentication-token-format-updates/). [Updated: 2022-06-14] backups: - '{% data variables.product.prodname_ghe_server %} 3.2 requires at least [GitHub Enterprise Backup Utilities 3.2.0](https://github.com/github/backup-utils) for [Backups and Disaster Recovery](/enterprise-server@3.2/admin/configuration/configuring-backups-on-your-appliance).' diff --git a/translations/zh-CN/data/release-notes/enterprise-server/3-2/14.yml b/translations/zh-CN/data/release-notes/enterprise-server/3-2/14.yml new file mode 100644 index 0000000000..619062e3f8 --- /dev/null +++ b/translations/zh-CN/data/release-notes/enterprise-server/3-2/14.yml @@ -0,0 +1,23 @@ +--- +date: '2022-06-09' +sections: + security_fixes: + - 包已更新到最新的安全版本。 + bugs: + - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). + - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured. + - The `--gateway` argument was added to the `ghe-setup-network` command, to allow passing the gateway address when configuring network settings using the command line. + - Image attachments that were deleted would return a `500 Internal Server Error` instead of a `404 Not Found` error. + - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. + - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + changes: + - Optimised the inclusion of metrics when generating a cluster support bundle. + - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. + known_issues: + - 在新建的没有任何用户的 {% data variables.product.prodname_ghe_server %} 实例上,攻击者可以创建第一个管理员用户。 + - 自定义防火墙规则在升级过程中被删除。 + - Git LFS 跟踪的文件[通过 Web 界面上传](https://github.com/blog/2105-upload-files-to-your-repositories) 被错误地直接添加到仓库。 + - 如果议题包含文件路径长于 255 个字符的同一仓库中 blob 的永久链接,则议题无法关闭。 + - When "Users can search GitHub.com" is enabled with {% data variables.product.prodname_github_connect %}, issues in private and internal repositories are not included in {% data variables.product.prodname_dotcom_the_website %} search results. + - '{% data variables.product.prodname_registry %} npm 注册表不再返回元数据响应的时间值。这样做是为了大幅改善性能。作为元数据响应的一部分,我们继续拥有返回时间值所需的所有数据,并将在我们解决现有性能问题后恢复返回这个值。' + - 特定于处理预接收挂钩的资源限制可能会导致某些预接收挂钩失败。 diff --git a/translations/zh-CN/data/release-notes/enterprise-server/3-3/0.yml b/translations/zh-CN/data/release-notes/enterprise-server/3-3/0.yml index 1ca3d1f503..a0549ad8a1 100644 --- a/translations/zh-CN/data/release-notes/enterprise-server/3-3/0.yml +++ b/translations/zh-CN/data/release-notes/enterprise-server/3-3/0.yml @@ -295,5 +295,11 @@ sections: To start a repository maintenance task manually, browse to `https://<hostname>/stafftools/repositories/<owner>/<repository>/network` for each affected repository and click the **Schedule** button. + - heading: Change to the format of authentication tokens affects GitHub Connect + notes: + # https://github.com/github/releases/issues/1235 + - | + GitHub Connect will no longer work after June 3rd for instances running GitHub Enterprise Server 3.1 or older, due to the format of GitHub authentication tokens changing. To continue using GitHub Connect, upgrade to GitHub Enterprise Server 3.2 or later. For more information, see the [GitHub Blog](https://github.blog/2022-05-20-action-needed-by-github-connect-customers-using-ghes-3-1-and-older-to-adopt-new-authentication-token-format-updates/). [Updated: 2022-06-14] + backups: - '{% data variables.product.prodname_ghe_server %} 3.3 requires at least [GitHub Enterprise Backup Utilities 3.3.0](https://github.com/github/backup-utils) for [Backups and Disaster Recovery](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance).' diff --git a/translations/zh-CN/data/release-notes/enterprise-server/3-3/9.yml b/translations/zh-CN/data/release-notes/enterprise-server/3-3/9.yml new file mode 100644 index 0000000000..c24a5353ed --- /dev/null +++ b/translations/zh-CN/data/release-notes/enterprise-server/3-3/9.yml @@ -0,0 +1,26 @@ +--- +date: '2022-06-09' +sections: + security_fixes: + - 包已更新到最新的安全版本。 + bugs: + - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). + - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured + - The `--gateway` argument was added to the `ghe-setup-network` command, to allow passing the gateway address when configuring network settings using the command line. + - Image attachments that were deleted would return a `500 Internal Server Error` instead of a `404 Not Found` error. + - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. + - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + changes: + - Optimised the inclusion of metrics when generating a cluster support bundle. + - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. + - When using `ghe-migrator` or exporting from {% data variables.product.prodname_dotcom_the_website %}, migrations would fail to export pull request attachments. + known_issues: + - After upgrading to {% data variables.product.prodname_ghe_server %} 3.3, {% data variables.product.prodname_actions %} may fail to start automatically. To resolve this issue, connect to the appliance via SSH and run the `ghe-actions-start` command. + - 在新建的没有任何用户的 {% data variables.product.prodname_ghe_server %} 实例上,攻击者可以创建第一个管理员用户。 + - 自定义防火墙规则在升级过程中被删除。 + - Git LFS 跟踪的文件[通过 Web 界面上传](https://github.com/blog/2105-upload-files-to-your-repositories) 被错误地直接添加到仓库。 + - 如果议题包含文件路径长于 255 个字符的同一仓库中 blob 的永久链接,则议题无法关闭。 + - When "Users can search GitHub.com" is enabled with {% data variables.product.prodname_github_connect %}, issues in private and internal repositories are not included in {% data variables.product.prodname_dotcom_the_website %} search results. + - '{% data variables.product.prodname_registry %} npm 注册表不再返回元数据响应的时间值。这样做是为了大幅改善性能。作为元数据响应的一部分,我们继续拥有返回时间值所需的所有数据,并将在我们解决现有性能问题后恢复返回这个值。' + - 特定于处理预接收挂钩的资源限制可能会导致某些预接收挂钩失败。 + - '{% data variables.product.prodname_actions %} storage settings cannot be validated and saved in the {% data variables.enterprise.management_console %} when "Force Path Style" is selected, and must instead be configured with the `ghe-actions-precheck` command line utility.' diff --git a/translations/zh-CN/data/release-notes/enterprise-server/3-4/0.yml b/translations/zh-CN/data/release-notes/enterprise-server/3-4/0.yml index cde3bd02ac..efdc7a96a9 100644 --- a/translations/zh-CN/data/release-notes/enterprise-server/3-4/0.yml +++ b/translations/zh-CN/data/release-notes/enterprise-server/3-4/0.yml @@ -199,5 +199,10 @@ sections: Repositories which were not present and active before upgrading to {% data variables.product.prodname_ghe_server %} 3.3 may not perform optimally until a repository maintenance task is run and has successfully completed. To start a repository maintenance task manually, browse to `https://<hostname>/stafftools/repositories/<owner>/<repository>/network` for each affected repository and click the Schedule button. + - + heading: Change to the format of authentication tokens affects GitHub Connect + notes: + - | + GitHub Connect will no longer work after June 3rd for instances running GitHub Enterprise Server 3.1 or older, due to the format of GitHub authentication tokens changing. For more information, see the [GitHub changelog](https://github.blog/2022-05-20-action-needed-by-github-connect-customers-using-ghes-3-1-and-older-to-adopt-new-authentication-token-format-updates/). [Updated: 2022-06-14] backups: - '{% data variables.product.prodname_ghe_server %} 3.4 requires at least [GitHub Enterprise Backup Utilities 3.4.0](https://github.com/github/backup-utils) for [Backups and Disaster Recovery](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance).' diff --git a/translations/zh-CN/data/release-notes/enterprise-server/3-4/2.yml b/translations/zh-CN/data/release-notes/enterprise-server/3-4/2.yml index 0eef2fdc0c..a0600782b5 100644 --- a/translations/zh-CN/data/release-notes/enterprise-server/3-4/2.yml +++ b/translations/zh-CN/data/release-notes/enterprise-server/3-4/2.yml @@ -26,12 +26,6 @@ sections: - When "Users can search GitHub.com" is enabled with {% data variables.product.prodname_github_connect %}, issues in private and internal repositories are not included in {% data variables.product.prodname_dotcom_the_website %} search results. - '{% data variables.product.prodname_registry %} npm 注册表不再返回元数据响应的时间值。这样做是为了大幅改善性能。作为元数据响应的一部分,我们继续拥有返回时间值所需的所有数据,并将在我们解决现有性能问题后恢复返回这个值。' - 特定于处理预接收挂钩的资源限制可能会导致某些预接收挂钩失败。 - - | - When using SAML encrypted assertions with {% data variables.product.prodname_ghe_server %} 3.4.0 and 3.4.1, a new XML attribute `WantAssertionsEncrypted` in the `SPSSODescriptor` contains an invalid attribute for SAML metadata. IdPs that consume this SAML metadata endpoint may encounter errors when validating the SAML metadata XML schema. A fix will be available in the next patch release. [Updated: 2022-04-11] - - To work around this problem, you can take one of the two following actions. - - Reconfigure the IdP by uploading a static copy of the SAML metadata without the `WantAssertionsEncrypted` attribute. - - Copy the SAML metadata, remove `WantAssertionsEncrypted` attribute, host it on a web server, and reconfigure the IdP to point to that URL. deprecations: - heading: 弃用 GitHub Enterprise Server 3.0 diff --git a/translations/zh-CN/data/release-notes/enterprise-server/3-4/3.yml b/translations/zh-CN/data/release-notes/enterprise-server/3-4/3.yml index f6b3e08121..08eae00abe 100644 --- a/translations/zh-CN/data/release-notes/enterprise-server/3-4/3.yml +++ b/translations/zh-CN/data/release-notes/enterprise-server/3-4/3.yml @@ -34,9 +34,3 @@ sections: - When "Users can search GitHub.com" is enabled with {% data variables.product.prodname_github_connect %}, issues in private and internal repositories are not included in {% data variables.product.prodname_dotcom_the_website %} search results. - '{% data variables.product.prodname_registry %} npm 注册表不再返回元数据响应的时间值。这样做是为了大幅改善性能。作为元数据响应的一部分,我们继续拥有返回时间值所需的所有数据,并将在我们解决现有性能问题后恢复返回这个值。' - 特定于处理预接收挂钩的资源限制可能会导致某些预接收挂钩失败。 - - | - When using SAML encrypted assertions with {% data variables.product.prodname_ghe_server %} 3.4.0 and 3.4.1, a new XML attribute `WantAssertionsEncrypted` in the `SPSSODescriptor` contains an invalid attribute for SAML metadata. IdPs that consume this SAML metadata endpoint may encounter errors when validating the SAML metadata XML schema. A fix will be available in the next patch release. [Updated: 2022-04-11] - - To work around this problem, you can take one of the two following actions. - - Reconfigure the IdP by uploading a static copy of the SAML metadata without the `WantAssertionsEncrypted` attribute. - - Copy the SAML metadata, remove `WantAssertionsEncrypted` attribute, host it on a web server, and reconfigure the IdP to point to that URL. diff --git a/translations/zh-CN/data/release-notes/enterprise-server/3-4/4.yml b/translations/zh-CN/data/release-notes/enterprise-server/3-4/4.yml new file mode 100644 index 0000000000..dad1a77a0b --- /dev/null +++ b/translations/zh-CN/data/release-notes/enterprise-server/3-4/4.yml @@ -0,0 +1,34 @@ +--- +date: '2022-06-09' +sections: + security_fixes: + - 包已更新到最新的安全版本。 + bugs: + - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). + - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured. + - When {% data variables.product.prodname_actions %} was enabled but TLS was disabled on {% data variables.product.prodname_ghe_server %} 3.4.1 and later, applying a configuration update would fail. + - The `--gateway` argument was added to the `ghe-setup-network` command, to allow passing the gateway address when configuring network settings using the command line. + - 'The [{% data variables.product.prodname_GH_advanced_security %} billing API](/rest/enterprise-admin/billing#get-github-advanced-security-active-committers-for-an-enterprise) endpoints were not enabled and accessible.' + - Image attachments that were deleted would return a `500 Internal Server Error` instead of a `404 Not Found` error. + - In environments configured with a repository cache server, the `ghe-repl-status` command incorrectly showed gists as being under-replicated. + - The "Get a commit" and "Compare two commits" endpoints in the [Commit API](/rest/commits/commits) would return a `500` error if a file path in the diff contained an encoded and escaped unicode character. + - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. + - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + - The activity timeline for secret scanning alerts wasn't displayed. + changes: + - Optimised the inclusion of metrics when generating a cluster support bundle. + - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. + known_issues: + - 在新建的没有任何用户的 {% data variables.product.prodname_ghe_server %} 实例上,攻击者可以创建第一个管理员用户。 + - 自定义防火墙规则在升级过程中被删除。 + - Git LFS 跟踪的文件[通过 Web 界面上传](https://github.com/blog/2105-upload-files-to-your-repositories) 被错误地直接添加到仓库。 + - 如果议题包含文件路径长于 255 个字符的同一仓库中 blob 的永久链接,则议题无法关闭。 + - When "Users can search GitHub.com" is enabled with {% data variables.product.prodname_github_connect %}, issues in private and internal repositories are not included in {% data variables.product.prodname_dotcom_the_website %} search results. + - '{% data variables.product.prodname_registry %} npm 注册表不再返回元数据响应的时间值。这样做是为了大幅改善性能。作为元数据响应的一部分,我们继续拥有返回时间值所需的所有数据,并将在我们解决现有性能问题后恢复返回这个值。' + - 特定于处理预接收挂钩的资源限制可能会导致某些预接收挂钩失败。 + - | + When using SAML encrypted assertions with {% data variables.product.prodname_ghe_server %} 3.4.0 and 3.4.1, a new XML attribute `WantAssertionsEncrypted` in the `SPSSODescriptor` contains an invalid attribute for SAML metadata. IdPs that consume this SAML metadata endpoint may encounter errors when validating the SAML metadata XML schema. A fix will be available in the next patch release. [Updated: 2022-04-11] + + To work around this problem, you can take one of the two following actions. + - Reconfigure the IdP by uploading a static copy of the SAML metadata without the `WantAssertionsEncrypted` attribute. + - Copy the SAML metadata, remove `WantAssertionsEncrypted` attribute, host it on a web server, and reconfigure the IdP to point to that URL. diff --git a/translations/zh-CN/data/release-notes/enterprise-server/3-5/0.yml b/translations/zh-CN/data/release-notes/enterprise-server/3-5/0.yml index 4e69c251bc..ebfe56586b 100644 --- a/translations/zh-CN/data/release-notes/enterprise-server/3-5/0.yml +++ b/translations/zh-CN/data/release-notes/enterprise-server/3-5/0.yml @@ -319,10 +319,10 @@ sections: MinIO has announced the removal of the MinIO Gateways starting June 1st, 2022. While MinIO Gateway for NAS continues to be one of the supported storage providers for Github Actions and Github Packages, we recommend moving to MinIO LTS support to avail support and bug fixes from MinIO. For more information about rate limits, see "[Scheduled removal of MinIO Gateway for GCS, Azure, HDFS in the minio/minio repository](https://github.com/minio/minio/issues/14331)." deprecations: - - heading: Change to the format of authentication tokens + heading: Change to the format of authentication tokens affects GitHub Connect notes: - | - GitHub Connect will no longer work after June 3rd for instances running GitHub Enterprise Server 3.1 or older, due to the format of GitHub authentication tokens changing. For more information, see the [GitHub changelog](https://github.blog/changelog/2021-03-31-authentication-token-format-updates-are-generally-available/). + GitHub Connect will no longer work after June 3rd for instances running GitHub Enterprise Server 3.1 or older, due to the format of GitHub authentication tokens changing. To continue using GitHub Connect, upgrade to GitHub Enterprise Server 3.2 or later. For more information, see the [GitHub Blog](https://github.blog/2022-05-20-action-needed-by-github-connect-customers-using-ghes-3-1-and-older-to-adopt-new-authentication-token-format-updates/). [Updated: 2022-06-14] - heading: CodeQL runner deprecated in favor of CodeQL CLI notes: @@ -343,3 +343,4 @@ sections: - 特定于处理预接收挂钩的资源限制可能会导致某些预接收挂钩失败。 - Actions services need to be restarted after restoring an appliance from a backup taken on a different host. - 'Deleted repositories will not be purged from disk automatically after the 90-day retention period ends. [Updated: 2022-06-08]' + - 'The Management Console cannot be accessed on an under-provisioned instance. [Updated: 2022-06-14]' diff --git a/translations/zh-CN/data/release-notes/enterprise-server/3-5/1.yml b/translations/zh-CN/data/release-notes/enterprise-server/3-5/1.yml new file mode 100644 index 0000000000..6fb835a6b7 --- /dev/null +++ b/translations/zh-CN/data/release-notes/enterprise-server/3-5/1.yml @@ -0,0 +1,32 @@ +--- +date: '2022-06-09' +sections: + security_fixes: + - 包已更新到最新的安全版本。 + bugs: + - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). + - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured. + - When {% data variables.product.prodname_actions %} was enabled but TLS was disabled on {% data variables.product.prodname_ghe_server %} 3.4.1 and later, applying a configuration update would fail. + - The `--gateway` argument was added to the `ghe-setup-network` command, to allow passing the gateway address when configuring network settings using the command line. + - 'The [{% data variables.product.prodname_GH_advanced_security %} billing API](/rest/enterprise-admin/billing#get-github-advanced-security-active-committers-for-an-enterprise) endpoints were not enabled and accessible.' + - Image attachments that were deleted would return a `500 Internal Server Error` instead of a `404 Not Found` error. + - In environments configured with a repository cache server, the `ghe-repl-status` command incorrectly showed gists as being under-replicated. + - The "Get a commit" and "Compare two commits" endpoints in the [Commit API](/rest/commits/commits) would return a `500` error if a file path in the diff contained an encoded and escaped unicode character. + - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. + - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + - 'A {% data variables.product.prodname_github_app %} would not be able to subscribe to the [`secret_scanning_alert_location` webhook event](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#secret_scanning_alert_location) on an installation.' + - The activity timeline for secret scanning alerts wasn't displayed. + - Deleted repos were not purged after 90 days. + changes: + - Optimised the inclusion of metrics when generating a cluster support bundle. + - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. + known_issues: + - 在新建的没有任何用户的 {% data variables.product.prodname_ghe_server %} 实例上,攻击者可以创建第一个管理员用户。 + - 自定义防火墙规则在升级过程中被删除。 + - Git LFS 跟踪的文件[通过 Web 界面上传](https://github.com/blog/2105-upload-files-to-your-repositories) 被错误地直接添加到仓库。 + - 如果议题包含文件路径长于 255 个字符的同一仓库中 blob 的永久链接,则议题无法关闭。 + - 对 GitHub Connect 启用“用户可以搜索 GitHub.com”后,私有和内部仓库中的议题不包括在 GitHub.com 搜索结果中。 + - '{% data variables.product.prodname_registry %} npm 注册表不再返回元数据响应的时间值。这样做是为了大幅改善性能。作为元数据响应的一部分,我们继续拥有返回时间值所需的所有数据,并将在我们解决现有性能问题后恢复返回这个值。' + - 特定于处理预接收挂钩的资源限制可能会导致某些预接收挂钩失败。 + - Actions services need to be restarted after restoring an appliance from a backup taken on a different host. + - 'Deleted repositories will not be purged from disk automatically after the 90-day retention period ends. This issue is resolved in the 3.5.1 release. [Updated: 2022-06-10]' diff --git a/translations/zh-CN/data/reusables/actions/ref-description.md b/translations/zh-CN/data/reusables/actions/ref-description.md new file mode 100644 index 0000000000..f13bb0cdad --- /dev/null +++ b/translations/zh-CN/data/reusables/actions/ref-description.md @@ -0,0 +1 @@ +触发工作流程的分支或标记参考。 For workflows triggered by `push`, this is the branch or tag ref that was pushed. For workflows triggered by `pull_request`, this is the pull request merge branch. For workflows triggered by `release`, this is the release tag created. For other triggers, this is the branch or tag ref that triggered the workflow run. This is only set if a branch or tag is available for the event type. The ref given is fully-formed, meaning that for branches the format is `refs/heads/<branch_name>`, for pull requests it is `refs/pull/<pr_number>/merge`, and for tags it is `refs/tags/<tag_name>`. 例如 `refs/heads/feature-branch-1`。 diff --git a/translations/zh-CN/data/reusables/actions/supported-github-runners.md b/translations/zh-CN/data/reusables/actions/supported-github-runners.md index 812bda443b..5083aa8748 100644 --- a/translations/zh-CN/data/reusables/actions/supported-github-runners.md +++ b/translations/zh-CN/data/reusables/actions/supported-github-runners.md @@ -63,10 +63,7 @@ macOS Monterey 12 </td> <td> <code>macos-12</code> -</td> -<td> -macOS 12 is currently in public beta. -</td> + </td> </tr> <tr> <td> diff --git a/translations/zh-CN/data/reusables/classroom/reuse-assignment-link.md b/translations/zh-CN/data/reusables/classroom/reuse-assignment-link.md index 1e88ecc681..bd0268c4c4 100644 --- a/translations/zh-CN/data/reusables/classroom/reuse-assignment-link.md +++ b/translations/zh-CN/data/reusables/classroom/reuse-assignment-link.md @@ -1 +1 @@ -You can reuse an existing assignment in any other classroom you have admin access to, including classrooms in a different organization. 更多信息请参阅“[重复使用作业](/education/manage-coursework-with-github-classroom/teach-with-github-classroom/reuse-an-assignment)”。 \ No newline at end of file +You can reuse existing assignments in any other classroom you have admin access to, including classrooms in a different organization. 更多信息请参阅“[重复使用作业](/education/manage-coursework-with-github-classroom/teach-with-github-classroom/reuse-an-assignment)”。 \ No newline at end of file diff --git a/translations/zh-CN/data/reusables/codespaces/about-billing-for-codespaces.md b/translations/zh-CN/data/reusables/codespaces/about-billing-for-codespaces.md deleted file mode 100644 index 72c8cd8a84..0000000000 --- a/translations/zh-CN/data/reusables/codespaces/about-billing-for-codespaces.md +++ /dev/null @@ -1 +0,0 @@ -{% data variables.product.prodname_codespaces %} 在测试期间可免费使用。 当 {% data variables.product.prodname_codespaces %} 公开发布时,将按存储和计算使用情况计费。 diff --git a/translations/zh-CN/data/reusables/codespaces/beta-functionality-limited.md b/translations/zh-CN/data/reusables/codespaces/beta-functionality-limited.md deleted file mode 100644 index 5b16ea0119..0000000000 --- a/translations/zh-CN/data/reusables/codespaces/beta-functionality-limited.md +++ /dev/null @@ -1,5 +0,0 @@ -在测试期间,功能是有限的。 -- {% data reusables.codespaces.use-chrome %} -- 只有一个大小的代码空间可用。 -- 只支持 Linux 容器。 -- 代码空间无法完全恢复。 代码空间停止时正在运行的进程将不会重新启动。 diff --git a/translations/zh-CN/data/reusables/codespaces/billing-for-prebuilds.md b/translations/zh-CN/data/reusables/codespaces/billing-for-prebuilds.md index 984ab0d1ce..c7b320e5a9 100644 --- a/translations/zh-CN/data/reusables/codespaces/billing-for-prebuilds.md +++ b/translations/zh-CN/data/reusables/codespaces/billing-for-prebuilds.md @@ -1,7 +1,7 @@ By default, a {% data variables.product.prodname_actions %} workflow is triggered every time you create or update a prebuild template, or push to a prebuild-enabled branch. As with other workflows, while prebuild workflows are running they will either consume some of the Actions minutes included with your account, if you have any, or they will incur charges for Actions minutes. For more information about pricing for Actions minutes, see "[About billing for {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/about-billing-for-github-actions)." -If you are an organization owner, you can track usage of prebuild workflows by downloading a {% data variables.product.prodname_actions %} usage report for your organization. You can identify workflow runs for prebuilds by filtering the CSV output to only include the workflow called "Create Codespaces Prebuilds." 更多信息请参阅“[查看 {% data variables.product.prodname_actions %} 使用情况](/billing/managing-billing-for-github-actions/viewing-your-github-actions-usage#viewing-github-actions-usage-for-your-organization)”。 +Alongside {% data variables.product.prodname_actions %} minutes, you will also be billed for the storage of prebuild templates associated with each prebuild configuration for a given repository and region. Storage of prebuild templates is billed at the same rate as storage of codespaces. For more information, see "[Calculating storage usage](#calculating-storage-usage)." -To reduce consumption of Actions minutes, you can set a prebuild template to be updated only when you make a change to your dev container configuration files, or only on a custom schedule. 更多信息请参阅“[配置预构建](/codespaces/prebuilding-your-codespaces/configuring-prebuilds#configuring-a-prebuild)”。 +To reduce consumption of Actions minutes, you can set a prebuild template to be updated only when you make a change to your dev container configuration files, or only on a custom schedule. You can also manage your storage usage by adjusting the number of template versions to be retained for your prebuild configurations. 更多信息请参阅“[配置预构建](/codespaces/prebuilding-your-codespaces/configuring-prebuilds#configuring-a-prebuild)”。 -While {% data variables.product.prodname_codespaces %} prebuilds is in beta there is no charge for storage of templates. When prebuilds become generally available, you will be billed for storing prebuild templates for each prebuild configuration in each region selected for that configuration. +If you are an organization owner, you can track usage of prebuild workflows and storage by downloading a {% data variables.product.prodname_actions %} usage report for your organization. You can identify workflow runs for prebuilds by filtering the CSV output to only include the workflow called "Create Codespaces Prebuilds." 更多信息请参阅“[查看 {% data variables.product.prodname_actions %} 使用情况](/billing/managing-billing-for-github-actions/viewing-your-github-actions-usage#viewing-github-actions-usage-for-your-organization)”。 \ No newline at end of file diff --git a/translations/zh-CN/data/reusables/codespaces/prebuilds-beta-note.md b/translations/zh-CN/data/reusables/codespaces/prebuilds-beta-note.md deleted file mode 100644 index 0bbb339b8b..0000000000 --- a/translations/zh-CN/data/reusables/codespaces/prebuilds-beta-note.md +++ /dev/null @@ -1,5 +0,0 @@ -{% note %} - -**注意:** 预构建代码空间的功能目前处于测试阶段,可能会发生变化。 - -{% endnote %} diff --git a/translations/zh-CN/data/reusables/codespaces/unsupported-repos.md b/translations/zh-CN/data/reusables/codespaces/unsupported-repos.md deleted file mode 100644 index 498f150830..0000000000 --- a/translations/zh-CN/data/reusables/codespaces/unsupported-repos.md +++ /dev/null @@ -1 +0,0 @@ -在测试阶段,不支持组织拥有的私有仓库或者组织拥有的需要 SAML 单点登录的任何仓库。 diff --git a/translations/zh-CN/data/reusables/dependency-review/dependency-review-action-beta-note.md b/translations/zh-CN/data/reusables/dependency-review/dependency-review-action-beta-note.md index c227b119b0..23aaae3ec2 100644 --- a/translations/zh-CN/data/reusables/dependency-review/dependency-review-action-beta-note.md +++ b/translations/zh-CN/data/reusables/dependency-review/dependency-review-action-beta-note.md @@ -1,5 +1,5 @@ {% note %} -**Note**: The Dependency Review GitHub Action is currently in public beta and subject to change. +**Note**: The {% data variables.product.prodname_dependency_review_action %} is currently in public beta and subject to change. {% endnote %} \ No newline at end of file diff --git a/translations/zh-CN/data/reusables/dependency-review/dependency-review-action-overview.md b/translations/zh-CN/data/reusables/dependency-review/dependency-review-action-overview.md new file mode 100644 index 0000000000..49112365d7 --- /dev/null +++ b/translations/zh-CN/data/reusables/dependency-review/dependency-review-action-overview.md @@ -0,0 +1,3 @@ +The {% data variables.product.prodname_dependency_review_action %} scans your pull requests for dependency changes and raises an error if any new dependencies have known vulnerabilities. The action is supported by an API endpoint that compares the dependencies between two revisions and reports any differences. + +For more information about the action and the API endpoint, see "[About dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-reinforcement)," and "[Dependency review](/rest/dependency-graph/dependency-review)" in the API documentation, respectively. \ No newline at end of file diff --git a/translations/zh-CN/data/reusables/developer-site/limit_workflow_to_activity_types.md b/translations/zh-CN/data/reusables/developer-site/limit_workflow_to_activity_types.md index c0c593d2b3..a0c94f2229 100644 --- a/translations/zh-CN/data/reusables/developer-site/limit_workflow_to_activity_types.md +++ b/translations/zh-CN/data/reusables/developer-site/limit_workflow_to_activity_types.md @@ -1 +1 @@ -默认情况下,所有活动类型都会触发一个工作流程。 您可以使用 `types(类型)` 关键词将工作流程限制为针对特定活动类型。 更多信息请参阅“[{% data variables.product.prodname_actions %} 的工作流程语法](/articles/workflow-syntax-for-github-actions#onevent_nametypes)”。 +By default, all activity types trigger workflows that run on this event. 您可以使用 `types(类型)` 关键词将工作流程限制为针对特定活动类型。 更多信息请参阅“[{% data variables.product.prodname_actions %} 的工作流程语法](/articles/workflow-syntax-for-github-actions#onevent_nametypes)”。 diff --git a/translations/zh-CN/data/reusables/dotcom_billing/actions-packages-report-download-org-account.md b/translations/zh-CN/data/reusables/dotcom_billing/actions-packages-report-download-org-account.md index 37a43818cf..c0562afaf1 100644 --- a/translations/zh-CN/data/reusables/dotcom_billing/actions-packages-report-download-org-account.md +++ b/translations/zh-CN/data/reusables/dotcom_billing/actions-packages-report-download-org-account.md @@ -1 +1 @@ -1. Optionally, next to "Billing & plans", click **Get usage report** to email a CSV report of storage use for {% data variables.product.prodname_actions %}, {% data variables.product.prodname_registry %}, and {% data variables.product.prodname_codespaces %} to the account's primary email address. ![下载 CSV 报告](/assets/images/help/billing/actions-packages-report-download-org.png) +1. Optionally, next to "Usage this month", click **Get usage report** to get an email containing a link for downloading a CSV report of storage use for {% data variables.product.prodname_actions %}, {% data variables.product.prodname_registry %}, and {% data variables.product.prodname_codespaces %}. The email is sent to your account's primary email address. You can choose whether the report should cover the last 7, 30, 90, or 180 days. ![下载 CSV 报告](/assets/images/help/billing/actions-packages-report-download.png) diff --git a/translations/zh-CN/data/reusables/enterprise-accounts/download-recovery-codes.md b/translations/zh-CN/data/reusables/enterprise-accounts/download-recovery-codes.md index e29f2a7e6e..d9d772be50 100644 --- a/translations/zh-CN/data/reusables/enterprise-accounts/download-recovery-codes.md +++ b/translations/zh-CN/data/reusables/enterprise-accounts/download-recovery-codes.md @@ -1,3 +1,3 @@ -1. To ensure you can still access your enterprise in the event that your identity provider is ever unavailable in the future, click **Download**, **Print**, or **Copy** to save your recovery codes. For more information, see "[Downloading your enterprise account's single sign-on recovery codes](/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/downloading-your-enterprise-accounts-single-sign-on-recovery-codes)." +1. To ensure you can still access your enterprise in the event that your identity provider is ever unavailable in the future, click **Download**, **Print**, or **Copy** to save your recovery codes. 更多信息请参阅“[下载企业帐户的单点登录恢复代码](/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/downloading-your-enterprise-accounts-single-sign-on-recovery-codes)”。 ![用于下载、打印或复制恢复代码的按钮屏幕截图](/assets/images/help/saml/saml_recovery_code_options.png) diff --git a/translations/zh-CN/data/reusables/enterprise_clustering/load_balancer_dns.md b/translations/zh-CN/data/reusables/enterprise_clustering/load_balancer_dns.md index 7801398040..c0f4b58f93 100644 --- a/translations/zh-CN/data/reusables/enterprise_clustering/load_balancer_dns.md +++ b/translations/zh-CN/data/reusables/enterprise_clustering/load_balancer_dns.md @@ -1 +1 @@ -对 {% data variables.product.prodname_ghe_server %} 主机名的 DNS 查询应解析为负载均衡器。 我们建议您启用子域隔离。 如果启用了子域隔离,另一个通配符记录 (`*.HOSTNAME`) 也应解析为负载均衡器。 更多信息请参阅“[启用子域隔离](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-subdomain-isolation/)”。 +对 {% data variables.product.prodname_ghe_server %} 主机名的 DNS 查询应解析为负载均衡器。 我们建议您启用子域隔离。 如果启用了子域隔离,另一个通配符记录 (`*.HOSTNAME`) 也应解析为负载均衡器。 更多信息请参阅“[启用子域隔离](/enterprise/admin/guides/installation/enabling-subdomain-isolation/)”。 diff --git a/translations/zh-CN/data/reusables/enterprise_clustering/replacing-a-cluster-node-mark-offline.md b/translations/zh-CN/data/reusables/enterprise_clustering/replacing-a-cluster-node-mark-offline.md index 94914fa9b2..498f6a0c65 100644 --- a/translations/zh-CN/data/reusables/enterprise_clustering/replacing-a-cluster-node-mark-offline.md +++ b/translations/zh-CN/data/reusables/enterprise_clustering/replacing-a-cluster-node-mark-offline.md @@ -1,4 +1,4 @@ -1. 要将失败的节点标记为离线,在任何节点上修改相关代码部分的[群集配置文件](/enterprise/{{ currentVersion }}/admin/guides/clustering/initializing-the-cluster/#about-the-cluster-configuration-file) (`cluster.conf`),以包含文本 `offline = true`。 +1. 要将失败的节点标记为离线,在任何节点上修改相关代码部分的[群集配置文件](/enterprise/admin/guides/clustering/initializing-the-cluster/#about-the-cluster-configuration-file) (`cluster.conf`),以包含文本 `offline = true`。 例如,下面修改的 `cluster.conf` 会将 `ghe-data-node-3` 节点标记为离线: diff --git a/translations/zh-CN/data/reusables/enterprise_clustering/replacing-a-cluster-node-need-three-nodes.md b/translations/zh-CN/data/reusables/enterprise_clustering/replacing-a-cluster-node-need-three-nodes.md index e428194de9..155e57031c 100644 --- a/translations/zh-CN/data/reusables/enterprise_clustering/replacing-a-cluster-node-need-three-nodes.md +++ b/translations/zh-CN/data/reusables/enterprise_clustering/replacing-a-cluster-node-need-three-nodes.md @@ -1 +1 @@ -1. 如果要让在 cluster.conf 设置了`git-server = true` 的某个节点离线,请撤出该节点。 更多信息请参阅“[Evacuating a cluster node](/enterprise/{{ currentVersion }}/admin/clustering/evacuating-a-cluster-node)”。 +1. 如果要让在 cluster.conf 设置了`git-server = true` 的某个节点离线,请撤出该节点。 更多信息请参阅“[Evacuating a cluster node](/enterprise/admin/clustering/evacuating-a-cluster-node)”。 diff --git a/translations/zh-CN/data/reusables/enterprise_clustering/replacing-a-cluster-node-provision.md b/translations/zh-CN/data/reusables/enterprise_clustering/replacing-a-cluster-node-provision.md index e4b8f1a6ab..92c06d480a 100644 --- a/translations/zh-CN/data/reusables/enterprise_clustering/replacing-a-cluster-node-provision.md +++ b/translations/zh-CN/data/reusables/enterprise_clustering/replacing-a-cluster-node-provision.md @@ -1 +1 @@ -1. 在替换节点上使用唯一主机名[供应和安装 {% data variables.product.prodname_ghe_server %}](/enterprise/{{ currentVersion }}/admin/guides/installation/setting-up-a-github-enterprise-server-instance) 。 +1. 在替换节点上使用唯一主机名[供应和安装 {% data variables.product.prodname_ghe_server %}](/enterprise/admin/guides/installation/setting-up-a-github-enterprise-server-instance) 。 diff --git a/translations/zh-CN/data/reusables/enterprise_enterprise_support/use_ghe_cluster_support_bundle.md b/translations/zh-CN/data/reusables/enterprise_enterprise_support/use_ghe_cluster_support_bundle.md index 2dce9193a7..082761fea2 100644 --- a/translations/zh-CN/data/reusables/enterprise_enterprise_support/use_ghe_cluster_support_bundle.md +++ b/translations/zh-CN/data/reusables/enterprise_enterprise_support/use_ghe_cluster_support_bundle.md @@ -1,5 +1,5 @@ {% note %} -**注:**如果您使用的是 Geo-replication 配置或 {% data variables.product.prodname_enterprise %} 集群,则应使用 `ghe-cluster-support-bundle` 命令检索支持包。 更多信息请参阅“[命令行实用程序](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities/#ghe-cluster-support-bundle)”。 +**注:**如果您使用的是 Geo-replication 配置或 {% data variables.product.prodname_enterprise %} 集群,则应使用 `ghe-cluster-support-bundle` 命令检索支持包。 更多信息请参阅“[命令行实用程序](/enterprise/admin/guides/installation/command-line-utilities/#ghe-cluster-support-bundle)”。 {% endnote %} diff --git a/translations/zh-CN/data/reusables/enterprise_installation/download-note.md b/translations/zh-CN/data/reusables/enterprise_installation/download-note.md index 8af8a0dd42..9ded296120 100644 --- a/translations/zh-CN/data/reusables/enterprise_installation/download-note.md +++ b/translations/zh-CN/data/reusables/enterprise_installation/download-note.md @@ -1,5 +1,5 @@ {% note %} -**注:** 如果启用了自动更新检查,则无需下载升级包,可使用自动下载的文件。 更多信息请参阅“[启用自动更新检查](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-automatic-update-checks/)”。 +**注:** 如果启用了自动更新检查,则无需下载升级包,可使用自动下载的文件。 更多信息请参阅“[启用自动更新检查](/enterprise/admin/guides/installation/enabling-automatic-update-checks/)”。 {% endnote %} diff --git a/translations/zh-CN/data/reusables/enterprise_installation/hardware-considerations-all-platforms.md b/translations/zh-CN/data/reusables/enterprise_installation/hardware-considerations-all-platforms.md index 46612c6d05..aa4ac2b3e6 100644 --- a/translations/zh-CN/data/reusables/enterprise_installation/hardware-considerations-all-platforms.md +++ b/translations/zh-CN/data/reusables/enterprise_installation/hardware-considerations-all-platforms.md @@ -20,7 +20,7 @@ To configure {% data variables.product.prodname_actions %}, you must provide ext {% endif %} -The available space on the root filesystem will be 50% of the total disk size. You can resize your instance's root disk by building a new instance or using an existing instance. For more information, see "[System overview](/enterprise/admin/guides/installation/system-overview#storage-architecture)" and "[Increasing storage capacity](/enterprise/{{ currentVersion }}/admin/guides/installation/increasing-storage-capacity)." +The available space on the root filesystem will be 50% of the total disk size. You can resize your instance's root disk by building a new instance or using an existing instance. For more information, see "[System overview](/enterprise/admin/guides/installation/system-overview#storage-architecture)" and "[Increasing storage capacity](/enterprise/admin/guides/installation/increasing-storage-capacity)." ### CPU and memory diff --git a/translations/zh-CN/data/reusables/enterprise_installation/save-settings-in-web-based-mgmt-console.md b/translations/zh-CN/data/reusables/enterprise_installation/save-settings-in-web-based-mgmt-console.md index 7baf713aae..ca7fa26416 100644 --- a/translations/zh-CN/data/reusables/enterprise_installation/save-settings-in-web-based-mgmt-console.md +++ b/translations/zh-CN/data/reusables/enterprise_installation/save-settings-in-web-based-mgmt-console.md @@ -1 +1 @@ -3. 在 [{% data variables.enterprise.management_console %}](/enterprise/{{ currentVersion }}/admin/guides/installation/accessing-the-management-console/) 中,配置并保存您所需的设置。 +3. 在 [{% data variables.enterprise.management_console %}](/enterprise/admin/guides/installation/accessing-the-management-console/) 中,配置并保存您所需的设置。 diff --git a/translations/zh-CN/data/reusables/enterprise_installation/warning-on-upgrading-physical-resources.md b/translations/zh-CN/data/reusables/enterprise_installation/warning-on-upgrading-physical-resources.md index 64aedcca13..83860b2bfc 100644 --- a/translations/zh-CN/data/reusables/enterprise_installation/warning-on-upgrading-physical-resources.md +++ b/translations/zh-CN/data/reusables/enterprise_installation/warning-on-upgrading-physical-resources.md @@ -1,5 +1,5 @@ {% warning %} -**警告:**分配新系统资源的过程因虚拟化平台和资源类型而异。 您应该始终配置系统关键资源的监测和警报。 更多信息请参阅“[监控 {% data variables.product.prodname_ghe_server %} 设备](/enterprise/{{ currentVersion }}/admin/guides/installation/monitoring-your-github-enterprise-server-appliance/)”。 +**警告:**分配新系统资源的过程因虚拟化平台和资源类型而异。 您应该始终配置系统关键资源的监测和警报。 更多信息请参阅“[监控 {% data variables.product.prodname_ghe_server %} 设备](/enterprise/admin/guides/installation/monitoring-your-github-enterprise-server-appliance/)”。 {% endwarning %} diff --git a/translations/zh-CN/data/reusables/enterprise_management_console/test-domain-settings-failure.md b/translations/zh-CN/data/reusables/enterprise_management_console/test-domain-settings-failure.md index 1977cf2b6e..e0870c7d5f 100644 --- a/translations/zh-CN/data/reusables/enterprise_management_console/test-domain-settings-failure.md +++ b/translations/zh-CN/data/reusables/enterprise_management_console/test-domain-settings-failure.md @@ -1 +1 @@ -1. 如果在所有条目旁边没有看到绿色的复选标记,请检查配置,查找失效的设置。 更多信息请参阅“[配置 DNS 域名服务器](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-dns-nameservers/)”。 ![显示 DNS 和 SSL 配置状态的表格](/assets/images/enterprise/management-console/domain-dns-ssl-settings-check.png) +1. 如果在所有条目旁边没有看到绿色的复选标记,请检查配置,查找失效的设置。 更多信息请参阅“[配置 DNS 域名服务器](/enterprise/admin/guides/installation/configuring-dns-nameservers/)”。 ![显示 DNS 和 SSL 配置状态的表格](/assets/images/enterprise/management-console/domain-dns-ssl-settings-check.png) diff --git a/translations/zh-CN/data/reusables/enterprise_site_admin_settings/maintenance-mode-status.md b/translations/zh-CN/data/reusables/enterprise_site_admin_settings/maintenance-mode-status.md index 2c23019d31..e2c23701f5 100644 --- a/translations/zh-CN/data/reusables/enterprise_site_admin_settings/maintenance-mode-status.md +++ b/translations/zh-CN/data/reusables/enterprise_site_admin_settings/maintenance-mode-status.md @@ -1,5 +1,5 @@ {% note %} -**注意:** 当设备处于维护模式时,`https://HOSTNAME/status` URL 将返回状态代码 `503`(服务不可用)。 更多信息请参阅“[启用和排定维护模式](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-and-scheduling-maintenance-mode)”。 +**注意:** 当设备处于维护模式时,`https://HOSTNAME/status` URL 将返回状态代码 `503`(服务不可用)。 更多信息请参阅“[启用和排定维护模式](/enterprise/admin/guides/installation/enabling-and-scheduling-maintenance-mode)”。 {% endnote %} diff --git a/translations/zh-CN/data/reusables/enterprise_user_management/external_auth_disables_2fa.md b/translations/zh-CN/data/reusables/enterprise_user_management/external_auth_disables_2fa.md index b4d868d24f..87725aa79f 100644 --- a/translations/zh-CN/data/reusables/enterprise_user_management/external_auth_disables_2fa.md +++ b/translations/zh-CN/data/reusables/enterprise_user_management/external_auth_disables_2fa.md @@ -1 +1 @@ -使用 SAML 或 CAS 时,双重身份验证在 {% data variables.product.prodname_ghe_server %} 设备上不受支持或无法管理,但受外部身份验证提供商的支持。 在组织上无法实施双重身份验证。 有关在组织上实施双重身份验证的更多信息,请参阅“[您的组织中需要双重身份验证](/enterprise/{{ currentVersion }}/user/articles/requiring-two-factor-authentication-in-your-organization/)”。 +使用 SAML 或 CAS 时,双重身份验证在 {% data variables.product.prodname_ghe_server %} 设备上不受支持或无法管理,但受外部身份验证提供商的支持。 在组织上无法实施双重身份验证。 有关在组织上实施双重身份验证的更多信息,请参阅“[您的组织中需要双重身份验证](/enterprise/user/articles/requiring-two-factor-authentication-in-your-organization/)”。 diff --git a/translations/zh-CN/data/reusables/enterprise_user_management/ldap-sync-nested-teams.md b/translations/zh-CN/data/reusables/enterprise_user_management/ldap-sync-nested-teams.md index d1147a70d3..a4a6fe4a51 100644 --- a/translations/zh-CN/data/reusables/enterprise_user_management/ldap-sync-nested-teams.md +++ b/translations/zh-CN/data/reusables/enterprise_user_management/ldap-sync-nested-teams.md @@ -1,3 +1,3 @@ {% ifversion ghes %} -作为优化配置的一部分,LDAP 同步不会传输您的嵌套团队结构。 要创建子团队与父团队的关系,必须手动重新创建嵌套团队结构并将其与相应的 LDAP 组同步。 更多信息请参阅“[创建团队](/enterprise/{{ currentVersion }}/admin/guides/user-management/creating-teams/#creating-teams-with-ldap-sync-enabled)”。 +作为优化配置的一部分,LDAP 同步不会传输您的嵌套团队结构。 要创建子团队与父团队的关系,必须手动重新创建嵌套团队结构并将其与相应的 LDAP 组同步。 更多信息请参阅“[创建团队](/enterprise/admin/guides/user-management/creating-teams/#creating-teams-with-ldap-sync-enabled)”。 {% endif %} diff --git a/translations/zh-CN/data/reusables/notifications/access_watching.md b/translations/zh-CN/data/reusables/notifications/access_watching.md index cff9fceb1b..076f5a6109 100644 --- a/translations/zh-CN/data/reusables/notifications/access_watching.md +++ b/translations/zh-CN/data/reusables/notifications/access_watching.md @@ -1 +1 @@ -1. 在任何页面的右上角,单击 {% octicon "bell" aria-label="The notifications bell" %}。 如果您已[禁用网页通知](/enterprise/{{ currentVersion }}/user/github/receiving-notifications-about-activity-on-github/choosing-the-delivery-method-for-your-notifications)且看不到铃铛图标,可以浏览 <https://github.com/watching>。 ![表示任何未读消息的通知](/assets/images/help/notifications/notifications_general_existence_indicator.png) +1. 在任何页面的右上角,单击 {% octicon "bell" aria-label="The notifications bell" %}。 如果您已[禁用网页通知](/enterprise/user/github/receiving-notifications-about-activity-on-github/choosing-the-delivery-method-for-your-notifications)且看不到铃铛图标,可以浏览 <https://github.com/watching>。 ![表示任何未读消息的通知](/assets/images/help/notifications/notifications_general_existence_indicator.png) diff --git a/translations/zh-CN/data/reusables/projects/reopen-a-project.md b/translations/zh-CN/data/reusables/projects/reopen-a-project.md index 8f0cbdec82..1e3301392b 100644 --- a/translations/zh-CN/data/reusables/projects/reopen-a-project.md +++ b/translations/zh-CN/data/reusables/projects/reopen-a-project.md @@ -1,5 +1,5 @@ -1. Click the **Projects** tab. ![Screenshot showing project close button](/assets/images/help/issues/projects-profile-tab.png) -1. To show closed projects, click **Closed**. ![Screenshot showing project close button](/assets/images/help/issues/closed-projects-tab.png) +1. Click the **Projects** tab. ![显示项目关闭按钮的屏幕截图](/assets/images/help/issues/projects-profile-tab.png) +1. To show closed projects, click **Closed**. ![显示项目关闭按钮的屏幕截图](/assets/images/help/issues/closed-projects-tab.png) 1. Click the project you want to reopen. 1. 在右上角,单击 {% octicon "kebab-horizontal" aria-label="The menu icon" %} 以打开菜单。 1. In the menu, to access the project settings, click {% octicon "gear" aria-label="The gear icon" %} **Settings**. diff --git a/translations/zh-CN/data/reusables/repositories/navigate-to-branches.md b/translations/zh-CN/data/reusables/repositories/navigate-to-branches.md index e9257263f4..064473ca40 100644 --- a/translations/zh-CN/data/reusables/repositories/navigate-to-branches.md +++ b/translations/zh-CN/data/reusables/repositories/navigate-to-branches.md @@ -1 +1 @@ -1. 在文件列表上方,单击 {% octicon "git-branch" aria-label="The branch icon" %} **<em>NUMBER</em> 分支**。 ![概述页面上的分支链接](/assets/images/help/branches/branches-link.png) +1. Above the list of files, click {% octicon "git-branch" aria-label="The branch icon" %} **Branches**. ![概述页面上的分支链接](/assets/images/help/branches/branches-overview-link.png) diff --git a/translations/zh-CN/data/reusables/user-settings/set_your_email_address_in_git.md b/translations/zh-CN/data/reusables/user-settings/set_your_email_address_in_git.md index eb329c3bc1..a35b81297f 100644 --- a/translations/zh-CN/data/reusables/user-settings/set_your_email_address_in_git.md +++ b/translations/zh-CN/data/reusables/user-settings/set_your_email_address_in_git.md @@ -1 +1 @@ -在 Git 中设置电子邮件地址。 您可以使用 {% ifversion fpt or ghec %}[{% data variables.product.product_name %} 提供的 `no-reply` 电子邮件地址](/articles/setting-your-commit-email-address)或{% endif %}任何电子邮件地址。 +在 Git 中设置电子邮件地址。 You can use {% ifversion fpt or ghec %}your [{% data variables.product.product_name %}-provided `noreply` email address](/articles/setting-your-commit-email-address) or {% endif %}any email address. diff --git a/translations/zh-CN/data/variables/product.yml b/translations/zh-CN/data/variables/product.yml index 2219fbccb0..a1a4050b47 100644 --- a/translations/zh-CN/data/variables/product.yml +++ b/translations/zh-CN/data/variables/product.yml @@ -143,6 +143,7 @@ prodname_code_scanning_capc: '代码扫描' prodname_codeql_runner: 'CodeQL runner' prodname_advisory_database: 'GitHub Advisory Database' prodname_codeql_workflow: 'CodeQL 分析工作流程' +prodname_dependency_review_action: 'Dependency Review GitHub Action' #Visual Studio prodname_vs: 'Visual Studio' prodname_vscode_shortname: 'VS 代码' From 9d0cdee78bf47c78cfd2b18aeedc69beaf695fe5 Mon Sep 17 00:00:00 2001 From: Steve Guntrip <12534592+stevecat@users.noreply.github.com> Date: Thu, 16 Jun 2022 21:03:10 +0100 Subject: [PATCH 11/21] [2022-06-16] Migrate from Projects (classic) to Projects (beta) (#28516) * Add migration article and assets * Optimize images * update projects classic reusable notice * Apply suggestions from code review Co-authored-by: Sarah Edwards <skedwards88@github.com> * update gotchas, add note for repo-level projects * tweak * Update content/issues/trying-out-the-new-projects-experience/migrating-your-project.md Co-authored-by: Sarah Edwards <skedwards88@github.com> Co-authored-by: github-actions <github-actions@github.com> Co-authored-by: Sarah Edwards <skedwards88@github.com> Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> --- assets/images/help/issues/migrate-option.png | Bin 0 -> 73517 bytes assets/images/help/issues/migrate-start.png | Bin 0 -> 10091 bytes assets/images/help/issues/migrate-to-beta.png | Bin 0 -> 10455 bytes .../help/issues/projects-classic-org.png | Bin 0 -> 9697 bytes .../help/issues/projects-classic-user.png | Bin 0 -> 8536 bytes .../index.md | 1 + .../migrating-your-project.md | 65 ++++++++++++++++++ data/reusables/projects/enable-migration.md | 1 + .../projects/migrate-project-steps.md | 8 +++ data/reusables/projects/project_boards_old.md | 2 +- 10 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 assets/images/help/issues/migrate-option.png create mode 100644 assets/images/help/issues/migrate-start.png create mode 100644 assets/images/help/issues/migrate-to-beta.png create mode 100644 assets/images/help/issues/projects-classic-org.png create mode 100644 assets/images/help/issues/projects-classic-user.png create mode 100644 content/issues/trying-out-the-new-projects-experience/migrating-your-project.md create mode 100644 data/reusables/projects/enable-migration.md create mode 100644 data/reusables/projects/migrate-project-steps.md diff --git a/assets/images/help/issues/migrate-option.png b/assets/images/help/issues/migrate-option.png new file mode 100644 index 0000000000000000000000000000000000000000..20b150bcfed43a31d945efb9a7549df15025b4f6 GIT binary patch literal 73517 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 XyOmLfJ3Tib;9>KN{ly9kkA(jO*`FuG literal 0 HcmV?d00001 diff --git a/assets/images/help/issues/migrate-start.png b/assets/images/help/issues/migrate-start.png new file mode 100644 index 0000000000000000000000000000000000000000..0a4120cb70a852764b3970a576fbc1021aaa2747 GIT binary patch literal 10091 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 KLaCg2@c#qG?L+DS literal 0 HcmV?d00001 diff --git a/assets/images/help/issues/migrate-to-beta.png b/assets/images/help/issues/migrate-to-beta.png new file mode 100644 index 0000000000000000000000000000000000000000..9b6ab1174b7830f8e2d1bb10209ceb335f9e61f6 GIT binary patch literal 10455 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 literal 0 HcmV?d00001 diff --git a/assets/images/help/issues/projects-classic-org.png b/assets/images/help/issues/projects-classic-org.png new file mode 100644 index 0000000000000000000000000000000000000000..d2b788f9566933e844fc2b7210c0581091dd7f6d GIT binary patch literal 9697 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 literal 0 HcmV?d00001 diff --git a/assets/images/help/issues/projects-classic-user.png b/assets/images/help/issues/projects-classic-user.png new file mode 100644 index 0000000000000000000000000000000000000000..0e32219440e716543bfff9d779717c1f67520dcd GIT binary patch literal 8536 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 literal 0 HcmV?d00001 diff --git a/content/issues/trying-out-the-new-projects-experience/index.md b/content/issues/trying-out-the-new-projects-experience/index.md index 25f225b0c4..9c5acfe3b4 100644 --- a/content/issues/trying-out-the-new-projects-experience/index.md +++ b/content/issues/trying-out-the-new-projects-experience/index.md @@ -12,6 +12,7 @@ children: - /about-projects - /quickstart - /creating-a-project + - /migrating-your-project - /managing-iterations - /customizing-your-project-views - /filtering-projects diff --git a/content/issues/trying-out-the-new-projects-experience/migrating-your-project.md b/content/issues/trying-out-the-new-projects-experience/migrating-your-project.md new file mode 100644 index 0000000000..ec4fa1c2b2 --- /dev/null +++ b/content/issues/trying-out-the-new-projects-experience/migrating-your-project.md @@ -0,0 +1,65 @@ +--- +title: Migrating your project to Projects (beta) +intro: 'You can migrate your projects from the old projects experience to Projects (beta).' +allowTitleToDifferFromFilename: true +miniTocMaxHeadingLevel: 2 +versions: + fpt: '*' + ghec: '*' +topics: + - Projects + - Organizations +--- + +{% note %} + +**Notes:** + +- Projects (beta) is currently in public beta and subject to change. +- If the project you are migrating contains more than 1200 items, open issues will be prioritized followed by open pull requests and then notes. Remaining space will be used for closed issues, merged pull requested, and closed pull requests. Items that cannot be migrated due to this limit will be moved to the archive. If the archive limit of 10,000 items is reached, additional items will not be migrated. +- Note cards are converted to draft issues, and the contents are saved to the body of the draft issue. If information appears to be missing, make any hidden fields visible. For more information, see "[Showing and hiding fields](/issues/trying-out-the-new-projects-experience/customizing-your-project-views#showing-and-hiding-fields)." +- Automation will not be migrated. +- Triage, archive, and activity will not be migrated. +- After migration, the new migrated project and old project will not be kept in sync. + +{% endnote %} + +## About project migration + +You can migrate your project boards to the all new projects (beta) experience and try out tables, multiple views, new automation options, and powerful field types. For more information, see "[About projects (beta)](/issues/trying-out-the-new-projects-experience/about-projects)." + +## Migrating an organization project board + +{% data reusables.projects.enable-migration %} +{% data reusables.profile.access_org %} +{% data reusables.user-settings.access_org %} +{% data reusables.organizations.organization-wide-project %} +1. On the left, click **Projects (classic)**. + ![Screenshot showing Projects (classic) menu option}](/assets/images/help/issues/projects-classic-org.png) +{% data reusables.projects.migrate-project-steps %} + +## Migrating a user project board + +{% data reusables.projects.enable-migration %} +{% data reusables.profile.access_profile %} +1. On the top of your profile page, in the main navigation, click {% octicon "project" aria-label="The project board icon" %} **Projects**. +![Project tab](/assets/images/help/projects/user-projects-tab.png) +1. Above the list of projects, click **Projects (classic)**. + ![Screenshot showing Projects (classic) menu option}](/assets/images/help/issues/projects-classic-user.png) +{% data reusables.projects.migrate-project-steps %} + +## Migrating a repository project board + +{% note %} + +**Note:** Projects (beta) does not support repository level projects. When you migrate a repository project board, it will migrate to either the organization or personal account that owns the repository project, and the migrated project will be pinned to the original repository. + +{% endnote %} + +{% data reusables.projects.enable-migration %} +{% data reusables.repositories.navigate-to-repo %} +1. Under your repository name, click {% octicon "project" aria-label="The project board icon" %} **Projects**. +![Project tab](/assets/images/help/projects/repo-tabs-projects.png) +1. Click **Projects (classic)**. + ![Screenshot showing Projects (classic) menu option}](/assets/images/help/issues/projects-classic-org.png) +{% data reusables.projects.migrate-project-steps %} \ No newline at end of file diff --git a/data/reusables/projects/enable-migration.md b/data/reusables/projects/enable-migration.md new file mode 100644 index 0000000000..37cb912f71 --- /dev/null +++ b/data/reusables/projects/enable-migration.md @@ -0,0 +1 @@ +1. Enable "Project migration" in feature preview. For more information, see "[Exploring early access releases with feature preview](/get-started/using-github/exploring-early-access-releases-with-feature-preview)." \ No newline at end of file diff --git a/data/reusables/projects/migrate-project-steps.md b/data/reusables/projects/migrate-project-steps.md new file mode 100644 index 0000000000..18a9f177f1 --- /dev/null +++ b/data/reusables/projects/migrate-project-steps.md @@ -0,0 +1,8 @@ +1. Next to the project you want to migrate, click {% octicon "kebab-horizontal" aria-label="The menu icon" %} to open the menu. +1. In the menu, click **Migrate to beta**. + ![Screenshot showing migrate to beta option](/assets/images/help/issues/migrate-to-beta.png) +1. In the the popup, select what you want to happen to the project after it is migrated. We recommend selecting "Close the old project" so it's clear which project is in use. + ![Screenshot showing migrate to beta option](/assets/images/help/issues/migrate-option.png) +1. In the bottom right of the popup, click **Start migration**. + ![Screenshot showing migrate to beta option](/assets/images/help/issues/migrate-start.png) +1. When the migration is complete, the new migrated project will open in a new tab. \ No newline at end of file diff --git a/data/reusables/projects/project_boards_old.md b/data/reusables/projects/project_boards_old.md index 3dcb812342..b801c67119 100644 --- a/data/reusables/projects/project_boards_old.md +++ b/data/reusables/projects/project_boards_old.md @@ -2,7 +2,7 @@ {% note %} -**Note:** Projects (beta), the all-new projects experience, is now available. For more information about projects (beta), see "[About projects (beta)](/issues/trying-out-the-new-projects-experience/about-projects)." +**Note:** Projects (beta), the all-new projects experience, is now available. For more information about projects (beta), see "[About projects (beta)](/issues/trying-out-the-new-projects-experience/about-projects)" and for information about migrating your project, see "[Migrating your project to Projects (beta)](/issues/trying-out-the-new-projects-experience/migrating-your-project)." {% endnote %} {% endif %} From 044285a2c18495905428d1f05dccabf6d7d8539d Mon Sep 17 00:00:00 2001 From: Felicity Chapman <felicitymay@github.com> Date: Thu, 16 Jun 2022 22:23:26 +0100 Subject: [PATCH 12/21] [2022-06-16]: Secret scanning dry runs on custom pattern edits - [Public Beta] (#28390) --- ...ing-custom-patterns-for-secret-scanning.md | 21 +++++++++++-------- .../secret-scanning-custom-enterprise-35.yml | 7 +++++++ .../secret-scanning-custom-enterprise-36.yml | 7 +++++++ .../secret-scanning-enterprise-dry-runs.yml | 6 ------ .../features/secret-scanning-org-dry-runs.yml | 6 ------ 5 files changed, 26 insertions(+), 21 deletions(-) create mode 100644 data/features/secret-scanning-custom-enterprise-35.yml create mode 100644 data/features/secret-scanning-custom-enterprise-36.yml delete mode 100644 data/features/secret-scanning-enterprise-dry-runs.yml delete mode 100644 data/features/secret-scanning-org-dry-runs.yml diff --git a/content/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning.md b/content/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning.md index 2f475ebcaf..b961b398e8 100644 --- a/content/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning.md +++ b/content/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning.md @@ -28,9 +28,9 @@ topics: You can define custom patterns to identify secrets that are not detected by the default patterns supported by {% data variables.product.prodname_secret_scanning %}. For example, you might have a secret pattern that is internal to your organization. For details of the supported secrets and service providers, see "[{% data variables.product.prodname_secret_scanning_caps %} patterns](/code-security/secret-scanning/secret-scanning-patterns)." You can define custom patterns for your enterprise, organization, or repository. {% data variables.product.prodname_secret_scanning_caps %} supports up to -{%- ifversion fpt or ghec or ghes > 3.3 %} 500 custom patterns for each organization or enterprise account, and up to 100 custom patterns per repository. -{%- elsif ghes = 3.3 %} 100 custom patterns for each organization or enterprise account, and 20 per repository. -{%- else %} 20 custom patterns for each organization or enterprise account, and per repository. +{%- ifversion fpt or ghec or ghes > 3.3 or ghae-issue-7297 %} 500 custom patterns for each organization or enterprise account, and up to 100 custom patterns per repository. +{%- elsif ghes = 3.2 %} 20 custom patterns for each organization or enterprise account, and per repository. +{%- else %} 100 custom patterns for each organization or enterprise account, and 20 per repository. {%- endif %} {% ifversion ghes < 3.3 %} @@ -67,7 +67,7 @@ Before defining a custom pattern, you must ensure that {% data variables.product {% data reusables.repositories.navigate-to-code-security-and-analysis %} {% data reusables.repositories.navigate-to-ghas-settings %} {% data reusables.advanced-security.secret-scanning-new-custom-pattern %} -{% data reusables.advanced-security.secret-scanning-add-custom-pattern-details %}{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-5499 %} +{% data reusables.advanced-security.secret-scanning-add-custom-pattern-details %}{% ifversion secret-scanning-custom-enterprise-35 %} 1. When you're ready to test your new custom pattern, to identify matches in the repository without creating alerts, click **Save and dry run**. {% data reusables.advanced-security.secret-scanning-dry-run-results %} {% endif %} @@ -122,7 +122,7 @@ Before defining a custom pattern, you must ensure that you enable {% data variab {% data reusables.repositories.navigate-to-ghas-settings %} {% data reusables.advanced-security.secret-scanning-new-custom-pattern %} {% data reusables.advanced-security.secret-scanning-add-custom-pattern-details %} -{%- ifversion secret-scanning-org-dry-runs %} +{%- ifversion secret-scanning-custom-enterprise-35 %} 1. When you're ready to test your new custom pattern, to identify matches in select repositories without creating alerts, click **Save and dry run**. {% data reusables.advanced-security.secret-scanning-dry-run-select-repos %} {% data reusables.advanced-security.secret-scanning-dry-run-results %} @@ -141,7 +141,7 @@ Before defining a custom pattern, you must ensure that you enable secret scannin {% note %} -{% ifversion secret-scanning-enterprise-dry-runs %} +{% ifversion secret-scanning-custom-enterprise-36 %} **Notes:** - At the enterprise level, only the creator of a custom pattern can edit the pattern, and use it in a dry run. - Enterprise owners can only make use of dry runs on repositories that they have access to, and enterprise owners do not necessarily have access to all the organizations or repositories within the enterprise. @@ -158,8 +158,8 @@ Before defining a custom pattern, you must ensure that you enable secret scannin {% data reusables.enterprise-accounts.advanced-security-security-features %} 1. Under "Secret scanning custom patterns", click {% ifversion ghes = 3.2 %}**New custom pattern**{% else %}**New pattern**{% endif %}. {% data reusables.advanced-security.secret-scanning-add-custom-pattern-details %} -{%- ifversion secret-scanning-enterprise-dry-runs %} -1. When you're ready to test your new custom pattern, to identify matches in the repository without creating alerts, click **Save and dry run**. +{%- ifversion secret-scanning-custom-enterprise-36 %} +1. When you're ready to test your new custom pattern, to identify matches in the enterprise without creating alerts, click **Save and dry run**. {% data reusables.advanced-security.secret-scanning-dry-run-select-repos %} {% data reusables.advanced-security.secret-scanning-dry-run-results %} {%- endif %} @@ -175,7 +175,10 @@ When you save a change to a custom pattern, this closes all the {% data variable * For a repository or organization, display the "Security & analysis" settings for the repository or organization where the custom pattern was created. For more information, see "[Defining a custom pattern for a repository](#defining-a-custom-pattern-for-a-repository)" or "[Defining a custom pattern for an organization](#defining-a-custom-pattern-for-an-organization)" above. * For an enterprise, under "Policies" display the "Advanced Security" area, and then click **Security features**. For more information, see "[Defining a custom pattern for an enterprise account](#defining-a-custom-pattern-for-an-enterprise-account)" above. 2. Under "{% data variables.product.prodname_secret_scanning_caps %}", to the right of the custom pattern you want to edit, click {% octicon "pencil" aria-label="The edit icon" %}. -3. When you have reviewed and tested your changes, click **Save changes**. +{%- ifversion secret-scanning-custom-enterprise-36 %} +3. When you're ready to test your edited custom pattern, to identify matches without creating alerts, click **Save and dry run**. +{%- endif %} +4. When you have reviewed and tested your changes, click **Save changes**. {% endif %} ## Removing a custom pattern diff --git a/data/features/secret-scanning-custom-enterprise-35.yml b/data/features/secret-scanning-custom-enterprise-35.yml new file mode 100644 index 0000000000..f26f7b7ba9 --- /dev/null +++ b/data/features/secret-scanning-custom-enterprise-35.yml @@ -0,0 +1,7 @@ +# Issues: changes to custom patterns for secret scanning +# #6367: updates for the "organization level dry runs (Public Beta)" +# #5499: updates for the "repository level dry runs (Public Beta)" +versions: + ghec: '*' + ghes: '>3.4' + ghae: 'issue-6367' diff --git a/data/features/secret-scanning-custom-enterprise-36.yml b/data/features/secret-scanning-custom-enterprise-36.yml new file mode 100644 index 0000000000..e7078a0d37 --- /dev/null +++ b/data/features/secret-scanning-custom-enterprise-36.yml @@ -0,0 +1,7 @@ +# Issues: changes to custom patterns for secret scanning +# #6904: updates for "enterprise account level dry runs (Public Beta)" +# #7297: updates for dry runs on editing patterns (Public Beta) +versions: + ghec: '*' + ghes: '>3.5' + ghae: 'issue-6904' diff --git a/data/features/secret-scanning-enterprise-dry-runs.yml b/data/features/secret-scanning-enterprise-dry-runs.yml deleted file mode 100644 index c600954773..0000000000 --- a/data/features/secret-scanning-enterprise-dry-runs.yml +++ /dev/null @@ -1,6 +0,0 @@ -# Issue #6904 -# Documentation for the "enterprise account level dry runs (Public Beta)" for custom patterns under secret scanning -versions: - ghec: '*' - ghes: '>3.5' - ghae: 'issue-6904' diff --git a/data/features/secret-scanning-org-dry-runs.yml b/data/features/secret-scanning-org-dry-runs.yml deleted file mode 100644 index 5b87beedf6..0000000000 --- a/data/features/secret-scanning-org-dry-runs.yml +++ /dev/null @@ -1,6 +0,0 @@ -# Issue #6367 -# Documentation for the "org level dry runs (Public Beta)" for custom patterns under secret scanning -versions: - ghec: '*' - ghes: '>3.4' - ghae: 'issue-6367' From 2db32c5af5f3c212a1d655d66c6540e26ebcfbda Mon Sep 17 00:00:00 2001 From: docubot <67483024+docubot@users.noreply.github.com> Date: Thu, 16 Jun 2022 18:09:59 -0400 Subject: [PATCH 13/21] New translation batch for ja (#28590) * Add crowdin translations * Run script/i18n/homogenize-frontmatter.js * Run script/i18n/lint-translation-files.js --check rendering * run script/i18n/reset-files-with-broken-liquid-tags.js --language=ja * run script/i18n/reset-known-broken-translation-files.js * Check in ja CSV report Co-authored-by: Grace Park <gracepark@github.com> --- .../deploying-docker-to-azure-app-service.md | 8 +- ...customizing-the-containers-used-by-jobs.md | 530 ++++++++++++++++++ .../actions/hosting-your-own-runners/index.md | 1 + .../viewing-and-updating-dependabot-alerts.md | 36 +- ...ltering-alerts-in-the-security-overview.md | 2 +- .../about-dependency-review.md | 40 +- .../configuring-dependency-review.md | 36 +- ...g-and-authorizing-users-for-github-apps.md | 2 +- .../migrating-oauth-apps-to-github-apps.md | 2 +- .../developers/overview/about-githubs-apis.md | 2 +- .../graphql/guides/using-global-node-ids.md | 2 +- .../graphql/overview/resource-limitations.md | 18 +- .../about-scim-for-organizations.md | 2 +- .../overview/resources-in-the-rest-api.md | 2 +- .../ja-JP/data/features/container-hooks.yml | 7 + .../ghec/graphql_upcoming_changes.public.yml | 4 +- .../graphql_upcoming_changes.public.yml | 4 +- .../enterprise-server/3-2/14.yml | 16 +- .../release-notes/enterprise-server/3-3/9.yml | 18 +- .../release-notes/enterprise-server/3-4/4.yml | 16 +- .../release-notes/enterprise-server/3-5/1.yml | 16 +- .../section-running-jobs-in-a-container.md | 15 +- translations/log/ja-resets.csv | 5 +- 23 files changed, 666 insertions(+), 118 deletions(-) create mode 100644 translations/ja-JP/content/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs.md create mode 100644 translations/ja-JP/data/features/container-hooks.yml diff --git a/translations/ja-JP/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md b/translations/ja-JP/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md index 31c7c70a06..a5bf268c58 100644 --- a/translations/ja-JP/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md +++ b/translations/ja-JP/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md @@ -138,10 +138,10 @@ jobs: - name: Deploy to Azure Web App id: deploy-to-webapp uses: azure/webapps-deploy@0b651ed7546ecfc75024011f76944cb9b381ef1e - with: - app-name: {% raw %}${{ env.AZURE_WEBAPP_NAME }}{% endraw %} - publish-profile: {% raw %}${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}{% endraw %} - images: 'ghcr.io/{% raw %}${{ env.REPO }}{% endraw %}:{% raw %}${{ github.sha }}{% endraw %}' + with: + app-name: {% raw %}${{ env.AZURE_WEBAPP_NAME }}{% endraw %} + publish-profile: {% raw %}${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}{% endraw %} + images: 'ghcr.io/{% raw %}${{ env.REPO }}{% endraw %}:{% raw %}${{ github.sha }}{% endraw %}' ``` ## 追加リソース diff --git a/translations/ja-JP/content/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs.md b/translations/ja-JP/content/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs.md new file mode 100644 index 0000000000..b9eb11036a --- /dev/null +++ b/translations/ja-JP/content/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs.md @@ -0,0 +1,530 @@ +--- +title: Customizing the containers used by jobs +intro: You can customize how your self-hosted runner invokes a container for a job. +versions: + feature: container-hooks +type: reference +miniTocMaxHeadingLevel: 4 +shortTitle: Customize containers used by jobs +--- + +{% note %} + +**Note**: This feature is currently in beta and is subject to change. + +{% endnote %} + +## About container customization + +{% data variables.product.prodname_actions %} allows you to run a job within a container, using the `container:` statement in your workflow file. For more information, see "[Running jobs in a container](/actions/using-jobs/running-jobs-in-a-container)." To process container-based jobs, the self-hosted runner creates a container for each job. + +{% data variables.product.prodname_actions %} supports commands that let you customize the way your containers are created by the self-hosted runner. For example, you can use these commands to manage the containers through Kubernetes or Podman, and you can also customize the `docker run` or `docker create` commands used to invoke the container. The customization commands are run by a script, which is automatically triggered when a specific environment variable is set on the runner. For more information, see "[Triggering the customization script](#triggering-the-customization-script)" below. + +This customization is only available for Linux-based self-hosted runners, and root user access is not required. + +## Container customization commands + +{% data variables.product.prodname_actions %} includes the following commands for container customization: + +- [`prepare_job`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#prepare_job): Called when a job is started. +- [`cleanup_job`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#cleanup_job): Called at the end of a job. +- [`run_container_step`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#run_container_step): Called once for each container action in the job. +- [`run_script_step`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#run_script_step): Runs any step that is not a container action. + +Each of these customization commands must be defined in its own JSON file. The file name must match the command name, with the extension `.json`. For example, the `prepare_job` command is defined in `prepare_job.json`. These JSON files will then be run together on the self-hosted runner, as part of the main `index.js` script. This process is described in more detail in "[Generating the customization script](#generating-the-customization-script)." + +These commands also include configuration arguments, explained below in more detail. + +### `prepare_job` + +The `prepare_job` command is called when a job is started. {% data variables.product.prodname_actions %} passes in any job or service containers the job has. This command will be called if you have any service or job containers in the job. + +{% data variables.product.prodname_actions %} assumes that you will do the following tasks in the `prepare_job` command: + +- Prune anything from previous jobs, if needed. +- Create a network, if needed. +- Pull the job and service containers. +- Start the job container. +- Start the service containers. +- Write to the response file any information that {% data variables.product.prodname_actions %} will need: + - Required: State whether the container is an `alpine` linux container (using the `isAlpine` boolean). + - Optional: Any context fields you want to set on the job context, otherwise they will be unavailable for users to use. For more information, see "[`job` context](/actions/learn-github-actions/contexts#job-context)." +- Return `0` when the health checks have succeeded and the job/service containers are started. + +#### 引数 + +- `jobContainer`: **Optional**. An object containing information about the specified job container. + - `image`: **Required**. A string containing the Docker image. + - `workingDirectory`: **Required**. A string containing the absolute path of the working directory. + - `createOptions`: **Optional**. The optional _create_ options specified in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." + - `environmentVariables`: **Optional**. Sets a map of key environment variables. + - `userMountVolumes`: **Optional**. An array of user mount volumes set in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. + - `systemMountVolumes`: **Required**. An array of mounts to mount into the container, same fields as above. + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. + - `レジストリ` **Optional**. The Docker registry credentials for a private container registry. + - `username`: **Optional**. The username of the registry account. + - `password`: **Optional**. The password to the registry account. + - `serverUrl`: **Optional**. The registry URL. + - `portMappings`: **Optional**. A key value hash of _source:target_ ports to map into the container. +- `services`: **Optional**. An array of service containers to spin up. + - `contextName`: **Required**. The name of the service in the Job context. + - `image`: **Required**. A string containing the Docker image. + - `createOptions`: **Optional**. The optional _create_ options specified in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." + - `environmentVariables`: **Optional**. Sets a map of key environment variables. + - `userMountVolumes`: **Optional**. An array of mounts to mount into the container, same fields as above. + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. + - `レジストリ` **Optional**. The Docker registry credentials for the private container registry. + - `username`: **Optional**. The username of the registry account. + - `password`: **Optional**. The password to the registry account. + - `serverUrl`: **Optional**. The registry URL. + - `portMappings`: **Optional**. A key value hash of _source:target_ ports to map into the container. + +#### Example input + +```json{:copy} +{ + "command": "prepare_job", + "responseFile": "/users/octocat/runner/_work/{guid}.json", + "state": {}, + "args": { + "jobContainer": { + "image": "node:14.16", + "workingDirectory": "/__w/octocat-test2/octocat-test2", + "createOptions": "--cpus 1", + "environmentVariables": { + "NODE_ENV": "development" + }, + "userMountVolumes": [ + { + "sourceVolumePath": "my_docker_volume", + "targetVolumePath": "/volume_mount", + "readOnly": false + } + ], + "systemMountVolumes": [ + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work", + "targetVolumePath": "/__w", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/externals", + "targetVolumePath": "/__e", + "readOnly": true + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp", + "targetVolumePath": "/__w/_temp", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_actions", + "targetVolumePath": "/__w/_actions", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_tool", + "targetVolumePath": "/__w/_tool", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_home", + "targetVolumePath": "/github/home", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_workflow", + "targetVolumePath": "/github/workflow", + "readOnly": false + } + ], + "registry": { + "username": "octocat", + "password": "examplePassword", + "serverUrl": "https://index.docker.io/v1" + }, + "portMappings": { "80": "801" } + }, + "services": [ + { + "contextName": "redis", + "image": "redis", + "createOptions": "--cpus 1", + "environmentVariables": {}, + "userMountVolumes": [], + "portMappings": { "80": "801" }, + "registry": { + "username": "octocat", + "password": "examplePassword", + "serverUrl": "https://index.docker.io/v1" + } + } + ] + } +} +``` + +#### Example output + +This example output is the contents of the `responseFile` defined in the input above. + +```json{:copy} +{ + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "serviceContainers": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "context": { + "container": { + "id": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "network": "example_network_53269bd575972817b43f7733536b200c" + }, + "services": { + "redis": { + "id": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105", + "ports": { + "8080": "8080" + }, + "network": "example_network_53269bd575972817b43f7733536b200c" + } + }, + "isAlpine": true + } +} +``` + +### `cleanup_job` + +The `cleanup_job` command is called at the end of a job. {% data variables.product.prodname_actions %} assumes that you will do the following tasks in the `cleanup_job` command: + +- Stop any running service or job containers (or the equivalent pod). +- Stop the network (if one exists). +- Delete any job or service containers (or the equivalent pod). +- Delete the network (if one exists). +- Cleanup anything else that was created for the job. + +#### 引数 + +No arguments are provided for `cleanup_job`. + +#### Example input + +```json{:copy} +{ + "command": "cleanup_job", + "responseFile": null, + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "serviceContainers": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "args": {} +} +``` + +#### Example output + +No output is expected for `cleanup_job`. + +### `run_container_step` + +The `run_container_step` command is called once for each container action in your job. {% data variables.product.prodname_actions %} assumes that you will do the following tasks in the `run_container_step` command: + +- Pull or build the required container (or fail if you cannot). +- Run the container action and return the exit code of the container. +- Stream any step logs output to stdout and stderr. +- Cleanup the container after it executes. + +#### 引数 + +- `image`: **Optional**. A string containing the docker image. Otherwise a dockerfile must be provided. +- `dockerfile`: **Optional**. A string containing the path to the dockerfile, otherwise an image must be provided. +- `entryPointArgs`: **Optional**. A list containing the entry point args. +- `entryPoint`: **Optional**. The container entry point to use if the default image entrypoint should be overwritten. +- `workingDirectory`: **Required**. A string containing the absolute path of the working directory. +- `createOptions`: **Optional**. The optional _create_ options specified in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." +- `environmentVariables`: **Optional**. Sets a map of key environment variables. +- `prependPath`: **Optional**. An array of additional paths to prepend to the `$PATH` variable. +- `userMountVolumes`: **Optional**. an array of user mount volumes set in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. +- `systemMountVolumes`: **Required**. An array of mounts to mount into the container, using the same fields as above. + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. +- `レジストリ` **Optional**. The Docker registry credentials for a private container registry. + - `username`: **Optional**. The username of the registry account. + - `password`: **Optional**. The password to the registry account. + - `serverUrl`: **Optional**. The registry URL. +- `portMappings`: **Optional**. A key value hash of the _source:target_ ports to map into the container. + +#### Example input for image + +If you're using a Docker image, you can specify the image name in the `"image":` parameter. + +```json{:copy} +{ + "command": "run_container_step", + "responseFile": null, + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "serviceContainers": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "args": { + "image": "node:14.16", + "dockerfile": null, + "entryPointArgs": ["-f", "/dev/null"], + "entryPoint": "tail", + "workingDirectory": "/__w/octocat-test2/octocat-test2", + "createOptions": "--cpus 1", + "environmentVariables": { + "NODE_ENV": "development" + }, + "prependPath": ["/foo/bar", "bar/foo"], + "userMountVolumes": [ + { + "sourceVolumePath": "my_docker_volume", + "targetVolumePath": "/volume_mount", + "readOnly": false + } + ], + "systemMountVolumes": [ + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work", + "targetVolumePath": "/__w", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/externals", + "targetVolumePath": "/__e", + "readOnly": true + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp", + "targetVolumePath": "/__w/_temp", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_actions", + "targetVolumePath": "/__w/_actions", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_tool", + "targetVolumePath": "/__w/_tool", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_home", + "targetVolumePath": "/github/home", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_workflow", + "targetVolumePath": "/github/workflow", + "readOnly": false + } + ], + "registry": null, + "portMappings": { "80": "801" } + } +} +``` + +#### Example input for Dockerfile + +If your container is defined by a Dockerfile, this example demonstrates how to specify the path to a `Dockerfile` in your input, using the `"dockerfile":` parameter. + +```json{:copy} +{ + "command": "run_container_step", + "responseFile": null, + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "services": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "args": { + "image": null, + "dockerfile": "/__w/_actions/foo/dockerfile", + "entryPointArgs": ["hello world"], + "entryPoint": "echo", + "workingDirectory": "/__w/octocat-test2/octocat-test2", + "createOptions": "--cpus 1", + "environmentVariables": { + "NODE_ENV": "development" + }, + "prependPath": ["/foo/bar", "bar/foo"], + "userMountVolumes": [ + { + "sourceVolumePath": "my_docker_volume", + "targetVolumePath": "/volume_mount", + "readOnly": false + } + ], + "systemMountVolumes": [ + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work", + "targetVolumePath": "/__w", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/externals", + "targetVolumePath": "/__e", + "readOnly": true + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp", + "targetVolumePath": "/__w/_temp", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_actions", + "targetVolumePath": "/__w/_actions", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_tool", + "targetVolumePath": "/__w/_tool", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_home", + "targetVolumePath": "/github/home", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_workflow", + "targetVolumePath": "/github/workflow", + "readOnly": false + } + ], + "registry": null, + "portMappings": { "80": "801" } + } +} +``` + +#### Example output + +No output is expected for `run_container_step`. + +### `run_script_step` + +{% data variables.product.prodname_actions %} assumes that you will do the following tasks: + +- Invoke the provided script inside the job container and return the exit code. +- Stream any step log output to stdout and stderr. + +#### 引数 + +- `entryPointArgs`: **Optional**. A list containing the entry point arguments. +- `entryPoint`: **Optional**. The container entry point to use if the default image entrypoint should be overwritten. +- `prependPath`: **Optional**. An array of additional paths to prepend to the `$PATH` variable. +- `workingDirectory`: **Required**. A string containing the absolute path of the working directory. +- `environmentVariables`: **Optional**. Sets a map of key environment variables. + +#### Example input + +```json{:copy} +{ + "command": "run_script_step", + "responseFile": null, + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "serviceContainers": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "args": { + "entryPointArgs": ["-e", "/runner/temp/example.sh"], + "entryPoint": "bash", + "environmentVariables": { + "NODE_ENV": "development" + }, + "prependPath": ["/foo/bar", "bar/foo"], + "workingDirectory": "/__w/octocat-test2/octocat-test2" + } +} +``` + +#### Example output + +No output is expected for `run_script_step`. + +## Generating the customization script + +{% data variables.product.prodname_dotcom %} has created an example repository that demonstrates how to generate customization scripts for Docker and Kubernetes. + +{% note %} + +**Note:** The resulting scripts are available for testing purposes, and you will need to determine whether they are appropriate for your requirements. + +{% endnote %} + +1. Clone the [actions/runner-container-hooks](https://github.com/actions/runner-container-hooks) repository to your self-hosted runner. + +1. The `examples/` directory contains some existing customization commands, each with its own JSON file. You can review these examples and use them as a starting point for your own customization commands. + + - `prepare_job.json` + - `run_script_step.json` + - `run_container_step.json` + +1. Build the npm packages. These commands generate the `index.js` files inside `packages/docker/dist` and `packages/k8s/dist`. + + ```shell + npm install && npm run bootstrap && npm run build-all + ``` + +When the resulting `index.js` is triggered by {% data variables.product.prodname_actions %}, it will run the customization commands defined in the JSON files. To trigger the `index.js`, you will need to add it your `ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER` environment variable, as described in the next section. + +## Triggering the customization script + +The custom script must be located on the runner, but should not be stored in the self-hosted runner application directory. The scripts are executed in the security context of the service account that's running the runner service. + +{% note %} + +**Note**: The triggered script is processed synchronously, so it will block job execution while running. + +{% endnote %} + +The script is automatically executed when the runner has the following environment variable containing an absolute path to the script: + +- `ACTIONS_RUNNER_CONTAINER_HOOK`: The script defined in this environment variable is triggered when a job has been assigned to a runner, but before the job starts running. + +To set this environment variable, you can either add it to the operating system, or add it to a file named `.env` within the self-hosted runner application directory. For example, the following `.env` entry will have the runner automatically run the script at `/Users/octocat/runner/index.js` before each container-based job runs: + +```bash +ACTIONS_RUNNER_CONTAINER_HOOK=/Users/octocat/runner/index.js +``` + +If you want to ensure that your job always runs inside a container, and subsequently always applies your container customizations, you can set the `ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER` variable on the self hosted runner to `true`. This will fail jobs that do not specify a job container. + +## トラブルシューティング + +### No timeout setting + +There is currently no timeout setting available for the script executed by `ACTIONS_RUNNER_CONTAINER_HOOK`. As a result, you could consider adding timeout handling to your script. + +### Reviewing the workflow run log + +To confirm whether your scripts are executing, you can review the logs for that job. For more information on checking the logs, see "[Viewing logs to diagnose failures](/actions/monitoring-and-troubleshooting-workflows/using-workflow-run-logs#viewing-logs-to-diagnose-failures)." diff --git a/translations/ja-JP/content/actions/hosting-your-own-runners/index.md b/translations/ja-JP/content/actions/hosting-your-own-runners/index.md index 4b6e65da8d..4bc14f1fda 100644 --- a/translations/ja-JP/content/actions/hosting-your-own-runners/index.md +++ b/translations/ja-JP/content/actions/hosting-your-own-runners/index.md @@ -20,6 +20,7 @@ children: - /adding-self-hosted-runners - /autoscaling-with-self-hosted-runners - /running-scripts-before-or-after-a-job + - /customizing-the-containers-used-by-jobs - /configuring-the-self-hosted-runner-application-as-a-service - /using-a-proxy-server-with-self-hosted-runners - /using-labels-with-self-hosted-runners diff --git a/translations/ja-JP/content/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts.md b/translations/ja-JP/content/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts.md index bfabb9ce08..0abc635411 100644 --- a/translations/ja-JP/content/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts.md +++ b/translations/ja-JP/content/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts.md @@ -116,29 +116,29 @@ topics: 1. 依存関係を更新して脆弱性を解決する準備ができたら、プルリクエストをマージしてください。 {% ifversion fpt or ghec or ghes > 3.2 %} - Each pull request raised by {% data variables.product.prodname_dependabot %} includes information on commands you can use to control {% data variables.product.prodname_dependabot %}. For more information, see "[Managing pull requests for dependency updates](/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/managing-pull-requests-for-dependency-updates#managing-dependabot-pull-requests-with-comment-commands)." + {% data variables.product.prodname_dependabot %}が発行したそれぞれのPull Requestには、{% data variables.product.prodname_dependabot %}の制御に利用できるコマンドに関する情報が含まれています。 詳しい情報については「[依存関係の更新のためのPull Requestの管理](/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/managing-pull-requests-for-dependency-updates#managing-dependabot-pull-requests-with-comment-commands)」を参照してください。 {% endif %} ## {% data variables.product.prodname_dependabot_alerts %}の却下 {% tip %} -**Tip:** You can only dismiss open alerts. +**参考:** 却下できるのはオープンなアラートのみです。 {% endtip %} 依存関係のアップグレードのための広汎な作業をスケジュールしていたり、アラートを修正する必要はないと判断したりした場合、アラートを却下できます。 すでに評価済みのアラートを却下すると、新しいアラートが現れたときにトリアージしやすくなります。 -1. アラートの詳細を表示させます。 For more information, see "[Viewing vulnerable dependencies](#viewing-dependabot-alerts)" (above). -1. Select the "Dismiss" dropdown, and click a reason for dismissing the alert.{% ifversion reopen-dependabot-alerts %} Unfixed dismissed alerts can be reopened later.{% endif %} ![[Dismiss] ドロップダウンでアラートを却下する理由を選択する](/assets/images/help/repository/dependabot-alert-dismiss-drop-down-ungrouped.png) +1. アラートの詳細を表示させます。 詳しい情報については上の「[脆弱性のある依存関係の表示](#viewing-dependabot-alerts)」を参照してください。 +1. "Dismiss(却下)"ドロップダウンを選択し、アラートを却下する理由をクリックしてください。{% ifversion reopen-dependabot-alerts %}却下された未修正のアラートは、後で再度オープンできます。{% endif %} ![[Dismiss] ドロップダウンでアラートを却下する理由を選択する](/assets/images/help/repository/dependabot-alert-dismiss-drop-down-ungrouped.png) {% ifversion dependabot-bulk-alerts %} ### 複数のアラートを一度に却下する -1. View the open {% data variables.product.prodname_dependabot_alerts %}. For more information, see "[Viewing {% data variables.product.prodname_dependabot_alerts %}](/en/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts#viewing-dependabot-alerts)". -2. Optionally, filter the list of alerts by selecting a dropdown menu, then clicking the filter that you would like to apply. 検索バーにフィルタを入力することもできます。 -3. To the left of each alert title, select the alerts that you want to dismiss. ![Screenshot of open alerts with checkboxes emphasized](/assets/images/help/graphs/select-multiple-alerts.png) -4. Optionally, at the top of the list of alerts, select all alerts on the page. ![Screenshot of all open alerts selected](/assets/images/help/graphs/select-all-alerts.png) -5. Select the "Dismiss alerts" dropdown, and click a reason for dismissing the alerts. ![Screenshot of open alerts page with "Dismiss alerts" drop-down emphasized](/assets/images/help/graphs/dismiss-multiple-alerts.png) +1. オープンな{% data variables.product.prodname_dependabot_alerts %}を表示させます。 詳しい情報については「[{% data variables.product.prodname_dependabot_alerts %}の表示](/en/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts#viewing-dependabot-alerts)」を参照してください。 +2. あるいは、ドロップダウンメニューを選択し、適用したいフィルタをクリックして、アラートのリストをフィルタリングしてください。 検索バーにフィルタを入力することもできます。 +3. それぞれのアラートのタイトルの左で、却下したいアラートを選択してください。 ![チェックボックスが強調されたオープンなアラートのスクリーンショット](/assets/images/help/graphs/select-multiple-alerts.png) +4. あるいは、アラートのリストの上部で、ページ上のアラートをすべて選択してください。 ![すべてのオープンなアラートが選択されたスクリーンショット](/assets/images/help/graphs/select-all-alerts.png) +5. "Dismiss alerts(アラートを却下)"ドロップダウンを選択し、アラートを却下する理由をクリックしてください。 !["Dismiss alerts"ドロップダウンが強調されたオープンなアラートページのスクリーンショット](/assets/images/help/graphs/dismiss-multiple-alerts.png) {% endif %} @@ -148,27 +148,27 @@ topics: {% tip %} -**Tip:** You can only reopen alerts that have been previously dismissed. Closed alerts that have already been fixed cannot be reopened. +**参考:** 再オープンできるアラートは、以前に却下したものだけです。 既に修復済みのクローズされたアラートは、再オープンできません。 {% endtip %} {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-security %} {% data reusables.repositories.sidebar-dependabot-alerts %} -1. To just view closed alerts, click **Closed**.{% ifversion dependabot-bulk-alerts %} ![Screenshot showing the "Closed" option](/assets/images/help/repository/dependabot-alerts-closed-checkbox.png){% else %} +1. クローズされたアラートを表示だけするなら、**Closed(クローズ済み)**をクリックしてください。{% ifversion dependabot-bulk-alerts %} ![Screenshot showing the "Closed" option](/assets/images/help/repository/dependabot-alerts-closed-checkbox.png){% else %} ![Screenshot showing the "Closed" option](/assets/images/help/repository/dependabot-alerts-closed.png){% endif %} -1. Click the alert that you would like to view or update.{% ifversion dependabot-bulk-alerts %} ![Screenshot showing a highlighted dependabot alert](/assets/images/help/repository/dependabot-alerts-select-closed-alert-checkbox.png){% else %} +1. 表示もしくは更新したいアラートをクリックしてください。{% ifversion dependabot-bulk-alerts %} ![Screenshot showing a highlighted dependabot alert](/assets/images/help/repository/dependabot-alerts-select-closed-alert-checkbox.png){% else %} ![Screenshot showing a highlighted dependabot alert](/assets/images/help/repository/dependabot-alerts-select-closed-alert.png){% endif %} -2. あるいはアラートが却下されていて、再度オープンしたい場合は、**Reopen(再オープン)**をクリックしてください。 Alerts that have already been fixed cannot be reopened. !["Reopen"ボタンを表示しているスクリーンショット](/assets/images/help/repository/reopen-dismissed-alert.png) +2. あるいはアラートが却下されていて、再度オープンしたい場合は、**Reopen(再オープン)**をクリックしてください。 既に修正済みのアラートは再オープンできません。 !["Reopen"ボタンを表示しているスクリーンショット](/assets/images/help/repository/reopen-dismissed-alert.png) {% endif %} {% ifversion dependabot-bulk-alerts %} -### Reopening multiple alerts at once +### 複数のアラートを一度に再オープンする -1. View the closed {% data variables.product.prodname_dependabot_alerts %}. For more information, see "[Viewing and updating closed alerts](/en/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts#viewing-and-updating-closed-alerts)" (above). -2. To the left of each alert title, select the alerts that you want to reopen. ![Screenshot of closed alerts with checkboxes emphasized](/assets/images/help/repository/dependabot-alerts-open-checkbox.png) -3. Optionally, at the top of the list of alerts, select all closed alerts on the page. ![Screenshot of closed alerts with all alerts selected](/assets/images/help/graphs/select-all-closed-alerts.png) -4. Click **Reopen** to reopen the alerts. Alerts that have already been fixed cannot be reopened. ![Screenshot of closed alerts with "Reopen" button emphasized](/assets/images/help/graphs/reopen-multiple-alerts.png) +1. クローズされた{% data variables.product.prodname_dependabot_alerts %}を表示してください。 詳しい情報については上の「[クローズされたアラートの表示と更新](/en/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts#viewing-and-updating-closed-alerts)」を参照してください。 +2. それぞれのアラートのタイトルの左で、再オープンしたいアラートを選択してください。 ![チェックボックスが強調されたクローズ済みアラートのスクリーンショット](/assets/images/help/repository/dependabot-alerts-open-checkbox.png) +3. あるいは、アラートのリストの上部で、ページ上のクローズされたアラートをすべて選択してください。 ![すべてのアラートが選択されたクローズ済みアラートのスクリーンショット](/assets/images/help/graphs/select-all-closed-alerts.png) +4. ** Reopen(再オープン)**をクリックして、アラートを再オープンしてください。 既に修正済みのアラートは再オープンできません。 !["Reopen"ボタンが強調されたクローズ済みアラートのスクリーンショット](/assets/images/help/graphs/reopen-multiple-alerts.png) {% endif %} diff --git a/translations/ja-JP/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md b/translations/ja-JP/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md index 8a08aa930f..c1d8039865 100644 --- a/translations/ja-JP/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md +++ b/translations/ja-JP/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md @@ -23,7 +23,7 @@ shortTitle: アラートのフィルタリング ## セキュリティの概要のフィルタリングについて -アラートのリスクレベル、アラートの種類、機能の有効化の状況といった様々な要素に基づいて焦点を絞り込むために、セキュリティの概要でフィルタを利用できます。 特定のビューや、分析しているのがOrganization、Team、リポジトリのレベルなのかといったことに応じて、様々なフィルタが利用できます。 +アラートのリスクレベル、アラートの種類、機能の有効化の状況といった様々な要素に基づいて焦点を絞り込むために、セキュリティの概要でフィルタを利用できます。 Different filters are available depending on the specific view and whether your analysis is at the organization, team or repository level. ## リポジトリでフィルタリング diff --git a/translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md b/translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md index 11335e5ea5..0d537c504e 100644 --- a/translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md +++ b/translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md @@ -1,8 +1,8 @@ --- -title: 依存関係のレビューについて -intro: 依存関係のレビューは、脆弱性のある依存関係を自分の環境に持ち込んでしまう前に捉え、ライセンス、依存物、依存関係の期間に関する情報を提供します。 +title: About dependency review +intro: 'Dependency review lets you catch vulnerable dependencies before you introduce them to your environment, and provides information on license, dependents, and age of dependencies.' product: '{% data reusables.gated-features.dependency-review %}' -shortTitle: 依存関係のレビュー +shortTitle: Dependency review versions: fpt: '*' ghes: '>= 3.2' @@ -21,47 +21,47 @@ redirect_from: {% data reusables.dependency-review.beta %} -## 依存関係のレビューについて +## About dependency review -{% data reusables.dependency-review.feature-overview %} +{% data reusables.dependency-review.feature-overview %} -プルリクエストがリポジトリのデフォルトブランチを対象とし、パッケージマニフェストまたはロックファイルへの変更が含まれている場合は、依存関係のレビューを表示して、何が変更されたかを確認できます。 依存関係のレビューには、ロックファイル内の間接的な依存関係への変更の詳細が含まれ、追加または更新された依存関係のいずれかに既知の脆弱性が含まれているかどうかが示されます。 +If a pull request targets your repository's default branch and contains changes to package manifests or lock files, you can display a dependency review to see what has changed. The dependency review includes details of changes to indirect dependencies in lock files, and it tells you if any of the added or updated dependencies contain known vulnerabilities. -時に、マニフェスト内の 1 つの依存関係のバージョンを更新して、プルリクエストを生成することがあります。 ただし、この直接依存関係の更新バージョンでも依存関係が更新されている場合は、プルリクエストに予想よりも多くの変更が加えられている可能性があります。 各マニフェストとロックファイルの依存関係のレビューにより、何が変更されたか、新しい依存関係バージョンのいずれかに既知の脆弱性が含まれているかどうかを簡単に確認できます。 +Sometimes you might just want to update the version of one dependency in a manifest and generate a pull request. However, if the updated version of this direct dependency also has updated dependencies, your pull request may have more changes than you expected. The dependency review for each manifest and lock file provides an easy way to see what has changed, and whether any of the new dependency versions contain known vulnerabilities. -プルリクエストで依存関係のレビューを確認し、脆弱性としてフラグが付けられている依存関係を変更することで、プロジェクトに脆弱性が追加されるのを防ぐことができます。 依存関係のレビューの動作に関する詳しい情報については「[Pull Request中の依存関係の変更のレビュー](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request)」を参照してください。 +By checking the dependency reviews in a pull request, and changing any dependencies that are flagged as vulnerable, you can avoid vulnerabilities being added to your project. For more information about how dependency review works, see "[Reviewing dependency changes in a pull request](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request)." -依存関係レビューの設定に関する詳しい情報については「[依存関係レビューの設定](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review)」を参照してください。 +For more information about configuring dependency review, see "[Configuring dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review)." -{% data variables.product.prodname_dependabot_alerts %} は、すでに依存関係にある脆弱性を検出しますが、あとで修正するよりも、潜在的な問題が持ち込まれることを回避する方がはるかに良いです。 {% data variables.product.prodname_dependabot_alerts %}に関する詳しい情報については「[{% data variables.product.prodname_dependabot_alerts %}について](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies#dependabot-alerts-for-vulnerable-dependencies)」を参照してください。 +{% data variables.product.prodname_dependabot_alerts %} will find vulnerabilities that are already in your dependencies, but it's much better to avoid introducing potential problems than to fix problems at a later date. For more information about {% data variables.product.prodname_dependabot_alerts %}, see "[About {% data variables.product.prodname_dependabot_alerts %}](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies#dependabot-alerts-for-vulnerable-dependencies)." -依存関係のレビューは、依存関係グラフと同じ言語とパッケージ管理エコシステムをサポートしています。 詳しい情報については、「[依存関係グラフについて](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems)」を参照してください。 +Dependency review supports the same languages and package management ecosystems as the dependency graph. For more information, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems)." -{% data variables.product.product_name %}で利用できるサプライチェーンの機能に関する詳しい情報については「[サプライチェーンのセキュリティについて](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-supply-chain-security)」を参照してください。 +For more information on supply chain features available on {% data variables.product.product_name %}, see "[About supply chain security](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-supply-chain-security)." {% ifversion ghec or ghes %} -## 依存関係レビューの有効化 +## Enabling dependency review -依存関係レビューの機能は、依存関係グラフを有効化すると利用できるようになります。 詳しい情報については{% ifversion ghec %}「[依存関係グラフの有効化](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph#enabling-the-dependency-graph)」{% elsif ghes %}「[Enterpriseでの依存関係グラフの有効化](/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise)」{% endif %}を参照してください。 +The dependency review feature becomes available when you enable the dependency graph. For more information, see "{% ifversion ghec %}[Enabling the dependency graph](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph#enabling-the-dependency-graph){% elsif ghes %}[Enabling the dependency graph for your enterprise](/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise){% endif %}." {% endif %} {% ifversion fpt or ghec or ghes > 3.5 or ghae-issue-6396 %} -## 依存関係レビューの施行 +## Dependency review enforcement {% data reusables.dependency-review.dependency-review-action-beta-note %} The action is available for all {% ifversion fpt or ghec %}public repositories, as well as private {% endif %}repositories that have {% data variables.product.prodname_GH_advanced_security %} enabled. -You can use the {% data variables.product.prodname_dependency_review_action %} in your repository to enforce dependency reviews on your pull requests. このアクションは、Pull Request中のパッケージバージョンの変更によってもたらされる依存関係の脆弱なバージョンをスキャンし、関連するセキュリティ脆弱性について警告してくれます。 これによって、Pull Requestで何が変更されるかが見えやすくなり、リポジトリに脆弱性が追加されることを避けやすくなります。 詳しい情報については[`dependency-review-action`](https://github.com/actions/dependency-review-action)を参照してください。 +You can use the {% data variables.product.prodname_dependency_review_action %} in your repository to enforce dependency reviews on your pull requests. The action scans for vulnerable versions of dependencies introduced by package version changes in pull requests, and warns you about the associated security vulnerabilities. This gives you better visibility of what's changing in a pull request, and helps prevent vulnerabilities being added to your repository. For more information, see [`dependency-review-action`](https://github.com/actions/dependency-review-action). -![依存関係レビューアクションの例](/assets/images/help/graphs/dependency-review-action.png) +![Dependency review action example](/assets/images/help/graphs/dependency-review-action.png) -By default, the {% data variables.product.prodname_dependency_review_action %} check will fail if it discovers any vulnerable packages. A failed check blocks a pull request from being merged when the repository owner requires the dependency review check to pass. 詳しい情報については、「[保護されたブランチについて](/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#require-status-checks-before-merging)」を参照してください。 +By default, the {% data variables.product.prodname_dependency_review_action %} check will fail if it discovers any vulnerable packages. A failed check blocks a pull request from being merged when the repository owner requires the dependency review check to pass. For more information, see "[About protected branches](/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#require-status-checks-before-merging)." -このアクションはDependency Review REST APIを使ってベースコミットとheadコミット間の依存関係の変化のdiffを取得します。 Dependency Review API を使って、リポジトリでの任意の2つのコミット間の脆弱性のデータを含む依存関係の変化のdiffを取ることができます。 詳しい情報については「[依存関係レビュー](/rest/reference/dependency-graph#dependency-review)」を参照してください。 +The action uses the Dependency Review REST API to get the diff of dependency changes between the base commit and head commit. You can use the Dependency Review API to get the diff of dependency changes, including vulnerability data, between any two commits on a repository. For more information, see "[Dependency review](/rest/reference/dependency-graph#dependency-review)." {% ifversion dependency-review-action-configuration %} -You can configure the {% data variables.product.prodname_dependency_review_action %} to better suit your needs. For example, you can specify the severity level that will make the action fail, or set an allow or deny list for licenses to scan. For more information, see "[Configuring dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review#configuring-the-dependency-review-github-action)." +You can configure the {% data variables.product.prodname_dependency_review_action %} to better suit your needs. For example, you can specify the severity level that will make the action fail, or set an allow or deny list for licenses to scan. For more information, see "[Configuring dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review#configuring-the-dependency-review-github-action)." {% endif %} {% endif %} diff --git a/translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md b/translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md index e033c6895f..65351d2506 100644 --- a/translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md +++ b/translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md @@ -49,26 +49,26 @@ topics: {% endif %} {% ifversion dependency-review-action-configuration %} -## Configuring the {% data variables.product.prodname_dependency_review_action %} +## {% data variables.product.prodname_dependency_review_action %}の設定 {% data reusables.dependency-review.dependency-review-action-beta-note %} {% data reusables.dependency-review.dependency-review-action-overview %} -The following configuration options are available. +以下の設定オプションが利用できます。 -| オプション | 必須 | 使い方 | -| ------------------ | -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `fail-on-severity` | 任意 | Defines the threshold for level of severity (`low`, `moderate`, `high`, `critical`).</br>The action will fail on any pull requests that introduce vulnerabilities of the specified severity level or higher. | -| `allow-licenses` | 任意 | Contains a list of allowed licenses. You can find the possible values for this parameter in the [Licenses](/rest/licenses) page of the API documentation.</br>The action will fail on pull requests that introduce dependencies with licenses that do not match the list. | -| `deny-licenses` | 任意 | Contains a list of prohibited licenses. You can find the possible values for this parameter in the [Licenses](/rest/licenses) page of the API documentation.</br>The action will fail on pull requests that introduce dependencies with licenses that match the list. | +| オプション | 必須 | 使い方 | +| ------------------ | -- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `fail-on-severity` | 任意 | 重要度(`low`、`moderate`、`high`、`critical`)の閾値を定義します。</br>指定された重要度以上の脆弱性を導入するPull Requestについて、このアクションは失敗します。 | +| `allow-licenses` | 任意 | 許可されているライセンスのリストを含みます。 このパラメータで利用できる値は、APIドキュメンテーションの[Licenses](/rest/licenses)ページにあります。</br>このリストにマッチしないライセンスを持つ依存関係を導入するPull Requestについて、このアクションは失敗します。 | +| `deny-licenses` | 任意 | 禁じられているライセンスのリストを含みます。 このパラメータで利用できる値は、APIドキュメンテーションの[Licenses](/rest/licenses)ページにあります。</br>このリストにマッチするライセンスを持つ依存関係を導入するPull Requestについて、このアクションは失敗します。 | {% tip %} -**Tip:** The `allow-licenses` and `deny-licenses` options are mutually exclusive. +**参考:** `allow-licenses`及び`deny-licenses`オプションは、相互排他です。 {% endtip %} -This {% data variables.product.prodname_dependency_review_action %} example file illustrates how you can use these configuration options. +この{% data variables.product.prodname_dependency_review_action %}のサンプルファイルは、これらの設定オプションの使い方を示しています。 ```yaml{:copy} name: 'Dependency Review' @@ -86,17 +86,17 @@ jobs: - name: Dependency Review uses: actions/dependency-review-action@v2 with: - # Possible values: "critical", "high", "moderate", "low" + # 取り得る値: "critical", "high", "moderate", "low" fail-on-severity: critical - # You can only can only include one of these two options: `allow-licenses` and `deny-licences` - # ([String]). Only allow these licenses (optional) - # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses - # allow-licenses: GPL-3.0, BSD-3-Clause, MIT + # この2つの選択肢のいずれかだけを含めることができる: `allow-licenses` and `deny-licences` + # ([String]). これらのライセンスだけを許可 (オプション) + # 取り得る値: https://docs.github.com/en/rest/licensesからの任意の`spdx_id`値 + # 許可ライセンス: GPL-3.0, BSD-3-Clause, MIT - # ([String]). Block the pull request on these licenses (optional) - # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses - # deny-licenses: LGPL-2.0, BSD-2-Clause + # ([String]). これらのライセンスでPull Requestはブロック (オプション) + # 取り得る値: https://docs.github.com/en/rest/licensesからの任意の`spdx_id`値 + # 拒否ライセンス: LGPL-2.0, BSD-2-Clause ``` -For further details about the configuration options, see [`dependency-review-action`](https://github.com/actions/dependency-review-action#readme). +これらの設定オプションに関する詳細については[`dependency-review-action`](https://github.com/actions/dependency-review-action#readme)を参照してください。 {% endif %} diff --git a/translations/ja-JP/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md b/translations/ja-JP/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md index a310687720..b8d118146f 100644 --- a/translations/ja-JP/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md +++ b/translations/ja-JP/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md @@ -159,7 +159,7 @@ curl -H "Authorization: token OAUTH-TOKEN" {% data variables.product.api_url_pre ## ユーザからサーバーへのリクエスト -While most of your API インタラクションのほとんどは、サーバーからサーバーへのインストールアクセストークンを用いて行われますが、一部のエンドポイントでは、ユーザアクセストークンを使用し、API 経由でアクションを実行できます。 [GraphQL v4]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql) または [REST v3](/rest) エンドポイントを使用して、アプリケーションは次のリクエストを行うことができます。 +While most of your API インタラクションのほとんどは、サーバーからサーバーへのインストールアクセストークンを用いて行われますが、一部のエンドポイントでは、ユーザアクセストークンを使用し、API 経由でアクションを実行できます。 Your app can make the following requests using [GraphQL]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql) or [REST](/rest) endpoints. ### 対応しているエンドポイント diff --git a/translations/ja-JP/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md b/translations/ja-JP/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md index c50c580dbb..78be47a177 100644 --- a/translations/ja-JP/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md +++ b/translations/ja-JP/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md @@ -52,7 +52,7 @@ We recommend reviewing the list of API endpoints you need as early as possible. ### Design to stay within API rate limits -GitHub Apps use [sliding rules for rate limits](/apps/building-github-apps/understanding-rate-limits-for-github-apps/), which can increase based on the number of repositories and users in the organization. A GitHub App can also make use of [conditional requests](/rest/overview/resources-in-the-rest-api#conditional-requests) or consolidate requests by using the [GraphQL API V4]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). +GitHub Apps use [sliding rules for rate limits](/apps/building-github-apps/understanding-rate-limits-for-github-apps/), which can increase based on the number of repositories and users in the organization. A GitHub App can also make use of [conditional requests](/rest/overview/resources-in-the-rest-api#conditional-requests) or consolidate requests by using the [GraphQL API]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). ### Register a new GitHub App diff --git a/translations/ja-JP/content/developers/overview/about-githubs-apis.md b/translations/ja-JP/content/developers/overview/about-githubs-apis.md index ac464ccfc7..994680acfc 100644 --- a/translations/ja-JP/content/developers/overview/about-githubs-apis.md +++ b/translations/ja-JP/content/developers/overview/about-githubs-apis.md @@ -14,7 +14,7 @@ topics: - API --- -GitHub APIには、[REST API](/rest)と[GraphQL API]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql)という2つの安定バージョンがあります。 REST APIを使う際には、[`Accept`ヘッダを介してv3をリクエスト](/v3/media/#request-specific-version)することをおすすめします。 GraphQL APIの利用に関する情報については[v4のドキュメント]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql)を参照してください。 +GitHub APIには、[REST API](/rest)と[GraphQL API]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql)という2つの安定バージョンがあります。 ## 非推奨のバージョン diff --git a/translations/ja-JP/content/graphql/guides/using-global-node-ids.md b/translations/ja-JP/content/graphql/guides/using-global-node-ids.md index 0add270002..878b0efde8 100644 --- a/translations/ja-JP/content/graphql/guides/using-global-node-ids.md +++ b/translations/ja-JP/content/graphql/guides/using-global-node-ids.md @@ -12,7 +12,7 @@ topics: - API --- -GitHubのほとんどのオブジェクト(ユーザ、Issue、プルリクエストなど)には、REST APIを使っても、GraphQL APIを使ってもアクセスできます。 REST API内から多くのオブジェクトの**グローバルノードID**を見つけ、それらのIDをGraphQLの操作で利用できます。 詳しい情報については「[REST API v3リソース内のGraphQL API v4ノードIDのプレビュー](https://developer.github.com/changes/2017-12-19-graphql-node-id/)」を参照してください。 +GitHubのほとんどのオブジェクト(ユーザ、Issue、プルリクエストなど)には、REST APIを使っても、GraphQL APIを使ってもアクセスできます。 REST API内から多くのオブジェクトの**グローバルノードID**を見つけ、それらのIDをGraphQLの操作で利用できます。 For more information, see "[Preview GraphQL API Node IDs in REST API resources](https://developer.github.com/changes/2017-12-19-graphql-node-id/)." {% note %} diff --git a/translations/ja-JP/content/graphql/overview/resource-limitations.md b/translations/ja-JP/content/graphql/overview/resource-limitations.md index f94b595dde..e1f0cbae39 100644 --- a/translations/ja-JP/content/graphql/overview/resource-limitations.md +++ b/translations/ja-JP/content/graphql/overview/resource-limitations.md @@ -14,7 +14,7 @@ topics: ## ノードの制限 -[スキーマ](/graphql/guides/introduction-to-graphql#schema)検証をパスするためには、すべてのGraphQL API v4の[呼び出し](/graphql/guides/forming-calls-with-graphql)が以下の標準を満す必要があります。 +To pass [schema](/graphql/guides/introduction-to-graphql#schema) validation, all GraphQL API [calls](/graphql/guides/forming-calls-with-graphql) must meet these standards: * クライアントはすべての[コネクション](/graphql/guides/introduction-to-graphql#connection)で引数として`first`もしくは`last`を渡さなければなりません。 * `first`及び`last`の値は1から100の間でなければなりません。 @@ -130,30 +130,30 @@ topics: ## レート制限 -GraphQL API v4 の制限は、REST API v3 の[レート制限](/rest/overview/resources-in-the-rest-api#rate-limiting)とは異なります。 +The GraphQL API limit is different from the REST API's [rate limits](/rest/overview/resources-in-the-rest-api#rate-limiting). APIのレート制限が異なっているのはなぜでしょうか? [GraphQL](/graphql)では、一つのGraphQLの呼び出しで[複数のRESTの呼び出し](/graphql/guides/migrating-from-rest-to-graphql)を置き換えることができます。 単一の複雑なGraphQLの呼び出しが、数千のRESTリクエストと等価なこともあります。 単一の GraphQL 呼び出しは REST API レート制限を大幅に下回りますが、クエリはGitHub のサーバーが演算するのと同等の負荷になる可能性があります。 -クエリのサーバーにとってのコストを正確に表すために、GraphQL API v4は呼び出しの**レート制限スコア**を正規化されたポイントのスケールに基づいて計算します。 クエリのスコアは、親のコネクションやその子のfirst及びlast引数を計算に入れます。 +To accurately represent the server cost of a query, the GraphQL API calculates a call's **rate limit score** based on a normalized scale of points. クエリのスコアは、親のコネクションやその子のfirst及びlast引数を計算に入れます。 * この式は、MySQLやElasticSearch、GitといったGitHubのシステムの潜在的な負荷を事前計算するために、親のコネクション及びその子の`first`及び`last`引数を使います。 * 新しいコネクションはそれぞれ独自のポイント値を持ちます。 ポイントは呼び出しからの他のポイントと組み合わされて、全体としてのレート制限スコアになります。 -GraphQL API v4のレート制限は、**1時間あたり5,000ポイント**です。 +The GraphQL API rate limit is **5,000 points per hour**. -1時間あたり5,000ポイントは、1時間あたり5,000回の呼び出しとは同じではないことに注意してください。GraphQL API v4とREST API v3は、異なるレート制限を使います。 +Note that 5,000 points per hour is not the same as 5,000 calls per hour: the GraphQL API and REST API use different rate limits. {% note %} -**ノート**: 現在の式とレート制限は、開発者によるGraphQL API v4の利用の様子を観察するにつれて、変更される可能性があります。 +**Note**: The current formula and rate limit are subject to change as we observe how developers use the GraphQL API. {% endnote %} ### 呼び出しのレート制限のステータスを返す -REST API v3 では、返された HTTP ヘッダを[調べる](/rest/overview/resources-in-the-rest-api#rate-limiting)ことにより、レート制限のステータスを確認できます。 +With the REST API, you can check the rate limit status by [inspecting](/rest/overview/resources-in-the-rest-api#rate-limiting) the returned HTTP headers. -GraphQL API v4では、`rateLimit`オブジェクトのフィールドに対してクエリを行うことで、レート制限のステータスを調べることができます。 +With the GraphQL API, you can check the rate limit status by querying fields on the `rateLimit` object: ```graphql query { @@ -186,7 +186,7 @@ query { {% note %} -**ノート**: GraphQL API v4に対する呼び出しの最小コストは**1**で、これは単一のリクエストを表します。 +**Note**: The minimum cost of a call to the GraphQL API is **1**, representing a single request. {% endnote %} diff --git a/translations/ja-JP/content/organizations/managing-saml-single-sign-on-for-your-organization/about-scim-for-organizations.md b/translations/ja-JP/content/organizations/managing-saml-single-sign-on-for-your-organization/about-scim-for-organizations.md index b913025d87..3c351e1ba5 100644 --- a/translations/ja-JP/content/organizations/managing-saml-single-sign-on-for-your-organization/about-scim-for-organizations.md +++ b/translations/ja-JP/content/organizations/managing-saml-single-sign-on-for-your-organization/about-scim-for-organizations.md @@ -20,7 +20,7 @@ Organizationが[SAML SSO](/articles/about-identity-and-access-management-with-sa {% data reusables.scim.enterprise-account-scim %} -SCIM を実装せずに SAML SSO を使った場合、自動のプロビジョニング解除は行われません。 Organization のメンバーのアクセスが ldP から削除された後、セッションの有効期限が切れても、そのメンバーは Organization から自動的には削除されません。 認証済みのトークンにより、セッションが期限切れになった後も Organization へのアクセスが許可されます。 SCIMが疲れていないなら、メンバーのアクセスを完全に削除するためには、OrganizationのオーナーはメンバーのアクセスをIdPで削除し、手動で{% data variables.product.prodname_dotcom %}上のOrganizationからそのメンバーを削除しなければなりません。 +SCIM を実装せずに SAML SSO を使った場合、自動のプロビジョニング解除は行われません。 Organization のメンバーのアクセスが ldP から削除された後、セッションの有効期限が切れても、そのメンバーは Organization から自動的には削除されません。 認証済みのトークンにより、セッションが期限切れになった後も Organization へのアクセスが許可されます。 SCIMが使用されていないなら、メンバーのアクセスを完全に削除するためには、OrganizationのオーナーはメンバーのアクセスをIdPで削除し、手動で{% data variables.product.prodname_dotcom %}上のOrganizationからそのメンバーを削除しなければなりません。 {% data reusables.scim.changes-should-come-from-idp %} diff --git a/translations/ja-JP/content/rest/overview/resources-in-the-rest-api.md b/translations/ja-JP/content/rest/overview/resources-in-the-rest-api.md index 38df6d8b70..fe21669b37 100644 --- a/translations/ja-JP/content/rest/overview/resources-in-the-rest-api.md +++ b/translations/ja-JP/content/rest/overview/resources-in-the-rest-api.md @@ -24,7 +24,7 @@ topics: {% ifversion fpt or ghec %} -GitHub の GraphQL API についての情報は、[v4 ドキュメント]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql)を参照してください。 GraphQL への移行についての情報は、「[REST から移行する]({% ifversion ghec%}/free-pro-team@latest{% endif %}/graphql/guides/migrating-from-rest-to-graphql)」を参照してください。 +For information about GitHub's GraphQL API, see the [documentation]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). GraphQL への移行についての情報は、「[REST から移行する]({% ifversion ghec%}/free-pro-team@latest{% endif %}/graphql/guides/migrating-from-rest-to-graphql)」を参照してください。 {% endif %} diff --git a/translations/ja-JP/data/features/container-hooks.yml b/translations/ja-JP/data/features/container-hooks.yml new file mode 100644 index 0000000000..145f5514b5 --- /dev/null +++ b/translations/ja-JP/data/features/container-hooks.yml @@ -0,0 +1,7 @@ +--- +#Reference: #7070 +#Actions Runner Container Hooks +versions: + fpt: '*' + ghec: '*' + ghae: 'issue-7070' diff --git a/translations/ja-JP/data/graphql/ghec/graphql_upcoming_changes.public.yml b/translations/ja-JP/data/graphql/ghec/graphql_upcoming_changes.public.yml index 70081c302d..c5d182f1d4 100644 --- a/translations/ja-JP/data/graphql/ghec/graphql_upcoming_changes.public.yml +++ b/translations/ja-JP/data/graphql/ghec/graphql_upcoming_changes.public.yml @@ -100,8 +100,8 @@ upcoming_changes: owner: cheshire137 - location: DependencyGraphDependency.packageLabel - description: '`packageLabel` will be removed. Use normalized `packageName` field instead.' - reason: '`packageLabel` will be removed.' + description: '`packageLabel`は削除されます。代わりに正規化された`packageName`フィールドを使用してください。' + reason: '`packageLabel`は削除されます。' date: '2022-10-01T00:00:00+00:00' criticality: 破壊的 owner: github/dependency_graph diff --git a/translations/ja-JP/data/graphql/graphql_upcoming_changes.public.yml b/translations/ja-JP/data/graphql/graphql_upcoming_changes.public.yml index 70081c302d..c5d182f1d4 100644 --- a/translations/ja-JP/data/graphql/graphql_upcoming_changes.public.yml +++ b/translations/ja-JP/data/graphql/graphql_upcoming_changes.public.yml @@ -100,8 +100,8 @@ upcoming_changes: owner: cheshire137 - location: DependencyGraphDependency.packageLabel - description: '`packageLabel` will be removed. Use normalized `packageName` field instead.' - reason: '`packageLabel` will be removed.' + description: '`packageLabel`は削除されます。代わりに正規化された`packageName`フィールドを使用してください。' + reason: '`packageLabel`は削除されます。' date: '2022-10-01T00:00:00+00:00' criticality: 破壊的 owner: github/dependency_graph diff --git a/translations/ja-JP/data/release-notes/enterprise-server/3-2/14.yml b/translations/ja-JP/data/release-notes/enterprise-server/3-2/14.yml index 18db5c1880..9c978b3c07 100644 --- a/translations/ja-JP/data/release-notes/enterprise-server/3-2/14.yml +++ b/translations/ja-JP/data/release-notes/enterprise-server/3-2/14.yml @@ -4,15 +4,15 @@ sections: security_fixes: - パッケージは最新のセキュリティバージョンにアップデートされました。 bugs: - - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). - - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured. - - The `--gateway` argument was added to the `ghe-setup-network` command, to allow passing the gateway address when configuring network settings using the command line. - - Image attachments that were deleted would return a `500 Internal Server Error` instead of a `404 Not Found` error. - - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. - - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + - '{% data variables.product.prodname_ghe_server %}の設定ファイル中のホスト名を検証する内部的なスクリプトが、ホスト名の文字列が"."(ピリオド)で始まっているとエラーを返します。' + - プライマリノードのホスト名が60文字以上の長さになっているHA構成において、MySQLの設定に失敗します。 + - '`ghe-setup-network`コマンドに`--gateway`引数が追加され、コマンドラインを使ってネットワーク設定をする際にゲートウェイのアドレスを渡せるようになりました。' + - 削除された画像の添付ファイルは、`404 Not Found`エラーではなく`500 Internal Server Error`を返します。 + - サイトアドミンのダッシュボードで報告される"maximum committers across entire instance(インスタンス全体での最大のコミッタ数)"の計算は正しくありませんでした。 + - '{% data variables.product.prodname_enterprise_backup_utilities %}を試用した復元の実行時に、リポジトリレプリカの不正確なデータベースエントリによって、データベースが破損しました。' changes: - - Optimised the inclusion of metrics when generating a cluster support bundle. - - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. + - クラスタのSupport Bundleの生成時に、含めるメトリクスを最適化しました。 + - Elasticsearchが有効な黄色のステータスを報告してきた場合のHA構成において、以前の修正で導入された変更が`ghe-repl-stop`コマンドをブロックし、レプリカの停止を妨げます。`ghe-repo-stop --force`を使用すれば、Elasticsearchのサービスが通常もしくは有効な黄色のステータスにある場合に、強制的にElasticsearchが停止されます。 known_issues: - 新しくセットアップされたユーザを持たない{% data variables.product.prodname_ghe_server %}インスタンスで、攻撃者が最初の管理ユーザを作成できました。 - アップグレードの過程で、カスタムのファイアウォールのルールが削除されます。 diff --git a/translations/ja-JP/data/release-notes/enterprise-server/3-3/9.yml b/translations/ja-JP/data/release-notes/enterprise-server/3-3/9.yml index 94a7536c92..4371774ce2 100644 --- a/translations/ja-JP/data/release-notes/enterprise-server/3-3/9.yml +++ b/translations/ja-JP/data/release-notes/enterprise-server/3-3/9.yml @@ -4,16 +4,16 @@ sections: security_fixes: - パッケージは最新のセキュリティバージョンにアップデートされました。 bugs: - - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). - - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured - - The `--gateway` argument was added to the `ghe-setup-network` command, to allow passing the gateway address when configuring network settings using the command line. - - Image attachments that were deleted would return a `500 Internal Server Error` instead of a `404 Not Found` error. - - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. - - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + - '{% data variables.product.prodname_ghe_server %}の設定ファイル中のホスト名を検証する内部的なスクリプトが、ホスト名の文字列が"."(ピリオド)で始まっているとエラーを返します。' + - プライマリノードのホスト名が60文字以上の長さになっているHA構成において、MySQLの設定に失敗します。 + - '`ghe-setup-network`コマンドに`--gateway`引数が追加され、コマンドラインを使ってネットワーク設定をする際にゲートウェイのアドレスを渡せるようになりました。' + - 削除された画像の添付ファイルは、`404 Not Found`エラーではなく`500 Internal Server Error`を返します。 + - サイトアドミンのダッシュボードで報告される"maximum committers across entire instance(インスタンス全体での最大のコミッタ数)"の計算は正しくありませんでした。 + - '{% data variables.product.prodname_enterprise_backup_utilities %}を試用した復元の実行時に、リポジトリレプリカの不正確なデータベースエントリによって、データベースが破損しました。' changes: - - Optimised the inclusion of metrics when generating a cluster support bundle. - - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. - - When using `ghe-migrator` or exporting from {% data variables.product.prodname_dotcom_the_website %}, migrations would fail to export pull request attachments. + - クラスタのSupport Bundleの生成時に、含めるメトリクスを最適化しました。 + - Elasticsearchが有効な黄色のステータスを報告してきた場合のHA構成において、以前の修正で導入された変更が`ghe-repl-stop`コマンドをブロックし、レプリカの停止を妨げます。`ghe-repo-stop --force`を使用すれば、Elasticsearchのサービスが通常もしくは有効な黄色のステータスにある場合に、強制的にElasticsearchが停止されます。 + - '`ghe-migrator`を使う場合、もしくは{% data variables.product.prodname_dotcom_the_website %}からエクスポートする場合、移行でPull Requestの添付のエクスポートに失敗します。' known_issues: - '{% data variables.product.prodname_ghe_server %} 3.3にアップグレード後、{% data variables.product.prodname_actions %}が自動起動に失敗することがあります。この問題を解決するためには、アプライアンスにSSHで接続し、`ghe-actions-start`コマンドを実行してください。' - 新しくセットアップされたユーザを持たない{% data variables.product.prodname_ghe_server %}インスタンスで、攻撃者が最初の管理ユーザを作成できました。 diff --git a/translations/ja-JP/data/release-notes/enterprise-server/3-4/4.yml b/translations/ja-JP/data/release-notes/enterprise-server/3-4/4.yml index 273f15423b..1a6bfabfa7 100644 --- a/translations/ja-JP/data/release-notes/enterprise-server/3-4/4.yml +++ b/translations/ja-JP/data/release-notes/enterprise-server/3-4/4.yml @@ -4,20 +4,20 @@ sections: security_fixes: - パッケージは最新のセキュリティバージョンにアップデートされました。 bugs: - - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). - - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured. + - '{% data variables.product.prodname_ghe_server %}の設定ファイル中のホスト名を検証する内部的なスクリプトが、ホスト名の文字列が"."(ピリオド)で始まっているとエラーを返します。' + - プライマリノードのホスト名が60文字以上の長さになっているHA構成において、MySQLの設定に失敗します。 - When {% data variables.product.prodname_actions %} was enabled but TLS was disabled on {% data variables.product.prodname_ghe_server %} 3.4.1 and later, applying a configuration update would fail. - - The `--gateway` argument was added to the `ghe-setup-network` command, to allow passing the gateway address when configuring network settings using the command line. + - '`ghe-setup-network`コマンドに`--gateway`引数が追加され、コマンドラインを使ってネットワーク設定をする際にゲートウェイのアドレスを渡せるようになりました。' - 'The [{% data variables.product.prodname_GH_advanced_security %} billing API](/rest/enterprise-admin/billing#get-github-advanced-security-active-committers-for-an-enterprise) endpoints were not enabled and accessible.' - - Image attachments that were deleted would return a `500 Internal Server Error` instead of a `404 Not Found` error. + - 削除された画像の添付ファイルは、`404 Not Found`エラーではなく`500 Internal Server Error`を返します。 - In environments configured with a repository cache server, the `ghe-repl-status` command incorrectly showed gists as being under-replicated. - The "Get a commit" and "Compare two commits" endpoints in the [Commit API](/rest/commits/commits) would return a `500` error if a file path in the diff contained an encoded and escaped unicode character. - - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. - - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + - サイトアドミンのダッシュボードで報告される"maximum committers across entire instance(インスタンス全体での最大のコミッタ数)"の計算は正しくありませんでした。 + - '{% data variables.product.prodname_enterprise_backup_utilities %}を試用した復元の実行時に、リポジトリレプリカの不正確なデータベースエントリによって、データベースが破損しました。' - The activity timeline for secret scanning alerts wasn't displayed. changes: - - Optimised the inclusion of metrics when generating a cluster support bundle. - - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. + - クラスタのSupport Bundleの生成時に、含めるメトリクスを最適化しました。 + - Elasticsearchが有効な黄色のステータスを報告してきた場合のHA構成において、以前の修正で導入された変更が`ghe-repl-stop`コマンドをブロックし、レプリカの停止を妨げます。`ghe-repo-stop --force`を使用すれば、Elasticsearchのサービスが通常もしくは有効な黄色のステータスにある場合に、強制的にElasticsearchが停止されます。 known_issues: - 新しくセットアップされたユーザを持たない{% data variables.product.prodname_ghe_server %}インスタンスで、攻撃者が最初の管理ユーザを作成できました。 - アップグレードの過程で、カスタムのファイアウォールのルールが削除されます。 diff --git a/translations/ja-JP/data/release-notes/enterprise-server/3-5/1.yml b/translations/ja-JP/data/release-notes/enterprise-server/3-5/1.yml index be7d707521..4b12656825 100644 --- a/translations/ja-JP/data/release-notes/enterprise-server/3-5/1.yml +++ b/translations/ja-JP/data/release-notes/enterprise-server/3-5/1.yml @@ -4,22 +4,22 @@ sections: security_fixes: - パッケージは最新のセキュリティバージョンにアップデートされました。 bugs: - - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). - - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured. + - '{% data variables.product.prodname_ghe_server %}の設定ファイル中のホスト名を検証する内部的なスクリプトが、ホスト名の文字列が"."(ピリオド)で始まっているとエラーを返します。' + - プライマリノードのホスト名が60文字以上の長さになっているHA構成において、MySQLの設定に失敗します。 - When {% data variables.product.prodname_actions %} was enabled but TLS was disabled on {% data variables.product.prodname_ghe_server %} 3.4.1 and later, applying a configuration update would fail. - - The `--gateway` argument was added to the `ghe-setup-network` command, to allow passing the gateway address when configuring network settings using the command line. + - '`ghe-setup-network`コマンドに`--gateway`引数が追加され、コマンドラインを使ってネットワーク設定をする際にゲートウェイのアドレスを渡せるようになりました。' - 'The [{% data variables.product.prodname_GH_advanced_security %} billing API](/rest/enterprise-admin/billing#get-github-advanced-security-active-committers-for-an-enterprise) endpoints were not enabled and accessible.' - - Image attachments that were deleted would return a `500 Internal Server Error` instead of a `404 Not Found` error. + - 削除された画像の添付ファイルは、`404 Not Found`エラーではなく`500 Internal Server Error`を返します。 - In environments configured with a repository cache server, the `ghe-repl-status` command incorrectly showed gists as being under-replicated. - The "Get a commit" and "Compare two commits" endpoints in the [Commit API](/rest/commits/commits) would return a `500` error if a file path in the diff contained an encoded and escaped unicode character. - - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. - - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + - サイトアドミンのダッシュボードで報告される"maximum committers across entire instance(インスタンス全体での最大のコミッタ数)"の計算は正しくありませんでした。 + - '{% data variables.product.prodname_enterprise_backup_utilities %}を試用した復元の実行時に、リポジトリレプリカの不正確なデータベースエントリによって、データベースが破損しました。' - 'A {% data variables.product.prodname_github_app %} would not be able to subscribe to the [`secret_scanning_alert_location` webhook event](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#secret_scanning_alert_location) on an installation.' - The activity timeline for secret scanning alerts wasn't displayed. - Deleted repos were not purged after 90 days. changes: - - Optimised the inclusion of metrics when generating a cluster support bundle. - - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. + - クラスタのSupport Bundleの生成時に、含めるメトリクスを最適化しました。 + - Elasticsearchが有効な黄色のステータスを報告してきた場合のHA構成において、以前の修正で導入された変更が`ghe-repl-stop`コマンドをブロックし、レプリカの停止を妨げます。`ghe-repo-stop --force`を使用すれば、Elasticsearchのサービスが通常もしくは有効な黄色のステータスにある場合に、強制的にElasticsearchが停止されます。 known_issues: - 新しくセットアップされたユーザを持たない{% data variables.product.prodname_ghe_server %}インスタンスで、攻撃者が最初の管理ユーザを作成できました。 - アップグレードの過程で、カスタムのファイアウォールのルールが削除されます。 diff --git a/translations/ja-JP/data/reusables/actions/jobs/section-running-jobs-in-a-container.md b/translations/ja-JP/data/reusables/actions/jobs/section-running-jobs-in-a-container.md index bf0da01c87..a78fafca7f 100644 --- a/translations/ja-JP/data/reusables/actions/jobs/section-running-jobs-in-a-container.md +++ b/translations/ja-JP/data/reusables/actions/jobs/section-running-jobs-in-a-container.md @@ -4,9 +4,14 @@ Use `jobs.<job_id>.container` to create a container to run any steps in a job th ### Example: Running a job within a container -```yaml +```yaml{:copy} +name: CI +on: + push: + branches: [ main ] jobs: - my_job: + container-test-job: + runs-on: ubuntu-latest container: image: node:14.16 env: @@ -16,12 +21,16 @@ jobs: volumes: - my_docker_volume:/volume_mount options: --cpus 1 + steps: + - name: Check for dockerenv file + run: (ls /.dockerenv && echo Found dockerenv) || (echo No dockerenv) ``` コンテナイメージのみを指定する場合、`image`は省略できます。 ```yaml jobs: - my_job: + container-test-job: + runs-on: ubuntu-latest container: node:14.16 ``` diff --git a/translations/log/ja-resets.csv b/translations/log/ja-resets.csv index 58be133e74..28a84a6417 100644 --- a/translations/log/ja-resets.csv +++ b/translations/log/ja-resets.csv @@ -124,6 +124,7 @@ translations/ja-JP/content/code-security/secret-scanning/protecting-pushes-with- translations/ja-JP/content/code-security/secret-scanning/secret-scanning-patterns.md,broken liquid tags translations/ja-JP/content/code-security/security-overview/about-the-security-overview.md,broken liquid tags translations/ja-JP/content/code-security/supply-chain-security/end-to-end-supply-chain/securing-accounts.md,broken liquid tags +translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md,broken liquid tags translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-supply-chain-security.md,broken liquid tags translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph.md,Listed in localization-support#489 translations/ja-JP/content/code-security/supply-chain-security/understanding-your-software-supply-chain/troubleshooting-the-dependency-graph.md,broken liquid tags @@ -272,9 +273,9 @@ translations/ja-JP/data/reusables/dotcom_billing/lfs-remove-data.md,broken liqui translations/ja-JP/data/reusables/education/apply-for-team.md,broken liquid tags translations/ja-JP/data/reusables/enterprise-accounts/actions-tab.md,broken liquid tags translations/ja-JP/data/reusables/enterprise-accounts/hooks-tab.md,Listed in localization-support#489 -translations/ja-JP/data/reusables/enterprise-accounts/hooks-tab.md,broken liquid tags +translations/ja-JP/data/reusables/enterprise-accounts/hooks-tab.md,rendering error translations/ja-JP/data/reusables/enterprise-accounts/messages-tab.md,Listed in localization-support#489 -translations/ja-JP/data/reusables/enterprise-accounts/messages-tab.md,broken liquid tags +translations/ja-JP/data/reusables/enterprise-accounts/messages-tab.md,rendering error translations/ja-JP/data/reusables/enterprise-accounts/pages-tab.md,broken liquid tags translations/ja-JP/data/reusables/enterprise_installation/hardware-considerations-all-platforms.md,broken liquid tags translations/ja-JP/data/reusables/enterprise_installation/upgrade-hardware-requirements.md,broken liquid tags From 93a5723d40caad3ed2eebee39f70560acdab1b23 Mon Sep 17 00:00:00 2001 From: docubot <67483024+docubot@users.noreply.github.com> Date: Thu, 16 Jun 2022 18:19:59 -0400 Subject: [PATCH 14/21] New translation batch for es (#28583) * Add crowdin translations * Run script/i18n/homogenize-frontmatter.js * Run script/i18n/fix-translation-errors.js * Run script/i18n/lint-translation-files.js --check rendering * run script/i18n/reset-files-with-broken-liquid-tags.js --language=es * run script/i18n/reset-known-broken-translation-files.js Co-authored-by: Grace Park <gracepark@github.com> --- .../deploying-docker-to-azure-app-service.md | 8 +- ...customizing-the-containers-used-by-jobs.md | 530 ++++++++++++++++++ .../actions/hosting-your-own-runners/index.md | 1 + .../configuring-email-for-notifications.md | 2 +- .../initializing-the-cluster.md | 6 +- ...ng-from-github-enterprise-1110x-to-2123.md | 2 +- .../saml-configuration-reference.md | 28 +- .../about-billing-for-codespaces.md | 1 - ...ltering-alerts-in-the-security-overview.md | 2 +- .../about-dependency-review.md | 12 +- .../configuring-dependency-review.md | 53 ++ .../about-codespaces-prebuilds.md | 8 +- .../configuring-prebuilds.md | 26 +- .../prebuilding-your-codespaces/index.md | 3 +- .../managing-prebuilds.md | 2 - .../testing-dev-container-changes.md | 2 - .../troubleshooting-prebuilds.md | 2 - ...g-and-authorizing-users-for-github-apps.md | 2 +- .../migrating-oauth-apps-to-github-apps.md | 2 +- .../developers/overview/about-githubs-apis.md | 2 +- .../webhooks/webhook-events-and-payloads.md | 8 +- .../saving-repositories-with-stars.md | 10 + .../quickstart/contributing-to-projects.md | 2 +- .../graphql/guides/using-global-node-ids.md | 2 +- .../graphql/overview/resource-limitations.md | 18 +- .../filtering-files-in-a-pull-request.md | 8 +- ...ng-dependency-changes-in-a-pull-request.md | 7 +- .../working-with-forks/syncing-a-fork.md | 10 +- .../about-commits.md | 23 + .../es-ES/content/rest/overview/libraries.md | 6 - .../permissions-required-for-github-apps.md | 2 +- .../overview/resources-in-the-rest-api.md | 2 +- .../es-ES/data/features/commit-tree-view.yml | 8 + .../es-ES/data/features/container-hooks.yml | 7 + ...dependency-review-action-configuration.yml | 7 + .../ghec/graphql_upcoming_changes.public.yml | 4 +- .../graphql_upcoming_changes.public.yml | 4 +- .../release-notes/enterprise-server/3-1/0.yml | 3 + .../enterprise-server/3-1/22.yml | 21 + .../release-notes/enterprise-server/3-2/0.yml | 5 + .../enterprise-server/3-2/14.yml | 23 + .../release-notes/enterprise-server/3-3/0.yml | 3 + .../release-notes/enterprise-server/3-3/9.yml | 26 + .../release-notes/enterprise-server/3-4/0.yml | 5 + .../release-notes/enterprise-server/3-4/4.yml | 34 ++ .../release-notes/enterprise-server/3-5/0.yml | 4 +- .../release-notes/enterprise-server/3-5/1.yml | 32 ++ .../section-running-jobs-in-a-container.md | 15 +- .../about-billing-for-codespaces.md | 1 - .../codespaces/beta-functionality-limited.md | 5 - .../codespaces/billing-for-prebuilds.md | 6 +- .../codespaces/prebuilds-beta-note.md | 5 - .../reusables/codespaces/unsupported-repos.md | 1 - .../dependency-review-action-beta-note.md | 2 +- .../dependency-review-action-overview.md | 3 + .../limit_workflow_to_activity_types.md | 2 +- ...ns-packages-report-download-org-account.md | 2 +- .../repositories/navigate-to-branches.md | 2 +- translations/es-ES/data/variables/product.yml | 1 + 59 files changed, 908 insertions(+), 115 deletions(-) create mode 100644 translations/es-ES/content/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs.md create mode 100644 translations/es-ES/data/features/commit-tree-view.yml create mode 100644 translations/es-ES/data/features/container-hooks.yml create mode 100644 translations/es-ES/data/features/dependency-review-action-configuration.yml create mode 100644 translations/es-ES/data/release-notes/enterprise-server/3-1/22.yml create mode 100644 translations/es-ES/data/release-notes/enterprise-server/3-2/14.yml create mode 100644 translations/es-ES/data/release-notes/enterprise-server/3-3/9.yml create mode 100644 translations/es-ES/data/release-notes/enterprise-server/3-4/4.yml create mode 100644 translations/es-ES/data/release-notes/enterprise-server/3-5/1.yml delete mode 100644 translations/es-ES/data/reusables/codespaces/about-billing-for-codespaces.md delete mode 100644 translations/es-ES/data/reusables/codespaces/beta-functionality-limited.md delete mode 100644 translations/es-ES/data/reusables/codespaces/prebuilds-beta-note.md delete mode 100644 translations/es-ES/data/reusables/codespaces/unsupported-repos.md create mode 100644 translations/es-ES/data/reusables/dependency-review/dependency-review-action-overview.md diff --git a/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md index 7b4b897449..befb05d477 100644 --- a/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md +++ b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md @@ -138,10 +138,10 @@ jobs: - name: Deploy to Azure Web App id: deploy-to-webapp uses: azure/webapps-deploy@0b651ed7546ecfc75024011f76944cb9b381ef1e - with: - app-name: {% raw %}${{ env.AZURE_WEBAPP_NAME }}{% endraw %} - publish-profile: {% raw %}${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}{% endraw %} - images: 'ghcr.io/{% raw %}${{ env.REPO }}{% endraw %}:{% raw %}${{ github.sha }}{% endraw %}' + with: + app-name: {% raw %}${{ env.AZURE_WEBAPP_NAME }}{% endraw %} + publish-profile: {% raw %}${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}{% endraw %} + images: 'ghcr.io/{% raw %}${{ env.REPO }}{% endraw %}:{% raw %}${{ github.sha }}{% endraw %}' ``` ## Recursos adicionales diff --git a/translations/es-ES/content/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs.md b/translations/es-ES/content/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs.md new file mode 100644 index 0000000000..2d8544c2aa --- /dev/null +++ b/translations/es-ES/content/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs.md @@ -0,0 +1,530 @@ +--- +title: Customizing the containers used by jobs +intro: You can customize how your self-hosted runner invokes a container for a job. +versions: + feature: container-hooks +type: reference +miniTocMaxHeadingLevel: 4 +shortTitle: Customize containers used by jobs +--- + +{% note %} + +**Note**: This feature is currently in beta and is subject to change. + +{% endnote %} + +## About container customization + +{% data variables.product.prodname_actions %} allows you to run a job within a container, using the `container:` statement in your workflow file. For more information, see "[Running jobs in a container](/actions/using-jobs/running-jobs-in-a-container)." To process container-based jobs, the self-hosted runner creates a container for each job. + +{% data variables.product.prodname_actions %} supports commands that let you customize the way your containers are created by the self-hosted runner. For example, you can use these commands to manage the containers through Kubernetes or Podman, and you can also customize the `docker run` or `docker create` commands used to invoke the container. The customization commands are run by a script, which is automatically triggered when a specific environment variable is set on the runner. For more information, see "[Triggering the customization script](#triggering-the-customization-script)" below. + +This customization is only available for Linux-based self-hosted runners, and root user access is not required. + +## Container customization commands + +{% data variables.product.prodname_actions %} includes the following commands for container customization: + +- [`prepare_job`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#prepare_job): Called when a job is started. +- [`cleanup_job`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#cleanup_job): Called at the end of a job. +- [`run_container_step`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#run_container_step): Called once for each container action in the job. +- [`run_script_step`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#run_script_step): Runs any step that is not a container action. + +Each of these customization commands must be defined in its own JSON file. The file name must match the command name, with the extension `.json`. For example, the `prepare_job` command is defined in `prepare_job.json`. These JSON files will then be run together on the self-hosted runner, as part of the main `index.js` script. This process is described in more detail in "[Generating the customization script](#generating-the-customization-script)." + +These commands also include configuration arguments, explained below in more detail. + +### `prepare_job` + +The `prepare_job` command is called when a job is started. {% data variables.product.prodname_actions %} passes in any job or service containers the job has. This command will be called if you have any service or job containers in the job. + +{% data variables.product.prodname_actions %} assumes that you will do the following tasks in the `prepare_job` command: + +- Prune anything from previous jobs, if needed. +- Create a network, if needed. +- Pull the job and service containers. +- Start the job container. +- Start the service containers. +- Write to the response file any information that {% data variables.product.prodname_actions %} will need: + - Required: State whether the container is an `alpine` linux container (using the `isAlpine` boolean). + - Optional: Any context fields you want to set on the job context, otherwise they will be unavailable for users to use. For more information, see "[`job` context](/actions/learn-github-actions/contexts#job-context)." +- Return `0` when the health checks have succeeded and the job/service containers are started. + +#### Argumentos + +- `jobContainer`: **Optional**. An object containing information about the specified job container. + - `image`: **Required**. A string containing the Docker image. + - `workingDirectory`: **Required**. A string containing the absolute path of the working directory. + - `createOptions`: **Optional**. The optional _create_ options specified in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." + - `environmentVariables`: **Optional**. Sets a map of key environment variables. + - `userMountVolumes`: **Optional**. An array of user mount volumes set in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. + - `systemMountVolumes`: **Required**. An array of mounts to mount into the container, same fields as above. + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. + - `registro` **Optional**. The Docker registry credentials for a private container registry. + - `username`: **Optional**. The username of the registry account. + - `password`: **Optional**. The password to the registry account. + - `serverUrl`: **Optional**. The registry URL. + - `portMappings`: **Optional**. A key value hash of _source:target_ ports to map into the container. +- `services`: **Optional**. An array of service containers to spin up. + - `contextName`: **Required**. The name of the service in the Job context. + - `image`: **Required**. A string containing the Docker image. + - `createOptions`: **Optional**. The optional _create_ options specified in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." + - `environmentVariables`: **Optional**. Sets a map of key environment variables. + - `userMountVolumes`: **Optional**. An array of mounts to mount into the container, same fields as above. + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. + - `registro` **Optional**. The Docker registry credentials for the private container registry. + - `username`: **Optional**. The username of the registry account. + - `password`: **Optional**. The password to the registry account. + - `serverUrl`: **Optional**. The registry URL. + - `portMappings`: **Optional**. A key value hash of _source:target_ ports to map into the container. + +#### Example input + +```json{:copy} +{ + "command": "prepare_job", + "responseFile": "/users/octocat/runner/_work/{guid}.json", + "state": {}, + "args": { + "jobContainer": { + "image": "node:14.16", + "workingDirectory": "/__w/octocat-test2/octocat-test2", + "createOptions": "--cpus 1", + "environmentVariables": { + "NODE_ENV": "development" + }, + "userMountVolumes": [ + { + "sourceVolumePath": "my_docker_volume", + "targetVolumePath": "/volume_mount", + "readOnly": false + } + ], + "systemMountVolumes": [ + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work", + "targetVolumePath": "/__w", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/externals", + "targetVolumePath": "/__e", + "readOnly": true + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp", + "targetVolumePath": "/__w/_temp", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_actions", + "targetVolumePath": "/__w/_actions", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_tool", + "targetVolumePath": "/__w/_tool", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_home", + "targetVolumePath": "/github/home", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_workflow", + "targetVolumePath": "/github/workflow", + "readOnly": false + } + ], + "registry": { + "username": "octocat", + "password": "examplePassword", + "serverUrl": "https://index.docker.io/v1" + }, + "portMappings": { "80": "801" } + }, + "services": [ + { + "contextName": "redis", + "image": "redis", + "createOptions": "--cpus 1", + "environmentVariables": {}, + "userMountVolumes": [], + "portMappings": { "80": "801" }, + "registry": { + "username": "octocat", + "password": "examplePassword", + "serverUrl": "https://index.docker.io/v1" + } + } + ] + } +} +``` + +#### Example output + +This example output is the contents of the `responseFile` defined in the input above. + +```json{:copy} +{ + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "serviceContainers": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "context": { + "container": { + "id": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "network": "example_network_53269bd575972817b43f7733536b200c" + }, + "services": { + "redis": { + "id": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105", + "ports": { + "8080": "8080" + }, + "network": "example_network_53269bd575972817b43f7733536b200c" + } + }, + "isAlpine": true + } +} +``` + +### `cleanup_job` + +The `cleanup_job` command is called at the end of a job. {% data variables.product.prodname_actions %} assumes that you will do the following tasks in the `cleanup_job` command: + +- Stop any running service or job containers (or the equivalent pod). +- Stop the network (if one exists). +- Delete any job or service containers (or the equivalent pod). +- Delete the network (if one exists). +- Cleanup anything else that was created for the job. + +#### Argumentos + +No arguments are provided for `cleanup_job`. + +#### Example input + +```json{:copy} +{ + "command": "cleanup_job", + "responseFile": null, + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "serviceContainers": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "args": {} +} +``` + +#### Example output + +No output is expected for `cleanup_job`. + +### `run_container_step` + +The `run_container_step` command is called once for each container action in your job. {% data variables.product.prodname_actions %} assumes that you will do the following tasks in the `run_container_step` command: + +- Pull or build the required container (or fail if you cannot). +- Run the container action and return the exit code of the container. +- Stream any step logs output to stdout and stderr. +- Cleanup the container after it executes. + +#### Argumentos + +- `image`: **Optional**. A string containing the docker image. Otherwise a dockerfile must be provided. +- `dockerfile`: **Optional**. A string containing the path to the dockerfile, otherwise an image must be provided. +- `entryPointArgs`: **Optional**. A list containing the entry point args. +- `entryPoint`: **Optional**. The container entry point to use if the default image entrypoint should be overwritten. +- `workingDirectory`: **Required**. A string containing the absolute path of the working directory. +- `createOptions`: **Optional**. The optional _create_ options specified in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." +- `environmentVariables`: **Optional**. Sets a map of key environment variables. +- `prependPath`: **Optional**. An array of additional paths to prepend to the `$PATH` variable. +- `userMountVolumes`: **Optional**. an array of user mount volumes set in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. +- `systemMountVolumes`: **Required**. An array of mounts to mount into the container, using the same fields as above. + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. +- `registro` **Optional**. The Docker registry credentials for a private container registry. + - `username`: **Optional**. The username of the registry account. + - `password`: **Optional**. The password to the registry account. + - `serverUrl`: **Optional**. The registry URL. +- `portMappings`: **Optional**. A key value hash of the _source:target_ ports to map into the container. + +#### Example input for image + +If you're using a Docker image, you can specify the image name in the `"image":` parameter. + +```json{:copy} +{ + "command": "run_container_step", + "responseFile": null, + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "serviceContainers": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "args": { + "image": "node:14.16", + "dockerfile": null, + "entryPointArgs": ["-f", "/dev/null"], + "entryPoint": "tail", + "workingDirectory": "/__w/octocat-test2/octocat-test2", + "createOptions": "--cpus 1", + "environmentVariables": { + "NODE_ENV": "development" + }, + "prependPath": ["/foo/bar", "bar/foo"], + "userMountVolumes": [ + { + "sourceVolumePath": "my_docker_volume", + "targetVolumePath": "/volume_mount", + "readOnly": false + } + ], + "systemMountVolumes": [ + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work", + "targetVolumePath": "/__w", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/externals", + "targetVolumePath": "/__e", + "readOnly": true + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp", + "targetVolumePath": "/__w/_temp", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_actions", + "targetVolumePath": "/__w/_actions", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_tool", + "targetVolumePath": "/__w/_tool", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_home", + "targetVolumePath": "/github/home", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_workflow", + "targetVolumePath": "/github/workflow", + "readOnly": false + } + ], + "registry": null, + "portMappings": { "80": "801" } + } +} +``` + +#### Example input for Dockerfile + +If your container is defined by a Dockerfile, this example demonstrates how to specify the path to a `Dockerfile` in your input, using the `"dockerfile":` parameter. + +```json{:copy} +{ + "command": "run_container_step", + "responseFile": null, + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "services": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "args": { + "image": null, + "dockerfile": "/__w/_actions/foo/dockerfile", + "entryPointArgs": ["hello world"], + "entryPoint": "echo", + "workingDirectory": "/__w/octocat-test2/octocat-test2", + "createOptions": "--cpus 1", + "environmentVariables": { + "NODE_ENV": "development" + }, + "prependPath": ["/foo/bar", "bar/foo"], + "userMountVolumes": [ + { + "sourceVolumePath": "my_docker_volume", + "targetVolumePath": "/volume_mount", + "readOnly": false + } + ], + "systemMountVolumes": [ + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work", + "targetVolumePath": "/__w", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/externals", + "targetVolumePath": "/__e", + "readOnly": true + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp", + "targetVolumePath": "/__w/_temp", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_actions", + "targetVolumePath": "/__w/_actions", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_tool", + "targetVolumePath": "/__w/_tool", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_home", + "targetVolumePath": "/github/home", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_workflow", + "targetVolumePath": "/github/workflow", + "readOnly": false + } + ], + "registry": null, + "portMappings": { "80": "801" } + } +} +``` + +#### Example output + +No output is expected for `run_container_step`. + +### `run_script_step` + +{% data variables.product.prodname_actions %} assumes that you will do the following tasks: + +- Invoke the provided script inside the job container and return the exit code. +- Stream any step log output to stdout and stderr. + +#### Argumentos + +- `entryPointArgs`: **Optional**. A list containing the entry point arguments. +- `entryPoint`: **Optional**. The container entry point to use if the default image entrypoint should be overwritten. +- `prependPath`: **Optional**. An array of additional paths to prepend to the `$PATH` variable. +- `workingDirectory`: **Required**. A string containing the absolute path of the working directory. +- `environmentVariables`: **Optional**. Sets a map of key environment variables. + +#### Example input + +```json{:copy} +{ + "command": "run_script_step", + "responseFile": null, + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "serviceContainers": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "args": { + "entryPointArgs": ["-e", "/runner/temp/example.sh"], + "entryPoint": "bash", + "environmentVariables": { + "NODE_ENV": "development" + }, + "prependPath": ["/foo/bar", "bar/foo"], + "workingDirectory": "/__w/octocat-test2/octocat-test2" + } +} +``` + +#### Example output + +No output is expected for `run_script_step`. + +## Generating the customization script + +{% data variables.product.prodname_dotcom %} has created an example repository that demonstrates how to generate customization scripts for Docker and Kubernetes. + +{% note %} + +**Note:** The resulting scripts are available for testing purposes, and you will need to determine whether they are appropriate for your requirements. + +{% endnote %} + +1. Clone the [actions/runner-container-hooks](https://github.com/actions/runner-container-hooks) repository to your self-hosted runner. + +1. The `examples/` directory contains some existing customization commands, each with its own JSON file. You can review these examples and use them as a starting point for your own customization commands. + + - `prepare_job.json` + - `run_script_step.json` + - `run_container_step.json` + +1. Build the npm packages. These commands generate the `index.js` files inside `packages/docker/dist` and `packages/k8s/dist`. + + ```shell + npm install && npm run bootstrap && npm run build-all + ``` + +When the resulting `index.js` is triggered by {% data variables.product.prodname_actions %}, it will run the customization commands defined in the JSON files. To trigger the `index.js`, you will need to add it your `ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER` environment variable, as described in the next section. + +## Triggering the customization script + +The custom script must be located on the runner, but should not be stored in the self-hosted runner application directory. The scripts are executed in the security context of the service account that's running the runner service. + +{% note %} + +**Note**: The triggered script is processed synchronously, so it will block job execution while running. + +{% endnote %} + +The script is automatically executed when the runner has the following environment variable containing an absolute path to the script: + +- `ACTIONS_RUNNER_CONTAINER_HOOK`: The script defined in this environment variable is triggered when a job has been assigned to a runner, but before the job starts running. + +To set this environment variable, you can either add it to the operating system, or add it to a file named `.env` within the self-hosted runner application directory. For example, the following `.env` entry will have the runner automatically run the script at `/Users/octocat/runner/index.js` before each container-based job runs: + +```bash +ACTIONS_RUNNER_CONTAINER_HOOK=/Users/octocat/runner/index.js +``` + +If you want to ensure that your job always runs inside a container, and subsequently always applies your container customizations, you can set the `ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER` variable on the self hosted runner to `true`. This will fail jobs that do not specify a job container. + +## Solución de problemas + +### No timeout setting + +There is currently no timeout setting available for the script executed by `ACTIONS_RUNNER_CONTAINER_HOOK`. As a result, you could consider adding timeout handling to your script. + +### Reviewing the workflow run log + +To confirm whether your scripts are executing, you can review the logs for that job. For more information on checking the logs, see "[Viewing logs to diagnose failures](/actions/monitoring-and-troubleshooting-workflows/using-workflow-run-logs#viewing-logs-to-diagnose-failures)." diff --git a/translations/es-ES/content/actions/hosting-your-own-runners/index.md b/translations/es-ES/content/actions/hosting-your-own-runners/index.md index 2de731eca1..8252ba1dc3 100644 --- a/translations/es-ES/content/actions/hosting-your-own-runners/index.md +++ b/translations/es-ES/content/actions/hosting-your-own-runners/index.md @@ -20,6 +20,7 @@ children: - /adding-self-hosted-runners - /autoscaling-with-self-hosted-runners - /running-scripts-before-or-after-a-job + - /customizing-the-containers-used-by-jobs - /configuring-the-self-hosted-runner-application-as-a-service - /using-a-proxy-server-with-self-hosted-runners - /using-labels-with-self-hosted-runners diff --git a/translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications.md b/translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications.md index 54fd6c4f0d..9c35c7e42b 100644 --- a/translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications.md +++ b/translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications.md @@ -86,7 +86,7 @@ Si quieres permitir respuestas de correo electrónico para las notificaciones, d ### Crea un Paquete de soporte -If you cannot determine what is wrong from the displayed error message, you can download a [support bundle](/enterprise/admin/guides/enterprise-support/providing-data-to-github-support) containing the entire SMTP conversation between your mail server and {% data variables.product.prodname_ghe_server %}. Una vez que hayas descargado y extraído el paquete, verifica las entradas en *enterprise-manage-logs/unicorn.log* para toda la bitácora de conversaciones de SMTP y cualquier error relacionado. +Si no puedes determinar lo que está mal desde el mensaje de error mostrado, puedes descargar un [paquete de soporte](/enterprise/admin/guides/enterprise-support/providing-data-to-github-support) que contiene toda la conversación SMTP entre tu servidor de correo y {% data variables.product.prodname_ghe_server %}. Una vez que hayas descargado y extraído el paquete, verifica las entradas en *enterprise-manage-logs/unicorn.log* para toda la bitácora de conversaciones de SMTP y cualquier error relacionado. El registro unicornio debería mostrar una transacción similar a la siguiente: diff --git a/translations/es-ES/content/admin/enterprise-management/configuring-clustering/initializing-the-cluster.md b/translations/es-ES/content/admin/enterprise-management/configuring-clustering/initializing-the-cluster.md index b559cd41cb..d6dec4ac58 100644 --- a/translations/es-ES/content/admin/enterprise-management/configuring-clustering/initializing-the-cluster.md +++ b/translations/es-ES/content/admin/enterprise-management/configuring-clustering/initializing-the-cluster.md @@ -22,7 +22,7 @@ topics: ## Configurar el primer nodo -1. Conèctate al nodo que se designarà como el primario de MySQL en la `cluster.conf`. For more information, see "[About the cluster configuration file](/enterprise/admin/guides/clustering/initializing-the-cluster/#about-the-cluster-configuration-file)." +1. Conèctate al nodo que se designarà como el primario de MySQL en la `cluster.conf`. Para obtener màs informaciòn, consulta la secciòn "[Acerca del archivo de configuraciòn de clùster](/enterprise/admin/guides/clustering/initializing-the-cluster/#about-the-cluster-configuration-file)". 2. En tu navegador web, visita `https://<ip address>:8443/setup/`. {% data reusables.enterprise_installation.upload-a-license-file %} {% data reusables.enterprise_installation.save-settings-in-web-based-mgmt-console %} @@ -30,7 +30,7 @@ topics: ## Inicializar la agrupación -Para inicializar la agrupación, necesitas un archivo de configuración de agrupación (`cluster.conf`). For more information, see "[About the cluster configuration file](/enterprise/admin/guides/clustering/initializing-the-cluster/#about-the-cluster-configuration-file)". +Para inicializar la agrupación, necesitas un archivo de configuración de agrupación (`cluster.conf`). Para obtener màs informaciòn, consulta la secciòn "[Acerca del archivo de configuraciòn de clùster](/enterprise/admin/guides/clustering/initializing-the-cluster/#about-the-cluster-configuration-file)". 1. Desde el primer nodo que se configuró, ejecuta `ghe-cluster-config. init`. De esta manera, se inicializará la agrupación si existen nodos en el archivo de configuración de la agrupación que no están configurados. 2. Ejecuta `ghe-cluster-config-apply`. Esto validará el archivo `cluster.conf`, aplicará la configuración a cada archivo del nodo y traerá los servicios configurados en cada nodo. @@ -39,7 +39,7 @@ Para comprobar el estado de una agrupación en funcionamiento, usa el comando `g ## Acerca del archivo de configuración de la agrupación -El archivo de configuración de la agrupación (`cluster.conf`) define los nodos en la agrupación, y los servicios que ejecutan. For more information, see "[About cluster nodes](/enterprise/admin/guides/clustering/about-cluster-nodes)." +El archivo de configuración de la agrupación (`cluster.conf`) define los nodos en la agrupación, y los servicios que ejecutan. Para obtener más información, consulta la sección "[Acerca de los nodos de clúster](/enterprise/admin/guides/clustering/about-cluster-nodes)". Este ejemplo `cluster.conf` define una agrupación con cinco nodos. diff --git a/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/migrating-from-github-enterprise-1110x-to-2123.md b/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/migrating-from-github-enterprise-1110x-to-2123.md index 230cdb0041..256306d7c6 100644 --- a/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/migrating-from-github-enterprise-1110x-to-2123.md +++ b/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/migrating-from-github-enterprise-1110x-to-2123.md @@ -95,4 +95,4 @@ Para actualizar a la versión más reciente {% data variables.product.prodname_e {% endnote %} 15. Cambia el tráfico de red de usuario desde la instancia anterior a la nueva instancia utilizando la asignación de DNS o la dirección IP. -16. Upgrade to the latest patch release of {% data variables.product.prodname_ghe_server %}. Para obtener más información, consulta "[Actualizar {% data variables.product.prodname_ghe_server %}](/enterprise/admin/guides/installation/upgrading-github-enterprise-server/)." +16. Mejora al lanzamiento de parche más reciente de {% data variables.product.prodname_ghe_server %}. Para obtener más información, consulta "[Actualizar {% data variables.product.prodname_ghe_server %}](/enterprise/admin/guides/installation/upgrading-github-enterprise-server/)." diff --git a/translations/es-ES/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference.md b/translations/es-ES/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference.md index 6d19380a2b..438029b1cf 100644 --- a/translations/es-ES/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference.md +++ b/translations/es-ES/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference.md @@ -25,7 +25,7 @@ You must enter unique values from your SAML IdP when configuring SAML SSO for {% {% ifversion ghec %} -The SP metadata for {% data variables.product.product_name %} is available for either organizations or enterprises with SAML SSO. {% data variables.product.product_name %} uses the `urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST` binding. +The SP metadata for {% data variables.product.product_name %} is available for either organizations or enterprises with SAML SSO. {% data variables.product.product_name %} utiliza el enlace `urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST`. ### Organizaciones @@ -33,13 +33,13 @@ You can configure SAML SSO for an individual organization in your enterprise. Yo The SP metadata for an organization on {% data variables.product.product_location %} is available at `https://github.com/orgs/ORGANIZATION/saml/metadata`, where **ORGANIZATION** is the name of your organization on {% data variables.product.product_location %}. -| Valor | Otros nombres | Descripción | Ejemplo | -|:--------------------------------------------------------- |:------------------------------------ |:---------------------------------------------------------------------------------------- |:--------------------------------------------------- | -| ID de Entidad de SP | SP URL, audience restriction | The top-level URL for your organization on {% data variables.product.product_location %} | `https://github.com/orgs/ORGANIZATION` | -| URL del Servicio de Consumidor de Aserciones (ACS) del SP | Reply, recipient, or destination URL | URL a la que el IdP enviará respuestas de SAML | `https://github.com/orgs/ORGANIZATION/saml/consume` | -| URL de inicio de sesión único (SSO) del SP | | URL en donde el IdP comienza con SSO | `https://github.com/orgs/ORGANIZATION/saml/sso` | +| Valor | Otros nombres | Descripción | Ejemplo | +|:--------------------------------------------------------- |:---------------------------------------- |:---------------------------------------------------------------------------------------- |:--------------------------------------------------- | +| ID de Entidad de SP | URL de SP, restricción de la audiencia | The top-level URL for your organization on {% data variables.product.product_location %} | `https://github.com/orgs/ORGANIZATION` | +| URL del Servicio de Consumidor de Aserciones (ACS) del SP | URL de respuesta, receptora o de destino | URL a la que el IdP enviará respuestas de SAML | `https://github.com/orgs/ORGANIZATION/saml/consume` | +| URL de inicio de sesión único (SSO) del SP | | URL en donde el IdP comienza con SSO | `https://github.com/orgs/ORGANIZATION/saml/sso` | -### Enterprises +### Empresas The SP metadata for an enterprise on {% data variables.product.product_location %} is available at `https://github.com/enterprises/ENTERPRISE/saml/metadata`, where **ENTERPRISE** is the name of your enterprise on {% data variables.product.product_location %}. @@ -53,11 +53,11 @@ The SP metadata for an enterprise on {% data variables.product.product_location The SP metadata for {% data variables.product.product_location %} is available at `http(s)://HOSTNAME/saml/metadata`, where **HOSTNAME** is the hostname for your instance. {% data variables.product.product_name %} utiliza el enlace `urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST`. -| Valor | Otros nombres | Descripción | Ejemplo | -|:--------------------------------------------------------- |:---------------------------------------- |:---------------------------------------------------------------- |:--------------------------------- | -| ID de Entidad de SP | URL de SP, restricción de la audiencia | Your top-level URL for {% data variables.product.product_name %} | `http(s)://HOSTNAME` | -| URL del Servicio de Consumidor de Aserciones (ACS) del SP | URL de respuesta, receptora o de destino | URL a la que el IdP enviará respuestas de SAML | `http(s)://HOSTNAME/saml/consume` | -| URL de inicio de sesión único (SSO) del SP | | URL en donde el IdP comienza con SSO | `http(s)://HOSTNAME/sso` | +| Valor | Otros nombres | Descripción | Ejemplo | +|:--------------------------------------------------------- |:---------------------------------------- |:----------------------------------------------------------------------- |:--------------------------------- | +| ID de Entidad de SP | URL de SP, restricción de la audiencia | Tu URL de más alto nivel para {% data variables.product.product_name %} | `http(s)://HOSTNAME` | +| URL del Servicio de Consumidor de Aserciones (ACS) del SP | URL de respuesta, receptora o de destino | URL a la que el IdP enviará respuestas de SAML | `http(s)://HOSTNAME/saml/consume` | +| URL de inicio de sesión único (SSO) del SP | | URL en donde el IdP comienza con SSO | `http(s)://HOSTNAME/sso` | {% elsif ghae %} @@ -80,9 +80,9 @@ The following SAML attributes are available for {% data variables.product.produc | `ID del nombre` | Sí | Un identificador de usuario persistente. Se puede usar cualquier formato de identificador de nombre persistente. {% ifversion ghec %}If you use an enterprise with {% data variables.product.prodname_emus %}, {% endif %}{% data variables.product.product_name %} will normalize the `NameID` element to use as a username unless one of the alternative assertions is provided. Para obtener más información, consulta la sección "[Consideraciones de nombre de usuario para la autenticación externa](/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication)". | | `SessionNotOnOrAfter` | No | The date that {% data variables.product.product_name %} invalidates the associated session. After invalidation, the person must authenticate once again to access {% ifversion ghec or ghae %}your enterprise's resources{% elsif ghes %}{% data variables.product.product_location %}{% endif %}. For more information, see "[Session duration and timeout](#session-duration-and-timeout)." | {%- ifversion ghes or ghae %} -| `administrator` | No | When the value is `true`, {% data variables.product.product_name %} will automatically promote the user to be a {% ifversion ghes %}site administrator{% elsif ghae %}enterprise owner{% endif %}. Any other value or a non-existent value will demote the account and remove administrative access. | | `username` | No | The username for {% data variables.product.product_location %}. | +| `administrator` | No | When the value is `true`, {% data variables.product.product_name %} will automatically promote the user to be a {% ifversion ghes %}site administrator{% elsif ghae %}enterprise owner{% endif %}. Setting this attribute to anything but `true` will result in demotion, as long as the value is not blank. Omitting this attribute or leaving the value blank will not change the role of the user. | | `username` | No | The username for {% data variables.product.product_location %}. | {%- endif %} -| `full_name` | No | {% ifversion ghec %}If you configure SAML SSO for an enterprise and you use {% data variables.product.prodname_emus %}, the{% else %}The{% endif %} full name of the user to display on the user's profile page. | | `emails` | No | Las direcciones de correo electrónico del usuario.{% ifversion ghes or ghae %} Puedes especificar más de una dirección.{% endif %}{% ifversion ghec or ghes %} Si sincronizas el uso de licencias entre {% data variables.product.prodname_ghe_server %} y {% data variables.product.prodname_ghe_cloud %}, {% data variables.product.prodname_github_connect %} utiliza `emails` para identificar a los usuarios únicos entre los productos. Para obtener más información, consulta la sección "[Sincronizar el uso de licencias entre {% data variables.product.prodname_ghe_server %} y {% data variables.product.prodname_ghe_cloud %}](/billing/managing-your-license-for-github-enterprise/syncing-license-usage-between-github-enterprise-server-and-github-enterprise-cloud)".{% endif %} | | `public_keys` | No | {% ifversion ghec %}Si configuras el SSO de SAML para una empresa y utilizas {% data variables.product.prodname_emus %}, las{% else %}Las{% endif %}llaves SSH públicas para el usuario. You can specify more than one key. | | `gpg_keys` | No | {% ifversion ghec %}If you configure SAML SSO for an enterprise and you use {% data variables.product.prodname_emus %}, the{% else %}The{% endif %} GPG keys for the user. Puedes especificar más de una clave. | +| `full_name` | No | {% ifversion ghec %}If you configure SAML SSO for an enterprise and you use {% data variables.product.prodname_emus %}, the{% else %}The{% endif %} full name of the user to display on the user's profile page. | | `emails` | No | Las direcciones de correo electrónico del usuario.{% ifversion ghes or ghae %} Puedes especificar más de una dirección.{% endif %}{% ifversion ghec or ghes %} Si sincronizas el uso de licencias entre {% data variables.product.prodname_ghe_server %} y {% data variables.product.prodname_ghe_cloud %}, {% data variables.product.prodname_github_connect %} utiliza `emails` para identificar a los usuarios únicos entre los productos. Para obtener más información, consulta la sección "[Sincronizar el uso de licencias entre {% data variables.product.prodname_ghe_server %} y {% data variables.product.prodname_ghe_cloud %}](/billing/managing-your-license-for-github-enterprise/syncing-license-usage-between-github-enterprise-server-and-github-enterprise-cloud)".{% endif %} | | `public_keys` | No | {% ifversion ghec %}Si configuras el SSO de SAML para una empresa y utilizas {% data variables.product.prodname_emus %}, las{% else %}Las{% endif %}llaves SSH públicas para el usuario. Puedes especificar más de una clave. | | `gpg_keys` | No | {% ifversion ghec %}If you configure SAML SSO for an enterprise and you use {% data variables.product.prodname_emus %}, the{% else %}The{% endif %} GPG keys for the user. Puedes especificar más de una clave. | Para especificar más de un valor para un atributo, utiliza elementos múltiples de `<saml2:AttributeValue>`. diff --git a/translations/es-ES/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md b/translations/es-ES/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md index c77f2f282c..bf4a800ccf 100644 --- a/translations/es-ES/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md +++ b/translations/es-ES/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md @@ -42,7 +42,6 @@ Si compraste {% data variables.product.prodname_enterprise %} mediante un Acuerd ### Facturación para las precompilaciones de los {% data variables.product.prodname_codespaces %} -{% data reusables.codespaces.prebuilds-beta-note %} {% data reusables.codespaces.billing-for-prebuilds %} diff --git a/translations/es-ES/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md b/translations/es-ES/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md index d71e9bbc25..e789a3df32 100644 --- a/translations/es-ES/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md +++ b/translations/es-ES/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md @@ -23,7 +23,7 @@ shortTitle: Filtrar alertas ## Acerca de filtrar el resumen de seguridad -Puedes utilizar filtros en el resumen de seguridad para reducir tu enfoque con base en una serie de factores, como el nivel de riesgo de la alerta, el tipo de esta y la habilitación de características. Los diversos filtros se encuentran disponibles dependiendo de la vista específica y de si estás analizando a nivel de organización, de equipo o de repositorio. +Puedes utilizar filtros en el resumen de seguridad para reducir tu enfoque con base en una serie de factores, como el nivel de riesgo de la alerta, el tipo de esta y la habilitación de características. Different filters are available depending on the specific view and whether your analysis is at the organization, team or repository level. ## Filtrar por repositorio diff --git a/translations/es-ES/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md b/translations/es-ES/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md index 3a74065bb6..0d537c504e 100644 --- a/translations/es-ES/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md +++ b/translations/es-ES/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md @@ -50,11 +50,19 @@ The dependency review feature becomes available when you enable the dependency g {% data reusables.dependency-review.dependency-review-action-beta-note %} -You can use the Dependency Review GitHub Action in your repository to enforce dependency reviews on your pull requests. The action scans for vulnerable versions of dependencies introduced by package version changes in pull requests, and warns you about the associated security vulnerabilities. This gives you better visibility of what's changing in a pull request, and helps prevent vulnerabilities being added to your repository. For more information, see [`dependency-review-action`](https://github.com/actions/dependency-review-action). +The action is available for all {% ifversion fpt or ghec %}public repositories, as well as private {% endif %}repositories that have {% data variables.product.prodname_GH_advanced_security %} enabled. + +You can use the {% data variables.product.prodname_dependency_review_action %} in your repository to enforce dependency reviews on your pull requests. The action scans for vulnerable versions of dependencies introduced by package version changes in pull requests, and warns you about the associated security vulnerabilities. This gives you better visibility of what's changing in a pull request, and helps prevent vulnerabilities being added to your repository. For more information, see [`dependency-review-action`](https://github.com/actions/dependency-review-action). ![Dependency review action example](/assets/images/help/graphs/dependency-review-action.png) -The Dependency Review GitHub Action check will fail if it discovers any vulnerable package, but will only block a pull request from being merged if the repository owner has required the check to pass before merging. For more information, see "[About protected branches](/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#require-status-checks-before-merging)." +By default, the {% data variables.product.prodname_dependency_review_action %} check will fail if it discovers any vulnerable packages. A failed check blocks a pull request from being merged when the repository owner requires the dependency review check to pass. For more information, see "[About protected branches](/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#require-status-checks-before-merging)." The action uses the Dependency Review REST API to get the diff of dependency changes between the base commit and head commit. You can use the Dependency Review API to get the diff of dependency changes, including vulnerability data, between any two commits on a repository. For more information, see "[Dependency review](/rest/reference/dependency-graph#dependency-review)." + +{% ifversion dependency-review-action-configuration %} +You can configure the {% data variables.product.prodname_dependency_review_action %} to better suit your needs. For example, you can specify the severity level that will make the action fail, or set an allow or deny list for licenses to scan. For more information, see "[Configuring dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review#configuring-the-dependency-review-github-action)." {% endif %} + +{% endif %} + diff --git a/translations/es-ES/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md b/translations/es-ES/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md index aaeb125e06..9893cef442 100644 --- a/translations/es-ES/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md +++ b/translations/es-ES/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md @@ -47,3 +47,56 @@ La revisión de dependencias se encuentra disponible cuando se habilita la gráf 1. Under "Configure security and analysis features", check if the dependency graph is enabled. 1. If dependency graph is enabled, click **Enable** next to "{% data variables.product.prodname_GH_advanced_security %}" to enable {% data variables.product.prodname_advanced_security %}, including dependency review. El botón de habilitar está inhabilitado si tu empresa no tiene licencias disponibles para la {% data variables.product.prodname_advanced_security %}.{% ifversion ghes < 3.3 %} ![Screenshot of "Code security and analysis" features"](/assets/images/enterprise/3.2/repository/code-security-and-analysis-enable-ghas-3.2.png){% endif %}{% ifversion ghes > 3.2 %} ![Screenshot of "Code security and analysis" features"](/assets/images/enterprise/3.4/repository/code-security-and-analysis-enable-ghas-3.4.png){% endif %} {% endif %} + +{% ifversion dependency-review-action-configuration %} +## Configuring the {% data variables.product.prodname_dependency_review_action %} + +{% data reusables.dependency-review.dependency-review-action-beta-note %} +{% data reusables.dependency-review.dependency-review-action-overview %} + +The following configuration options are available. + +| Opción | Requerido | Uso | +| ------------------ | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `fail-on-severity` | Opcional | Defines the threshold for level of severity (`low`, `moderate`, `high`, `critical`).</br>The action will fail on any pull requests that introduce vulnerabilities of the specified severity level or higher. | +| `allow-licenses` | Opcional | Contains a list of allowed licenses. You can find the possible values for this parameter in the [Licenses](/rest/licenses) page of the API documentation.</br>The action will fail on pull requests that introduce dependencies with licenses that do not match the list. | +| `deny-licenses` | Opcional | Contains a list of prohibited licenses. You can find the possible values for this parameter in the [Licenses](/rest/licenses) page of the API documentation.</br>The action will fail on pull requests that introduce dependencies with licenses that match the list. | + +{% tip %} + +**Tip:** The `allow-licenses` and `deny-licenses` options are mutually exclusive. + +{% endtip %} + +This {% data variables.product.prodname_dependency_review_action %} example file illustrates how you can use these configuration options. + +```yaml{:copy} +name: 'Dependency Review' +on: [pull_request] + +permissions: + contents: read + +jobs: + dependency-review: + runs-on: ubuntu-latest + steps: + - name: 'Checkout Repository' + uses: {% data reusables.actions.action-checkout %} + - name: Dependency Review + uses: actions/dependency-review-action@v2 + with: + # Possible values: "critical", "high", "moderate", "low" + fail-on-severity: critical + # You can only can only include one of these two options: `allow-licenses` and `deny-licences` + # ([String]). Only allow these licenses (optional) + # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses + # allow-licenses: GPL-3.0, BSD-3-Clause, MIT + + # ([String]). Block the pull request on these licenses (optional) + # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses + # deny-licenses: LGPL-2.0, BSD-2-Clause +``` + +For further details about the configuration options, see [`dependency-review-action`](https://github.com/actions/dependency-review-action#readme). +{% endif %} diff --git a/translations/es-ES/content/codespaces/prebuilding-your-codespaces/about-codespaces-prebuilds.md b/translations/es-ES/content/codespaces/prebuilding-your-codespaces/about-codespaces-prebuilds.md index c6db3313c5..4b8852510a 100644 --- a/translations/es-ES/content/codespaces/prebuilding-your-codespaces/about-codespaces-prebuilds.md +++ b/translations/es-ES/content/codespaces/prebuilding-your-codespaces/about-codespaces-prebuilds.md @@ -1,7 +1,7 @@ --- title: Acerca de las precompilaciones de los codespaces shortTitle: Acerca de las precompilaciones -intro: Las precompilaciones de los codespaces te ayudan a acelerar la creación de los codespaces nuevos. +intro: Codespaces prebuilds help to speed up the creation of new codespaces for large or complex repositories. versions: fpt: '*' ghec: '*' @@ -10,15 +10,13 @@ topics: product: '{% data reusables.gated-features.codespaces %}' --- -{% data reusables.codespaces.prebuilds-beta-note %} - ## Resumen -El precompilar tus codespaces te permite ser más productivo y acceder a tu codespace más rápidamente, sin importar el tamaño y complejidad de tu proyecto. Esto es porque cualquier código fuente, extensiones del editor, dependencias de proyecto, comandos y configuraciones ya se han descargado, instalado y aplicado antes de que crees un codespace para tu proyecto. Piensa en la precompilación como una plantilla "lista para utilizarse" para un codespace. +Prebuilding your codespaces allows you to be more productive and access your codespace faster, particularly if your repository is large or complex and new codespaces currently take more than 2 minutes to start. Esto es porque cualquier código fuente, extensiones del editor, dependencias de proyecto, comandos y configuraciones ya se han descargado, instalado y aplicado antes de que crees un codespace para tu proyecto. Piensa en la precompilación como una plantilla "lista para utilizarse" para un codespace. Predeterminadamente, cada que subas cambios a tu repositorio, {% data variables.product.prodname_codespaces %} utiliza {% data variables.product.prodname_actions %} para actualizar tus precompilaciones automáticamente. -Cuando las precompilaciones están disponibles para una rama en particular de un repositorio y para tu región, verás la etiqueta "{% octicon "zap" aria-label="The zap icon" %} Prebuild ready" en la lista de opciones de tipo de máquina al crear un codespace. Para obtener más información, consulta la sección "[Crear un codespace](/codespaces/developing-in-codespaces/creating-a-codespace#creating-a-codespace)". +Cuando las precompilaciones están disponibles para una rama en particular de un repositorio y para tu región, verás la etiqueta "{% octicon "zap" aria-label="The zap icon" %} Prebuild ready" en la lista de opciones de tipo de máquina al crear un codespace. If a prebuild is still being created, you will see the "{% octicon "history" aria-label="The history icon" %} Prebuild in progress" label. Para obtener más información, consulta la sección "[Crear un codespace](/codespaces/developing-in-codespaces/creating-a-codespace#creating-a-codespace)". ![La caja de diálogo para elegir un tipo de máquina](/assets/images/help/codespaces/choose-custom-machine-type.png) diff --git a/translations/es-ES/content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md b/translations/es-ES/content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md index d66efe246f..e8f98b0ef1 100644 --- a/translations/es-ES/content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md +++ b/translations/es-ES/content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md @@ -13,8 +13,6 @@ product: '{% data reusables.gated-features.codespaces %}' permissions: People with admin access to a repository can configure prebuilds for the repository. --- -{% data reusables.codespaces.prebuilds-beta-note %} - Puedes ajustar una configuración de precompilación para una rama específica de tu repositorio. Habitualmente, a cualquier rama que se cree de una rama base con precompilación habilitada habitualmente también se le asignará una precompilación durante la creación del codespace. Esto es cierto si el contenedor dev en la rama es el mismo que en la rama base. Esto es porque la mayoría de las configuraciones de precompilación de las ramas con la misma configuración de contenedor dev son idénticas, así que los desarrolladores también pueden beneficiarse de tener tiempos más rápidos de creación de codespaces en dichas ramas. Para obtener más información, consulta la sección "[Introducción a los contenedores dev](/codespaces/setting-up-your-project-for-codespaces/introduction-to-dev-containers)". @@ -48,7 +46,15 @@ Antes de que configures las precompilaciones para tu proyecto, se debe cumplir c {% endnote %} -1. Elige las regiones en las que quieres configurar una precompilación. Los desarrolladores deben ubicarse en una región que selecciones para poder crear codespaces desde una precompilación. Como alternativa, selecciona **Todas las regiones**. +1. Elige cómo quieres activar automáticamente las actualizaciones de la plantilla de precompilación. + + * **Cada subida** (el ajuste predeterminado) - Con este ajuste, las configuraciones de precompilación se actualizarán en cada subida que se haga a la rama predeterminada. Esto garantizará que los codespaces que se generen de una plantilla de precompilación siempre contengan la configuración de codespace más reciente, incluyendo cualquier dependencia que se haya actualizado o agregado recientemente. + * **En el cambio de configuración** - Con este ajuste, as configuraciones de precompilación se actualizarán cada que lo hagan los archivos de configuración asociados para cada repositorio y rama en cuestión. Esto garantiza que los cambios a los archivos de configuración del contenedor dev para el repositorio se utilicen cuando se genera un codespace desde una plantilla de precompilación. El flujo de trabajo de acciones que actualiza la plantilla de precompilación se ejecutará con menor frecuencia, así que esta opción utilizará menos minutos de las acciones. Sin embargo, esta opción no garantiza que los cdespaces siempre incluyan dependencias recientemente actualizadas o agregadas, así que estas podrían tener que agregarse o actualizarse manualmente después de que un codespace se haya creado. + * **Programado** - Con este ajuste, puedes hacer que tus configuraciones de precompilación se actualicen en un itinerario personalizado que tú defines. This can reduce consumption of Actions minutes, however, with this option, codespaces may be created that do not use the latest dev container configuration changes. + + ![Las opciones de activación de precompilación](/assets/images/help/codespaces/prebuilds-triggers.png) + +1. Select **Reduce prebuild available to only specific regions** to limit access to your prebuilt image, then select which regions you want it available in. Developers can only create codespaces from a prebuild if they are located in a region you select. By default, your prebuilt image is available to all regions where codespaces is available and storage costs apply for each region. ![Las opciones de selección de región](/assets/images/help/codespaces/prebuilds-regions.png) @@ -60,13 +66,17 @@ Antes de que configures las precompilaciones para tu proyecto, se debe cumplir c {% endnote %} -1. Elige cómo quieres activar automáticamente las actualizaciones de la plantilla de precompilación. +1. Set the number of prebuild template versions to be retained. You can input any number between 1 and 5. The default number of saved versions is 2, which means that only the latest template version and the previous version are saved. - * **Cada subida** (el ajuste predeterminado) - Con este ajuste, las configuraciones de precompilación se actualizarán en cada subida que se haga a la rama predeterminada. Esto garantizará que los codespaces que se generen de una plantilla de precompilación siempre contengan la configuración de codespace más reciente, incluyendo cualquier dependencia que se haya actualizado o agregado recientemente. - * **En el cambio de configuración** - Con este ajuste, as configuraciones de precompilación se actualizarán cada que lo hagan los archivos de configuración asociados para cada repositorio y rama en cuestión. Esto garantiza que los cambios a los archivos de configuración del contenedor dev para el repositorio se utilicen cuando se genera un codespace desde una plantilla de precompilación. El flujo de trabajo de acciones que actualiza la plantilla de precompilación se ejecutará con menor frecuencia, así que esta opción utilizará menos minutos de las acciones. Sin embargo, esta opción no garantiza que los cdespaces siempre incluyan dependencias recientemente actualizadas o agregadas, así que estas podrían tener que agregarse o actualizarse manualmente después de que un codespace se haya creado. - * **Programado** - Con este ajuste, puedes hacer que tus configuraciones de precompilación se actualicen en un itinerario personalizado que tú defines. Esto puede reducir el consumo de minutos de acciones y también la cantidad de tiempo durante la cual las precompilaciones no están disponibles porque se están actualizando. Sin embargo, con esta opción, se podrían crear codespaces que no utilicen los cambios de configuración más recientes al contenedor dev. + Depending on your prebuild trigger settings, your prebuild template could change with each push or on each dev container configuration change. Retaining older versions of prebuild templates enables you to create a prebuild from an older commit with a different dev container configuration than the current prebuild template. Since there is a storage cost associated with retaining prebuild template versions, you can choose the number of versions to be retained based on the needs of your team. For more information on billing, see "[About billing for {% data variables.product.prodname_codespaces %}](/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces#codespaces-pricing)." - ![Las opciones de activación de precompilación](/assets/images/help/codespaces/prebuilds-triggers.png) + If you set the number of prebuild template versions to save to 1, {% data variables.product.prodname_codespaces %} will only save the latest version of the prebuild template and will delete the older version each time the template is updated. This means you will not get a prebuilt codespace if you go back to an older dev container configuration. + + ![The prebuild template history setting](/assets/images/help/codespaces/prebuilds-template-history-setting.png) + +1. Add users or teams to notify when the prebuild workflow run fails for this configuration. You can begin typing a username, team name, or full name, then click the name once it appears to add them to the list. The users or teams you add will receive an email when prebuild failures occur, containing a link to the workflow run logs to help with further investigation. + + ![The prebuild failure notification setting](/assets/images/help/codespaces/prebuilds-failure-notification-setting.png) 1. Da clic en **Crear**. diff --git a/translations/es-ES/content/codespaces/prebuilding-your-codespaces/index.md b/translations/es-ES/content/codespaces/prebuilding-your-codespaces/index.md index e726b2f76f..d924342f20 100644 --- a/translations/es-ES/content/codespaces/prebuilding-your-codespaces/index.md +++ b/translations/es-ES/content/codespaces/prebuilding-your-codespaces/index.md @@ -15,5 +15,4 @@ children: - /managing-prebuilds - /testing-dev-container-changes --- - -{% data reusables.codespaces.prebuilds-beta-note %} + diff --git a/translations/es-ES/content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md b/translations/es-ES/content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md index d92c9fd501..8c6cdce8c6 100644 --- a/translations/es-ES/content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md +++ b/translations/es-ES/content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md @@ -12,8 +12,6 @@ product: '{% data reusables.gated-features.codespaces %}' miniTocMaxHeadingLevel: 3 --- -{% data reusables.codespaces.prebuilds-beta-note %} - ## Verificar, cambiar y borrar tus configuraciones de precompilación Las precompilaciones que configuras para un repositorio se crean y actualizan utilizando un flujo de trabajo de {% data variables.product.prodname_actions %} que admistra el servicio de {% data variables.product.prodname_codespaces %}. diff --git a/translations/es-ES/content/codespaces/prebuilding-your-codespaces/testing-dev-container-changes.md b/translations/es-ES/content/codespaces/prebuilding-your-codespaces/testing-dev-container-changes.md index 71f8bb51e9..c7a5ace833 100644 --- a/translations/es-ES/content/codespaces/prebuilding-your-codespaces/testing-dev-container-changes.md +++ b/translations/es-ES/content/codespaces/prebuilding-your-codespaces/testing-dev-container-changes.md @@ -14,8 +14,6 @@ product: '{% data reusables.gated-features.codespaces %}' permissions: People with write permissions to a repository can create or edit the dev container configuration for a branch. --- -{% data reusables.codespaces.prebuilds-beta-note %} - Cualquier cambio que hagas en la configuración del contenedor dev para una rama con precompilación habilitada dará como resultado una actualización a la configuración de codespace y a la plantilla precompilada asociada. Por lo tanto, es importante probar estos cambios en un codespace de una rama de prueba antes de confirmar tus cambios en una rama de tu repositorio que se esté utilizando activamente. Esto garantizará que no estás introduciendo cambios importantes para tu equipo. Para obtener más información, consulta la sección "[Introducción a los contenedores dev](/codespaces/setting-up-your-project-for-codespaces/introduction-to-dev-containers)". diff --git a/translations/es-ES/content/codespaces/troubleshooting/troubleshooting-prebuilds.md b/translations/es-ES/content/codespaces/troubleshooting/troubleshooting-prebuilds.md index d9864669c4..f0419375a4 100644 --- a/translations/es-ES/content/codespaces/troubleshooting/troubleshooting-prebuilds.md +++ b/translations/es-ES/content/codespaces/troubleshooting/troubleshooting-prebuilds.md @@ -12,8 +12,6 @@ product: '{% data reusables.gated-features.codespaces %}' miniTocMaxHeadingLevel: 3 --- -{% data reusables.codespaces.prebuilds-beta-note %} - Para obtener más información sobre las precompilaciones de los {% data variables.product.prodname_codespaces %}, consulta la sección "[Precompilar tus codespaces](/codespaces/prebuilding-your-codespaces)". ## Verificar si un codespace se creó desde una precompilación diff --git a/translations/es-ES/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md b/translations/es-ES/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md index c19970124e..ee30b56316 100644 --- a/translations/es-ES/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md +++ b/translations/es-ES/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md @@ -159,7 +159,7 @@ Ya que los permisos a nivel de usuario se otorgan individualmente, puedes agrega ## Solicitudes de usuario a servidor -Mientras que la mayoría de tu interacción con la API deberá darse utilizando tus tokens de acceso a la instalación de servidor a servidor, ciertas terminales te permiten llevar a cabo acciones a través de la API utilizando un token de acceso. Tu app puede hacer las siguientes solicitudes utilizando las terminales de [GraphQL v4]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql) o de [REST v3](/rest). +Mientras que la mayoría de tu interacción con la API deberá darse utilizando tus tokens de acceso a la instalación de servidor a servidor, ciertas terminales te permiten llevar a cabo acciones a través de la API utilizando un token de acceso. Your app can make the following requests using [GraphQL]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql) or [REST](/rest) endpoints. ### Terminales compatibles diff --git a/translations/es-ES/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md b/translations/es-ES/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md index 8a9167f161..517ac75b96 100644 --- a/translations/es-ES/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md +++ b/translations/es-ES/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md @@ -53,7 +53,7 @@ Te recomendamos revisar la lista de terminales de la API que necesitas tan pront ### Diseñar con apego a los límites de tasa de la API -Las GitHub Apps utilizan [reglas móviles para los límites de tasa](/apps/building-github-apps/understanding-rate-limits-for-github-apps/), las cuales pueden incrementar con base en la cantidad de repositorios y usuarios de la organización. Una GitHub App también puede hacer uso de [solicitudes condicionales](/rest/overview/resources-in-the-rest-api#conditional-requests) o de solicitudes consolidadas si utiliza la [API de GraphQL V4]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). +Las GitHub Apps utilizan [reglas móviles para los límites de tasa](/apps/building-github-apps/understanding-rate-limits-for-github-apps/), las cuales pueden incrementar con base en la cantidad de repositorios y usuarios de la organización. A GitHub App can also make use of [conditional requests](/rest/overview/resources-in-the-rest-api#conditional-requests) or consolidate requests by using the [GraphQL API]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). ### Registrar una GitHub App nueva diff --git a/translations/es-ES/content/developers/overview/about-githubs-apis.md b/translations/es-ES/content/developers/overview/about-githubs-apis.md index 03d3673697..46761b74b9 100644 --- a/translations/es-ES/content/developers/overview/about-githubs-apis.md +++ b/translations/es-ES/content/developers/overview/about-githubs-apis.md @@ -14,7 +14,7 @@ topics: - API --- -Hay dos versiones estables de la API de GitHub: la [API de REST](/rest) y la [API de GraphQL]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). Cuando utilizas la API de REST, te exhortamos a que [solicites la v3 a través del encabezado de `Accept`](/v3/media/#request-specific-version). Para obtener más información sobre cómo utilizar la API de GraphQL, consulta los [documentos de la v4]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). +Hay dos versiones estables de la API de GitHub: la [API de REST](/rest) y la [API de GraphQL]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). ## Versiones obsoletas diff --git a/translations/es-ES/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md b/translations/es-ES/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md index b6b51ba297..76daf9acc7 100644 --- a/translations/es-ES/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md +++ b/translations/es-ES/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md @@ -1343,7 +1343,7 @@ El conjunto de datos de asesoría de seguridad también impulsa las {% data vari ## security_and_analysis -Activity related to enabling or disabling code security and analysis features for a repository or organization. +Actividad relacionada con habilitar o inhabilitar la seguridad de código y características de seguridad para un repositorio u organización. ### Disponibilidad @@ -1353,9 +1353,9 @@ Activity related to enabling or disabling code security and analysis features fo ### Objeto de carga útil del webhook -| Clave | Tipo | Descripción | -| --------- | -------- | ---------------------------------------------------------------------- | -| `changes` | `objeto` | The changes that were made to the code security and analysis features. | +| Clave | Tipo | Descripción | +| --------- | -------- | ------------------------------------------------------------------------------------ | +| `changes` | `objeto` | Los cambios que se hicieron a la seguridad del código y características de análisis. | {% data reusables.webhooks.repo_desc %} {% data reusables.webhooks.org_desc %} {% data reusables.webhooks.app_desc %} diff --git a/translations/es-ES/content/get-started/exploring-projects-on-github/saving-repositories-with-stars.md b/translations/es-ES/content/get-started/exploring-projects-on-github/saving-repositories-with-stars.md index 1ead23db4d..315be9b99a 100644 --- a/translations/es-ES/content/get-started/exploring-projects-on-github/saving-repositories-with-stars.md +++ b/translations/es-ES/content/get-started/exploring-projects-on-github/saving-repositories-with-stars.md @@ -40,6 +40,16 @@ Marcar un repositorio como favorito es un proceso simple de dos pasos. 1. Opcionalmente, para dejar de marcar un repositorio como favorito, haz clic en **Desmarcar como favorito**. ![Dejar de marcar a un repositorio como favorito](/assets/images/help/stars/unstarring-a-repository.png) {% ifversion fpt or ghec %} + +## Viewing who has starred a repository + + +You can view everyone who has starred a public repository or a private repository you have access to. + + +To view everyone who has starred a repository, add `/stargazers` to the end of the URL of a repository. For example, to view stargazers for the github/docs repository, visit https://github.com/github/docs/stargazers. + + ## Organizar los repositorios marcados como favoritos con las listas {% note %} diff --git a/translations/es-ES/content/get-started/quickstart/contributing-to-projects.md b/translations/es-ES/content/get-started/quickstart/contributing-to-projects.md index 9f096a5cf2..b5f327af34 100644 --- a/translations/es-ES/content/get-started/quickstart/contributing-to-projects.md +++ b/translations/es-ES/content/get-started/quickstart/contributing-to-projects.md @@ -81,7 +81,7 @@ gh repo fork <em>repository</em> --clone=true ## Hacer y subir cambios -Puedes proceder y hacer algunos cambios al proyecto utilizando tu editor de texto favorito, como [Atom](https://atom.io). Podrías, por ejemplo, cambiar el texto en `index.html` para agregar tu nombre de usuario de GitHub. +Go ahead and make a few changes to the project using your favorite text editor, like [Visual Studio Code](https://code.visualstudio.com). Podrías, por ejemplo, cambiar el texto en `index.html` para agregar tu nombre de usuario de GitHub. Cuando estés listo para enviar tus cambios, pruébalos y confírmalos. `git add .` le dice a Git que quieres incluir todos tus cambios en la siguiente confirmación. `git commit` toma una captura de estos cambios. diff --git a/translations/es-ES/content/graphql/guides/using-global-node-ids.md b/translations/es-ES/content/graphql/guides/using-global-node-ids.md index a974d033d4..7cbd72afb4 100644 --- a/translations/es-ES/content/graphql/guides/using-global-node-ids.md +++ b/translations/es-ES/content/graphql/guides/using-global-node-ids.md @@ -12,7 +12,7 @@ topics: - API --- -Puedes acceder a la mayoría de objetos en GitHub (usuarios, informes de problemas, solicitudes de extracción, etc.) utilizando ya sea la API de Rest o la de GraphQL. Puedes encontrar la **ID de nodo global** de muchos objetos desde dentro de la API de REST y utilizar estas ID en tus operaciones de GraphQL. Para obtener más información, consulta la sección "[Vista previa de las ID de nodo de la API de GraphQL v4 en los recursos de la API de REST v3](https://developer.github.com/changes/2017-12-19-graphql-node-id/)". +Puedes acceder a la mayoría de objetos en GitHub (usuarios, informes de problemas, solicitudes de extracción, etc.) utilizando ya sea la API de Rest o la de GraphQL. Puedes encontrar la **ID de nodo global** de muchos objetos desde dentro de la API de REST y utilizar estas ID en tus operaciones de GraphQL. For more information, see "[Preview GraphQL API Node IDs in REST API resources](https://developer.github.com/changes/2017-12-19-graphql-node-id/)." {% note %} diff --git a/translations/es-ES/content/graphql/overview/resource-limitations.md b/translations/es-ES/content/graphql/overview/resource-limitations.md index 22014d48e9..ce18961063 100644 --- a/translations/es-ES/content/graphql/overview/resource-limitations.md +++ b/translations/es-ES/content/graphql/overview/resource-limitations.md @@ -14,7 +14,7 @@ topics: ## Límite de nodo -Para pasar la validación del [modelo](/graphql/guides/introduction-to-graphql#schema), todas las [llamadas](/graphql/guides/forming-calls-with-graphql) la API v4 de GraphQL deben cumplir con los siguientes estándares: +To pass [schema](/graphql/guides/introduction-to-graphql#schema) validation, all GraphQL API [calls](/graphql/guides/forming-calls-with-graphql) must meet these standards: * Los clientes deben suministrar un argumento `first` o `last` en cualquier [conexión](/graphql/guides/introduction-to-graphql#connection). * Los valores de `first` y `last` deben estar dentro de 1-100. @@ -130,30 +130,30 @@ Estos dos ejemplos te muestran cómo calcular los nodos totales en una llamada. ## Limite de tasa -El límite de la API v4 de GraphQL es diferente a los [límites de tasa](/rest/overview/resources-in-the-rest-api#rate-limiting) de la API v3 de REST. +The GraphQL API limit is different from the REST API's [rate limits](/rest/overview/resources-in-the-rest-api#rate-limiting). ¿Por qué son diferentes los límites de tasa de la API? Con [GraphQL](/graphql), una llamada de GraphQL puede reemplazar [varias llamadas de REST](/graphql/guides/migrating-from-rest-to-graphql). Una sola llamada compleja de GraphQL puede ser el equivalente a miles de solicitudes de REST. Si bien una sola llamada de GraphQL caería muy debajo del límite de tasa de la API de REST, la consulta podría ser igual de cara en términos de procesamiento para los servidores de GitHub. -Para representar con precisión el costo de una consulta al servidor, la API v4 de GraphQL calcula la **puntuación de tasa límite** de una llamada con base en una escala de puntos normalizada. Los factores de puntuación de una consulta en argumentos "firs" y "last" en una conexión padre y sus hijos. +To accurately represent the server cost of a query, the GraphQL API calculates a call's **rate limit score** based on a normalized scale of points. Los factores de puntuación de una consulta en argumentos "firs" y "last" en una conexión padre y sus hijos. * La fórmula utiliza los argumentos `first` y `last` en una conexión padre y en sus hijos para pre-calcular la carga potencial en los sistemas de GitHub, tal como MySQL, ElasticSearch y Git. * Cada conexión nueva tiene su propio valor de puntos. Los puntos se combinan con otros puntos desde la llamada en una puntuación de tasa límite general. -El límite de tasa de la API v4 de GraphQL es de **5,000 puntos por hora**. +The GraphQL API rate limit is **5,000 points per hour**. -Nota que 5,000 puntos por hora no es lo mismo que 5,000 llamadas por hora: la API v4 de GraphQL y la API v3 de REST utilizan límites de tasa diferentes. +Note that 5,000 points per hour is not the same as 5,000 calls per hour: the GraphQL API and REST API use different rate limits. {% note %} -**Nota**: La fórmula y el límite de tasa actuales están sujetos a cambio mientras observamos cómo los desarrolladores utilizan la API v4 de GraphQL. +**Note**: The current formula and rate limit are subject to change as we observe how developers use the GraphQL API. {% endnote %} ### Recuperar el estado de límite de tasa de una llamada -Con la API v3 de REST, puedes revisar el estado de límite de tasa si [inspeccionas](/rest/overview/resources-in-the-rest-api#rate-limiting) los encabezados HTTP devueltos. +With the REST API, you can check the rate limit status by [inspecting](/rest/overview/resources-in-the-rest-api#rate-limiting) the returned HTTP headers. -Con la API v4 de GraphQL, puedes revisar el estado de límite de tasa si consultas los campos en el objeto `rateLimit`: +With the GraphQL API, you can check the rate limit status by querying fields on the `rateLimit` object: ```graphql query { @@ -186,7 +186,7 @@ Al consultar el objeto `rateLimit` se devuelve el puntaje de una llamada, pero e {% note %} -**Nota**: El costo mínimo de una llamada a la API v4 de GraphQL es **1**, lo cual representa solo una solicitud. +**Note**: The minimum cost of a call to the GraphQL API is **1**, representing a single request. {% endnote %} diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md index acd5c5d82d..14ac99a496 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md @@ -40,16 +40,16 @@ You can filter files in a pull request by file extension type, such as `.html` o {% data reusables.repositories.sidebar-pr %} 1. In the list of pull requests, click the pull request you'd like to filter. {% data reusables.repositories.changed-files %} -1. If the file tree is hidden, click **Show file tree** to display the file tree. + +1. Click on a file in the file tree to view the corresponding file diff. If the file tree is hidden, click {% octicon "sidebar-collapse" aria-label="The sidebar collapse icon" %} to display the file tree. {% note %} **Note**: The file tree will not display if your screen width is too narrow or if the pull request only includes one file. {% endnote %} - -1. Click on a file in the file tree to view the corresponding file diff. - ![Pull request file tree](/assets/images/help/pull_requests/pr-file-tree.png) + + ![Screenshot of filter changed files search box and file tree emphasized](/assets/images/help/repository/file-tree.png) 1. To filter by file path, enter part or all of the file path in the **Filter changed files** search box. Alternatively, use the file filter dropdown. For more information, see "[Using the file filter dropdown](#using-the-file-filter-dropdown)." {% endif %} diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md index baea88ca85..f9c70bdcc1 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md @@ -35,9 +35,14 @@ shortTitle: Review dependency changes Dependency review allows you to "shift left". You can use the provided predictive information to catch vulnerable dependencies before they hit production. For more information, see "[About dependency review](/code-security/supply-chain-security/about-dependency-review)." {% ifversion fpt or ghec or ghes > 3.5 or ghae-issue-6396 %} -You can use the Dependency Review GitHub Action to help enforce dependency reviews on pull requests in your repository. For more information, see "[Dependency review enforcement](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement)." + +You can use the {% data variables.product.prodname_dependency_review_action %} to help enforce dependency reviews on pull requests in your repository. {% data reusables.dependency-review.dependency-review-action-overview %} + +{% ifversion dependency-review-action-configuration %} +You can configure the {% data variables.product.prodname_dependency_review_action %} to better suit your needs by specifying the type of dependency vulnerability you wish to catch. For more information, see "[Configuring dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review#configuring-the-dependency-review-github-action)." {% endif %} +{% endif %} ## Reviewing dependencies in a pull request {% data reusables.repositories.sidebar-pr %} diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md index f1fecbd82a..002ab0a8a0 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md @@ -77,14 +77,8 @@ Before you can sync your fork with an upstream repository, you must [configure a > 2 files changed, 7 insertions(+), 9 deletions(-) > delete mode 100644 README > create mode 100644 README.md - ``` If your local branch didn't have any unique commits, Git will instead perform a "fast-forward": - ```shell - $ git merge upstream/main - > Updating 34e91da..16c56ad - > Fast-forward - > README.md | 5 +++-- - > 1 file changed, 3 insertions(+), 2 deletions(-) - ``` + ``` + {% tip %} diff --git a/translations/es-ES/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md b/translations/es-ES/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md index 8e90ee209d..d1181dc8ce 100644 --- a/translations/es-ES/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md +++ b/translations/es-ES/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md @@ -41,5 +41,28 @@ Once the commit is on the default branch, any tags that contain the commit will ![Screenshot of commit with commit tag emphasized](/assets/images/help/commits/commit-tag-label.png) +{% ifversion commit-tree-view %} + +## Using the file tree + +You can use the file tree to navigate between files in a commit. + +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.navigate-to-commit-page %} +1. Navigate to the commit by clicking the commit message link. + ![Screenshot of commit with commit message link emphasized](/assets/images/help/commits/commit-message-link.png) +1. Click on a file in the file tree to view the corresponding file diff. If the file tree is hidden, click {% octicon "sidebar-collapse" aria-label="The sidebar collapse icon" %} to display the file tree. + + {% note %} + + **Note**: The file tree will not display if your screen width is too narrow or if the commit only includes one file. + + {% endnote %} + + ![Screenshot of filter changed files search box and file tree emphasized](/assets/images/help/repository/file-tree.png) +1. To filter by file path, enter part or all of the file path in the **Filter changed files** search box. + +{% endif %} + ## Further reading - "[Committing and reviewing changes to your project](/desktop/contributing-to-projects/committing-and-reviewing-changes-to-your-project#about-commits)" on {% data variables.product.prodname_desktop %} \ No newline at end of file diff --git a/translations/es-ES/content/rest/overview/libraries.md b/translations/es-ES/content/rest/overview/libraries.md index b147834fbc..16f9d3b30e 100644 --- a/translations/es-ES/content/rest/overview/libraries.md +++ b/translations/es-ES/content/rest/overview/libraries.md @@ -24,12 +24,6 @@ topics: </div> </div> -{% warning %} - -Advertencia: Desde la segunda mitad de octubre del 2021, ya no se están manteniendo las librerías oficiales de Octokit. Para obtener más información, consulta [este debate en el repositorio de octokit.js](https://github.com/octokit/octokit.js/discussions/620). - -{% endwarning %} - # Librería de terceros ### Clojure diff --git a/translations/es-ES/content/rest/overview/permissions-required-for-github-apps.md b/translations/es-ES/content/rest/overview/permissions-required-for-github-apps.md index f7551320dc..36cca76606 100644 --- a/translations/es-ES/content/rest/overview/permissions-required-for-github-apps.md +++ b/translations/es-ES/content/rest/overview/permissions-required-for-github-apps.md @@ -185,7 +185,7 @@ _Buscar_ - [`PUT /repos/:owner/:repo/topics`](/rest/reference/repos#replace-all-repository-topics) (:write) - [`POST /repos/:owner/:repo/transfer`](/rest/reference/repos#transfer-a-repository) (:write) {% ifversion fpt or ghec -%} -- [`GET /repos/:owner/:repo/vulnerability-alerts`](/rest/reference/repos#enable-vulnerability-alerts) (:write) +- [`GET /repos/:owner/:repo/vulnerability-alerts`](/rest/reference/repos#enable-vulnerability-alerts) (:read) {% endif -%} {% ifversion fpt or ghec -%} - [`PUT /repos/:owner/:repo/vulnerability-alerts`](/rest/reference/repos#enable-vulnerability-alerts) (:write) diff --git a/translations/es-ES/content/rest/overview/resources-in-the-rest-api.md b/translations/es-ES/content/rest/overview/resources-in-the-rest-api.md index 5e3852220c..315568fa73 100644 --- a/translations/es-ES/content/rest/overview/resources-in-the-rest-api.md +++ b/translations/es-ES/content/rest/overview/resources-in-the-rest-api.md @@ -24,7 +24,7 @@ Predeterminadamente, todas las solicitudes a `{% data variables.product.api_url_ {% ifversion fpt or ghec %} -Para obtener más información acerca de la API de GraphQL de GitHub, consulta la [documentación de la V4]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). Para obtener más información acerca de cómo migrarse a GraphQL, consulta la sección "[Migrarse desde REST]({% ifversion ghec%}/free-pro-team@latest{% endif %}/graphql/guides/migrating-from-rest-to-graphql)". +For information about GitHub's GraphQL API, see the [documentation]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). Para obtener más información acerca de cómo migrarse a GraphQL, consulta la sección "[Migrarse desde REST]({% ifversion ghec%}/free-pro-team@latest{% endif %}/graphql/guides/migrating-from-rest-to-graphql)". {% endif %} diff --git a/translations/es-ES/data/features/commit-tree-view.yml b/translations/es-ES/data/features/commit-tree-view.yml new file mode 100644 index 0000000000..dcbaf701ba --- /dev/null +++ b/translations/es-ES/data/features/commit-tree-view.yml @@ -0,0 +1,8 @@ +--- +#Issue 6662 +#Commit file tree view +versions: + fpt: '*' + ghec: '*' + ghes: '>=3.6' + ghae: 'issue-6662' diff --git a/translations/es-ES/data/features/container-hooks.yml b/translations/es-ES/data/features/container-hooks.yml new file mode 100644 index 0000000000..145f5514b5 --- /dev/null +++ b/translations/es-ES/data/features/container-hooks.yml @@ -0,0 +1,7 @@ +--- +#Reference: #7070 +#Actions Runner Container Hooks +versions: + fpt: '*' + ghec: '*' + ghae: 'issue-7070' diff --git a/translations/es-ES/data/features/dependency-review-action-configuration.yml b/translations/es-ES/data/features/dependency-review-action-configuration.yml new file mode 100644 index 0000000000..1ab87445b9 --- /dev/null +++ b/translations/es-ES/data/features/dependency-review-action-configuration.yml @@ -0,0 +1,7 @@ +--- +#Reference: Issue #7061 Configuring the dependency review action - [Public Beta] +versions: + fpt: '*' + ghec: '*' + ghes: '>3.5' + ghae: 'issue-7061' diff --git a/translations/es-ES/data/graphql/ghec/graphql_upcoming_changes.public.yml b/translations/es-ES/data/graphql/ghec/graphql_upcoming_changes.public.yml index bb71103df8..9453e1ac6c 100644 --- a/translations/es-ES/data/graphql/ghec/graphql_upcoming_changes.public.yml +++ b/translations/es-ES/data/graphql/ghec/graphql_upcoming_changes.public.yml @@ -100,8 +100,8 @@ upcoming_changes: owner: cheshire137 - location: DependencyGraphDependency.packageLabel - description: '`packageLabel` will be removed. Use normalized `packageName` field instead.' - reason: '`packageLabel` will be removed.' + description: '`packageLabel` se eliminará. Utiliza el campo normalizado `packageName` en su lugar.' + reason: '`packageLabel` se eliminará.' date: '2022-10-01T00:00:00+00:00' criticality: breaking owner: github/dependency_graph diff --git a/translations/es-ES/data/graphql/graphql_upcoming_changes.public.yml b/translations/es-ES/data/graphql/graphql_upcoming_changes.public.yml index bb71103df8..9453e1ac6c 100644 --- a/translations/es-ES/data/graphql/graphql_upcoming_changes.public.yml +++ b/translations/es-ES/data/graphql/graphql_upcoming_changes.public.yml @@ -100,8 +100,8 @@ upcoming_changes: owner: cheshire137 - location: DependencyGraphDependency.packageLabel - description: '`packageLabel` will be removed. Use normalized `packageName` field instead.' - reason: '`packageLabel` will be removed.' + description: '`packageLabel` se eliminará. Utiliza el campo normalizado `packageName` en su lugar.' + reason: '`packageLabel` se eliminará.' date: '2022-10-01T00:00:00+00:00' criticality: breaking owner: github/dependency_graph diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-1/0.yml b/translations/es-ES/data/release-notes/enterprise-server/3-1/0.yml index 46810ffcb3..f3f3829477 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-1/0.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-1/0.yml @@ -109,5 +109,8 @@ sections: - heading: 'Obsoletización del soporte para XenServer Hypervisor' notes: - 'Desde {% data variables.product.prodname_ghe_server %} 3.1, comenzaremos a descontinuar el soporte par Xen Hypervisor. La obsoletización completa está programada para {% data variables.product.prodname_ghe_server %} 3.3, siguiendo la ventana de obsoletización estándar de un año.' + - heading: 'Change to the format of authentication tokens affects GitHub Connect' + notes: + - "GitHub Connect will no longer work after June 3rd for instances running GitHub Enterprise Server 3.1 or older, due to the format of GitHub authentication tokens changing. To continue using GitHub Connect, upgrade to GitHub Enterprise Server 3.2 or later. For more information, see the [GitHub Blog](https://github.blog/2022-05-20-action-needed-by-github-connect-customers-using-ghes-3-1-and-older-to-adopt-new-authentication-token-format-updates/). [Updated: 2022-06-14]\n" backups: - '{% data variables.product.prodname_ghe_server %} 3.1 requiere por lo menos de una versión [3.1.0 de las Utilidades de Respaldo de GitHub Enterprise](https://github.com/github/backup-utils) para los [Respaldos y la Recuperación de Desastres](/enterprise-server@3.1/admin/configuration/configuring-backups-on-your-appliance).' diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-1/22.yml b/translations/es-ES/data/release-notes/enterprise-server/3-1/22.yml new file mode 100644 index 0000000000..0d07220583 --- /dev/null +++ b/translations/es-ES/data/release-notes/enterprise-server/3-1/22.yml @@ -0,0 +1,21 @@ +--- +date: '2022-06-09' +sections: + security_fixes: + - Los paquetes se actualizaron a las últimas versiones de seguridad. + bugs: + - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). + - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured. + - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. + - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + changes: + - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. + known_issues: + - El registor de npm del {% data variables.product.prodname_registry %} ya no regresa un valor de tiempo en las respuestas de metadatos. Esto se hizo para permitir mejoras de rendimiento sustanciales. Seguimos teniendo todos los datos necesarios para devolver un valor de tiempo como parte de la respuesta de metadatos y terminaremos de devolver este valor ene l futuro una vez que hayamos resuelto los problemas de rendimiento existentes. + - En una instancia recién configurada de {% data variables.product.prodname_ghe_server %} sin ningún usuario, un atacante podría crear el primer usuario adminsitrador. + - Las reglas de cortafuegos personalizadas se eliminan durante el proceso de actualización. + - Los archivos rastreados del LFS de Git que se [cargaron mediante la interface web](https://github.com/blog/2105-upload-files-to-your-repositories) se agregaron incorrecta y directamente al repositorio. + - Las propuestas no pudieron cerrarse si contenían un permalink a un blob en el mismo repositorio en donde la ruta de archvio del blob era más grande a 255 caracteres. + - Cuando se habilita la opción "Los usuarios pueden buscar en GitHub.com" con las propuestas de {% data variables.product.prodname_github_connect %}, las propuestas en los repositorios internos y privados no se incluyen en los resultados de búsqueda de {% data variables.product.prodname_dotcom_the_website %}. + - Si se habilitan las {% data variables.product.prodname_actions %} para {% data variables.product.prodname_ghe_server %}, el desmontar un nodo de réplica con `ghe-repl-teardown` tendrá éxito, pero podría devolver un `ERROR:Running migrations`. + - Los límites de recursos que son específicos para procesar ganchos de pre-recepción podrían ocasionar que fallen algunos ganchos de pre-recepción. diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-2/0.yml b/translations/es-ES/data/release-notes/enterprise-server/3-2/0.yml index dd9ef8063b..70d42db919 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-2/0.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-2/0.yml @@ -306,6 +306,11 @@ sections: Two legacy GitHub Apps-related webhook events have been removed: `integration_installation` and `integration_installation_repositories`. You should instead be listening to the `installation` and `installation_repositories` events. - | The following REST API endpoint has been removed: `POST /installations/{installation_id}/access_tokens`. You should instead be using the namespaced equivalent `POST /app/installations/{installation_id}/access_tokens`. + - heading: Change to the format of authentication tokens affects GitHub Connect + notes: + # https://github.com/github/releases/issues/1235 + - | + GitHub Connect will no longer work after June 3rd for instances running GitHub Enterprise Server 3.1 or older, due to the format of GitHub authentication tokens changing. To continue using GitHub Connect, upgrade to GitHub Enterprise Server 3.2 or later. For more information, see the [GitHub Blog](https://github.blog/2022-05-20-action-needed-by-github-connect-customers-using-ghes-3-1-and-older-to-adopt-new-authentication-token-format-updates/). [Updated: 2022-06-14] backups: - '{% data variables.product.prodname_ghe_server %} 3.2 requires at least [GitHub Enterprise Backup Utilities 3.2.0](https://github.com/github/backup-utils) for [Backups and Disaster Recovery](/enterprise-server@3.2/admin/configuration/configuring-backups-on-your-appliance).' diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-2/14.yml b/translations/es-ES/data/release-notes/enterprise-server/3-2/14.yml new file mode 100644 index 0000000000..416d6b6f1c --- /dev/null +++ b/translations/es-ES/data/release-notes/enterprise-server/3-2/14.yml @@ -0,0 +1,23 @@ +--- +date: '2022-06-09' +sections: + security_fixes: + - Los paquetes se actualizaron a las últimas versiones de seguridad. + bugs: + - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). + - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured. + - The `--gateway` argument was added to the `ghe-setup-network` command, to allow passing the gateway address when configuring network settings using the command line. + - Image attachments that were deleted would return a `500 Internal Server Error` instead of a `404 Not Found` error. + - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. + - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + changes: + - Optimised the inclusion of metrics when generating a cluster support bundle. + - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. + known_issues: + - En una instancia recién configurada de {% data variables.product.prodname_ghe_server %} sin ningún usuario, un atacante podría crear el primer usuario adminsitrador. + - Las reglas de cortafuegos personalizadas se eliminan durante el proceso de actualización. + - Los archivos rastreados del LFS de Git que se [cargaron mediante la interface web](https://github.com/blog/2105-upload-files-to-your-repositories) se agregaron incorrecta y directamente al repositorio. + - Las propuestas no pudieron cerrarse si contenían un permalink a un blob en el mismo repositorio en donde la ruta de archvio del blob era más grande a 255 caracteres. + - Cuando se habilita la opción "Los usuarios pueden buscar en GitHub.com" con las propuestas de {% data variables.product.prodname_github_connect %}, las propuestas en los repositorios internos y privados no se incluyen en los resultados de búsqueda de {% data variables.product.prodname_dotcom_the_website %}. + - El registor de npm del {% data variables.product.prodname_registry %} ya no regresa un valor de tiempo en las respuestas de metadatos. Esto se hizo para permitir mejoras de rendimiento sustanciales. Seguimos teniendo todos los datos necesarios para devolver un valor de tiempo como parte de la respuesta de metadatos y terminaremos de devolver este valor ene l futuro una vez que hayamos resuelto los problemas de rendimiento existentes. + - Los límites de recursos que son específicos para procesar ganchos de pre-recepción podrían ocasionar que fallen algunos ganchos de pre-recepción. diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-3/0.yml b/translations/es-ES/data/release-notes/enterprise-server/3-3/0.yml index 15099e91f7..1d3acc7afb 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-3/0.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-3/0.yml @@ -113,5 +113,8 @@ sections: - heading: 'Obsoletización de extensiones de bit-caché personalizadas' notes: - "Desde {% data variables.product.prodname_ghe_server %} 3.1, el soporte de las extensiones bit-cache propietarias de {% data variables.product.company_short %} se comenzó a eliminar paulatinamente. Estas extensiones ahora son obsoletas en {% data variables.product.prodname_ghe_server %} 3.3.\n\nCualquier repositorio que ya haya estado presente y activo en {% data variables.product.product_location %} ejecutando la versión 3.1 o 3.2 ya se actualizó atuomáticamente.\n\nLos repositorios que no estuvieron presentes y activos antes de mejorar a {% data variables.product.prodname_ghe_server %} 3.3 podrían no funcionar de forma óptima sino hasta que se ejecute una tarea de mantenimiento de repositorio y esta se complete exitosamente.\n\nPara iniciar una tarea de mantenimiento de repositorio manualmente, dirígete a `https://<hostname>/stafftools/repositories/<owner>/<repository>/network` en cada repositorio afectado y haz clic en el botón **Schedule**.\n" + - heading: 'Change to the format of authentication tokens affects GitHub Connect' + notes: + - "GitHub Connect will no longer work after June 3rd for instances running GitHub Enterprise Server 3.1 or older, due to the format of GitHub authentication tokens changing. To continue using GitHub Connect, upgrade to GitHub Enterprise Server 3.2 or later. For more information, see the [GitHub Blog](https://github.blog/2022-05-20-action-needed-by-github-connect-customers-using-ghes-3-1-and-older-to-adopt-new-authentication-token-format-updates/). [Updated: 2022-06-14]\n" backups: - '{% data variables.product.prodname_ghe_server %} 3.3 requiere por lo menos de las [Utilidades de Respaldo de GitHub Enterprise Backup 3.3.0](https://github.com/github/backup-utils) para hacer [Respaldos y Recuperación de Desastres](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance).' diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-3/9.yml b/translations/es-ES/data/release-notes/enterprise-server/3-3/9.yml new file mode 100644 index 0000000000..be9cbc5cc3 --- /dev/null +++ b/translations/es-ES/data/release-notes/enterprise-server/3-3/9.yml @@ -0,0 +1,26 @@ +--- +date: '2022-06-09' +sections: + security_fixes: + - Los paquetes se actualizaron a las últimas versiones de seguridad. + bugs: + - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). + - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured + - The `--gateway` argument was added to the `ghe-setup-network` command, to allow passing the gateway address when configuring network settings using the command line. + - Image attachments that were deleted would return a `500 Internal Server Error` instead of a `404 Not Found` error. + - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. + - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + changes: + - Optimised the inclusion of metrics when generating a cluster support bundle. + - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. + - When using `ghe-migrator` or exporting from {% data variables.product.prodname_dotcom_the_website %}, migrations would fail to export pull request attachments. + known_issues: + - Después de haber actualizado a {% data variables.product.prodname_ghe_server %} 3.3, podría que las {% data variables.product.prodname_actions %} no inicien automáticamente. Para resolver este problema, conéctate al aplicativo a través de SSH y ejecuta el comando `ghe-actions-start`. + - En una instancia recién configurada de {% data variables.product.prodname_ghe_server %} sin ningún usuario, un atacante podría crear el primer usuario adminsitrador. + - Las reglas de cortafuegos personalizadas se eliminan durante el proceso de actualización. + - Los archivos rastreados del LFS de Git que se [cargaron mediante la interface web](https://github.com/blog/2105-upload-files-to-your-repositories) se agregaron incorrecta y directamente al repositorio. + - Las propuestas no pudieron cerrarse si contenían un permalink a un blob en el mismo repositorio en donde la ruta de archvio del blob era más grande a 255 caracteres. + - Cuando se habilita la opción "Los usuarios pueden buscar en GitHub.com" con las propuestas de {% data variables.product.prodname_github_connect %}, las propuestas en los repositorios internos y privados no se incluyen en los resultados de búsqueda de {% data variables.product.prodname_dotcom_the_website %}. + - El registor de npm del {% data variables.product.prodname_registry %} ya no regresa un valor de tiempo en las respuestas de metadatos. Esto se hizo para permitir mejoras de rendimiento sustanciales. Seguimos teniendo todos los datos necesarios para devolver un valor de tiempo como parte de la respuesta de metadatos y terminaremos de devolver este valor ene l futuro una vez que hayamos resuelto los problemas de rendimiento existentes. + - Los límites de recursos que son específicos para procesar ganchos de pre-recepción podrían ocasionar que fallen algunos ganchos de pre-recepción. + - 'Los ajustes de almacenamiento de {% data variables.product.prodname_actions %} no pueden validarse y guardarse en la {% data variables.enterprise.management_console %} cuando se selecciona "Forzar estilo de ruta" y, en su lugar, debe configurarse la utilidad de línea de comando `ghe-actions-precheck`.' diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-4/0.yml b/translations/es-ES/data/release-notes/enterprise-server/3-4/0.yml index 128732f1a5..c549ca0072 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-4/0.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-4/0.yml @@ -199,5 +199,10 @@ sections: Los repositorios que no estuvieron presentes y activos antes de mejorar a {% data variables.product.prodname_ghe_server %} 3.3 podrían no funcionar de forma óptima sino hasta que se ejecute una tarea de mantenimiento de repositorio y esta se complete exitosamente. Para iniciar una tarea de mantenimiento de repositorio manualmente, dirígete a `https://<hostname>/stafftools/repositories/<owner>/<repository>/network` en cada repositorio afectado y haz clic en el botón **Schedule**. + - + heading: Change to the format of authentication tokens affects GitHub Connect + notes: + - | + GitHub Connect will no longer work after June 3rd for instances running GitHub Enterprise Server 3.1 or older, due to the format of GitHub authentication tokens changing. For more information, see the [GitHub changelog](https://github.blog/2022-05-20-action-needed-by-github-connect-customers-using-ghes-3-1-and-older-to-adopt-new-authentication-token-format-updates/). [Updated: 2022-06-14] backups: - '{% data variables.product.prodname_ghe_server %} 3.4 requiere por lo menos de las [Utilidades de Respaldo de GitHub Enterprise 3.4.0](https://github.com/github/backup-utils) para la [Recuperación de Desastres y Respaldos](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance).' diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-4/4.yml b/translations/es-ES/data/release-notes/enterprise-server/3-4/4.yml new file mode 100644 index 0000000000..5466f12bab --- /dev/null +++ b/translations/es-ES/data/release-notes/enterprise-server/3-4/4.yml @@ -0,0 +1,34 @@ +--- +date: '2022-06-09' +sections: + security_fixes: + - Los paquetes se actualizaron a las últimas versiones de seguridad. + bugs: + - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). + - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured. + - When {% data variables.product.prodname_actions %} was enabled but TLS was disabled on {% data variables.product.prodname_ghe_server %} 3.4.1 and later, applying a configuration update would fail. + - The `--gateway` argument was added to the `ghe-setup-network` command, to allow passing the gateway address when configuring network settings using the command line. + - 'The [{% data variables.product.prodname_GH_advanced_security %} billing API](/rest/enterprise-admin/billing#get-github-advanced-security-active-committers-for-an-enterprise) endpoints were not enabled and accessible.' + - Image attachments that were deleted would return a `500 Internal Server Error` instead of a `404 Not Found` error. + - In environments configured with a repository cache server, the `ghe-repl-status` command incorrectly showed gists as being under-replicated. + - The "Get a commit" and "Compare two commits" endpoints in the [Commit API](/rest/commits/commits) would return a `500` error if a file path in the diff contained an encoded and escaped unicode character. + - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. + - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + - The activity timeline for secret scanning alerts wasn't displayed. + changes: + - Optimised the inclusion of metrics when generating a cluster support bundle. + - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. + known_issues: + - En una instancia recién configurada de {% data variables.product.prodname_ghe_server %} sin ningún usuario, un atacante podría crear el primer usuario adminsitrador. + - Las reglas de cortafuegos personalizadas se eliminan durante el proceso de actualización. + - Los archivos rastreados del LFS de Git que se [cargaron mediante la interface web](https://github.com/blog/2105-upload-files-to-your-repositories) se agregaron incorrecta y directamente al repositorio. + - Las propuestas no pudieron cerrarse si contenían un permalink a un blob en el mismo repositorio en donde la ruta de archvio del blob era más grande a 255 caracteres. + - Cuando se habilita la opción "Los usuarios pueden buscar en GitHub.com" con las propuestas de {% data variables.product.prodname_github_connect %}, las propuestas en los repositorios internos y privados no se incluyen en los resultados de búsqueda de {% data variables.product.prodname_dotcom_the_website %}. + - El registor de npm del {% data variables.product.prodname_registry %} ya no regresa un valor de tiempo en las respuestas de metadatos. Esto se hizo para permitir mejoras de rendimiento sustanciales. Seguimos teniendo todos los datos necesarios para devolver un valor de tiempo como parte de la respuesta de metadatos y terminaremos de devolver este valor ene l futuro una vez que hayamos resuelto los problemas de rendimiento existentes. + - Los límites de recursos que son específicos para procesar ganchos de pre-recepción podrían ocasionar que fallen algunos ganchos de pre-recepción. + - | + Cuando utilizas las aserciones cifradas con {% data variables.product.prodname_ghe_server %} 3.4.0 y 3.4.1, un atributo nuevo de XML `WantAssertionsEncrypted` en el `SPSSODescriptor` contiene un atributo inválido para los metadatos de SAML. Los IdP que consumen esta terminal de metadatos de SAML podrían encontrar errores al validar el modelo XML de los metadatos de SAML. Habrá una corrección disponible en el siguiente lanzamiento de parche. [Actualizado: 2022-04-11] + + Para darle una solución a este problema, puedes tomar una de las dos acciones siguientes. + - Reconfigurar el IdP cargando una copia estática de los metadatos de SAML sin el atributo `WantAssertionsEncrypted`. + - Copiar los metadatos de SAML, eliminar el atributo `WantAssertionsEncrypted`, hospedarlo en un servidor web y reconfigurar el IdP para que apunte a esa URL. diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-5/0.yml b/translations/es-ES/data/release-notes/enterprise-server/3-5/0.yml index b641f22b38..f98c4ab45c 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-5/0.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-5/0.yml @@ -319,10 +319,10 @@ sections: MinIO has announced the removal of the MinIO Gateways starting June 1st, 2022. While MinIO Gateway for NAS continues to be one of the supported storage providers for Github Actions and Github Packages, we recommend moving to MinIO LTS support to avail support and bug fixes from MinIO. For more information about rate limits, see "[Scheduled removal of MinIO Gateway for GCS, Azure, HDFS in the minio/minio repository](https://github.com/minio/minio/issues/14331)." deprecations: - - heading: Change to the format of authentication tokens + heading: Change to the format of authentication tokens affects GitHub Connect notes: - | - GitHub Connect will no longer work after June 3rd for instances running GitHub Enterprise Server 3.1 or older, due to the format of GitHub authentication tokens changing. For more information, see the [GitHub changelog](https://github.blog/changelog/2021-03-31-authentication-token-format-updates-are-generally-available/). + GitHub Connect will no longer work after June 3rd for instances running GitHub Enterprise Server 3.1 or older, due to the format of GitHub authentication tokens changing. To continue using GitHub Connect, upgrade to GitHub Enterprise Server 3.2 or later. For more information, see the [GitHub Blog](https://github.blog/2022-05-20-action-needed-by-github-connect-customers-using-ghes-3-1-and-older-to-adopt-new-authentication-token-format-updates/). [Updated: 2022-06-14] - heading: CodeQL runner deprecated in favor of CodeQL CLI notes: diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-5/1.yml b/translations/es-ES/data/release-notes/enterprise-server/3-5/1.yml new file mode 100644 index 0000000000..d48f73aee1 --- /dev/null +++ b/translations/es-ES/data/release-notes/enterprise-server/3-5/1.yml @@ -0,0 +1,32 @@ +--- +date: '2022-06-09' +sections: + security_fixes: + - Los paquetes se actualizaron a las últimas versiones de seguridad. + bugs: + - An internal script to validate hostnames in the {% data variables.product.prodname_ghe_server %} configuration file would return an error if the hostname string started with a "." (period character). + - In HA configurations where the primary node's hostname was longer than 60 characters, MySQL would fail to be configured. + - When {% data variables.product.prodname_actions %} was enabled but TLS was disabled on {% data variables.product.prodname_ghe_server %} 3.4.1 and later, applying a configuration update would fail. + - The `--gateway` argument was added to the `ghe-setup-network` command, to allow passing the gateway address when configuring network settings using the command line. + - 'The [{% data variables.product.prodname_GH_advanced_security %} billing API](/rest/enterprise-admin/billing#get-github-advanced-security-active-committers-for-an-enterprise) endpoints were not enabled and accessible.' + - Image attachments that were deleted would return a `500 Internal Server Error` instead of a `404 Not Found` error. + - In environments configured with a repository cache server, the `ghe-repl-status` command incorrectly showed gists as being under-replicated. + - The "Get a commit" and "Compare two commits" endpoints in the [Commit API](/rest/commits/commits) would return a `500` error if a file path in the diff contained an encoded and escaped unicode character. + - The calculation of "maximum committers across entire instance" reported in the site admin dashboard was incorrect. + - An incorrect database entry for repository replicas caused database corruption when performing a restore using {% data variables.product.prodname_enterprise_backup_utilities %}. + - 'A {% data variables.product.prodname_github_app %} would not be able to subscribe to the [`secret_scanning_alert_location` webhook event](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#secret_scanning_alert_location) on an installation.' + - The activity timeline for secret scanning alerts wasn't displayed. + - Deleted repos were not purged after 90 days. + changes: + - Optimised the inclusion of metrics when generating a cluster support bundle. + - In HA configurations where Elasticsearch reported a valid yellow status, changes introduced in a previous fix would block the `ghe-repl-stop` command and not allow replication to be stopped. Using `ghe-repo-stop --force` will now force Elasticsearch to stop when the service is in a normal or valid yellow status. + known_issues: + - En una instancia recién configurada de {% data variables.product.prodname_ghe_server %} sin ningún usuario, un atacante podría crear el primer usuario adminsitrador. + - Las reglas de cortafuegos personalizadas se eliminan durante el proceso de actualización. + - Los archivos rastreados del LFS de Git que se [cargaron mediante la interface web](https://github.com/blog/2105-upload-files-to-your-repositories) se agregaron incorrecta y directamente al repositorio. + - Las propuestas no pudieron cerrarse si contenían un permalink a un blob en el mismo repositorio en donde la ruta de archvio del blob era más grande a 255 caracteres. + - Cuando se habilita "Los usuarios pueden buscar en GitHub.com" con GitHub Connect, las propuestas en los repositorios privados e internos no se incluirán en los resultados de búsqueda de GitHub.com. + - El registor de npm del {% data variables.product.prodname_registry %} ya no regresa un valor de tiempo en las respuestas de metadatos. Esto se hizo para permitir mejoras de rendimiento sustanciales. Seguimos teniendo todos los datos necesarios para devolver un valor de tiempo como parte de la respuesta de metadatos y terminaremos de devolver este valor ene l futuro una vez que hayamos resuelto los problemas de rendimiento existentes. + - Los límites de recursos que son específicos para procesar ganchos de pre-recepción podrían ocasionar que fallen algunos ganchos de pre-recepción. + - Actions services need to be restarted after restoring an appliance from a backup taken on a different host. + - 'Deleted repositories will not be purged from disk automatically after the 90-day retention period ends. This issue is resolved in the 3.5.1 release. [Updated: 2022-06-10]' diff --git a/translations/es-ES/data/reusables/actions/jobs/section-running-jobs-in-a-container.md b/translations/es-ES/data/reusables/actions/jobs/section-running-jobs-in-a-container.md index 30166b08e2..7402626c76 100644 --- a/translations/es-ES/data/reusables/actions/jobs/section-running-jobs-in-a-container.md +++ b/translations/es-ES/data/reusables/actions/jobs/section-running-jobs-in-a-container.md @@ -4,9 +4,14 @@ Si no configuras un `container`, todos los pasos se ejecutan directamente en el ### Ejemplo: Ejecutar un job dentro de un contenedor -```yaml +```yaml{:copy} +name: CI +on: + push: + branches: [ main ] jobs: - my_job: + container-test-job: + runs-on: ubuntu-latest container: image: node:14.16 env: @@ -16,12 +21,16 @@ jobs: volumes: - my_docker_volume:/volume_mount options: --cpus 1 + steps: + - name: Check for dockerenv file + run: (ls /.dockerenv && echo Found dockerenv) || (echo No dockerenv) ``` Cuando solo especificas una imagen de contenedor, puedes omitir la palabra clave `image`. ```yaml jobs: - my_job: + container-test-job: + runs-on: ubuntu-latest container: node:14.16 ``` diff --git a/translations/es-ES/data/reusables/codespaces/about-billing-for-codespaces.md b/translations/es-ES/data/reusables/codespaces/about-billing-for-codespaces.md deleted file mode 100644 index 6df432813b..0000000000 --- a/translations/es-ES/data/reusables/codespaces/about-billing-for-codespaces.md +++ /dev/null @@ -1 +0,0 @@ -{% data variables.product.prodname_codespaces %} es de uso gratuito durante el beta. Cuando {% data variables.product.prodname_codespaces %} se hace generalmente disponible, se te cobrará por el almacenamiento y uso del procesamiento. diff --git a/translations/es-ES/data/reusables/codespaces/beta-functionality-limited.md b/translations/es-ES/data/reusables/codespaces/beta-functionality-limited.md deleted file mode 100644 index 2181e82fea..0000000000 --- a/translations/es-ES/data/reusables/codespaces/beta-functionality-limited.md +++ /dev/null @@ -1,5 +0,0 @@ -Durante el beta, la funcionalidad será limitada. -- {% data reusables.codespaces.use-chrome %} -- Úicamente estará disponible un tamaño único de codespace. -- Únicamente serán compatibles los contenedores Linux. -- Un codespace no se puede reanudar completamente. Los procesos que estuvieran ejecutándose al momento en el que se paró un codespace no se reiniciarán. diff --git a/translations/es-ES/data/reusables/codespaces/billing-for-prebuilds.md b/translations/es-ES/data/reusables/codespaces/billing-for-prebuilds.md index c8d39ee7f1..45c1495e1d 100644 --- a/translations/es-ES/data/reusables/codespaces/billing-for-prebuilds.md +++ b/translations/es-ES/data/reusables/codespaces/billing-for-prebuilds.md @@ -1,7 +1,7 @@ By default, a {% data variables.product.prodname_actions %} workflow is triggered every time you create or update a prebuild template, or push to a prebuild-enabled branch. As with other workflows, while prebuild workflows are running they will either consume some of the Actions minutes included with your account, if you have any, or they will incur charges for Actions minutes. For more information about pricing for Actions minutes, see "[About billing for {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/about-billing-for-github-actions)." -If you are an organization owner, you can track usage of prebuild workflows by downloading a {% data variables.product.prodname_actions %} usage report for your organization. You can identify workflow runs for prebuilds by filtering the CSV output to only include the workflow called "Create Codespaces Prebuilds." Para obtener más información, consulta la sección "[Visualizar tu uso de {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/viewing-your-github-actions-usage#viewing-github-actions-usage-for-your-organization)". +Alongside {% data variables.product.prodname_actions %} minutes, you will also be billed for the storage of prebuild templates associated with each prebuild configuration for a given repository and region. Storage of prebuild templates is billed at the same rate as storage of codespaces. For more information, see "[Calculating storage usage](#calculating-storage-usage)." -To reduce consumption of Actions minutes, you can set a prebuild template to be updated only when you make a change to your dev container configuration files, or only on a custom schedule. Para obtener más información, consulta la sección "[Configurar las precompilaciones](/codespaces/prebuilding-your-codespaces/configuring-prebuilds#configuring-a-prebuild)". +To reduce consumption of Actions minutes, you can set a prebuild template to be updated only when you make a change to your dev container configuration files, or only on a custom schedule. You can also manage your storage usage by adjusting the number of template versions to be retained for your prebuild configurations. Para obtener más información, consulta la sección "[Configurar las precompilaciones](/codespaces/prebuilding-your-codespaces/configuring-prebuilds#configuring-a-prebuild)". -While {% data variables.product.prodname_codespaces %} prebuilds is in beta there is no charge for storage of templates. When prebuilds become generally available, you will be billed for storing prebuild templates for each prebuild configuration in each region selected for that configuration. +If you are an organization owner, you can track usage of prebuild workflows and storage by downloading a {% data variables.product.prodname_actions %} usage report for your organization. You can identify workflow runs for prebuilds by filtering the CSV output to only include the workflow called "Create Codespaces Prebuilds." Para obtener más información, consulta la sección "[Visualizar tu uso de {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/viewing-your-github-actions-usage#viewing-github-actions-usage-for-your-organization)". \ No newline at end of file diff --git a/translations/es-ES/data/reusables/codespaces/prebuilds-beta-note.md b/translations/es-ES/data/reusables/codespaces/prebuilds-beta-note.md deleted file mode 100644 index 3b343a2954..0000000000 --- a/translations/es-ES/data/reusables/codespaces/prebuilds-beta-note.md +++ /dev/null @@ -1,5 +0,0 @@ -{% note %} - -**Note:** The ability to prebuild codespaces is currently in beta and subject to change. - -{% endnote %} diff --git a/translations/es-ES/data/reusables/codespaces/unsupported-repos.md b/translations/es-ES/data/reusables/codespaces/unsupported-repos.md deleted file mode 100644 index e39868b20f..0000000000 --- a/translations/es-ES/data/reusables/codespaces/unsupported-repos.md +++ /dev/null @@ -1 +0,0 @@ -Durante el beta, no serán compatibles los repositorios privados que pertenezcan a las organizaciones o cualquier repositorio perteneciente a una organización que requiera el inicio de sesión único de SAML. diff --git a/translations/es-ES/data/reusables/dependency-review/dependency-review-action-beta-note.md b/translations/es-ES/data/reusables/dependency-review/dependency-review-action-beta-note.md index c227b119b0..23aaae3ec2 100644 --- a/translations/es-ES/data/reusables/dependency-review/dependency-review-action-beta-note.md +++ b/translations/es-ES/data/reusables/dependency-review/dependency-review-action-beta-note.md @@ -1,5 +1,5 @@ {% note %} -**Note**: The Dependency Review GitHub Action is currently in public beta and subject to change. +**Note**: The {% data variables.product.prodname_dependency_review_action %} is currently in public beta and subject to change. {% endnote %} \ No newline at end of file diff --git a/translations/es-ES/data/reusables/dependency-review/dependency-review-action-overview.md b/translations/es-ES/data/reusables/dependency-review/dependency-review-action-overview.md new file mode 100644 index 0000000000..49112365d7 --- /dev/null +++ b/translations/es-ES/data/reusables/dependency-review/dependency-review-action-overview.md @@ -0,0 +1,3 @@ +The {% data variables.product.prodname_dependency_review_action %} scans your pull requests for dependency changes and raises an error if any new dependencies have known vulnerabilities. The action is supported by an API endpoint that compares the dependencies between two revisions and reports any differences. + +For more information about the action and the API endpoint, see "[About dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-reinforcement)," and "[Dependency review](/rest/dependency-graph/dependency-review)" in the API documentation, respectively. \ No newline at end of file diff --git a/translations/es-ES/data/reusables/developer-site/limit_workflow_to_activity_types.md b/translations/es-ES/data/reusables/developer-site/limit_workflow_to_activity_types.md index 6a7c73811b..7ca5363cd2 100644 --- a/translations/es-ES/data/reusables/developer-site/limit_workflow_to_activity_types.md +++ b/translations/es-ES/data/reusables/developer-site/limit_workflow_to_activity_types.md @@ -1 +1 @@ -By default, all activity types trigger workflows that run on this event. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave `types`. Para obtener más información, consulta "[Sintaxis del flujo de trabajo para {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions#onevent_nametypes)". +Predeterminadamente, todos los tipos de actividad activan flujos de trabajo que pueden ejecutarse en este evento. Puedes limitar tus ejecuciones de flujo de trabajo a tipos de actividad específicos usando la palabra clave `types`. Para obtener más información, consulta "[Sintaxis del flujo de trabajo para {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions#onevent_nametypes)". diff --git a/translations/es-ES/data/reusables/dotcom_billing/actions-packages-report-download-org-account.md b/translations/es-ES/data/reusables/dotcom_billing/actions-packages-report-download-org-account.md index 9b655e2655..a5865245a3 100644 --- a/translations/es-ES/data/reusables/dotcom_billing/actions-packages-report-download-org-account.md +++ b/translations/es-ES/data/reusables/dotcom_billing/actions-packages-report-download-org-account.md @@ -1 +1 @@ -1. Optionally, next to "Billing & plans", click **Get usage report** to email a CSV report of storage use for {% data variables.product.prodname_actions %}, {% data variables.product.prodname_registry %}, and {% data variables.product.prodname_codespaces %} to the account's primary email address. ![Descargar reporte en CSV](/assets/images/help/billing/actions-packages-report-download-org.png) +1. Optionally, next to "Usage this month", click **Get usage report** to get an email containing a link for downloading a CSV report of storage use for {% data variables.product.prodname_actions %}, {% data variables.product.prodname_registry %}, and {% data variables.product.prodname_codespaces %}. The email is sent to your account's primary email address. You can choose whether the report should cover the last 7, 30, 90, or 180 days. ![Descargar reporte en CSV](/assets/images/help/billing/actions-packages-report-download.png) diff --git a/translations/es-ES/data/reusables/repositories/navigate-to-branches.md b/translations/es-ES/data/reusables/repositories/navigate-to-branches.md index 1e99dc2d26..a47e13fa81 100644 --- a/translations/es-ES/data/reusables/repositories/navigate-to-branches.md +++ b/translations/es-ES/data/reusables/repositories/navigate-to-branches.md @@ -1 +1 @@ -1. Above the list of files, click {% octicon "git-branch" aria-label="The branch icon" %} **Branches**. ![Vínculo de ramas en página de resumen](/assets/images/help/branches/branches-overview-link.png) +1. Sobre la lista de archivos, haz clic en {% octicon "git-branch" aria-label="The branch icon" %} **Ramas**. ![Vínculo de ramas en página de resumen](/assets/images/help/branches/branches-overview-link.png) diff --git a/translations/es-ES/data/variables/product.yml b/translations/es-ES/data/variables/product.yml index b9506ef8d7..f58b3242d8 100644 --- a/translations/es-ES/data/variables/product.yml +++ b/translations/es-ES/data/variables/product.yml @@ -143,6 +143,7 @@ prodname_code_scanning_capc: 'Escaneo de código' prodname_codeql_runner: 'Ejecutor de CodeQL' prodname_advisory_database: 'GitHub Advisory Database' prodname_codeql_workflow: 'Flujo de trabajo de análisis de CodeQL' +prodname_dependency_review_action: 'Dependency Review GitHub Action' #Visual Studio prodname_vs: 'Visual Studio' prodname_vscode_shortname: 'VS Code' From 32f3c24a80e859ba8c2fe77bfc72931a6bde599e Mon Sep 17 00:00:00 2001 From: docubot <67483024+docubot@users.noreply.github.com> Date: Thu, 16 Jun 2022 18:23:23 -0400 Subject: [PATCH 15/21] New translation batch for pt (#28578) * Add crowdin translations * Run script/i18n/homogenize-frontmatter.js * Run script/i18n/fix-translation-errors.js * Run script/i18n/lint-translation-files.js --check rendering * run script/i18n/reset-files-with-broken-liquid-tags.js --language=pt * run script/i18n/reset-known-broken-translation-files.js Co-authored-by: Grace Park <gracepark@github.com> --- .../deploying-docker-to-azure-app-service.md | 8 +- ...customizing-the-containers-used-by-jobs.md | 530 ++++++++++++++++++ .../actions/hosting-your-own-runners/index.md | 1 + ...ltering-alerts-in-the-security-overview.md | 2 +- ...g-and-authorizing-users-for-github-apps.md | 2 +- .../migrating-oauth-apps-to-github-apps.md | 2 +- .../developers/overview/about-githubs-apis.md | 2 +- .../graphql/guides/using-global-node-ids.md | 2 +- .../graphql/overview/resource-limitations.md | 18 +- .../overview/resources-in-the-rest-api.md | 2 +- .../pt-BR/data/features/container-hooks.yml | 7 + .../section-running-jobs-in-a-container.md | 15 +- 12 files changed, 569 insertions(+), 22 deletions(-) create mode 100644 translations/pt-BR/content/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs.md create mode 100644 translations/pt-BR/data/features/container-hooks.yml diff --git a/translations/pt-BR/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md b/translations/pt-BR/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md index c8d357212a..55b012fd69 100644 --- a/translations/pt-BR/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md +++ b/translations/pt-BR/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md @@ -138,10 +138,10 @@ jobs: - name: Deploy to Azure Web App id: deploy-to-webapp uses: azure/webapps-deploy@0b651ed7546ecfc75024011f76944cb9b381ef1e - with: - app-name: {% raw %}${{ env.AZURE_WEBAPP_NAME }}{% endraw %} - publish-profile: {% raw %}${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}{% endraw %} - images: 'ghcr.io/{% raw %}${{ env.REPO }}{% endraw %}:{% raw %}${{ github.sha }}{% endraw %}' + with: + app-name: {% raw %}${{ env.AZURE_WEBAPP_NAME }}{% endraw %} + publish-profile: {% raw %}${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}{% endraw %} + images: 'ghcr.io/{% raw %}${{ env.REPO }}{% endraw %}:{% raw %}${{ github.sha }}{% endraw %}' ``` ## Recursos adicionais diff --git a/translations/pt-BR/content/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs.md b/translations/pt-BR/content/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs.md new file mode 100644 index 0000000000..a2628639c4 --- /dev/null +++ b/translations/pt-BR/content/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs.md @@ -0,0 +1,530 @@ +--- +title: Customizing the containers used by jobs +intro: You can customize how your self-hosted runner invokes a container for a job. +versions: + feature: container-hooks +type: reference +miniTocMaxHeadingLevel: 4 +shortTitle: Customize containers used by jobs +--- + +{% note %} + +**Observação**: Este recurso está atualmente na versão beta e está sujeito a alterações. + +{% endnote %} + +## About container customization + +{% data variables.product.prodname_actions %} allows you to run a job within a container, using the `container:` statement in your workflow file. For more information, see "[Running jobs in a container](/actions/using-jobs/running-jobs-in-a-container)." To process container-based jobs, the self-hosted runner creates a container for each job. + +{% data variables.product.prodname_actions %} supports commands that let you customize the way your containers are created by the self-hosted runner. For example, you can use these commands to manage the containers through Kubernetes or Podman, and you can also customize the `docker run` or `docker create` commands used to invoke the container. The customization commands are run by a script, which is automatically triggered when a specific environment variable is set on the runner. For more information, see "[Triggering the customization script](#triggering-the-customization-script)" below. + +This customization is only available for Linux-based self-hosted runners, and root user access is not required. + +## Container customization commands + +{% data variables.product.prodname_actions %} includes the following commands for container customization: + +- [`prepare_job`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#prepare_job): Called when a job is started. +- [`cleanup_job`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#cleanup_job): Called at the end of a job. +- [`run_container_step`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#run_container_step): Called once for each container action in the job. +- [`run_script_step`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#run_script_step): Runs any step that is not a container action. + +Each of these customization commands must be defined in its own JSON file. The file name must match the command name, with the extension `.json`. For example, the `prepare_job` command is defined in `prepare_job.json`. These JSON files will then be run together on the self-hosted runner, as part of the main `index.js` script. This process is described in more detail in "[Generating the customization script](#generating-the-customization-script)." + +These commands also include configuration arguments, explained below in more detail. + +### `prepare_job` + +The `prepare_job` command is called when a job is started. {% data variables.product.prodname_actions %} passes in any job or service containers the job has. This command will be called if you have any service or job containers in the job. + +{% data variables.product.prodname_actions %} assumes that you will do the following tasks in the `prepare_job` command: + +- Prune anything from previous jobs, if needed. +- Create a network, if needed. +- Pull the job and service containers. +- Start the job container. +- Start the service containers. +- Write to the response file any information that {% data variables.product.prodname_actions %} will need: + - Required: State whether the container is an `alpine` linux container (using the `isAlpine` boolean). + - Optional: Any context fields you want to set on the job context, otherwise they will be unavailable for users to use. For more information, see "[`job` context](/actions/learn-github-actions/contexts#job-context)." +- Return `0` when the health checks have succeeded and the job/service containers are started. + +#### Argumentos + +- `jobContainer`: **Optional**. An object containing information about the specified job container. + - `image`: **Required**. A string containing the Docker image. + - `workingDirectory`: **Required**. A string containing the absolute path of the working directory. + - `createOptions`: **Optional**. The optional _create_ options specified in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." + - `environmentVariables`: **Optional**. Sets a map of key environment variables. + - `userMountVolumes`: **Optional**. An array of user mount volumes set in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. + - `systemMountVolumes`: **Required**. An array of mounts to mount into the container, same fields as above. + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. + - `registro` **Optional**. The Docker registry credentials for a private container registry. + - `username`: **Optional**. The username of the registry account. + - `password`: **Optional**. The password to the registry account. + - `serverUrl`: **Optional**. The registry URL. + - `portMappings`: **Optional**. A key value hash of _source:target_ ports to map into the container. +- `services`: **Optional**. An array of service containers to spin up. + - `contextName`: **Required**. The name of the service in the Job context. + - `image`: **Required**. A string containing the Docker image. + - `createOptions`: **Optional**. The optional _create_ options specified in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." + - `environmentVariables`: **Optional**. Sets a map of key environment variables. + - `userMountVolumes`: **Optional**. An array of mounts to mount into the container, same fields as above. + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. + - `registro` **Optional**. The Docker registry credentials for the private container registry. + - `username`: **Optional**. The username of the registry account. + - `password`: **Optional**. The password to the registry account. + - `serverUrl`: **Optional**. The registry URL. + - `portMappings`: **Optional**. A key value hash of _source:target_ ports to map into the container. + +#### Example input + +```json{:copy} +{ + "command": "prepare_job", + "responseFile": "/users/octocat/runner/_work/{guid}.json", + "state": {}, + "args": { + "jobContainer": { + "image": "node:14.16", + "workingDirectory": "/__w/octocat-test2/octocat-test2", + "createOptions": "--cpus 1", + "environmentVariables": { + "NODE_ENV": "development" + }, + "userMountVolumes": [ + { + "sourceVolumePath": "my_docker_volume", + "targetVolumePath": "/volume_mount", + "readOnly": false + } + ], + "systemMountVolumes": [ + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work", + "targetVolumePath": "/__w", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/externals", + "targetVolumePath": "/__e", + "readOnly": true + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp", + "targetVolumePath": "/__w/_temp", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_actions", + "targetVolumePath": "/__w/_actions", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_tool", + "targetVolumePath": "/__w/_tool", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_home", + "targetVolumePath": "/github/home", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_workflow", + "targetVolumePath": "/github/workflow", + "readOnly": false + } + ], + "registry": { + "username": "octocat", + "password": "examplePassword", + "serverUrl": "https://index.docker.io/v1" + }, + "portMappings": { "80": "801" } + }, + "services": [ + { + "contextName": "redis", + "image": "redis", + "createOptions": "--cpus 1", + "environmentVariables": {}, + "userMountVolumes": [], + "portMappings": { "80": "801" }, + "registry": { + "username": "octocat", + "password": "examplePassword", + "serverUrl": "https://index.docker.io/v1" + } + } + ] + } +} +``` + +#### Example output + +This example output is the contents of the `responseFile` defined in the input above. + +```json{:copy} +{ + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "serviceContainers": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "context": { + "container": { + "id": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "network": "example_network_53269bd575972817b43f7733536b200c" + }, + "services": { + "redis": { + "id": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105", + "ports": { + "8080": "8080" + }, + "network": "example_network_53269bd575972817b43f7733536b200c" + } + }, + "isAlpine": true + } +} +``` + +### `cleanup_job` + +The `cleanup_job` command is called at the end of a job. {% data variables.product.prodname_actions %} assumes that you will do the following tasks in the `cleanup_job` command: + +- Stop any running service or job containers (or the equivalent pod). +- Stop the network (if one exists). +- Delete any job or service containers (or the equivalent pod). +- Delete the network (if one exists). +- Cleanup anything else that was created for the job. + +#### Argumentos + +No arguments are provided for `cleanup_job`. + +#### Example input + +```json{:copy} +{ + "command": "cleanup_job", + "responseFile": null, + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "serviceContainers": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "args": {} +} +``` + +#### Example output + +No output is expected for `cleanup_job`. + +### `run_container_step` + +The `run_container_step` command is called once for each container action in your job. {% data variables.product.prodname_actions %} assumes that you will do the following tasks in the `run_container_step` command: + +- Pull or build the required container (or fail if you cannot). +- Run the container action and return the exit code of the container. +- Stream any step logs output to stdout and stderr. +- Cleanup the container after it executes. + +#### Argumentos + +- `image`: **Optional**. A string containing the docker image. Otherwise a dockerfile must be provided. +- `dockerfile`: **Optional**. A string containing the path to the dockerfile, otherwise an image must be provided. +- `entryPointArgs`: **Optional**. A list containing the entry point args. +- `entryPoint`: **Optional**. The container entry point to use if the default image entrypoint should be overwritten. +- `workingDirectory`: **Required**. A string containing the absolute path of the working directory. +- `createOptions`: **Optional**. The optional _create_ options specified in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." +- `environmentVariables`: **Optional**. Sets a map of key environment variables. +- `prependPath`: **Optional**. An array of additional paths to prepend to the `$PATH` variable. +- `userMountVolumes`: **Optional**. an array of user mount volumes set in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. +- `systemMountVolumes`: **Required**. An array of mounts to mount into the container, using the same fields as above. + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. +- `registro` **Optional**. The Docker registry credentials for a private container registry. + - `username`: **Optional**. The username of the registry account. + - `password`: **Optional**. The password to the registry account. + - `serverUrl`: **Optional**. The registry URL. +- `portMappings`: **Optional**. A key value hash of the _source:target_ ports to map into the container. + +#### Example input for image + +If you're using a Docker image, you can specify the image name in the `"image":` parameter. + +```json{:copy} +{ + "command": "run_container_step", + "responseFile": null, + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "serviceContainers": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "args": { + "image": "node:14.16", + "dockerfile": null, + "entryPointArgs": ["-f", "/dev/null"], + "entryPoint": "tail", + "workingDirectory": "/__w/octocat-test2/octocat-test2", + "createOptions": "--cpus 1", + "environmentVariables": { + "NODE_ENV": "development" + }, + "prependPath": ["/foo/bar", "bar/foo"], + "userMountVolumes": [ + { + "sourceVolumePath": "my_docker_volume", + "targetVolumePath": "/volume_mount", + "readOnly": false + } + ], + "systemMountVolumes": [ + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work", + "targetVolumePath": "/__w", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/externals", + "targetVolumePath": "/__e", + "readOnly": true + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp", + "targetVolumePath": "/__w/_temp", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_actions", + "targetVolumePath": "/__w/_actions", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_tool", + "targetVolumePath": "/__w/_tool", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_home", + "targetVolumePath": "/github/home", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_workflow", + "targetVolumePath": "/github/workflow", + "readOnly": false + } + ], + "registry": null, + "portMappings": { "80": "801" } + } +} +``` + +#### Example input for Dockerfile + +If your container is defined by a Dockerfile, this example demonstrates how to specify the path to a `Dockerfile` in your input, using the `"dockerfile":` parameter. + +```json{:copy} +{ + "command": "run_container_step", + "responseFile": null, + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "services": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "args": { + "image": null, + "dockerfile": "/__w/_actions/foo/dockerfile", + "entryPointArgs": ["hello world"], + "entryPoint": "echo", + "workingDirectory": "/__w/octocat-test2/octocat-test2", + "createOptions": "--cpus 1", + "environmentVariables": { + "NODE_ENV": "development" + }, + "prependPath": ["/foo/bar", "bar/foo"], + "userMountVolumes": [ + { + "sourceVolumePath": "my_docker_volume", + "targetVolumePath": "/volume_mount", + "readOnly": false + } + ], + "systemMountVolumes": [ + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work", + "targetVolumePath": "/__w", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/externals", + "targetVolumePath": "/__e", + "readOnly": true + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp", + "targetVolumePath": "/__w/_temp", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_actions", + "targetVolumePath": "/__w/_actions", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_tool", + "targetVolumePath": "/__w/_tool", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_home", + "targetVolumePath": "/github/home", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_workflow", + "targetVolumePath": "/github/workflow", + "readOnly": false + } + ], + "registry": null, + "portMappings": { "80": "801" } + } +} +``` + +#### Example output + +No output is expected for `run_container_step`. + +### `run_script_step` + +{% data variables.product.prodname_actions %} assumes that you will do the following tasks: + +- Invoke the provided script inside the job container and return the exit code. +- Stream any step log output to stdout and stderr. + +#### Argumentos + +- `entryPointArgs`: **Optional**. A list containing the entry point arguments. +- `entryPoint`: **Optional**. The container entry point to use if the default image entrypoint should be overwritten. +- `prependPath`: **Optional**. An array of additional paths to prepend to the `$PATH` variable. +- `workingDirectory`: **Required**. A string containing the absolute path of the working directory. +- `environmentVariables`: **Optional**. Sets a map of key environment variables. + +#### Example input + +```json{:copy} +{ + "command": "run_script_step", + "responseFile": null, + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "serviceContainers": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "args": { + "entryPointArgs": ["-e", "/runner/temp/example.sh"], + "entryPoint": "bash", + "environmentVariables": { + "NODE_ENV": "development" + }, + "prependPath": ["/foo/bar", "bar/foo"], + "workingDirectory": "/__w/octocat-test2/octocat-test2" + } +} +``` + +#### Example output + +No output is expected for `run_script_step`. + +## Generating the customization script + +{% data variables.product.prodname_dotcom %} has created an example repository that demonstrates how to generate customization scripts for Docker and Kubernetes. + +{% note %} + +**Note:** The resulting scripts are available for testing purposes, and you will need to determine whether they are appropriate for your requirements. + +{% endnote %} + +1. Clone the [actions/runner-container-hooks](https://github.com/actions/runner-container-hooks) repository to your self-hosted runner. + +1. The `examples/` directory contains some existing customization commands, each with its own JSON file. You can review these examples and use them as a starting point for your own customization commands. + + - `prepare_job.json` + - `run_script_step.json` + - `run_container_step.json` + +1. Build the npm packages. These commands generate the `index.js` files inside `packages/docker/dist` and `packages/k8s/dist`. + + ```shell + npm install && npm run bootstrap && npm run build-all + ``` + +When the resulting `index.js` is triggered by {% data variables.product.prodname_actions %}, it will run the customization commands defined in the JSON files. To trigger the `index.js`, you will need to add it your `ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER` environment variable, as described in the next section. + +## Triggering the customization script + +The custom script must be located on the runner, but should not be stored in the self-hosted runner application directory. Os scripts são executados no contexto de segurança da conta de serviço que está executando o serviço do executor. + +{% note %} + +**Note**: The triggered script is processed synchronously, so it will block job execution while running. + +{% endnote %} + +The script is automatically executed when the runner has the following environment variable containing an absolute path to the script: + +- `ACTIONS_RUNNER_CONTAINER_HOOK`: The script defined in this environment variable is triggered when a job has been assigned to a runner, but before the job starts running. + +To set this environment variable, you can either add it to the operating system, or add it to a file named `.env` within the self-hosted runner application directory. For example, the following `.env` entry will have the runner automatically run the script at `/Users/octocat/runner/index.js` before each container-based job runs: + +```bash +ACTIONS_RUNNER_CONTAINER_HOOK=/Users/octocat/runner/index.js +``` + +If you want to ensure that your job always runs inside a container, and subsequently always applies your container customizations, you can set the `ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER` variable on the self hosted runner to `true`. This will fail jobs that do not specify a job container. + +## Solução de Problemas + +### Sem configuração de tempo limite + +There is currently no timeout setting available for the script executed by `ACTIONS_RUNNER_CONTAINER_HOOK`. Como resultado, você pode considerar adicionar tempo limite de manipulação ao seu script. + +### Revisando o log de execução do fluxo de trabalho + +Para confirmar se seus scripts estão sendo executados, você pode revisar os logs para esse trabalho. Para obter mais informações sobre a verificação dos logs, consulte "[Visualizando os logs para diagnosticar as falhas](/actions/monitoring-and-troubleshooting-workflows/using-workflow-run-logs#viewing-logs-to-diagnose-failures)". diff --git a/translations/pt-BR/content/actions/hosting-your-own-runners/index.md b/translations/pt-BR/content/actions/hosting-your-own-runners/index.md index 45b7686299..17a8290089 100644 --- a/translations/pt-BR/content/actions/hosting-your-own-runners/index.md +++ b/translations/pt-BR/content/actions/hosting-your-own-runners/index.md @@ -20,6 +20,7 @@ children: - /adding-self-hosted-runners - /autoscaling-with-self-hosted-runners - /running-scripts-before-or-after-a-job + - /customizing-the-containers-used-by-jobs - /configuring-the-self-hosted-runner-application-as-a-service - /using-a-proxy-server-with-self-hosted-runners - /using-labels-with-self-hosted-runners diff --git a/translations/pt-BR/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md b/translations/pt-BR/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md index c16bff25d7..51e28bfe08 100644 --- a/translations/pt-BR/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md +++ b/translations/pt-BR/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md @@ -23,7 +23,7 @@ shortTitle: Filtrando alertas ## Sobre a filtragem da visão geral de segurança -Você pode usar filtros na visão geral de segurança para restringir seu foco baseado em uma série de fatores como, por exemplo, o nível de risco de alerta, tipo de alerta e habilitação do recurso. Existem filtros diferentes disponíveis, dependendo da visualização específica e da análise no nível da organização, da equipe ou do repositório. +Você pode usar filtros na visão geral de segurança para restringir seu foco baseado em uma série de fatores como, por exemplo, o nível de risco de alerta, tipo de alerta e habilitação do recurso. Different filters are available depending on the specific view and whether your analysis is at the organization, team or repository level. ## Filtrar por repositório diff --git a/translations/pt-BR/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md b/translations/pt-BR/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md index 8997a184db..bf6c4de7d8 100644 --- a/translations/pt-BR/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md +++ b/translations/pt-BR/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md @@ -159,7 +159,7 @@ Como as permissões de nível de usuário são concedidas em uma base de usuári ## Solicitações de usuário para servidor -Embora a maior parte da interação da sua API deva ocorrer usando os tokens de acesso de servidor para servidor, certos pontos de extremidade permitem que você execute ações por meio da API usando um token de acesso do usuário. Seu aplicativo pode fazer as seguintes solicitações usando pontos de extremidade do [GraphQL v4]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql) ou [REST v3](/rest). +Embora a maior parte da interação da sua API deva ocorrer usando os tokens de acesso de servidor para servidor, certos pontos de extremidade permitem que você execute ações por meio da API usando um token de acesso do usuário. Your app can make the following requests using [GraphQL]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql) or [REST](/rest) endpoints. ### Pontos de extremidade compatíveis diff --git a/translations/pt-BR/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md b/translations/pt-BR/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md index d94a1eed60..3414e9310d 100644 --- a/translations/pt-BR/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md +++ b/translations/pt-BR/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md @@ -53,7 +53,7 @@ Recomendamos que você reveja a lista de pontos finais de API de que você preci ### Projete para permanecer dentro dos limites de taxa da API -Os aplicativos GitHub usam [regras móveis para limites de taxa](/apps/building-github-apps/understanding-rate-limits-for-github-apps/), que podem aumentar com base no número de repositórios e usuários da organização. Um aplicativo do GitHub também pode usar [solicitações condicionais](/rest/overview/resources-in-the-rest-api#conditional-requests) ou consolidar solicitações usando [GraphQL API V4]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). +Os aplicativos GitHub usam [regras móveis para limites de taxa](/apps/building-github-apps/understanding-rate-limits-for-github-apps/), que podem aumentar com base no número de repositórios e usuários da organização. A GitHub App can also make use of [conditional requests](/rest/overview/resources-in-the-rest-api#conditional-requests) or consolidate requests by using the [GraphQL API]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). ### Cadastre um novo aplicativo GitHub diff --git a/translations/pt-BR/content/developers/overview/about-githubs-apis.md b/translations/pt-BR/content/developers/overview/about-githubs-apis.md index 0ec175872b..d28e5c0ccb 100644 --- a/translations/pt-BR/content/developers/overview/about-githubs-apis.md +++ b/translations/pt-BR/content/developers/overview/about-githubs-apis.md @@ -14,7 +14,7 @@ topics: - API --- -Existem duas versões estáveis da API do GitHub: a [API REST](/rest) e a [API do GraphQL]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). Ao usar a API REST, incentivamos que você a [solicite a v3 por meio do cabeçalho `Aceitar`](/v3/media/#request-specific-version). Para obter informações sobre como usar a API do GraphQL, consulte a [documentação da v4]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). +Existem duas versões estáveis da API do GitHub: a [API REST](/rest) e a [API do GraphQL]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). ## Versões obsoletas diff --git a/translations/pt-BR/content/graphql/guides/using-global-node-ids.md b/translations/pt-BR/content/graphql/guides/using-global-node-ids.md index e34227ca8e..318a9c1a74 100644 --- a/translations/pt-BR/content/graphql/guides/using-global-node-ids.md +++ b/translations/pt-BR/content/graphql/guides/using-global-node-ids.md @@ -12,7 +12,7 @@ topics: - API --- -Você pode acessar a maioria dos objetos do GitHub (usuários, problemas, pull requests, etc.) usando a API REST ou a API do GraphQL. Você pode encontrar o **ID do nó global** de muitos objetos de dentro da API REST e usar esses IDs nas operações do GraphQL. Para obter mais informações, consulte "[Pré-visualizações dos IDs do nó da API do GraphQL v4 nos recursos da API REST v3](https://developer.github.com/changes/2017-12-19-graphql-node-id/)". +Você pode acessar a maioria dos objetos do GitHub (usuários, problemas, pull requests, etc.) usando a API REST ou a API do GraphQL. Você pode encontrar o **ID do nó global** de muitos objetos de dentro da API REST e usar esses IDs nas operações do GraphQL. For more information, see "[Preview GraphQL API Node IDs in REST API resources](https://developer.github.com/changes/2017-12-19-graphql-node-id/)." {% note %} diff --git a/translations/pt-BR/content/graphql/overview/resource-limitations.md b/translations/pt-BR/content/graphql/overview/resource-limitations.md index 169d0e72f1..991d8d4d0c 100644 --- a/translations/pt-BR/content/graphql/overview/resource-limitations.md +++ b/translations/pt-BR/content/graphql/overview/resource-limitations.md @@ -14,7 +14,7 @@ topics: ## Limite de nó -Para passar a validação do [esquema](/graphql/guides/introduction-to-graphql#schema), todas as [chamadas ](/graphql/guides/forming-calls-with-graphql) da API v4 do GraphQL devem atender a esses padrões: +To pass [schema](/graphql/guides/introduction-to-graphql#schema) validation, all GraphQL API [calls](/graphql/guides/forming-calls-with-graphql) must meet these standards: * Os clientes devem fornecer um `primeiro` ou `último` argumento [conexão](/graphql/guides/introduction-to-graphql#connection). * Os valores de `primeiro` e `último` devem ser entre 1 e 100. @@ -130,30 +130,30 @@ Estes dois exemplos mostram como calcular os nós totais em uma chamada. ## Limite de taxa -O [limite de taxas](/rest/overview/resources-in-the-rest-api#rate-limiting) do GraphQL API v4 é diferente dos limites de taxa do REST API v3. +The GraphQL API limit is different from the REST API's [rate limits](/rest/overview/resources-in-the-rest-api#rate-limiting). Por que os limites de taxa de API são diferentes? Com o [GraphQL](/graphql), uma chamada do GraphQL pode substituir [várias chamadas de REST](/graphql/guides/migrating-from-rest-to-graphql). Uma chamada única e complexa do GraphQL poderia ser o equivalente a milhares de solicitações de REST. Embora uma única chamada GraphQL fique bem abaixo do limite de taxa de API REST, a consulta pode ser muito cara para os servidores do GitHub calcularem. -Para representar com precisão o custo de servidor de uma consulta, a API v4 do GraphQL calcula a **pontuação de um limite de taxa** de uma chamada com base em uma escala normalizada de pontos. Os fatores de pontuação de uma consulta no primeiro e último argumentos em uma conexão principal e suas conexões auxiliares. +To accurately represent the server cost of a query, the GraphQL API calculates a call's **rate limit score** based on a normalized scale of points. Os fatores de pontuação de uma consulta no primeiro e último argumentos em uma conexão principal e suas conexões auxiliares. * A fórmula usa argumentos `primeiros` e `último` na conexão principal e nas conexões secundárias para pré-calcular o potencial de carga nos sistemas do GitHub, como MySQL, ElasticSearch e Git. * Cada nova conexão tem o seu valor próprio de pontos. Os pontos são combinados com outros pontos da chamada para uma pontuação de limite de taxa geral. -O limite de taxa de câmbio da API v4 do GraphQL é **5.000 pontos por hora**. +The GraphQL API rate limit is **5,000 points per hour**. -Observe que 5.000 pontos por hora não é o mesmo que 5.000 chamadas por hora: a API v4 do GraphQL e a API v3 de REST usam diferentes limites de taxa. +Note that 5,000 points per hour is not the same as 5,000 calls per hour: the GraphQL API and REST API use different rate limits. {% note %} -**Observação**: A fórmula atual e o limite de taxa estão sujeitos a alterações à medida que observamos como os desenvolvedores usam a API v4 do GraphQL. +**Note**: The current formula and rate limit are subject to change as we observe how developers use the GraphQL API. {% endnote %} ### Retornar o status de limite da chamada -Com a API REST v3, você pode verificar o status do limite de taxa [inspecionando](/rest/overview/resources-in-the-rest-api#rate-limiting) os cabeçalhos HTTP retornados. +With the REST API, you can check the rate limit status by [inspecting](/rest/overview/resources-in-the-rest-api#rate-limiting) the returned HTTP headers. -Com o GraphQL API v4, você pode verificar o status do limite de taxa consultando campos no objeto `rateLimit`: +With the GraphQL API, you can check the rate limit status by querying fields on the `rateLimit` object: ```graphql query { @@ -186,7 +186,7 @@ Consultar o objeto `rateLimit` retorna a pontuação de uma chamada, mas executa {% note %} -**Observação**: O custo mínimo de uma chamada para a API v4 do GraphQL é **1**, o que representa uma única solicitação. +**Note**: The minimum cost of a call to the GraphQL API is **1**, representing a single request. {% endnote %} diff --git a/translations/pt-BR/content/rest/overview/resources-in-the-rest-api.md b/translations/pt-BR/content/rest/overview/resources-in-the-rest-api.md index 638769553f..84f42326ab 100644 --- a/translations/pt-BR/content/rest/overview/resources-in-the-rest-api.md +++ b/translations/pt-BR/content/rest/overview/resources-in-the-rest-api.md @@ -24,7 +24,7 @@ Por padrão, todas as solicitações para `{% data variables.product.api_url_cod {% ifversion fpt or ghec %} -Para obter informações sobre a API do GraphQL do GitHub, consulte a [documentação v4]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). Para obter informações sobre migração para o GraphQL, consulte "[Fazendo a migração do REST]({% ifversion ghec%}/free-pro-team@latest{% endif %}/graphql/guides/migrating-from-rest-to-graphql)". +For information about GitHub's GraphQL API, see the [documentation]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). Para obter informações sobre migração para o GraphQL, consulte "[Fazendo a migração do REST]({% ifversion ghec%}/free-pro-team@latest{% endif %}/graphql/guides/migrating-from-rest-to-graphql)". {% endif %} diff --git a/translations/pt-BR/data/features/container-hooks.yml b/translations/pt-BR/data/features/container-hooks.yml new file mode 100644 index 0000000000..145f5514b5 --- /dev/null +++ b/translations/pt-BR/data/features/container-hooks.yml @@ -0,0 +1,7 @@ +--- +#Reference: #7070 +#Actions Runner Container Hooks +versions: + fpt: '*' + ghec: '*' + ghae: 'issue-7070' diff --git a/translations/pt-BR/data/reusables/actions/jobs/section-running-jobs-in-a-container.md b/translations/pt-BR/data/reusables/actions/jobs/section-running-jobs-in-a-container.md index 3f625d69f7..805bbeae7a 100644 --- a/translations/pt-BR/data/reusables/actions/jobs/section-running-jobs-in-a-container.md +++ b/translations/pt-BR/data/reusables/actions/jobs/section-running-jobs-in-a-container.md @@ -4,9 +4,14 @@ Se você não definir um `container`, todas as etapas serão executadas diretame ### Exemplo: Executar um trabalho dentro de um contêiner -```yaml +```yaml{:copy} +name: CI +on: + push: + branches: [ main ] jobs: - my_job: + container-test-job: + runs-on: ubuntu-latest container: image: node:14.16 env: @@ -16,12 +21,16 @@ jobs: volumes: - my_docker_volume:/volume_mount options: --cpus 1 + steps: + - name: Check for dockerenv file + run: (ls /.dockerenv && echo Found dockerenv) || (echo No dockerenv) ``` Ao especificar somente uma imagem de contêiner, você pode omitir a palavra-chave `image`. ```yaml jobs: - my_job: + container-test-job: + runs-on: ubuntu-latest container: node:14.16 ``` From c1aadf8ee910184efaab62298b54903bc0e17af6 Mon Sep 17 00:00:00 2001 From: docubot <67483024+docubot@users.noreply.github.com> Date: Thu, 16 Jun 2022 18:33:01 -0400 Subject: [PATCH 16/21] New translation batch for cn (#28587) * Add crowdin translations * Run script/i18n/homogenize-frontmatter.js * Run script/i18n/lint-translation-files.js --check rendering * run script/i18n/reset-files-with-broken-liquid-tags.js --language=cn * run script/i18n/reset-known-broken-translation-files.js * Check in cn CSV report Co-authored-by: Grace Park <gracepark@github.com> --- translations/log/cn-resets.csv | 1 + .../deploying-docker-to-azure-app-service.md | 8 +- ...customizing-the-containers-used-by-jobs.md | 530 ++++++++++++++++++ .../actions/hosting-your-own-runners/index.md | 1 + ...ltering-alerts-in-the-security-overview.md | 2 +- .../about-dependency-review.md | 41 +- ...g-and-authorizing-users-for-github-apps.md | 2 +- .../migrating-oauth-apps-to-github-apps.md | 2 +- .../developers/overview/about-githubs-apis.md | 2 +- .../saving-repositories-with-stars.md | 10 +- .../quickstart/contributing-to-projects.md | 2 +- .../graphql/guides/using-global-node-ids.md | 2 +- .../graphql/overview/resource-limitations.md | 18 +- .../filtering-files-in-a-pull-request.md | 2 +- ...ng-dependency-changes-in-a-pull-request.md | 4 +- .../about-commits.md | 2 +- .../overview/resources-in-the-rest-api.md | 2 +- .../zh-CN/data/features/container-hooks.yml | 7 + .../section-running-jobs-in-a-container.md | 15 +- 19 files changed, 600 insertions(+), 53 deletions(-) create mode 100644 translations/zh-CN/content/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs.md create mode 100644 translations/zh-CN/data/features/container-hooks.yml diff --git a/translations/log/cn-resets.csv b/translations/log/cn-resets.csv index 2e2f151fa9..b1e36eb648 100644 --- a/translations/log/cn-resets.csv +++ b/translations/log/cn-resets.csv @@ -169,6 +169,7 @@ translations/zh-CN/content/code-security/getting-started/securing-your-repositor translations/zh-CN/content/code-security/secret-scanning/about-secret-scanning.md,broken liquid tags translations/zh-CN/content/code-security/secret-scanning/secret-scanning-patterns.md,broken liquid tags translations/zh-CN/content/code-security/supply-chain-security/end-to-end-supply-chain/securing-accounts.md,broken liquid tags +translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md,broken liquid tags translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-supply-chain-security.md,broken liquid tags translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph.md,Listed in localization-support#489 translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/troubleshooting-the-dependency-graph.md,broken liquid tags diff --git a/translations/zh-CN/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md b/translations/zh-CN/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md index 5449c1c7d4..ae63231dda 100644 --- a/translations/zh-CN/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md +++ b/translations/zh-CN/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md @@ -138,10 +138,10 @@ jobs: - name: Deploy to Azure Web App id: deploy-to-webapp uses: azure/webapps-deploy@0b651ed7546ecfc75024011f76944cb9b381ef1e - with: - app-name: {% raw %}${{ env.AZURE_WEBAPP_NAME }}{% endraw %} - publish-profile: {% raw %}${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}{% endraw %} - images: 'ghcr.io/{% raw %}${{ env.REPO }}{% endraw %}:{% raw %}${{ github.sha }}{% endraw %}' + with: + app-name: {% raw %}${{ env.AZURE_WEBAPP_NAME }}{% endraw %} + publish-profile: {% raw %}${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}{% endraw %} + images: 'ghcr.io/{% raw %}${{ env.REPO }}{% endraw %}:{% raw %}${{ github.sha }}{% endraw %}' ``` ## 其他资源 diff --git a/translations/zh-CN/content/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs.md b/translations/zh-CN/content/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs.md new file mode 100644 index 0000000000..aae2d35dc7 --- /dev/null +++ b/translations/zh-CN/content/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs.md @@ -0,0 +1,530 @@ +--- +title: Customizing the containers used by jobs +intro: You can customize how your self-hosted runner invokes a container for a job. +versions: + feature: container-hooks +type: reference +miniTocMaxHeadingLevel: 4 +shortTitle: Customize containers used by jobs +--- + +{% note %} + +**注意**:此功能目前在测试中,可能会更改。 + +{% endnote %} + +## About container customization + +{% data variables.product.prodname_actions %} allows you to run a job within a container, using the `container:` statement in your workflow file. For more information, see "[Running jobs in a container](/actions/using-jobs/running-jobs-in-a-container)." To process container-based jobs, the self-hosted runner creates a container for each job. + +{% data variables.product.prodname_actions %} supports commands that let you customize the way your containers are created by the self-hosted runner. For example, you can use these commands to manage the containers through Kubernetes or Podman, and you can also customize the `docker run` or `docker create` commands used to invoke the container. The customization commands are run by a script, which is automatically triggered when a specific environment variable is set on the runner. For more information, see "[Triggering the customization script](#triggering-the-customization-script)" below. + +This customization is only available for Linux-based self-hosted runners, and root user access is not required. + +## Container customization commands + +{% data variables.product.prodname_actions %} includes the following commands for container customization: + +- [`prepare_job`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#prepare_job): Called when a job is started. +- [`cleanup_job`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#cleanup_job): Called at the end of a job. +- [`run_container_step`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#run_container_step): Called once for each container action in the job. +- [`run_script_step`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#run_script_step): Runs any step that is not a container action. + +Each of these customization commands must be defined in its own JSON file. The file name must match the command name, with the extension `.json`. For example, the `prepare_job` command is defined in `prepare_job.json`. These JSON files will then be run together on the self-hosted runner, as part of the main `index.js` script. This process is described in more detail in "[Generating the customization script](#generating-the-customization-script)." + +These commands also include configuration arguments, explained below in more detail. + +### `prepare_job` + +The `prepare_job` command is called when a job is started. {% data variables.product.prodname_actions %} passes in any job or service containers the job has. This command will be called if you have any service or job containers in the job. + +{% data variables.product.prodname_actions %} assumes that you will do the following tasks in the `prepare_job` command: + +- Prune anything from previous jobs, if needed. +- Create a network, if needed. +- Pull the job and service containers. +- Start the job container. +- Start the service containers. +- Write to the response file any information that {% data variables.product.prodname_actions %} will need: + - Required: State whether the container is an `alpine` linux container (using the `isAlpine` boolean). + - Optional: Any context fields you want to set on the job context, otherwise they will be unavailable for users to use. For more information, see "[`job` context](/actions/learn-github-actions/contexts#job-context)." +- Return `0` when the health checks have succeeded and the job/service containers are started. + +#### 参数 + +- `jobContainer`: **Optional**. An object containing information about the specified job container. + - `image`: **Required**. A string containing the Docker image. + - `workingDirectory`: **Required**. A string containing the absolute path of the working directory. + - `createOptions`: **Optional**. The optional _create_ options specified in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." + - `environmentVariables`: **Optional**. Sets a map of key environment variables. + - `userMountVolumes`: **Optional**. An array of user mount volumes set in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. + - `systemMountVolumes`: **Required**. An array of mounts to mount into the container, same fields as above. + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. + - `注册表` **Optional**. The Docker registry credentials for a private container registry. + - `username`: **Optional**. The username of the registry account. + - `password`: **Optional**. The password to the registry account. + - `serverUrl`: **Optional**. The registry URL. + - `portMappings`: **Optional**. A key value hash of _source:target_ ports to map into the container. +- `services`: **Optional**. An array of service containers to spin up. + - `contextName`: **Required**. The name of the service in the Job context. + - `image`: **Required**. A string containing the Docker image. + - `createOptions`: **Optional**. The optional _create_ options specified in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." + - `environmentVariables`: **Optional**. Sets a map of key environment variables. + - `userMountVolumes`: **Optional**. An array of mounts to mount into the container, same fields as above. + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. + - `注册表` **Optional**. The Docker registry credentials for the private container registry. + - `username`: **Optional**. The username of the registry account. + - `password`: **Optional**. The password to the registry account. + - `serverUrl`: **Optional**. The registry URL. + - `portMappings`: **Optional**. A key value hash of _source:target_ ports to map into the container. + +#### Example input + +```json{:copy} +{ + "command": "prepare_job", + "responseFile": "/users/octocat/runner/_work/{guid}.json", + "state": {}, + "args": { + "jobContainer": { + "image": "node:14.16", + "workingDirectory": "/__w/octocat-test2/octocat-test2", + "createOptions": "--cpus 1", + "environmentVariables": { + "NODE_ENV": "development" + }, + "userMountVolumes": [ + { + "sourceVolumePath": "my_docker_volume", + "targetVolumePath": "/volume_mount", + "readOnly": false + } + ], + "systemMountVolumes": [ + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work", + "targetVolumePath": "/__w", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/externals", + "targetVolumePath": "/__e", + "readOnly": true + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp", + "targetVolumePath": "/__w/_temp", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_actions", + "targetVolumePath": "/__w/_actions", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_tool", + "targetVolumePath": "/__w/_tool", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_home", + "targetVolumePath": "/github/home", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_workflow", + "targetVolumePath": "/github/workflow", + "readOnly": false + } + ], + "registry": { + "username": "octocat", + "password": "examplePassword", + "serverUrl": "https://index.docker.io/v1" + }, + "portMappings": { "80": "801" } + }, + "services": [ + { + "contextName": "redis", + "image": "redis", + "createOptions": "--cpus 1", + "environmentVariables": {}, + "userMountVolumes": [], + "portMappings": { "80": "801" }, + "registry": { + "username": "octocat", + "password": "examplePassword", + "serverUrl": "https://index.docker.io/v1" + } + } + ] + } +} +``` + +#### Example output + +This example output is the contents of the `responseFile` defined in the input above. + +```json{:copy} +{ + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "serviceContainers": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "context": { + "container": { + "id": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "network": "example_network_53269bd575972817b43f7733536b200c" + }, + "services": { + "redis": { + "id": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105", + "ports": { + "8080": "8080" + }, + "network": "example_network_53269bd575972817b43f7733536b200c" + } + }, + "isAlpine": true + } +} +``` + +### `cleanup_job` + +The `cleanup_job` command is called at the end of a job. {% data variables.product.prodname_actions %} assumes that you will do the following tasks in the `cleanup_job` command: + +- Stop any running service or job containers (or the equivalent pod). +- Stop the network (if one exists). +- Delete any job or service containers (or the equivalent pod). +- Delete the network (if one exists). +- Cleanup anything else that was created for the job. + +#### 参数 + +No arguments are provided for `cleanup_job`. + +#### Example input + +```json{:copy} +{ + "command": "cleanup_job", + "responseFile": null, + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "serviceContainers": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "args": {} +} +``` + +#### Example output + +No output is expected for `cleanup_job`. + +### `run_container_step` + +The `run_container_step` command is called once for each container action in your job. {% data variables.product.prodname_actions %} assumes that you will do the following tasks in the `run_container_step` command: + +- Pull or build the required container (or fail if you cannot). +- Run the container action and return the exit code of the container. +- Stream any step logs output to stdout and stderr. +- Cleanup the container after it executes. + +#### 参数 + +- `image`: **Optional**. A string containing the docker image. Otherwise a dockerfile must be provided. +- `dockerfile`: **Optional**. A string containing the path to the dockerfile, otherwise an image must be provided. +- `entryPointArgs`: **Optional**. A list containing the entry point args. +- `entryPoint`: **Optional**. The container entry point to use if the default image entrypoint should be overwritten. +- `workingDirectory`: **Required**. A string containing the absolute path of the working directory. +- `createOptions`: **Optional**. The optional _create_ options specified in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." +- `environmentVariables`: **Optional**. Sets a map of key environment variables. +- `prependPath`: **Optional**. An array of additional paths to prepend to the `$PATH` variable. +- `userMountVolumes`: **Optional**. an array of user mount volumes set in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. +- `systemMountVolumes`: **Required**. An array of mounts to mount into the container, using the same fields as above. + - `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. + - `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container. + - `readOnly`: **Required**. Determines whether or not the mount should be read-only. +- `注册表` **Optional**. The Docker registry credentials for a private container registry. + - `username`: **Optional**. The username of the registry account. + - `password`: **Optional**. The password to the registry account. + - `serverUrl`: **Optional**. The registry URL. +- `portMappings`: **Optional**. A key value hash of the _source:target_ ports to map into the container. + +#### Example input for image + +If you're using a Docker image, you can specify the image name in the `"image":` parameter. + +```json{:copy} +{ + "command": "run_container_step", + "responseFile": null, + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "serviceContainers": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "args": { + "image": "node:14.16", + "dockerfile": null, + "entryPointArgs": ["-f", "/dev/null"], + "entryPoint": "tail", + "workingDirectory": "/__w/octocat-test2/octocat-test2", + "createOptions": "--cpus 1", + "environmentVariables": { + "NODE_ENV": "development" + }, + "prependPath": ["/foo/bar", "bar/foo"], + "userMountVolumes": [ + { + "sourceVolumePath": "my_docker_volume", + "targetVolumePath": "/volume_mount", + "readOnly": false + } + ], + "systemMountVolumes": [ + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work", + "targetVolumePath": "/__w", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/externals", + "targetVolumePath": "/__e", + "readOnly": true + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp", + "targetVolumePath": "/__w/_temp", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_actions", + "targetVolumePath": "/__w/_actions", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_tool", + "targetVolumePath": "/__w/_tool", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_home", + "targetVolumePath": "/github/home", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_workflow", + "targetVolumePath": "/github/workflow", + "readOnly": false + } + ], + "registry": null, + "portMappings": { "80": "801" } + } +} +``` + +#### Example input for Dockerfile + +If your container is defined by a Dockerfile, this example demonstrates how to specify the path to a `Dockerfile` in your input, using the `"dockerfile":` parameter. + +```json{:copy} +{ + "command": "run_container_step", + "responseFile": null, + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "services": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "args": { + "image": null, + "dockerfile": "/__w/_actions/foo/dockerfile", + "entryPointArgs": ["hello world"], + "entryPoint": "echo", + "workingDirectory": "/__w/octocat-test2/octocat-test2", + "createOptions": "--cpus 1", + "environmentVariables": { + "NODE_ENV": "development" + }, + "prependPath": ["/foo/bar", "bar/foo"], + "userMountVolumes": [ + { + "sourceVolumePath": "my_docker_volume", + "targetVolumePath": "/volume_mount", + "readOnly": false + } + ], + "systemMountVolumes": [ + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work", + "targetVolumePath": "/__w", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/externals", + "targetVolumePath": "/__e", + "readOnly": true + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp", + "targetVolumePath": "/__w/_temp", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_actions", + "targetVolumePath": "/__w/_actions", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_tool", + "targetVolumePath": "/__w/_tool", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_home", + "targetVolumePath": "/github/home", + "readOnly": false + }, + { + "sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_workflow", + "targetVolumePath": "/github/workflow", + "readOnly": false + } + ], + "registry": null, + "portMappings": { "80": "801" } + } +} +``` + +#### Example output + +No output is expected for `run_container_step`. + +### `run_script_step` + +{% data variables.product.prodname_actions %} assumes that you will do the following tasks: + +- Invoke the provided script inside the job container and return the exit code. +- Stream any step log output to stdout and stderr. + +#### 参数 + +- `entryPointArgs`: **Optional**. A list containing the entry point arguments. +- `entryPoint`: **Optional**. The container entry point to use if the default image entrypoint should be overwritten. +- `prependPath`: **Optional**. An array of additional paths to prepend to the `$PATH` variable. +- `workingDirectory`: **Required**. A string containing the absolute path of the working directory. +- `environmentVariables`: **Optional**. Sets a map of key environment variables. + +#### Example input + +```json{:copy} +{ + "command": "run_script_step", + "responseFile": null, + "state": { + "network": "example_network_53269bd575972817b43f7733536b200c", + "jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480", + "serviceContainers": { + "redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105" + } + }, + "args": { + "entryPointArgs": ["-e", "/runner/temp/example.sh"], + "entryPoint": "bash", + "environmentVariables": { + "NODE_ENV": "development" + }, + "prependPath": ["/foo/bar", "bar/foo"], + "workingDirectory": "/__w/octocat-test2/octocat-test2" + } +} +``` + +#### Example output + +No output is expected for `run_script_step`. + +## Generating the customization script + +{% data variables.product.prodname_dotcom %} has created an example repository that demonstrates how to generate customization scripts for Docker and Kubernetes. + +{% note %} + +**Note:** The resulting scripts are available for testing purposes, and you will need to determine whether they are appropriate for your requirements. + +{% endnote %} + +1. Clone the [actions/runner-container-hooks](https://github.com/actions/runner-container-hooks) repository to your self-hosted runner. + +1. The `examples/` directory contains some existing customization commands, each with its own JSON file. You can review these examples and use them as a starting point for your own customization commands. + + - `prepare_job.json` + - `run_script_step.json` + - `run_container_step.json` + +1. Build the npm packages. These commands generate the `index.js` files inside `packages/docker/dist` and `packages/k8s/dist`. + + ```shell + npm install && npm run bootstrap && npm run build-all + ``` + +When the resulting `index.js` is triggered by {% data variables.product.prodname_actions %}, it will run the customization commands defined in the JSON files. To trigger the `index.js`, you will need to add it your `ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER` environment variable, as described in the next section. + +## Triggering the customization script + +The custom script must be located on the runner, but should not be stored in the self-hosted runner application directory. 这些脚本在执行运行器服务的服务帐户的安全上下文中执行。 + +{% note %} + +**Note**: The triggered script is processed synchronously, so it will block job execution while running. + +{% endnote %} + +The script is automatically executed when the runner has the following environment variable containing an absolute path to the script: + +- `ACTIONS_RUNNER_CONTAINER_HOOK`: The script defined in this environment variable is triggered when a job has been assigned to a runner, but before the job starts running. + +To set this environment variable, you can either add it to the operating system, or add it to a file named `.env` within the self-hosted runner application directory. For example, the following `.env` entry will have the runner automatically run the script at `/Users/octocat/runner/index.js` before each container-based job runs: + +```bash +ACTIONS_RUNNER_CONTAINER_HOOK=/Users/octocat/runner/index.js +``` + +If you want to ensure that your job always runs inside a container, and subsequently always applies your container customizations, you can set the `ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER` variable on the self hosted runner to `true`. This will fail jobs that do not specify a job container. + +## 疑难解答 + +### 无超时设置 + +There is currently no timeout setting available for the script executed by `ACTIONS_RUNNER_CONTAINER_HOOK`. 因此,您可以考虑向脚本添加超时处理。 + +### 查看工作流程运行日志 + +要确认脚本是否正在执行,可以查看该作业的日志。 有关检查日志的详细信息,请参阅“[查看日志以诊断故障](/actions/monitoring-and-troubleshooting-workflows/using-workflow-run-logs#viewing-logs-to-diagnose-failures)”。 diff --git a/translations/zh-CN/content/actions/hosting-your-own-runners/index.md b/translations/zh-CN/content/actions/hosting-your-own-runners/index.md index 296ac7068c..766576903f 100644 --- a/translations/zh-CN/content/actions/hosting-your-own-runners/index.md +++ b/translations/zh-CN/content/actions/hosting-your-own-runners/index.md @@ -20,6 +20,7 @@ children: - /adding-self-hosted-runners - /autoscaling-with-self-hosted-runners - /running-scripts-before-or-after-a-job + - /customizing-the-containers-used-by-jobs - /configuring-the-self-hosted-runner-application-as-a-service - /using-a-proxy-server-with-self-hosted-runners - /using-labels-with-self-hosted-runners diff --git a/translations/zh-CN/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md b/translations/zh-CN/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md index 4f6ca514d3..bd32dfc20e 100644 --- a/translations/zh-CN/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md +++ b/translations/zh-CN/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md @@ -23,7 +23,7 @@ shortTitle: 筛选警报 ## 关于筛选安全性概述 -可以使用安全概述中的筛选器,根据一系列因素(如警报风险级别、警报类型和功能启用)缩小关注范围。 根据特定视图以及是在组织、团队还是存储库级别进行分析,可以使用不同的筛选器。 +可以使用安全概述中的筛选器,根据一系列因素(如警报风险级别、警报类型和功能启用)缩小关注范围。 Different filters are available depending on the specific view and whether your analysis is at the organization, team or repository level. ## 按仓库过滤 diff --git a/translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md b/translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md index c1c7144f27..bdad0e652b 100644 --- a/translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md +++ b/translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review.md @@ -1,8 +1,8 @@ --- -title: 关于依赖项审查 -intro: 依赖项审查可让您在将有漏洞的依赖项引入您的环境之前找到它们,并提供关于许可证、依赖项和依赖项存在时间的信息。 +title: About dependency review +intro: 'Dependency review lets you catch vulnerable dependencies before you introduce them to your environment, and provides information on license, dependents, and age of dependencies.' product: '{% data reusables.gated-features.dependency-review %}' -shortTitle: 依赖项审查 +shortTitle: Dependency review versions: fpt: '*' ghes: '>= 3.2' @@ -21,47 +21,48 @@ redirect_from: {% data reusables.dependency-review.beta %} -## 关于依赖项审查 +## About dependency review -{% data reusables.dependency-review.feature-overview %} +{% data reusables.dependency-review.feature-overview %} -如果拉取请求针对仓库的默认分支并且包含对包清单或锁定文件的更改,您可以显示依赖项审查以查看更改的内容。 依赖项审查包括对锁定文件中间接依赖项的更改详情,并告诉您任何已添加或更新的依赖项是否包含已知漏洞。 +If a pull request targets your repository's default branch and contains changes to package manifests or lock files, you can display a dependency review to see what has changed. The dependency review includes details of changes to indirect dependencies in lock files, and it tells you if any of the added or updated dependencies contain known vulnerabilities. -有时,您可能只想更新清单中一个依赖项的版本并生成拉取请求。 但是,如果此直接依赖项的更新版本也更新了依赖项,则拉取请求的更改可能超过您的预期。 每个清单和锁定文件的依赖项审查提供了一种简单的方法来查看更改的内容,以及任何新的依赖项版本是否包含已知的漏洞。 +Sometimes you might just want to update the version of one dependency in a manifest and generate a pull request. However, if the updated version of this direct dependency also has updated dependencies, your pull request may have more changes than you expected. The dependency review for each manifest and lock file provides an easy way to see what has changed, and whether any of the new dependency versions contain known vulnerabilities. -通过检查拉取请求中的依赖项审查并更改被标记为有漏洞的任何依赖项,可以避免将漏洞添加到项目中。 有关依赖项审查工作的更多信息,请参阅“[审查拉取请求中的依赖项更改](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request)”。 +By checking the dependency reviews in a pull request, and changing any dependencies that are flagged as vulnerable, you can avoid vulnerabilities being added to your project. For more information about how dependency review works, see "[Reviewing dependency changes in a pull request](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request)." -有关配置依赖项评审的详细信息,请参阅“[配置依赖项审查](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review)”。 +For more information about configuring dependency review, see "[Configuring dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review)." -{% data variables.product.prodname_dependabot_alerts %} 将会查找依赖项中存在的漏洞,但避免引入潜在问题比在以后修复它们要好得多。 有关 {% data variables.product.prodname_dependabot_alerts %} 的更多信息,请参阅“[关于 {% data variables.product.prodname_dependabot_alerts %}](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies#dependabot-alerts-for-vulnerable-dependencies)”。 +{% data variables.product.prodname_dependabot_alerts %} will find vulnerabilities that are already in your dependencies, but it's much better to avoid introducing potential problems than to fix problems at a later date. For more information about {% data variables.product.prodname_dependabot_alerts %}, see "[About {% data variables.product.prodname_dependabot_alerts %}](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies#dependabot-alerts-for-vulnerable-dependencies)." -依赖项审查支持与依赖关系图相同的语言和包管理生态系统。 更多信息请参阅“[关于依赖关系图](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems)”。 +Dependency review supports the same languages and package management ecosystems as the dependency graph. For more information, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems)." -有关 {% data variables.product.product_name %} 上可用的供应链功能的更多信息,请参阅“[关于供应链安全](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-supply-chain-security)”。 +For more information on supply chain features available on {% data variables.product.product_name %}, see "[About supply chain security](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-supply-chain-security)." {% ifversion ghec or ghes %} -## 启用依赖项审查 +## Enabling dependency review -启用依赖关系图时,依赖项审查功能可用。 更多信息请参阅“{% ifversion ghec %}[启用依赖关系图](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph#enabling-the-dependency-graph){% elsif ghes %}[为企业启用依赖关系图](/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise){% endif %}”。 +The dependency review feature becomes available when you enable the dependency graph. For more information, see "{% ifversion ghec %}[Enabling the dependency graph](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph#enabling-the-dependency-graph){% elsif ghes %}[Enabling the dependency graph for your enterprise](/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise){% endif %}." {% endif %} {% ifversion fpt or ghec or ghes > 3.5 or ghae-issue-6396 %} -## 依赖项审查实施 +## Dependency review enforcement {% data reusables.dependency-review.dependency-review-action-beta-note %} The action is available for all {% ifversion fpt or ghec %}public repositories, as well as private {% endif %}repositories that have {% data variables.product.prodname_GH_advanced_security %} enabled. -You can use the {% data variables.product.prodname_dependency_review_action %} in your repository to enforce dependency reviews on your pull requests. 该操作将扫描由拉取请求中的包版本更改是否引入有漏洞的依赖项版本,并向您示警相关的安全漏洞。 这便于您更好地了解拉取请求中发生的变化,并有助于防止将漏洞添加到存储库中。 更多信息请参阅 [`dependency-review-action`](https://github.com/actions/dependency-review-action)。 +You can use the {% data variables.product.prodname_dependency_review_action %} in your repository to enforce dependency reviews on your pull requests. The action scans for vulnerable versions of dependencies introduced by package version changes in pull requests, and warns you about the associated security vulnerabilities. This gives you better visibility of what's changing in a pull request, and helps prevent vulnerabilities being added to your repository. For more information, see [`dependency-review-action`](https://github.com/actions/dependency-review-action). -![依赖项审查操作示例](/assets/images/help/graphs/dependency-review-action.png) +![Dependency review action example](/assets/images/help/graphs/dependency-review-action.png) -By default, the {% data variables.product.prodname_dependency_review_action %} check will fail if it discovers any vulnerable packages. A failed check blocks a pull request from being merged when the repository owner requires the dependency review check to pass. 更多信息请参阅“[关于受保护分支](/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#require-status-checks-before-merging)”。 +By default, the {% data variables.product.prodname_dependency_review_action %} check will fail if it discovers any vulnerable packages. A failed check blocks a pull request from being merged when the repository owner requires the dependency review check to pass. For more information, see "[About protected branches](/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#require-status-checks-before-merging)." -该操作使用依赖项审查 REST API 来获取基本提交和头部提交之间的依赖项更改差异。 您可以使用依赖项审查 API 来获取存储库上任意两个提交之间的依赖项更改差异(包括漏洞数据)。 更多信息请参阅“[依赖项审查](/rest/reference/dependency-graph#dependency-review)”。 +The action uses the Dependency Review REST API to get the diff of dependency changes between the base commit and head commit. You can use the Dependency Review API to get the diff of dependency changes, including vulnerability data, between any two commits on a repository. For more information, see "[Dependency review](/rest/reference/dependency-graph#dependency-review)." {% ifversion dependency-review-action-configuration %} -You can configure the {% data variables.product.prodname_dependency_review_action %} to better suit your needs. For example, you can specify the severity level that will make the action fail, or set an allow or deny list for licenses to scan. For more information, see "[Configuring dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review#configuring-the-dependency-review-github-action)." +You can configure the {% data variables.product.prodname_dependency_review_action %} to better suit your needs. For example, you can specify the severity level that will make the action fail, or set an allow or deny list for licenses to scan. For more information, see "[Configuring dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review#configuring-the-dependency-review-github-action)." + {% endif %} {% endif %} diff --git a/translations/zh-CN/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md b/translations/zh-CN/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md index 2039820a45..95c1659747 100644 --- a/translations/zh-CN/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md +++ b/translations/zh-CN/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md @@ -159,7 +159,7 @@ curl -H "Authorization: token OAUTH-TOKEN" {% data variables.product.api_url_pre ## 用户到服务器请求 -虽然大多数 API 交互应使用服务器到服务器安装访问令牌进行,但某些端点允许您使用用户访问令牌通过 API 执行操作。 您的应用程序可以使用[GraphQL v4]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql) 或 [REST v3](/rest) 端点发出以下请求。 +虽然大多数 API 交互应使用服务器到服务器安装访问令牌进行,但某些端点允许您使用用户访问令牌通过 API 执行操作。 Your app can make the following requests using [GraphQL]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql) or [REST](/rest) endpoints. ### 支持的端点 diff --git a/translations/zh-CN/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md b/translations/zh-CN/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md index c50c580dbb..78be47a177 100644 --- a/translations/zh-CN/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md +++ b/translations/zh-CN/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md @@ -52,7 +52,7 @@ We recommend reviewing the list of API endpoints you need as early as possible. ### Design to stay within API rate limits -GitHub Apps use [sliding rules for rate limits](/apps/building-github-apps/understanding-rate-limits-for-github-apps/), which can increase based on the number of repositories and users in the organization. A GitHub App can also make use of [conditional requests](/rest/overview/resources-in-the-rest-api#conditional-requests) or consolidate requests by using the [GraphQL API V4]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). +GitHub Apps use [sliding rules for rate limits](/apps/building-github-apps/understanding-rate-limits-for-github-apps/), which can increase based on the number of repositories and users in the organization. A GitHub App can also make use of [conditional requests](/rest/overview/resources-in-the-rest-api#conditional-requests) or consolidate requests by using the [GraphQL API]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). ### Register a new GitHub App diff --git a/translations/zh-CN/content/developers/overview/about-githubs-apis.md b/translations/zh-CN/content/developers/overview/about-githubs-apis.md index f5a0ccfc8d..4091cf85d3 100644 --- a/translations/zh-CN/content/developers/overview/about-githubs-apis.md +++ b/translations/zh-CN/content/developers/overview/about-githubs-apis.md @@ -14,7 +14,7 @@ topics: - API --- -GitHub API 有两个稳定版本:[REST API](/rest) 和 [GraphQL API]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql)。 使用 REST API 时,我们建议您[通过 `Accept` 标头请求 v3](/v3/media/#request-specific-version)。 有关使用 GraphQL API 的信息,请参阅 [v4 文档]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql)。 +GitHub API 有两个稳定版本:[REST API](/rest) 和 [GraphQL API]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql)。 ## 已弃用版本 diff --git a/translations/zh-CN/content/get-started/exploring-projects-on-github/saving-repositories-with-stars.md b/translations/zh-CN/content/get-started/exploring-projects-on-github/saving-repositories-with-stars.md index 3602efc398..51e4392f69 100644 --- a/translations/zh-CN/content/get-started/exploring-projects-on-github/saving-repositories-with-stars.md +++ b/translations/zh-CN/content/get-started/exploring-projects-on-github/saving-repositories-with-stars.md @@ -41,14 +41,12 @@ shortTitle: 保存有星标的仓库 {% ifversion fpt or ghec %} -## Viewing who has starred a repository +## 查看谁为存储库加了星标 + +您可以查看已为您有权访问的公共存储库或私有存储库加星标的每个人。 -You can view everyone who has starred a public repository or a private repository you have access to. - - -To view everyone who has starred a repository, add `/stargazers` to the end of the URL of a repository. For example, to view stargazers for the github/docs repository, visit https://github.com/github/docs/stargazers. - +要查看已为存储库加星标的每个人,请将 `/stargazers` 添加到存储库 URL 的末尾。 例如,要查看 github/docs 存储库的标星者,请访问 https://github.com/github/docs/stargazers。 ## 使用列表组织带星标的存储库 diff --git a/translations/zh-CN/content/get-started/quickstart/contributing-to-projects.md b/translations/zh-CN/content/get-started/quickstart/contributing-to-projects.md index c78f1e5e46..a278ba2ac8 100644 --- a/translations/zh-CN/content/get-started/quickstart/contributing-to-projects.md +++ b/translations/zh-CN/content/get-started/quickstart/contributing-to-projects.md @@ -81,7 +81,7 @@ gh repo fork <em>repository</em> --clone=true ## 创建和推送更改 -Go ahead and make a few changes to the project using your favorite text editor, like [Visual Studio Code](https://code.visualstudio.com). 例如,您可以更改 `index.html` 中的文本以添加您的 GitHub 用户名。 +继续使用您喜欢的文本编辑器对项目进行一些更改,例如 [Visual Studio Code](https://code.visualstudio.com)。 例如,您可以更改 `index.html` 中的文本以添加您的 GitHub 用户名。 当您准备好提交更改时,请暂存并提交更改。 `git add .` 告诉 Git 您希望在下一次提交中包含所有更改。 `git commit` 会拍摄这些更改的快照。 diff --git a/translations/zh-CN/content/graphql/guides/using-global-node-ids.md b/translations/zh-CN/content/graphql/guides/using-global-node-ids.md index ed03cd1def..d980902294 100644 --- a/translations/zh-CN/content/graphql/guides/using-global-node-ids.md +++ b/translations/zh-CN/content/graphql/guides/using-global-node-ids.md @@ -12,7 +12,7 @@ topics: - API --- -您可以使用 REST API 或 GraphQL API 访问 GitHub 中的大多数对象(用户、议题、拉取请求等)。 您可以从 REST API 中找到许多对象的**全局节点 ID** ,并在 GraphQL 操作中使用这些 ID。 更多信息请参阅“[预览 GraphQL API v4 REST API v3 资源中的节点 ID](https://developer.github.com/changes/2017-12-19-graphql-node-id/)”。 +您可以使用 REST API 或 GraphQL API 访问 GitHub 中的大多数对象(用户、议题、拉取请求等)。 您可以从 REST API 中找到许多对象的**全局节点 ID** ,并在 GraphQL 操作中使用这些 ID。 For more information, see "[Preview GraphQL API Node IDs in REST API resources](https://developer.github.com/changes/2017-12-19-graphql-node-id/)." {% note %} diff --git a/translations/zh-CN/content/graphql/overview/resource-limitations.md b/translations/zh-CN/content/graphql/overview/resource-limitations.md index 632594ca66..5ea50baf27 100644 --- a/translations/zh-CN/content/graphql/overview/resource-limitations.md +++ b/translations/zh-CN/content/graphql/overview/resource-limitations.md @@ -14,7 +14,7 @@ topics: ## 节点限制 -要通过[架构](/graphql/guides/introduction-to-graphql#schema)验证,所有 GraphQL API v4 [调用](/graphql/guides/forming-calls-with-graphql)都必须满足这些标准: +To pass [schema](/graphql/guides/introduction-to-graphql#schema) validation, all GraphQL API [calls](/graphql/guides/forming-calls-with-graphql) must meet these standards: * 客户端必须提供任何[连接](/graphql/guides/introduction-to-graphql#connection)上的 `first` 或 `last` 参数。 * `first` 和 `last` 的值必须在 1 至 100 之间。 @@ -130,30 +130,30 @@ topics: ## 速率限制 -GraphQL API v4 限制不同于 REST API v3 的 [速率限制](/rest/overview/resources-in-the-rest-api#rate-limiting)。 +The GraphQL API limit is different from the REST API's [rate limits](/rest/overview/resources-in-the-rest-api#rate-limiting). API 速率限制为什么不同? 使用 [GraphQL](/graphql),一个 GraphQL 调用可替换[多个 REST 调用](/graphql/guides/migrating-from-rest-to-graphql)。 单个复杂 GraphQL 调用可能相当于数千个 REST 请求。 虽然单个 GraphQL 调用远远低于 REST API v3 速率限制,但对 GitHub 的服务器来说,查询的计算成本可能同样高昂。 -要准确表示查询的服务器成本,GraphQL API v4 可根据标准分数量表计算调用的 **rate limit score(速率限制分数)**。 查询分数计入了父连接及其子连接上的第一个和最后一个参数。 +To accurately represent the server cost of a query, the GraphQL API calculates a call's **rate limit score** based on a normalized scale of points. 查询分数计入了父连接及其子连接上的第一个和最后一个参数。 * 计算公式利用父连接及其子连接上的 `first` 和 `last` 参数预计算 GitHub 系统上的潜在负载,如 MySQL、ElasticSearch 和 Git。 * 每个连接都有自己的点值。 此点值与调用的其他点数相结合,计入总速率限制分数。 -GraphQL API v4 的速率限制为 **5,000 points per hour(每小时 5,000 点)**。 +The GraphQL API rate limit is **5,000 points per hour**. -请注意,每小时 5,000 点与每小时 5,000 个调用不同:GraphQL API v4 和 REST API v3 使用的速率限制不同。 +Note that 5,000 points per hour is not the same as 5,000 calls per hour: the GraphQL API and REST API use different rate limits. {% note %} -**注**:在我们观察开发者如何使用 GraphQL API v4 时,当前公式和速率限制可能会发生变化。 +**Note**: The current formula and rate limit are subject to change as we observe how developers use the GraphQL API. {% endnote %} ### 返回调用的速率限制状态 -使用 REST API v3,可以通过[检查](/rest/overview/resources-in-the-rest-api#rate-limiting)返回的 HTTP 标头查看速率限制状态。 +With the REST API, you can check the rate limit status by [inspecting](/rest/overview/resources-in-the-rest-api#rate-limiting) the returned HTTP headers. -使用 GraphQL API v4,可以通过查询 `rateLimit` 对象上的字段查看速率限制状态。 +With the GraphQL API, you can check the rate limit status by querying fields on the `rateLimit` object: ```graphql query { @@ -186,7 +186,7 @@ query { {% note %} -**注**:GraphQL API v4 的最低调用成本是 **1**,表示单个请求。 +**Note**: The minimum cost of a call to the GraphQL API is **1**, representing a single request. {% endnote %} diff --git a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md index 9519a99b9e..43702828d2 100644 --- a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md +++ b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md @@ -40,7 +40,7 @@ shortTitle: 筛选文件 1. 在拉取请求列表中,单击要过滤的拉取请求。 {% data reusables.repositories.changed-files %} -1. 单击文件树中的文件可查看相应的文件差异 If the file tree is hidden, click {% octicon "sidebar-collapse" aria-label="The sidebar collapse icon" %} to display the file tree. +1. 单击文件树中的文件可查看相应的文件差异 如果文件树处于隐藏状态,请单击 {% octicon "sidebar-collapse" aria-label="The sidebar collapse icon" %} 以显示文件树。 {% note %} diff --git a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md index 1a2e6e7e87..9ca289cd20 100644 --- a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md +++ b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md @@ -37,10 +37,10 @@ shortTitle: 查看依赖项更改 {% ifversion fpt or ghec or ghes > 3.5 or ghae-issue-6396 %} -You can use the {% data variables.product.prodname_dependency_review_action %} to help enforce dependency reviews on pull requests in your repository. {% data reusables.dependency-review.dependency-review-action-overview %} +您可以使用 {% data variables.product.prodname_dependency_review_action %} 来帮助对存储库中的拉取请求强制执行依赖项评审。 {% data reusables.dependency-review.dependency-review-action-overview %} {% ifversion dependency-review-action-configuration %} -You can configure the {% data variables.product.prodname_dependency_review_action %} to better suit your needs by specifying the type of dependency vulnerability you wish to catch. For more information, see "[Configuring dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review#configuring-the-dependency-review-github-action)." +您可以通过指定要捕获的依赖项漏洞的类型来配置 {% data variables.product.prodname_dependency_review_action %} 以更好地满足您的需求。 更多信息请参阅“[配置依赖项审查](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review#configuring-the-dependency-review-github-action)”。 {% endif %} {% endif %} diff --git a/translations/zh-CN/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md b/translations/zh-CN/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md index fb5b43c833..3d37287cf1 100644 --- a/translations/zh-CN/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md +++ b/translations/zh-CN/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits.md @@ -49,7 +49,7 @@ You can use the file tree to navigate between files in a commit. {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.navigate-to-commit-page %} 1. 通过单击提交消息链接导航到提交。 ![强调提交消息链接的提交屏幕截图](/assets/images/help/commits/commit-message-link.png) -1. 单击文件树中的文件可查看相应的文件差异 If the file tree is hidden, click {% octicon "sidebar-collapse" aria-label="The sidebar collapse icon" %} to display the file tree. +1. 单击文件树中的文件可查看相应的文件差异 如果文件树处于隐藏状态,请单击 {% octicon "sidebar-collapse" aria-label="The sidebar collapse icon" %} 以显示文件树。 {% note %} diff --git a/translations/zh-CN/content/rest/overview/resources-in-the-rest-api.md b/translations/zh-CN/content/rest/overview/resources-in-the-rest-api.md index 7a2f660515..e0917db6d1 100644 --- a/translations/zh-CN/content/rest/overview/resources-in-the-rest-api.md +++ b/translations/zh-CN/content/rest/overview/resources-in-the-rest-api.md @@ -25,7 +25,7 @@ We encourage you to [explicitly request this version via the `Accept` header](/r {% ifversion fpt or ghec %} -For information about GitHub's GraphQL API, see the [v4 documentation]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). For information about migrating to GraphQL, see "[Migrating from REST]({% ifversion ghec%}/free-pro-team@latest{% endif %}/graphql/guides/migrating-from-rest-to-graphql)." +For information about GitHub's GraphQL API, see the [documentation]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). For information about migrating to GraphQL, see "[Migrating from REST]({% ifversion ghec%}/free-pro-team@latest{% endif %}/graphql/guides/migrating-from-rest-to-graphql)." {% endif %} diff --git a/translations/zh-CN/data/features/container-hooks.yml b/translations/zh-CN/data/features/container-hooks.yml new file mode 100644 index 0000000000..145f5514b5 --- /dev/null +++ b/translations/zh-CN/data/features/container-hooks.yml @@ -0,0 +1,7 @@ +--- +#Reference: #7070 +#Actions Runner Container Hooks +versions: + fpt: '*' + ghec: '*' + ghae: 'issue-7070' diff --git a/translations/zh-CN/data/reusables/actions/jobs/section-running-jobs-in-a-container.md b/translations/zh-CN/data/reusables/actions/jobs/section-running-jobs-in-a-container.md index b5fe57a76d..4330bd2a25 100644 --- a/translations/zh-CN/data/reusables/actions/jobs/section-running-jobs-in-a-container.md +++ b/translations/zh-CN/data/reusables/actions/jobs/section-running-jobs-in-a-container.md @@ -4,9 +4,14 @@ Use `jobs.<job_id>.container` to create a container to run any steps in a job th ### Example: Running a job within a container -```yaml +```yaml{:copy} +name: CI +on: + push: + branches: [ main ] jobs: - my_job: + container-test-job: + runs-on: ubuntu-latest container: image: node:14.16 env: @@ -16,12 +21,16 @@ jobs: volumes: - my_docker_volume:/volume_mount options: --cpus 1 + steps: + - name: Check for dockerenv file + run: (ls /.dockerenv && echo Found dockerenv) || (echo No dockerenv) ``` 只指定容器映像时,可以忽略 `image` 关键词。 ```yaml jobs: - my_job: + container-test-job: + runs-on: ubuntu-latest container: node:14.16 ``` From 1b5fe2a8ead8d6af5aae52d231957c06547b7325 Mon Sep 17 00:00:00 2001 From: Mariam <15mariams@github.com> Date: Thu, 16 Jun 2022 17:14:06 -0700 Subject: [PATCH 17/21] Secret scanning push protection bypass (#28195) Co-authored-by: Laura Coursen <lecoursen@github.com> Co-authored-by: Matt Pollard <mattpollard@users.noreply.github.com> Co-authored-by: Sarah Edwards <skedwards88@github.com> --- .../audit-log-events-for-your-enterprise.md | 7 + ...ing-the-audit-log-for-your-organization.md | 8 + ...cret-scanning-push-protection-bypasses.yml | 6 + ...ecret_scanning_alert.reopened.payload.json | 24 ++- ...ecret_scanning_alert.reopened.payload.json | 138 ++++++++++++++++++ ...ecret_scanning_alert.reopened.payload.json | 138 ++++++++++++++++++ ...ecret_scanning_alert.reopened.payload.json | 138 ++++++++++++++++++ ...ecret_scanning_alert.reopened.payload.json | 138 ++++++++++++++++++ ...ecret_scanning_alert.reopened.payload.json | 138 ++++++++++++++++++ ...ecret_scanning_alert.reopened.payload.json | 138 ++++++++++++++++++ 10 files changed, 872 insertions(+), 1 deletion(-) create mode 100644 data/features/secret-scanning-push-protection-bypasses.yml create mode 100644 lib/webhooks/static/ghae/secret_scanning_alert.reopened.payload.json create mode 100644 lib/webhooks/static/ghes-3.1/secret_scanning_alert.reopened.payload.json create mode 100644 lib/webhooks/static/ghes-3.2/secret_scanning_alert.reopened.payload.json create mode 100644 lib/webhooks/static/ghes-3.3/secret_scanning_alert.reopened.payload.json create mode 100644 lib/webhooks/static/ghes-3.4/secret_scanning_alert.reopened.payload.json create mode 100644 lib/webhooks/static/ghes-3.5/secret_scanning_alert.reopened.payload.json diff --git a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise.md b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise.md index 5914f200a2..0a3766c391 100644 --- a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise.md +++ b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise.md @@ -1227,6 +1227,13 @@ Action | Description | `secret_scanning_new_repos.enable` | An organization owner enabled secret scanning for all new{% ifversion ghec %} private or internal{% endif %} repositories. {%- endif %} +{% ifversion secret-scanning-push-protection-bypasses %} +## `secret_scanning_push_protection` category actions + +| Action | Description +|--------|------------- +| `bypass` | Triggered when a user bypasses the push protection on a secret detected by secret scanning. For more information, see "[Bypassing push protection for a secret](/code-security/secret-scanning/protecting-pushes-with-secret-scanning#bypassing-push-protection-for-a-secret)."{% endif %} + {%- ifversion ghec or ghes or ghae %} ## `security_key` category actions diff --git a/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization.md b/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization.md index baf35fadbf..a6ddf03a4a 100644 --- a/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization.md +++ b/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization.md @@ -761,6 +761,14 @@ For more information, see "[Managing the publication of {% data variables.produc | `enable` | Triggered when an organization owner enables secret scanning for all new {% ifversion ghec %}private or internal {% endif %}repositories. {% endif %} +{% ifversion secret-scanning-push-protection-bypasses %} +### `secret_scanning_push_protection` category actions + +| Action | Description +|------------------|------------------- +| `bypass` | Triggered when a user bypasses the push protection on a secret detected by secret scanning. For more information, see "[Bypassing push protection for a secret](/code-security/secret-scanning/protecting-pushes-with-secret-scanning#bypassing-push-protection-for-a-secret)." +{% endif %} + {% ifversion fpt or ghec %} ### `sponsors` category actions diff --git a/data/features/secret-scanning-push-protection-bypasses.yml b/data/features/secret-scanning-push-protection-bypasses.yml new file mode 100644 index 0000000000..1f76e1f6d0 --- /dev/null +++ b/data/features/secret-scanning-push-protection-bypasses.yml @@ -0,0 +1,6 @@ +# Reference: #7298. +# Documentation for new events related to secret scanning push protection bypasses, e.g. audit log. +versions: + ghec: '*' + ghes: '>=3.6' + ghae: 'issue-7298' diff --git a/lib/webhooks/static/dotcom/secret_scanning_alert.reopened.payload.json b/lib/webhooks/static/dotcom/secret_scanning_alert.reopened.payload.json index 2d4b8991c7..af16f664ca 100644 --- a/lib/webhooks/static/dotcom/secret_scanning_alert.reopened.payload.json +++ b/lib/webhooks/static/dotcom/secret_scanning_alert.reopened.payload.json @@ -5,7 +5,29 @@ "secret_type": "adafruit_io_key", "resolution": null, "resolved_by": null, - "resolved_at": null + "resolved_at": null, + "push_protection_bypassed": true, + "push_protection_bypassed_by": { + "login": "octocat", + "id": 81782111, + "node_id": "MDQ6VXNlcjgxNgyMTEx", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "push_protection_bypassed_at": "2022-04-25T23:10:19Z" }, "repository": { "id": 257423561, diff --git a/lib/webhooks/static/ghae/secret_scanning_alert.reopened.payload.json b/lib/webhooks/static/ghae/secret_scanning_alert.reopened.payload.json new file mode 100644 index 0000000000..2d4b8991c7 --- /dev/null +++ b/lib/webhooks/static/ghae/secret_scanning_alert.reopened.payload.json @@ -0,0 +1,138 @@ +{ + "action": "reopened", + "alert": { + "number": 191, + "secret_type": "adafruit_io_key", + "resolution": null, + "resolved_by": null, + "resolved_at": null + }, + "repository": { + "id": 257423561, + "node_id": "MDEwOlJlcG9zaXRvcnkyNTc0MjM1NjE=", + "name": "Hello-World", + "full_name": "Codertocat/Hello-World", + "private": true, + "owner": { + "login": "Codertocat", + "id": 30846345, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjMwODQ2MzQ1", + "avatar_url": "https://avatars0.githubusercontent.com/u/30846345?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/Codertocat/Hello-World", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "forks_url": "https://api.github.com/repos/Codertocat/Hello-World/forks", + "keys_url": "https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Codertocat/Hello-World/teams", + "hooks_url": "https://api.github.com/repos/Codertocat/Hello-World/hooks", + "issue_events_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number}", + "events_url": "https://api.github.com/repos/Codertocat/Hello-World/events", + "assignees_url": "https://api.github.com/repos/Codertocat/Hello-World/assignees{/user}", + "branches_url": "https://api.github.com/repos/Codertocat/Hello-World/branches{/branch}", + "tags_url": "https://api.github.com/repos/Codertocat/Hello-World/tags", + "blobs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Codertocat/Hello-World/languages", + "stargazers_url": "https://api.github.com/repos/Codertocat/Hello-World/stargazers", + "contributors_url": "https://api.github.com/repos/Codertocat/Hello-World/contributors", + "subscribers_url": "https://api.github.com/repos/Codertocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/Codertocat/Hello-World/subscription", + "commits_url": "https://api.github.com/repos/Codertocat/Hello-World/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Codertocat/Hello-World/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Codertocat/Hello-World/contents/{+path}", + "compare_url": "https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Codertocat/Hello-World/merges", + "archive_url": "https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Codertocat/Hello-World/downloads", + "issues_url": "https://api.github.com/repos/Codertocat/Hello-World/issues{/number}", + "pulls_url": "https://api.github.com/repos/Codertocat/Hello-World/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Codertocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Codertocat/Hello-World/labels{/name}", + "releases_url": "https://api.github.com/repos/Codertocat/Hello-World/releases{/id}", + "deployments_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments", + "created_at": "2020-04-20T22:59:11Z", + "updated_at": "2020-11-24T01:37:33Z", + "pushed_at": "2020-11-24T01:37:31Z", + "git_url": "git://github.com/Codertocat/Hello-World.git", + "ssh_url": "git@github.com:Codertocat/Hello-World.git", + "clone_url": "https://github.com/Codertocat/Hello-World.git", + "svn_url": "https://github.com/Codertocat/Hello-World", + "homepage": null, + "size": 1156, + "stargazers_count": 0, + "watchers_count": 0, + "language": "JavaScript", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": true, + "forks_count": 0, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 3, + "license": null, + "forks": 0, + "open_issues": 3, + "watchers": 0, + "default_branch": "master" + }, + "organization": { + "login": "Codertocat", + "id": 30846345, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjMwODQ2MzQ1", + "url": "https://api.github.com/orgs/Codertocat", + "repos_url": "https://api.github.com/orgs/Codertocat/repos", + "events_url": "https://api.github.com/orgs/Codertocat/events", + "hooks_url": "https://api.github.com/orgs/Codertocat/hooks", + "issues_url": "https://api.github.com/orgs/Codertocat/issues", + "members_url": "https://api.github.com/orgs/Codertocat/members{/member}", + "public_members_url": "https://api.github.com/orgs/Codertocat/public_members{/member}", + "avatar_url": "https://avatars0.githubusercontent.com/u/30846345?v=4", + "description": "Demos and testing of GitHub security products" + }, + "sender": { + "login": "Codertocat", + "id": 10136561, + "node_id": "MDQ6VXNlcjEwMTM2NTYx", + "avatar_url": "https://avatars1.githubusercontent.com/u/10136561?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "User", + "site_admin": true + } +} diff --git a/lib/webhooks/static/ghes-3.1/secret_scanning_alert.reopened.payload.json b/lib/webhooks/static/ghes-3.1/secret_scanning_alert.reopened.payload.json new file mode 100644 index 0000000000..2d4b8991c7 --- /dev/null +++ b/lib/webhooks/static/ghes-3.1/secret_scanning_alert.reopened.payload.json @@ -0,0 +1,138 @@ +{ + "action": "reopened", + "alert": { + "number": 191, + "secret_type": "adafruit_io_key", + "resolution": null, + "resolved_by": null, + "resolved_at": null + }, + "repository": { + "id": 257423561, + "node_id": "MDEwOlJlcG9zaXRvcnkyNTc0MjM1NjE=", + "name": "Hello-World", + "full_name": "Codertocat/Hello-World", + "private": true, + "owner": { + "login": "Codertocat", + "id": 30846345, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjMwODQ2MzQ1", + "avatar_url": "https://avatars0.githubusercontent.com/u/30846345?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/Codertocat/Hello-World", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "forks_url": "https://api.github.com/repos/Codertocat/Hello-World/forks", + "keys_url": "https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Codertocat/Hello-World/teams", + "hooks_url": "https://api.github.com/repos/Codertocat/Hello-World/hooks", + "issue_events_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number}", + "events_url": "https://api.github.com/repos/Codertocat/Hello-World/events", + "assignees_url": "https://api.github.com/repos/Codertocat/Hello-World/assignees{/user}", + "branches_url": "https://api.github.com/repos/Codertocat/Hello-World/branches{/branch}", + "tags_url": "https://api.github.com/repos/Codertocat/Hello-World/tags", + "blobs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Codertocat/Hello-World/languages", + "stargazers_url": "https://api.github.com/repos/Codertocat/Hello-World/stargazers", + "contributors_url": "https://api.github.com/repos/Codertocat/Hello-World/contributors", + "subscribers_url": "https://api.github.com/repos/Codertocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/Codertocat/Hello-World/subscription", + "commits_url": "https://api.github.com/repos/Codertocat/Hello-World/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Codertocat/Hello-World/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Codertocat/Hello-World/contents/{+path}", + "compare_url": "https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Codertocat/Hello-World/merges", + "archive_url": "https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Codertocat/Hello-World/downloads", + "issues_url": "https://api.github.com/repos/Codertocat/Hello-World/issues{/number}", + "pulls_url": "https://api.github.com/repos/Codertocat/Hello-World/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Codertocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Codertocat/Hello-World/labels{/name}", + "releases_url": "https://api.github.com/repos/Codertocat/Hello-World/releases{/id}", + "deployments_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments", + "created_at": "2020-04-20T22:59:11Z", + "updated_at": "2020-11-24T01:37:33Z", + "pushed_at": "2020-11-24T01:37:31Z", + "git_url": "git://github.com/Codertocat/Hello-World.git", + "ssh_url": "git@github.com:Codertocat/Hello-World.git", + "clone_url": "https://github.com/Codertocat/Hello-World.git", + "svn_url": "https://github.com/Codertocat/Hello-World", + "homepage": null, + "size": 1156, + "stargazers_count": 0, + "watchers_count": 0, + "language": "JavaScript", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": true, + "forks_count": 0, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 3, + "license": null, + "forks": 0, + "open_issues": 3, + "watchers": 0, + "default_branch": "master" + }, + "organization": { + "login": "Codertocat", + "id": 30846345, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjMwODQ2MzQ1", + "url": "https://api.github.com/orgs/Codertocat", + "repos_url": "https://api.github.com/orgs/Codertocat/repos", + "events_url": "https://api.github.com/orgs/Codertocat/events", + "hooks_url": "https://api.github.com/orgs/Codertocat/hooks", + "issues_url": "https://api.github.com/orgs/Codertocat/issues", + "members_url": "https://api.github.com/orgs/Codertocat/members{/member}", + "public_members_url": "https://api.github.com/orgs/Codertocat/public_members{/member}", + "avatar_url": "https://avatars0.githubusercontent.com/u/30846345?v=4", + "description": "Demos and testing of GitHub security products" + }, + "sender": { + "login": "Codertocat", + "id": 10136561, + "node_id": "MDQ6VXNlcjEwMTM2NTYx", + "avatar_url": "https://avatars1.githubusercontent.com/u/10136561?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "User", + "site_admin": true + } +} diff --git a/lib/webhooks/static/ghes-3.2/secret_scanning_alert.reopened.payload.json b/lib/webhooks/static/ghes-3.2/secret_scanning_alert.reopened.payload.json new file mode 100644 index 0000000000..2d4b8991c7 --- /dev/null +++ b/lib/webhooks/static/ghes-3.2/secret_scanning_alert.reopened.payload.json @@ -0,0 +1,138 @@ +{ + "action": "reopened", + "alert": { + "number": 191, + "secret_type": "adafruit_io_key", + "resolution": null, + "resolved_by": null, + "resolved_at": null + }, + "repository": { + "id": 257423561, + "node_id": "MDEwOlJlcG9zaXRvcnkyNTc0MjM1NjE=", + "name": "Hello-World", + "full_name": "Codertocat/Hello-World", + "private": true, + "owner": { + "login": "Codertocat", + "id": 30846345, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjMwODQ2MzQ1", + "avatar_url": "https://avatars0.githubusercontent.com/u/30846345?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/Codertocat/Hello-World", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "forks_url": "https://api.github.com/repos/Codertocat/Hello-World/forks", + "keys_url": "https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Codertocat/Hello-World/teams", + "hooks_url": "https://api.github.com/repos/Codertocat/Hello-World/hooks", + "issue_events_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number}", + "events_url": "https://api.github.com/repos/Codertocat/Hello-World/events", + "assignees_url": "https://api.github.com/repos/Codertocat/Hello-World/assignees{/user}", + "branches_url": "https://api.github.com/repos/Codertocat/Hello-World/branches{/branch}", + "tags_url": "https://api.github.com/repos/Codertocat/Hello-World/tags", + "blobs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Codertocat/Hello-World/languages", + "stargazers_url": "https://api.github.com/repos/Codertocat/Hello-World/stargazers", + "contributors_url": "https://api.github.com/repos/Codertocat/Hello-World/contributors", + "subscribers_url": "https://api.github.com/repos/Codertocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/Codertocat/Hello-World/subscription", + "commits_url": "https://api.github.com/repos/Codertocat/Hello-World/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Codertocat/Hello-World/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Codertocat/Hello-World/contents/{+path}", + "compare_url": "https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Codertocat/Hello-World/merges", + "archive_url": "https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Codertocat/Hello-World/downloads", + "issues_url": "https://api.github.com/repos/Codertocat/Hello-World/issues{/number}", + "pulls_url": "https://api.github.com/repos/Codertocat/Hello-World/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Codertocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Codertocat/Hello-World/labels{/name}", + "releases_url": "https://api.github.com/repos/Codertocat/Hello-World/releases{/id}", + "deployments_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments", + "created_at": "2020-04-20T22:59:11Z", + "updated_at": "2020-11-24T01:37:33Z", + "pushed_at": "2020-11-24T01:37:31Z", + "git_url": "git://github.com/Codertocat/Hello-World.git", + "ssh_url": "git@github.com:Codertocat/Hello-World.git", + "clone_url": "https://github.com/Codertocat/Hello-World.git", + "svn_url": "https://github.com/Codertocat/Hello-World", + "homepage": null, + "size": 1156, + "stargazers_count": 0, + "watchers_count": 0, + "language": "JavaScript", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": true, + "forks_count": 0, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 3, + "license": null, + "forks": 0, + "open_issues": 3, + "watchers": 0, + "default_branch": "master" + }, + "organization": { + "login": "Codertocat", + "id": 30846345, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjMwODQ2MzQ1", + "url": "https://api.github.com/orgs/Codertocat", + "repos_url": "https://api.github.com/orgs/Codertocat/repos", + "events_url": "https://api.github.com/orgs/Codertocat/events", + "hooks_url": "https://api.github.com/orgs/Codertocat/hooks", + "issues_url": "https://api.github.com/orgs/Codertocat/issues", + "members_url": "https://api.github.com/orgs/Codertocat/members{/member}", + "public_members_url": "https://api.github.com/orgs/Codertocat/public_members{/member}", + "avatar_url": "https://avatars0.githubusercontent.com/u/30846345?v=4", + "description": "Demos and testing of GitHub security products" + }, + "sender": { + "login": "Codertocat", + "id": 10136561, + "node_id": "MDQ6VXNlcjEwMTM2NTYx", + "avatar_url": "https://avatars1.githubusercontent.com/u/10136561?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "User", + "site_admin": true + } +} diff --git a/lib/webhooks/static/ghes-3.3/secret_scanning_alert.reopened.payload.json b/lib/webhooks/static/ghes-3.3/secret_scanning_alert.reopened.payload.json new file mode 100644 index 0000000000..2d4b8991c7 --- /dev/null +++ b/lib/webhooks/static/ghes-3.3/secret_scanning_alert.reopened.payload.json @@ -0,0 +1,138 @@ +{ + "action": "reopened", + "alert": { + "number": 191, + "secret_type": "adafruit_io_key", + "resolution": null, + "resolved_by": null, + "resolved_at": null + }, + "repository": { + "id": 257423561, + "node_id": "MDEwOlJlcG9zaXRvcnkyNTc0MjM1NjE=", + "name": "Hello-World", + "full_name": "Codertocat/Hello-World", + "private": true, + "owner": { + "login": "Codertocat", + "id": 30846345, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjMwODQ2MzQ1", + "avatar_url": "https://avatars0.githubusercontent.com/u/30846345?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/Codertocat/Hello-World", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "forks_url": "https://api.github.com/repos/Codertocat/Hello-World/forks", + "keys_url": "https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Codertocat/Hello-World/teams", + "hooks_url": "https://api.github.com/repos/Codertocat/Hello-World/hooks", + "issue_events_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number}", + "events_url": "https://api.github.com/repos/Codertocat/Hello-World/events", + "assignees_url": "https://api.github.com/repos/Codertocat/Hello-World/assignees{/user}", + "branches_url": "https://api.github.com/repos/Codertocat/Hello-World/branches{/branch}", + "tags_url": "https://api.github.com/repos/Codertocat/Hello-World/tags", + "blobs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Codertocat/Hello-World/languages", + "stargazers_url": "https://api.github.com/repos/Codertocat/Hello-World/stargazers", + "contributors_url": "https://api.github.com/repos/Codertocat/Hello-World/contributors", + "subscribers_url": "https://api.github.com/repos/Codertocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/Codertocat/Hello-World/subscription", + "commits_url": "https://api.github.com/repos/Codertocat/Hello-World/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Codertocat/Hello-World/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Codertocat/Hello-World/contents/{+path}", + "compare_url": "https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Codertocat/Hello-World/merges", + "archive_url": "https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Codertocat/Hello-World/downloads", + "issues_url": "https://api.github.com/repos/Codertocat/Hello-World/issues{/number}", + "pulls_url": "https://api.github.com/repos/Codertocat/Hello-World/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Codertocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Codertocat/Hello-World/labels{/name}", + "releases_url": "https://api.github.com/repos/Codertocat/Hello-World/releases{/id}", + "deployments_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments", + "created_at": "2020-04-20T22:59:11Z", + "updated_at": "2020-11-24T01:37:33Z", + "pushed_at": "2020-11-24T01:37:31Z", + "git_url": "git://github.com/Codertocat/Hello-World.git", + "ssh_url": "git@github.com:Codertocat/Hello-World.git", + "clone_url": "https://github.com/Codertocat/Hello-World.git", + "svn_url": "https://github.com/Codertocat/Hello-World", + "homepage": null, + "size": 1156, + "stargazers_count": 0, + "watchers_count": 0, + "language": "JavaScript", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": true, + "forks_count": 0, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 3, + "license": null, + "forks": 0, + "open_issues": 3, + "watchers": 0, + "default_branch": "master" + }, + "organization": { + "login": "Codertocat", + "id": 30846345, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjMwODQ2MzQ1", + "url": "https://api.github.com/orgs/Codertocat", + "repos_url": "https://api.github.com/orgs/Codertocat/repos", + "events_url": "https://api.github.com/orgs/Codertocat/events", + "hooks_url": "https://api.github.com/orgs/Codertocat/hooks", + "issues_url": "https://api.github.com/orgs/Codertocat/issues", + "members_url": "https://api.github.com/orgs/Codertocat/members{/member}", + "public_members_url": "https://api.github.com/orgs/Codertocat/public_members{/member}", + "avatar_url": "https://avatars0.githubusercontent.com/u/30846345?v=4", + "description": "Demos and testing of GitHub security products" + }, + "sender": { + "login": "Codertocat", + "id": 10136561, + "node_id": "MDQ6VXNlcjEwMTM2NTYx", + "avatar_url": "https://avatars1.githubusercontent.com/u/10136561?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "User", + "site_admin": true + } +} diff --git a/lib/webhooks/static/ghes-3.4/secret_scanning_alert.reopened.payload.json b/lib/webhooks/static/ghes-3.4/secret_scanning_alert.reopened.payload.json new file mode 100644 index 0000000000..2d4b8991c7 --- /dev/null +++ b/lib/webhooks/static/ghes-3.4/secret_scanning_alert.reopened.payload.json @@ -0,0 +1,138 @@ +{ + "action": "reopened", + "alert": { + "number": 191, + "secret_type": "adafruit_io_key", + "resolution": null, + "resolved_by": null, + "resolved_at": null + }, + "repository": { + "id": 257423561, + "node_id": "MDEwOlJlcG9zaXRvcnkyNTc0MjM1NjE=", + "name": "Hello-World", + "full_name": "Codertocat/Hello-World", + "private": true, + "owner": { + "login": "Codertocat", + "id": 30846345, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjMwODQ2MzQ1", + "avatar_url": "https://avatars0.githubusercontent.com/u/30846345?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/Codertocat/Hello-World", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "forks_url": "https://api.github.com/repos/Codertocat/Hello-World/forks", + "keys_url": "https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Codertocat/Hello-World/teams", + "hooks_url": "https://api.github.com/repos/Codertocat/Hello-World/hooks", + "issue_events_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number}", + "events_url": "https://api.github.com/repos/Codertocat/Hello-World/events", + "assignees_url": "https://api.github.com/repos/Codertocat/Hello-World/assignees{/user}", + "branches_url": "https://api.github.com/repos/Codertocat/Hello-World/branches{/branch}", + "tags_url": "https://api.github.com/repos/Codertocat/Hello-World/tags", + "blobs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Codertocat/Hello-World/languages", + "stargazers_url": "https://api.github.com/repos/Codertocat/Hello-World/stargazers", + "contributors_url": "https://api.github.com/repos/Codertocat/Hello-World/contributors", + "subscribers_url": "https://api.github.com/repos/Codertocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/Codertocat/Hello-World/subscription", + "commits_url": "https://api.github.com/repos/Codertocat/Hello-World/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Codertocat/Hello-World/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Codertocat/Hello-World/contents/{+path}", + "compare_url": "https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Codertocat/Hello-World/merges", + "archive_url": "https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Codertocat/Hello-World/downloads", + "issues_url": "https://api.github.com/repos/Codertocat/Hello-World/issues{/number}", + "pulls_url": "https://api.github.com/repos/Codertocat/Hello-World/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Codertocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Codertocat/Hello-World/labels{/name}", + "releases_url": "https://api.github.com/repos/Codertocat/Hello-World/releases{/id}", + "deployments_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments", + "created_at": "2020-04-20T22:59:11Z", + "updated_at": "2020-11-24T01:37:33Z", + "pushed_at": "2020-11-24T01:37:31Z", + "git_url": "git://github.com/Codertocat/Hello-World.git", + "ssh_url": "git@github.com:Codertocat/Hello-World.git", + "clone_url": "https://github.com/Codertocat/Hello-World.git", + "svn_url": "https://github.com/Codertocat/Hello-World", + "homepage": null, + "size": 1156, + "stargazers_count": 0, + "watchers_count": 0, + "language": "JavaScript", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": true, + "forks_count": 0, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 3, + "license": null, + "forks": 0, + "open_issues": 3, + "watchers": 0, + "default_branch": "master" + }, + "organization": { + "login": "Codertocat", + "id": 30846345, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjMwODQ2MzQ1", + "url": "https://api.github.com/orgs/Codertocat", + "repos_url": "https://api.github.com/orgs/Codertocat/repos", + "events_url": "https://api.github.com/orgs/Codertocat/events", + "hooks_url": "https://api.github.com/orgs/Codertocat/hooks", + "issues_url": "https://api.github.com/orgs/Codertocat/issues", + "members_url": "https://api.github.com/orgs/Codertocat/members{/member}", + "public_members_url": "https://api.github.com/orgs/Codertocat/public_members{/member}", + "avatar_url": "https://avatars0.githubusercontent.com/u/30846345?v=4", + "description": "Demos and testing of GitHub security products" + }, + "sender": { + "login": "Codertocat", + "id": 10136561, + "node_id": "MDQ6VXNlcjEwMTM2NTYx", + "avatar_url": "https://avatars1.githubusercontent.com/u/10136561?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "User", + "site_admin": true + } +} diff --git a/lib/webhooks/static/ghes-3.5/secret_scanning_alert.reopened.payload.json b/lib/webhooks/static/ghes-3.5/secret_scanning_alert.reopened.payload.json new file mode 100644 index 0000000000..2d4b8991c7 --- /dev/null +++ b/lib/webhooks/static/ghes-3.5/secret_scanning_alert.reopened.payload.json @@ -0,0 +1,138 @@ +{ + "action": "reopened", + "alert": { + "number": 191, + "secret_type": "adafruit_io_key", + "resolution": null, + "resolved_by": null, + "resolved_at": null + }, + "repository": { + "id": 257423561, + "node_id": "MDEwOlJlcG9zaXRvcnkyNTc0MjM1NjE=", + "name": "Hello-World", + "full_name": "Codertocat/Hello-World", + "private": true, + "owner": { + "login": "Codertocat", + "id": 30846345, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjMwODQ2MzQ1", + "avatar_url": "https://avatars0.githubusercontent.com/u/30846345?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/Codertocat/Hello-World", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/Codertocat/Hello-World", + "forks_url": "https://api.github.com/repos/Codertocat/Hello-World/forks", + "keys_url": "https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Codertocat/Hello-World/teams", + "hooks_url": "https://api.github.com/repos/Codertocat/Hello-World/hooks", + "issue_events_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number}", + "events_url": "https://api.github.com/repos/Codertocat/Hello-World/events", + "assignees_url": "https://api.github.com/repos/Codertocat/Hello-World/assignees{/user}", + "branches_url": "https://api.github.com/repos/Codertocat/Hello-World/branches{/branch}", + "tags_url": "https://api.github.com/repos/Codertocat/Hello-World/tags", + "blobs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Codertocat/Hello-World/languages", + "stargazers_url": "https://api.github.com/repos/Codertocat/Hello-World/stargazers", + "contributors_url": "https://api.github.com/repos/Codertocat/Hello-World/contributors", + "subscribers_url": "https://api.github.com/repos/Codertocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/Codertocat/Hello-World/subscription", + "commits_url": "https://api.github.com/repos/Codertocat/Hello-World/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Codertocat/Hello-World/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Codertocat/Hello-World/contents/{+path}", + "compare_url": "https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Codertocat/Hello-World/merges", + "archive_url": "https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Codertocat/Hello-World/downloads", + "issues_url": "https://api.github.com/repos/Codertocat/Hello-World/issues{/number}", + "pulls_url": "https://api.github.com/repos/Codertocat/Hello-World/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Codertocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Codertocat/Hello-World/labels{/name}", + "releases_url": "https://api.github.com/repos/Codertocat/Hello-World/releases{/id}", + "deployments_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments", + "created_at": "2020-04-20T22:59:11Z", + "updated_at": "2020-11-24T01:37:33Z", + "pushed_at": "2020-11-24T01:37:31Z", + "git_url": "git://github.com/Codertocat/Hello-World.git", + "ssh_url": "git@github.com:Codertocat/Hello-World.git", + "clone_url": "https://github.com/Codertocat/Hello-World.git", + "svn_url": "https://github.com/Codertocat/Hello-World", + "homepage": null, + "size": 1156, + "stargazers_count": 0, + "watchers_count": 0, + "language": "JavaScript", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": true, + "forks_count": 0, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 3, + "license": null, + "forks": 0, + "open_issues": 3, + "watchers": 0, + "default_branch": "master" + }, + "organization": { + "login": "Codertocat", + "id": 30846345, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjMwODQ2MzQ1", + "url": "https://api.github.com/orgs/Codertocat", + "repos_url": "https://api.github.com/orgs/Codertocat/repos", + "events_url": "https://api.github.com/orgs/Codertocat/events", + "hooks_url": "https://api.github.com/orgs/Codertocat/hooks", + "issues_url": "https://api.github.com/orgs/Codertocat/issues", + "members_url": "https://api.github.com/orgs/Codertocat/members{/member}", + "public_members_url": "https://api.github.com/orgs/Codertocat/public_members{/member}", + "avatar_url": "https://avatars0.githubusercontent.com/u/30846345?v=4", + "description": "Demos and testing of GitHub security products" + }, + "sender": { + "login": "Codertocat", + "id": 10136561, + "node_id": "MDQ6VXNlcjEwMTM2NTYx", + "avatar_url": "https://avatars1.githubusercontent.com/u/10136561?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Codertocat", + "html_url": "https://github.com/Codertocat", + "followers_url": "https://api.github.com/users/Codertocat/followers", + "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", + "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", + "organizations_url": "https://api.github.com/users/Codertocat/orgs", + "repos_url": "https://api.github.com/users/Codertocat/repos", + "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/Codertocat/received_events", + "type": "User", + "site_admin": true + } +} From e97b6935b5b95e45ebf5ac396cbaa7c196b679b9 Mon Sep 17 00:00:00 2001 From: GitHub Actions <action@github.com> Date: Fri, 17 Jun 2022 02:28:18 +0000 Subject: [PATCH 18/21] update search indexes --- lib/search/indexes/github-docs-3.1-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-ja-records.json.br | 2 +- lib/search/indexes/github-docs-3.3-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-pt.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-cn.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-en.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-es.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-ja.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-pt.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-cn.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-en.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-es.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-ja.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-pt.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-cn.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-en.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-es.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-ja.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-pt.json.br | 4 ++-- 80 files changed, 159 insertions(+), 159 deletions(-) diff --git a/lib/search/indexes/github-docs-3.1-cn-records.json.br b/lib/search/indexes/github-docs-3.1-cn-records.json.br index 5ed0287890..9f1ccd31d6 100644 --- a/lib/search/indexes/github-docs-3.1-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.1-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:29d84f4685b525b857a069459241d71ebbaf932e6ef878d909283ca552828e4e -size 740951 +oid sha256:ba06c2e0a5b6325cd3855091f844cbaa6cee3eff7181d7578a6d94a335e26eb4 +size 742513 diff --git a/lib/search/indexes/github-docs-3.1-cn.json.br b/lib/search/indexes/github-docs-3.1-cn.json.br index 477a8d958c..375895c6ff 100644 --- a/lib/search/indexes/github-docs-3.1-cn.json.br +++ b/lib/search/indexes/github-docs-3.1-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e9029be541748fb74c3a2ece986783fb086e8f06fbfccb4fc835abc0c4a24206 -size 1564414 +oid sha256:efbc02f631aba4cd55e458885e4c61e625e6c99b5f4e81ad04647c1d87d3e5e7 +size 1561184 diff --git a/lib/search/indexes/github-docs-3.1-en-records.json.br b/lib/search/indexes/github-docs-3.1-en-records.json.br index 116e3330ad..a070fcac18 100644 --- a/lib/search/indexes/github-docs-3.1-en-records.json.br +++ b/lib/search/indexes/github-docs-3.1-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:35febe3243f53772102cd15907460a296bc8b1535b9405bde4127c73112f9ba2 -size 997915 +oid sha256:d23e7fdb802569b843ec9ef1a020af160de12994a698d67c292bf04150b9a339 +size 998459 diff --git a/lib/search/indexes/github-docs-3.1-en.json.br b/lib/search/indexes/github-docs-3.1-en.json.br index 2171cdbd17..ba537c02d7 100644 --- a/lib/search/indexes/github-docs-3.1-en.json.br +++ b/lib/search/indexes/github-docs-3.1-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:de02f9f48b7a0fd64bbe9d16d99cacdd57dfa9fc8dc7c8963c4165eedbc889d0 -size 4001166 +oid sha256:f555dba0bb24e1e1546c62c865580e795afb3a773f37115f629fa139cfe3345f +size 4002472 diff --git a/lib/search/indexes/github-docs-3.1-es-records.json.br b/lib/search/indexes/github-docs-3.1-es-records.json.br index 43c93dc367..b3a6e5a8db 100644 --- a/lib/search/indexes/github-docs-3.1-es-records.json.br +++ b/lib/search/indexes/github-docs-3.1-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:758b3871e314be90f0a94a7f464cd44dab030711c5fd86b35d0e0567ca62a5f5 -size 683946 +oid sha256:fc66b7312f47ff6b9348f101edffe75844a28bba14b465a46ecbabeb9e0f2040 +size 684151 diff --git a/lib/search/indexes/github-docs-3.1-es.json.br b/lib/search/indexes/github-docs-3.1-es.json.br index 0e440ea180..b7d3f17229 100644 --- a/lib/search/indexes/github-docs-3.1-es.json.br +++ b/lib/search/indexes/github-docs-3.1-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ab2ddbeb29ee8a63c13f5fa8ce75b3e9a4d52ea9b346b1354c06577623f6ed7b -size 2973572 +oid sha256:b264d8cf3fadb98f494a01823d930fdfe226bfd219bda3efcd144ffcb195d86b +size 2973495 diff --git a/lib/search/indexes/github-docs-3.1-ja-records.json.br b/lib/search/indexes/github-docs-3.1-ja-records.json.br index 0643ce8357..55f0c53180 100644 --- a/lib/search/indexes/github-docs-3.1-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.1-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:58700cbbf9b75e9c2376a9624f3479e9b0c66004e0f8160998cec237b1e8b775 -size 751708 +oid sha256:d30e7a9a9085e70772ff0a783d93fd2ca1ff7ccfd48546c390377e7e3fc890ef +size 751650 diff --git a/lib/search/indexes/github-docs-3.1-ja.json.br b/lib/search/indexes/github-docs-3.1-ja.json.br index 679f75131c..d8ffb8ec20 100644 --- a/lib/search/indexes/github-docs-3.1-ja.json.br +++ b/lib/search/indexes/github-docs-3.1-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ac08aac8772cff5dcb6369393ff8213f9fd68b0a948a90926cc5f78e812f858b -size 4133674 +oid sha256:a30accbe772a101c26dadd9118840737ae5e891e8d2e847361c3279eceaf97b1 +size 4133386 diff --git a/lib/search/indexes/github-docs-3.1-pt-records.json.br b/lib/search/indexes/github-docs-3.1-pt-records.json.br index 98cd158c94..c48b3e91c4 100644 --- a/lib/search/indexes/github-docs-3.1-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.1-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ddb4b10b1c67944ab339c692bd7218521e5b5c284d2c13b2a6cd88ab3b70a6f9 -size 674581 +oid sha256:abe3c2ca13dc36a99d83d37c28353915720e2e99a4a73b34c63bea2924070f32 +size 674611 diff --git a/lib/search/indexes/github-docs-3.1-pt.json.br b/lib/search/indexes/github-docs-3.1-pt.json.br index b153aec448..5c565cd2d5 100644 --- a/lib/search/indexes/github-docs-3.1-pt.json.br +++ b/lib/search/indexes/github-docs-3.1-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:de80b4cb86354e068dca6cc8d45fbfb955daaf5f281285f1adcd272aee581aab -size 2874541 +oid sha256:1a0ba7ec574be6172730509fef0ee92381b4e95d473fc294830ce341a0fbc4c8 +size 2876270 diff --git a/lib/search/indexes/github-docs-3.2-cn-records.json.br b/lib/search/indexes/github-docs-3.2-cn-records.json.br index d0778284f7..9b6601e47a 100644 --- a/lib/search/indexes/github-docs-3.2-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.2-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9d5c229285a13601db4cd3e13dd32c97745b62de485dc737b4b09bb016d0100b -size 762742 +oid sha256:cba619359299cb405d909cf2d0d280221d3fc6bd3f2c6af6867bf60e8ff2f9cf +size 764170 diff --git a/lib/search/indexes/github-docs-3.2-cn.json.br b/lib/search/indexes/github-docs-3.2-cn.json.br index b6f0cac901..af8290cc0c 100644 --- a/lib/search/indexes/github-docs-3.2-cn.json.br +++ b/lib/search/indexes/github-docs-3.2-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bb814632ce303309862cd5c21d8113e43103e334e9a1e048bd1f911964f0c445 -size 1603111 +oid sha256:b90810aa384294a51d0f6026ca30ff145630119198bebbc5b9760dcea2cf470f +size 1602009 diff --git a/lib/search/indexes/github-docs-3.2-en-records.json.br b/lib/search/indexes/github-docs-3.2-en-records.json.br index 22510947c1..10a6e1fad5 100644 --- a/lib/search/indexes/github-docs-3.2-en-records.json.br +++ b/lib/search/indexes/github-docs-3.2-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cdfb9820e29c14e1e62c59ce79ad4100c021638fc2ee8aa847544c9b4bb35660 -size 1034923 +oid sha256:ee53a3cde26cb133111e62ec83ea92883f42f498b2ff11d762df70939c8ebc3d +size 1035175 diff --git a/lib/search/indexes/github-docs-3.2-en.json.br b/lib/search/indexes/github-docs-3.2-en.json.br index 4b1cb6e7ae..da20196c75 100644 --- a/lib/search/indexes/github-docs-3.2-en.json.br +++ b/lib/search/indexes/github-docs-3.2-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3cf8c1b9f5c54d837df86796eb708b0178209618bb1cacc6063f8fd11a96a0a0 -size 4154823 +oid sha256:3d9a084b48136643ca3e98c266129e4c7a0e83a9bae47d8548da63b26ff50ac4 +size 4154591 diff --git a/lib/search/indexes/github-docs-3.2-es-records.json.br b/lib/search/indexes/github-docs-3.2-es-records.json.br index e036a4418e..6918100335 100644 --- a/lib/search/indexes/github-docs-3.2-es-records.json.br +++ b/lib/search/indexes/github-docs-3.2-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:040179662e9c12538dc4f368c92a639b598c8526b7c747fc1e16cae0e95458b7 -size 704133 +oid sha256:d60182315c0af39c47c872ac65df3fe19befbed686f72df268b12b31f0ffac75 +size 704225 diff --git a/lib/search/indexes/github-docs-3.2-es.json.br b/lib/search/indexes/github-docs-3.2-es.json.br index a8a72d4bdc..e03b5bb54a 100644 --- a/lib/search/indexes/github-docs-3.2-es.json.br +++ b/lib/search/indexes/github-docs-3.2-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b8f3da483ad8e7104e01651cb17a16cf1af457442346694c0c4db70609af2433 -size 3059498 +oid sha256:d88825cb7ae75443b761cfe628f5c0975b24bf91d727695117611db6ed71c242 +size 3059892 diff --git a/lib/search/indexes/github-docs-3.2-ja-records.json.br b/lib/search/indexes/github-docs-3.2-ja-records.json.br index 1f98d2ae91..2a2a860232 100644 --- a/lib/search/indexes/github-docs-3.2-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.2-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d286f418e3370fe5a587e4662161c108b7d7d6215cc88234898f4d16f6ba8e56 -size 772454 +oid sha256:ac329f1d401e2481cd9ccb435f05b86cd97dccf95cef49fc01960e3881f38b69 +size 772572 diff --git a/lib/search/indexes/github-docs-3.2-ja.json.br b/lib/search/indexes/github-docs-3.2-ja.json.br index 7d2c974fe9..f67f9107f7 100644 --- a/lib/search/indexes/github-docs-3.2-ja.json.br +++ b/lib/search/indexes/github-docs-3.2-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2073fc0dd88df2f7709965ca5ce20eb66a177197c8236cffeb9930873c80b344 -size 4251104 +oid sha256:5407b94c423c3142b95118e49e121a17231c45d6c53ec82d446728100440f9b2 +size 4250862 diff --git a/lib/search/indexes/github-docs-3.2-pt-records.json.br b/lib/search/indexes/github-docs-3.2-pt-records.json.br index 06dc369248..d2ef4d1538 100644 --- a/lib/search/indexes/github-docs-3.2-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.2-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ba75ec50c6fd986736c4437d9b15f66e93bc897fb4b512b0afb566d159209716 -size 693985 +oid sha256:d673a17ccea99c2175ff3705d33312cc1a2ce92dd43ab7ed5cad5d2e5ccc4984 +size 694281 diff --git a/lib/search/indexes/github-docs-3.2-pt.json.br b/lib/search/indexes/github-docs-3.2-pt.json.br index d194a272b7..76dbfd7730 100644 --- a/lib/search/indexes/github-docs-3.2-pt.json.br +++ b/lib/search/indexes/github-docs-3.2-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:14f11cb28ac23a5da0d7a4f874ff7f2e1861cc468566f6bd0ac19f4c3415bbfa -size 2954128 +oid sha256:a4534315986da08e75ae589431a463848c2d7d75e26dedff5313b77dd87eaa92 +size 2955823 diff --git a/lib/search/indexes/github-docs-3.3-cn-records.json.br b/lib/search/indexes/github-docs-3.3-cn-records.json.br index c1228848f7..5c9b81fb61 100644 --- a/lib/search/indexes/github-docs-3.3-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.3-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:55f3e0e8b3be8f0f57eb2221e84a63a6d634e7873cf9c09626da6c147c4e048f -size 786273 +oid sha256:c3c6c19258e6de4dc90d16c593ad1cbf44b7ed846c57dc6475d7e2d38331456a +size 787738 diff --git a/lib/search/indexes/github-docs-3.3-cn.json.br b/lib/search/indexes/github-docs-3.3-cn.json.br index 43ff145585..97ef4c06d3 100644 --- a/lib/search/indexes/github-docs-3.3-cn.json.br +++ b/lib/search/indexes/github-docs-3.3-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d998e427e0670777a2dad05b789e9940c012d56641731cfa944d07b3cbdf7740 -size 1644024 +oid sha256:186613633e41dde02d0e4c896acda49256af07a8c78756ec3a29e79f4fa18b1b +size 1642848 diff --git a/lib/search/indexes/github-docs-3.3-en-records.json.br b/lib/search/indexes/github-docs-3.3-en-records.json.br index 1b5af95c05..2fae8b8140 100644 --- a/lib/search/indexes/github-docs-3.3-en-records.json.br +++ b/lib/search/indexes/github-docs-3.3-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:febf5a29055b4314b5845305c449dea49dca5250efb3f55db7d8e926fc67276c -size 1069627 +oid sha256:68eb2d8ff1fa3723b122559975125f2ffd6550dd748591ec1333ad1083387bb9 +size 1069944 diff --git a/lib/search/indexes/github-docs-3.3-en.json.br b/lib/search/indexes/github-docs-3.3-en.json.br index deb84a5e9f..5247bb32a9 100644 --- a/lib/search/indexes/github-docs-3.3-en.json.br +++ b/lib/search/indexes/github-docs-3.3-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c030d8f4aba89b96b5290ef1c420ddd8cc88bf56e72a2e3cd1ab62b5310615f7 -size 4250810 +oid sha256:034edd9e518df34cf389751f35b3e4f3f3c40b9342e8998b0757de016eaed758 +size 4250814 diff --git a/lib/search/indexes/github-docs-3.3-es-records.json.br b/lib/search/indexes/github-docs-3.3-es-records.json.br index d9ef4bb499..f1bb3e6d27 100644 --- a/lib/search/indexes/github-docs-3.3-es-records.json.br +++ b/lib/search/indexes/github-docs-3.3-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3ccd98b7b9517caa51803eea4190c127fc74da4261101d07ccd43bd530abe528 -size 723861 +oid sha256:8c42d63e6404d0f17ddb4cb1dfcf71187945f0ca8117b3442aa393057537d0d5 +size 723882 diff --git a/lib/search/indexes/github-docs-3.3-es.json.br b/lib/search/indexes/github-docs-3.3-es.json.br index 5b5cf21efd..5a4f80fe49 100644 --- a/lib/search/indexes/github-docs-3.3-es.json.br +++ b/lib/search/indexes/github-docs-3.3-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7bd8c2cd61dad31c3fcc0054ec535307b93e446cd65a80c98e3ad8f13a37a7a6 -size 3139752 +oid sha256:aea852e99d583b73d3b55a07526ca6b47bf2ba0896ab5f488b4280dd20c4b731 +size 3140504 diff --git a/lib/search/indexes/github-docs-3.3-ja-records.json.br b/lib/search/indexes/github-docs-3.3-ja-records.json.br index 0ffc86adc4..feb05754f7 100644 --- a/lib/search/indexes/github-docs-3.3-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.3-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:21ccded587f2e69e9548302ec054ebfed9e26ab428f9ba00b692e283506fe1a7 +oid sha256:5a6df194dcb349c1e7238c04e689aa1e4032ea9a9bf13c067ef4c8fdbb8d1d55 size 796053 diff --git a/lib/search/indexes/github-docs-3.3-ja.json.br b/lib/search/indexes/github-docs-3.3-ja.json.br index 19e3644ab5..1092abf65a 100644 --- a/lib/search/indexes/github-docs-3.3-ja.json.br +++ b/lib/search/indexes/github-docs-3.3-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:59e3d93ebddc03692651f4a270008db7226d0998dda8db45c605761f0859c828 -size 4370186 +oid sha256:8e8247a7822f3917c4c29117630e438f27712b5fe978792886c3ded45b1582a6 +size 4370189 diff --git a/lib/search/indexes/github-docs-3.3-pt-records.json.br b/lib/search/indexes/github-docs-3.3-pt-records.json.br index 76755f4c7e..65975148b4 100644 --- a/lib/search/indexes/github-docs-3.3-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.3-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a143543f6bb666a0dd08de2dfdfca6667e3ef366e90325f342983878ca581e33 -size 713599 +oid sha256:1bba8945cb79e96437341d9bc39ee74b3fc3cc11da115b3d7a734483356f9ce8 +size 713923 diff --git a/lib/search/indexes/github-docs-3.3-pt.json.br b/lib/search/indexes/github-docs-3.3-pt.json.br index 82215e374b..8ec2ccba52 100644 --- a/lib/search/indexes/github-docs-3.3-pt.json.br +++ b/lib/search/indexes/github-docs-3.3-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b1aad2b249bcef93f729bade974b2aede636e8ba3e6e6916409350354be231c3 -size 3032909 +oid sha256:f7643ecb296a9ea4e4deff8bfaf6b174dad125eeeaa609ef33bb9e7dc083e48b +size 3034394 diff --git a/lib/search/indexes/github-docs-3.4-cn-records.json.br b/lib/search/indexes/github-docs-3.4-cn-records.json.br index 02f07b1d48..e7d46f7e98 100644 --- a/lib/search/indexes/github-docs-3.4-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.4-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b8fc8db4924220cfa2130477bf9adb29771f3c082a1ed6d9d79fbb29cff7b70d -size 788137 +oid sha256:c395ec51fca7a568ce359ed708855e750c75e5819aca3adcdd475b93ea9f8c5c +size 789486 diff --git a/lib/search/indexes/github-docs-3.4-cn.json.br b/lib/search/indexes/github-docs-3.4-cn.json.br index d67fb56634..3ef8ddfa59 100644 --- a/lib/search/indexes/github-docs-3.4-cn.json.br +++ b/lib/search/indexes/github-docs-3.4-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:087b18b3fd2cea379b84db4f12f558352f3a866390bfbbad3e3bc60fae68e355 -size 1656128 +oid sha256:ca638779f88f35b4ae5758ada2386a5993e68c283aad9adc69daaf5964e17b91 +size 1654027 diff --git a/lib/search/indexes/github-docs-3.4-en-records.json.br b/lib/search/indexes/github-docs-3.4-en-records.json.br index cede6b6d9f..6240aa2535 100644 --- a/lib/search/indexes/github-docs-3.4-en-records.json.br +++ b/lib/search/indexes/github-docs-3.4-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:98476e4da5fb5ffc14ddd82828223ce3836e1ca051587ef3dbcc4e39f49d4370 -size 1078786 +oid sha256:0429de2b31f61a9b10e193bce4e8bcd89661884dc48aca42c86089e08a307f6a +size 1078932 diff --git a/lib/search/indexes/github-docs-3.4-en.json.br b/lib/search/indexes/github-docs-3.4-en.json.br index 56aca2c932..c22e2f4ad2 100644 --- a/lib/search/indexes/github-docs-3.4-en.json.br +++ b/lib/search/indexes/github-docs-3.4-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:81a6da773b22a9876cd922e984095fb0d966dcd3f1320c94295b0fcf688729e9 -size 4291144 +oid sha256:62c9f87e704ce53e432df1b6eeddc261269003cce09a53e77e9373c6e2d11cf3 +size 4291517 diff --git a/lib/search/indexes/github-docs-3.4-es-records.json.br b/lib/search/indexes/github-docs-3.4-es-records.json.br index c69e6ad682..62e68c8648 100644 --- a/lib/search/indexes/github-docs-3.4-es-records.json.br +++ b/lib/search/indexes/github-docs-3.4-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7c5703dcebdca429ec602ef4cbc2b6907810186261db3bdeb24e0e19d80cf8d6 -size 727345 +oid sha256:8f3871fd37e19689cbb4ce2479bf223a799a5db5320a8ef4fafb48c1636ded9c +size 727127 diff --git a/lib/search/indexes/github-docs-3.4-es.json.br b/lib/search/indexes/github-docs-3.4-es.json.br index 804cd49432..395676135e 100644 --- a/lib/search/indexes/github-docs-3.4-es.json.br +++ b/lib/search/indexes/github-docs-3.4-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:321112fcf06010fcd2e62d0ccf86d3823ddabd9651840c0dfd4242987039d71e -size 3158627 +oid sha256:d8e7b786cc5e926e788ee4954d4a7ff96d3bc236de934b47b23fb0b2607c375f +size 3158904 diff --git a/lib/search/indexes/github-docs-3.4-ja-records.json.br b/lib/search/indexes/github-docs-3.4-ja-records.json.br index ae07933d86..adbd68fa34 100644 --- a/lib/search/indexes/github-docs-3.4-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.4-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:24bcb9bc40b2a7835fe8309a6b1e9364a44adc78e67e11166622b567211ad604 -size 798599 +oid sha256:751df82ede228cb90c1170c329a43d0c39923e0e0578e67a2a3219b6a81e819a +size 798644 diff --git a/lib/search/indexes/github-docs-3.4-ja.json.br b/lib/search/indexes/github-docs-3.4-ja.json.br index c1f088040a..7e55b6d11e 100644 --- a/lib/search/indexes/github-docs-3.4-ja.json.br +++ b/lib/search/indexes/github-docs-3.4-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6eae6b4edeeb7b3b1e9c2009265ca89616ac0936065f1bc2bd55fe9b0b8da0b1 -size 4395289 +oid sha256:1cb8703acc9e030ae76efb88454b39f5545d67ef9555f171becb5da71e7ba169 +size 4394552 diff --git a/lib/search/indexes/github-docs-3.4-pt-records.json.br b/lib/search/indexes/github-docs-3.4-pt-records.json.br index a5f4640230..4e55aa378f 100644 --- a/lib/search/indexes/github-docs-3.4-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.4-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:83139e2f8013aa76527e8a5ca6203b48481570b954bfbaa7502764dab61c6077 -size 716908 +oid sha256:d1a66836ab61f0ddc4e4d18e13f733fe8ef2c52b7f186b7e1186a9248abf37aa +size 717033 diff --git a/lib/search/indexes/github-docs-3.4-pt.json.br b/lib/search/indexes/github-docs-3.4-pt.json.br index c6d0d066ff..75d0f90cba 100644 --- a/lib/search/indexes/github-docs-3.4-pt.json.br +++ b/lib/search/indexes/github-docs-3.4-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d92d315791e09124906ec615f5fb44e4570f8489372af5f40d920e9e911863f8 -size 3052975 +oid sha256:a15b5842a4f66ebab624a1384c17e68fab2bb126f2fddfd8881ca9014a1042e4 +size 3054011 diff --git a/lib/search/indexes/github-docs-3.5-cn-records.json.br b/lib/search/indexes/github-docs-3.5-cn-records.json.br index 1c28035024..6a08b731ee 100644 --- a/lib/search/indexes/github-docs-3.5-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.5-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c6af562a1320a7afe7944b27ad36e302b957331c8b6c1fa5f48cfe60b422ca26 -size 816671 +oid sha256:3246826fc1a538aa5680dbe1214eea88d8d0c67ecd53d4f0337a1b862290e336 +size 818370 diff --git a/lib/search/indexes/github-docs-3.5-cn.json.br b/lib/search/indexes/github-docs-3.5-cn.json.br index 8b9a67009b..4df4fc5982 100644 --- a/lib/search/indexes/github-docs-3.5-cn.json.br +++ b/lib/search/indexes/github-docs-3.5-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:22815db71a4129d2bd72c8e620117ef3583f0ff4aa9e6f53d01408c4dc1206d4 -size 1723684 +oid sha256:8fc8c7f5d1f65f22abf2d32cd8e8453051a57d2ab7f0512c4c114f3b9b26f6bf +size 1722603 diff --git a/lib/search/indexes/github-docs-3.5-en-records.json.br b/lib/search/indexes/github-docs-3.5-en-records.json.br index 4491aae698..39d78ef40f 100644 --- a/lib/search/indexes/github-docs-3.5-en-records.json.br +++ b/lib/search/indexes/github-docs-3.5-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:95736d7a8b327161cc424123b52711ba62c1c7de27c1fa28ecf514bd262fe43e -size 1116845 +oid sha256:9b90bf38a58d85dfa6fc2ab6870d53499f22941ead40e95986ceb4fd9a061dee +size 1116917 diff --git a/lib/search/indexes/github-docs-3.5-en.json.br b/lib/search/indexes/github-docs-3.5-en.json.br index 52b1b06823..ed4920e6fc 100644 --- a/lib/search/indexes/github-docs-3.5-en.json.br +++ b/lib/search/indexes/github-docs-3.5-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:14a1db9534aaf641feb229064f178268f1711fb796eee6ea33dbdb864271dc8e -size 4449919 +oid sha256:a9d1353c7a1ca768a9540a89003f9828ffa8e5a3457a19fa088d9d4d5d0e33e7 +size 4450668 diff --git a/lib/search/indexes/github-docs-3.5-es-records.json.br b/lib/search/indexes/github-docs-3.5-es-records.json.br index 95e0506107..99ecc5e9b3 100644 --- a/lib/search/indexes/github-docs-3.5-es-records.json.br +++ b/lib/search/indexes/github-docs-3.5-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:074ba51f8ef4e6c68aa003ab3b0621835ce6cea65a2919ca5a8ee8ab9c376c07 -size 750212 +oid sha256:40d6e06eb6ff4bd01d9cafc4ef412e1e6b4f305189aaeaf91af4adb95aaaf8de +size 750093 diff --git a/lib/search/indexes/github-docs-3.5-es.json.br b/lib/search/indexes/github-docs-3.5-es.json.br index 08af951b10..082122d99a 100644 --- a/lib/search/indexes/github-docs-3.5-es.json.br +++ b/lib/search/indexes/github-docs-3.5-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c8ddf51ec6b2b9e1ade829057512000f1253f1751b0d56da05454257a477f9aa -size 3272851 +oid sha256:4dbbd4134c69895a30a08cee865f156a2d1a68c02403253b68637d71a7dabe8c +size 3272199 diff --git a/lib/search/indexes/github-docs-3.5-ja-records.json.br b/lib/search/indexes/github-docs-3.5-ja-records.json.br index c72c52958c..96dd400a35 100644 --- a/lib/search/indexes/github-docs-3.5-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.5-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1240dafd5cfc3493e41849f26c15ee79f1302e4fd1d4ef942cd87ab25a6bc059 -size 824015 +oid sha256:e56e74c2d035466cb579e0c46955492e2c942d1f7a75db0e2f8155b9db5212b6 +size 824260 diff --git a/lib/search/indexes/github-docs-3.5-ja.json.br b/lib/search/indexes/github-docs-3.5-ja.json.br index fa067bd538..76d18244b8 100644 --- a/lib/search/indexes/github-docs-3.5-ja.json.br +++ b/lib/search/indexes/github-docs-3.5-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:42044ff5e0c7257e33c2e1e742baaf5ba803da05acd47f0407381c948575be44 -size 4553323 +oid sha256:94030a593114ddb618678b1eecb4bc713f3861307b7e6c4c5fa1aaeaa7735505 +size 4553685 diff --git a/lib/search/indexes/github-docs-3.5-pt-records.json.br b/lib/search/indexes/github-docs-3.5-pt-records.json.br index 366ccf9259..8f0a195d3c 100644 --- a/lib/search/indexes/github-docs-3.5-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.5-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2eb40e671c4946b490eaa6f50dd9e1647603ad25de6d6d5ce5c1f60668b54969 -size 738880 +oid sha256:9c849f273d8d8d21d9594bee3028b924aa6e49658d3dfd4e720e36063132dc2d +size 738955 diff --git a/lib/search/indexes/github-docs-3.5-pt.json.br b/lib/search/indexes/github-docs-3.5-pt.json.br index 1904db1cb2..38f64e30a1 100644 --- a/lib/search/indexes/github-docs-3.5-pt.json.br +++ b/lib/search/indexes/github-docs-3.5-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5f5db7fb0771cf8fea3b0ff3ed6d2d00b026db97d177cda09302f5b208acb9b1 -size 3159839 +oid sha256:8023e96308a6a4bb98eaaedb601fd70d2a367815802dd9ba555619b38f5595e1 +size 3161132 diff --git a/lib/search/indexes/github-docs-dotcom-cn-records.json.br b/lib/search/indexes/github-docs-dotcom-cn-records.json.br index c816a97b55..2a184be1b6 100644 --- a/lib/search/indexes/github-docs-dotcom-cn-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d5a4b39025db55fcfc0346a0006464b958e5a5dbaebe9f5fc6f10aa3988141e4 -size 983333 +oid sha256:a4aac76858f0e1155ce08183b8a9648299bc2f407b0bf96c5e32ef122536773e +size 986384 diff --git a/lib/search/indexes/github-docs-dotcom-cn.json.br b/lib/search/indexes/github-docs-dotcom-cn.json.br index 3403de8e50..c67292ec4c 100644 --- a/lib/search/indexes/github-docs-dotcom-cn.json.br +++ b/lib/search/indexes/github-docs-dotcom-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:82bf8b1cdf9f559931fe25c14007acc1511fa533feca45ad0b564f41f783c163 -size 1720572 +oid sha256:1f011512149590253bbfe91f6d38499bec2722a10cdb289a12ff8a44fbcd29e6 +size 1731891 diff --git a/lib/search/indexes/github-docs-dotcom-en-records.json.br b/lib/search/indexes/github-docs-dotcom-en-records.json.br index f9b7a696c5..be745b95a4 100644 --- a/lib/search/indexes/github-docs-dotcom-en-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a808ecf8d8fc5fa7cbd84c6643d8661e5dd0b83e69580702428831be7a8f16f9 -size 1351524 +oid sha256:02629e69eafd572502be32bb04e94b697f3b2a836c0591d1af392867dabc182a +size 1352229 diff --git a/lib/search/indexes/github-docs-dotcom-en.json.br b/lib/search/indexes/github-docs-dotcom-en.json.br index 10deddf978..e558fe6381 100644 --- a/lib/search/indexes/github-docs-dotcom-en.json.br +++ b/lib/search/indexes/github-docs-dotcom-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d85324d316a2b395de6f98557af40683adbea063bab969e783b7704e438d148f -size 5100753 +oid sha256:b35ed64eaee6d2f20b625dbbc8d8128a5b0e86220cc93b84b5b4501320937eb5 +size 5104173 diff --git a/lib/search/indexes/github-docs-dotcom-es-records.json.br b/lib/search/indexes/github-docs-dotcom-es-records.json.br index f1f3537c17..a3d032f8a4 100644 --- a/lib/search/indexes/github-docs-dotcom-es-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4bedb12cdcbc5b7d61093ca70fbc6397e5a3c8657fe044073c3938d8002e6f18 -size 886782 +oid sha256:dbe69bfc48b18aa71315d47c708ecd5d29754ce61e633eab62bdc74c16cf842b +size 888980 diff --git a/lib/search/indexes/github-docs-dotcom-es.json.br b/lib/search/indexes/github-docs-dotcom-es.json.br index ab4704782f..5da5750a89 100644 --- a/lib/search/indexes/github-docs-dotcom-es.json.br +++ b/lib/search/indexes/github-docs-dotcom-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e193de2c12c3963cddfe1bc6a2513412abee5e55aadd5b5ebbd37fb60e41cc62 -size 3676619 +oid sha256:5ea8ff34a4e69505184791d13d10e682b243f6d1db18c77227ded218aaee3d9b +size 3687498 diff --git a/lib/search/indexes/github-docs-dotcom-ja-records.json.br b/lib/search/indexes/github-docs-dotcom-ja-records.json.br index 240a58e7cf..c355d19e93 100644 --- a/lib/search/indexes/github-docs-dotcom-ja-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a8851d2b7f45749391806967828b42f431c99d99eb0f5e8d1b192ad5489d6198 -size 986018 +oid sha256:8aaec364bd50a7fd77b5bf83ad7511c75f6ff7ad99246b1b4312aca8eed1c903 +size 988247 diff --git a/lib/search/indexes/github-docs-dotcom-ja.json.br b/lib/search/indexes/github-docs-dotcom-ja.json.br index 18bf18e46d..080bfe19c3 100644 --- a/lib/search/indexes/github-docs-dotcom-ja.json.br +++ b/lib/search/indexes/github-docs-dotcom-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5ca31c3731adf88d6cab9bf3626bf6596ab022a55bcfc64d65e5a5cefeff847b -size 5229169 +oid sha256:5287f46ee72c0c1d9c7d6275ebfb16833cc70f6228e4d5d10f851b2a33b72c81 +size 5239882 diff --git a/lib/search/indexes/github-docs-dotcom-pt-records.json.br b/lib/search/indexes/github-docs-dotcom-pt-records.json.br index 385e9503ba..54451f09e6 100644 --- a/lib/search/indexes/github-docs-dotcom-pt-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7bf0f2b1685edb36d40a0f461ebee923cc25a3e55cdf7327f651eb5885ba0464 -size 875344 +oid sha256:95f503ce24958ee924adf9e2a2fa2eb94db9f45e934bb94ecffb534ffef8adec +size 876716 diff --git a/lib/search/indexes/github-docs-dotcom-pt.json.br b/lib/search/indexes/github-docs-dotcom-pt.json.br index 636d5da45e..8784526d94 100644 --- a/lib/search/indexes/github-docs-dotcom-pt.json.br +++ b/lib/search/indexes/github-docs-dotcom-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b46878203e82a6b64bcf88763ffe5f89fcb08df53d1691859e6cafcb77e7b7f5 -size 3576288 +oid sha256:5cf21a386caadc728afb8710001bb00449d91b844f4f41ff3cb9bf8c3d0b1ad7 +size 3583083 diff --git a/lib/search/indexes/github-docs-ghae-cn-records.json.br b/lib/search/indexes/github-docs-ghae-cn-records.json.br index 0a52b52d2d..c2376d9b66 100644 --- a/lib/search/indexes/github-docs-ghae-cn-records.json.br +++ b/lib/search/indexes/github-docs-ghae-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d4d4da848da797673a15752cfc736c9f5b25532adb9761e7760b0da7ca62c926 -size 625857 +oid sha256:e8e3367889ac2964275a9a1b6ca9d50b609d57ba9641d39357f45d06e1875f14 +size 625605 diff --git a/lib/search/indexes/github-docs-ghae-cn.json.br b/lib/search/indexes/github-docs-ghae-cn.json.br index 5105e6b61b..6e4246103f 100644 --- a/lib/search/indexes/github-docs-ghae-cn.json.br +++ b/lib/search/indexes/github-docs-ghae-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4ab4d7fe1e9ea8718e5c5f43d307ee86246046de2c78a7a798bccf9495625985 -size 1268744 +oid sha256:2167ff506f5b6a49be98b5637b3d9d5b536e65068957dc1f1c6999694b6a6df8 +size 1268899 diff --git a/lib/search/indexes/github-docs-ghae-en-records.json.br b/lib/search/indexes/github-docs-ghae-en-records.json.br index 7f1753f64d..71cc1565ee 100644 --- a/lib/search/indexes/github-docs-ghae-en-records.json.br +++ b/lib/search/indexes/github-docs-ghae-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e7617ffd7c052cfac68b219af15d9f271914b15a4346f36aad20e42c30786727 -size 867992 +oid sha256:fbfa674eef8fd48d440f398a3667cd823918d594f3c403807813a9c884129afd +size 868462 diff --git a/lib/search/indexes/github-docs-ghae-en.json.br b/lib/search/indexes/github-docs-ghae-en.json.br index 2ef7c8d1c5..11a50b90e4 100644 --- a/lib/search/indexes/github-docs-ghae-en.json.br +++ b/lib/search/indexes/github-docs-ghae-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7573f9add19cee30c07b1e09bcd65f5765b451e49f7b854c7ba39c6802858614 -size 3408016 +oid sha256:243e04e89324bebbc1cda3b23ca5ed98f9a0c9f12718a74e541cd80d511a42a9 +size 3408147 diff --git a/lib/search/indexes/github-docs-ghae-es-records.json.br b/lib/search/indexes/github-docs-ghae-es-records.json.br index 00c861bf16..38ebd5c023 100644 --- a/lib/search/indexes/github-docs-ghae-es-records.json.br +++ b/lib/search/indexes/github-docs-ghae-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c4fbb392faddedbd10e56872c3b8ac5314b606808480955f588629990fe78258 -size 582930 +oid sha256:6a3d11f5c162eee60f56a87cd0dad80b7b031b4ea8d58ba5775d564396245411 +size 582811 diff --git a/lib/search/indexes/github-docs-ghae-es.json.br b/lib/search/indexes/github-docs-ghae-es.json.br index d598e20ff2..8f9f746535 100644 --- a/lib/search/indexes/github-docs-ghae-es.json.br +++ b/lib/search/indexes/github-docs-ghae-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ca91688ba71e1895ccfab9826b0be5dcdfc0823757c9ccb2419832a6a38bf6cf -size 2458730 +oid sha256:94351ef9f6ec4f80af75e2479b5d8ca083a5e5290beec4d10b4474822d0934fa +size 2459281 diff --git a/lib/search/indexes/github-docs-ghae-ja-records.json.br b/lib/search/indexes/github-docs-ghae-ja-records.json.br index 269764a0cd..b23d09609b 100644 --- a/lib/search/indexes/github-docs-ghae-ja-records.json.br +++ b/lib/search/indexes/github-docs-ghae-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:651b9c44d156c7cc61a234a6c6ccf160c8ba58e8f660e7f86753313d4d25ef44 -size 635508 +oid sha256:91c3eb0b721652492d77fe3c6f00e1ec4780e69fb504ae83038fd749169be65e +size 635492 diff --git a/lib/search/indexes/github-docs-ghae-ja.json.br b/lib/search/indexes/github-docs-ghae-ja.json.br index 6be57452dd..f7d74832fe 100644 --- a/lib/search/indexes/github-docs-ghae-ja.json.br +++ b/lib/search/indexes/github-docs-ghae-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:552821828146fd09250d6d0c60ecaf8175d5653635af52439031ed649c14194b -size 3375798 +oid sha256:f8f33b73823cd4629d56e5c2341c1b99fb6a9add80ddd14687e27216dd3bd6a8 +size 3376855 diff --git a/lib/search/indexes/github-docs-ghae-pt-records.json.br b/lib/search/indexes/github-docs-ghae-pt-records.json.br index 1fd0a55ef8..2478b275cf 100644 --- a/lib/search/indexes/github-docs-ghae-pt-records.json.br +++ b/lib/search/indexes/github-docs-ghae-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:53dc5fe8d6a2afe998ae36f9124433daf0861f8cba1892eada78faeb20475600 -size 574992 +oid sha256:e4b69461c2603eaa28e4cdfe30b4d3a684a17ad490c38ec8a175ce9ad79d4d77 +size 575161 diff --git a/lib/search/indexes/github-docs-ghae-pt.json.br b/lib/search/indexes/github-docs-ghae-pt.json.br index ad2a09398b..050e508757 100644 --- a/lib/search/indexes/github-docs-ghae-pt.json.br +++ b/lib/search/indexes/github-docs-ghae-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:58f31def94fa6665f0484a031b1d1f9a839d027db625290de19aa1116e91f69b -size 2354131 +oid sha256:d079f1eefd794e1e50262d9b55954b6de0cb1e1624d50f62a6bbed1ec9f02ece +size 2355271 diff --git a/lib/search/indexes/github-docs-ghec-cn-records.json.br b/lib/search/indexes/github-docs-ghec-cn-records.json.br index 544509ed76..9c9815d630 100644 --- a/lib/search/indexes/github-docs-ghec-cn-records.json.br +++ b/lib/search/indexes/github-docs-ghec-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3a6e4a421fa46531d4f275c256d7a2b8aaf406da5e86182b6067b505326c6ad5 -size 947212 +oid sha256:d0bc7888877262e76840f68e21ddc6a18d45e44ffec39ac1f12d24a5feada6ff +size 950277 diff --git a/lib/search/indexes/github-docs-ghec-cn.json.br b/lib/search/indexes/github-docs-ghec-cn.json.br index e1d2716d16..cc6de39f6f 100644 --- a/lib/search/indexes/github-docs-ghec-cn.json.br +++ b/lib/search/indexes/github-docs-ghec-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:504383adfb9220a984111654e4578c33903f66f44a62a27791b6a218020236e7 -size 1840891 +oid sha256:48e853cd8fcdc6c0fae7a4e861e04bf1f980ef7e0e77a86ecd51b3ae987d6c53 +size 1847748 diff --git a/lib/search/indexes/github-docs-ghec-en-records.json.br b/lib/search/indexes/github-docs-ghec-en-records.json.br index 6821c6a62b..644e33a5b7 100644 --- a/lib/search/indexes/github-docs-ghec-en-records.json.br +++ b/lib/search/indexes/github-docs-ghec-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9e9861869837030a9dc6d1774705291c3ce8dfbaf19b8b57787d26c9bba713e6 -size 1280681 +oid sha256:d6a5297bd9a7bbcb735902eb359659a5ab3156aa89a784ddd7a647b7aa6f92db +size 1281662 diff --git a/lib/search/indexes/github-docs-ghec-en.json.br b/lib/search/indexes/github-docs-ghec-en.json.br index 9dfbe64387..adfbd45b5c 100644 --- a/lib/search/indexes/github-docs-ghec-en.json.br +++ b/lib/search/indexes/github-docs-ghec-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d72c4626b9b5d649cf8ebe580e40621d7f8c28724852fa440e96a6f52d3d2d45 -size 5074901 +oid sha256:4532d8075cad85869fe9a17b76e53488a675168f7a30678137fd568fac8237cf +size 5080004 diff --git a/lib/search/indexes/github-docs-ghec-es-records.json.br b/lib/search/indexes/github-docs-ghec-es-records.json.br index 912fbef499..5431d6b004 100644 --- a/lib/search/indexes/github-docs-ghec-es-records.json.br +++ b/lib/search/indexes/github-docs-ghec-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ca2feabe37784a3b98a41423c4a8411a654909007a3b290933b68d6e8a887dc8 -size 874432 +oid sha256:284f93e5f668d8e29f232258af8970bf752164da82a8c8fd410ac12671dbb4df +size 876465 diff --git a/lib/search/indexes/github-docs-ghec-es.json.br b/lib/search/indexes/github-docs-ghec-es.json.br index c2adf4be02..68dcd9d89a 100644 --- a/lib/search/indexes/github-docs-ghec-es.json.br +++ b/lib/search/indexes/github-docs-ghec-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7092aca8833d38875591b96e66cfb351229ccd1f9b895569ba9b823089aabf6b -size 3772301 +oid sha256:015452adbb06af2e7edb1b37bf52f22d88ca7896091af5d8c09d15ea6f368a1e +size 3783657 diff --git a/lib/search/indexes/github-docs-ghec-ja-records.json.br b/lib/search/indexes/github-docs-ghec-ja-records.json.br index ee84872fe4..6f6e110cd0 100644 --- a/lib/search/indexes/github-docs-ghec-ja-records.json.br +++ b/lib/search/indexes/github-docs-ghec-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:87990524c900b3f6fdd7e5d7c10ed119a4f37de6df1746fc616e0887505c9230 -size 954388 +oid sha256:21caf0d743b29ec3d7b4ac3c0e8109d725dfa5a8a44e0d746f26af515b220375 +size 956702 diff --git a/lib/search/indexes/github-docs-ghec-ja.json.br b/lib/search/indexes/github-docs-ghec-ja.json.br index 29262ec3e1..7ed0d3db82 100644 --- a/lib/search/indexes/github-docs-ghec-ja.json.br +++ b/lib/search/indexes/github-docs-ghec-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8ab4b5b40ef6d93b59828d8ea78c91c1a403edce7e489857d076515098a3f486 -size 5274661 +oid sha256:6269b6b515684d91965de4b3c5abf68ad74f69aef608842adcddf77b7a8ed682 +size 5286281 diff --git a/lib/search/indexes/github-docs-ghec-pt-records.json.br b/lib/search/indexes/github-docs-ghec-pt-records.json.br index bb863f2b7e..089c11045a 100644 --- a/lib/search/indexes/github-docs-ghec-pt-records.json.br +++ b/lib/search/indexes/github-docs-ghec-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1160f1e7c02581db47603bb5b3410eded073d1c7533432c4d11e1622aacd11cb -size 863448 +oid sha256:830c79f0417215f93fabc910e8f1c6f60a0970edd2d5c4a6dc8c940391fa6eb2 +size 864923 diff --git a/lib/search/indexes/github-docs-ghec-pt.json.br b/lib/search/indexes/github-docs-ghec-pt.json.br index 5268fa790e..b477549a7a 100644 --- a/lib/search/indexes/github-docs-ghec-pt.json.br +++ b/lib/search/indexes/github-docs-ghec-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ccbe8c492cb918a26d0ae3464c4611efc074104b82a22c7810e80a138ceb8b7f -size 3666501 +oid sha256:f541893ade13fc3a5134d249e893a1d59cc4077faaa3deea33a94c3c57c9cf5b +size 3672795 From f356acaee1baeea5d2616320fe2f6ca396e11075 Mon Sep 17 00:00:00 2001 From: titanism <101466223+titanism@users.noreply.github.com> Date: Fri, 17 Jun 2022 01:11:18 -0500 Subject: [PATCH 19/21] fix: fixed Actions large secret instructions and added warning (#18603) Co-authored-by: Lucas Costi <lucascosti@users.noreply.github.com> --- .../security-guides/encrypted-secrets.md | 68 ++++++++++++------- 1 file changed, 42 insertions(+), 26 deletions(-) diff --git a/content/actions/security-guides/encrypted-secrets.md b/content/actions/security-guides/encrypted-secrets.md index f94e6f4358..e76eb90e5f 100644 --- a/content/actions/security-guides/encrypted-secrets.md +++ b/content/actions/security-guides/encrypted-secrets.md @@ -7,6 +7,7 @@ redirect_from: - /actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets - /actions/configuring-and-managing-workflows/using-variables-and-secrets-in-a-workflow - /actions/reference/encrypted-secrets +miniTocMaxHeadingLevel: 3 versions: fpt: '*' ghes: '*' @@ -284,49 +285,64 @@ A workflow created in a repository can access the following number of secrets: * If the repository is assigned access to more than 100 organization secrets, the workflow can only use the first 100 organization secrets (sorted alphabetically by secret name). * All 100 environment secrets. -Secrets are limited to 64 KB in size. To use secrets that are larger than 64 KB, you can store encrypted secrets in your repository and save the decryption passphrase as a secret on {% data variables.product.prodname_dotcom %}. For example, you can use `gpg` to encrypt your credentials locally before checking the file in to your repository on {% data variables.product.prodname_dotcom %}. For more information, see the "[gpg manpage](https://www.gnupg.org/gph/de/manual/r1023.html)." +Secrets are limited to 64 KB in size. To store larger secrets, see the "[Storing large secrets](#storing-large-secrets)" workaround below. + +### Storing large secrets + +To use secrets that are larger than 64 KB, you can use a workaround to store encrypted secrets in your repository and save the decryption passphrase as a secret on {% data variables.product.prodname_dotcom %}. For example, you can use `gpg` to encrypt a file containing your secret locally before checking the encrypted file in to your repository on {% data variables.product.prodname_dotcom %}. For more information, see the "[gpg manpage](https://www.gnupg.org/gph/de/manual/r1023.html)." {% warning %} -**Warning**: Be careful that your secrets do not get printed when your action runs. When using this workaround, {% data variables.product.prodname_dotcom %} does not redact secrets that are printed in logs. +**Warning**: Be careful that your secrets do not get printed when your workflow runs. When using this workaround, {% data variables.product.prodname_dotcom %} does not redact secrets that are printed in logs. {% endwarning %} -1. Run the following command from your terminal to encrypt the `my_secret.json` file using `gpg` and the AES256 cipher algorithm. +1. Run the following command from your terminal to encrypt the file containing your secret using `gpg` and the AES256 cipher algorithm. In this example, `my_secret.json` is the file containing the secret. - ``` shell - $ gpg --symmetric --cipher-algo AES256 my_secret.json - ``` + ```bash + gpg --symmetric --cipher-algo AES256 my_secret.json + ``` 1. You will be prompted to enter a passphrase. Remember the passphrase, because you'll need to create a new secret on {% data variables.product.prodname_dotcom %} that uses the passphrase as the value. -1. Create a new secret that contains the passphrase. For example, create a new secret with the name `LARGE_SECRET_PASSPHRASE` and set the value of the secret to the passphrase you selected in the step above. +1. Create a new secret that contains the passphrase. For example, create a new secret with the name `LARGE_SECRET_PASSPHRASE` and set the value of the secret to the passphrase you used in the step above. -1. Copy your encrypted file into your repository and commit it. In this example, the encrypted file is `my_secret.json.gpg`. +1. Copy your encrypted file to a path in your repository and commit it. In this example, the encrypted file is `my_secret.json.gpg`. -1. Create a shell script to decrypt the password. Save this file as `decrypt_secret.sh`. + {% warning %} - ``` shell - #!/bin/sh + **Warning**: Make sure to copy the encrypted `my_secret.json.gpg` file ending with the `.gpg` file extension, and **not** the unencrypted `my_secret.json` file. - # Decrypt the file - mkdir $HOME/secrets - # --batch to prevent interactive command - # --yes to assume "yes" for questions - gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" \ - --output $HOME/secrets/my_secret.json my_secret.json.gpg - ``` + {% endwarning %} + + ```bash + git add my_secret.json.gpg + git commit -m "Add new encrypted secret JSON file" + ``` + +1. Create a shell script in your repository to decrypt the secret file. In this example, the script is named `decrypt_secret.sh`. + + ```bash + #!/bin/sh + + # Decrypt the file + mkdir $HOME/secrets + # --batch to prevent interactive command + # --yes to assume "yes" for questions + gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" \ + --output $HOME/secrets/my_secret.json my_secret.json.gpg + ``` 1. Ensure your shell script is executable before checking it in to your repository. - ``` shell - $ chmod +x decrypt_secret.sh - $ git add decrypt_secret.sh - $ git commit -m "Add new decryption script" - $ git push - ``` + ```bash + chmod +x decrypt_secret.sh + git add decrypt_secret.sh + git commit -m "Add new decryption script" + git push + ``` -1. From your workflow, use a `step` to call the shell script and decrypt the secret. To have a copy of your repository in the environment that your workflow runs in, you'll need to use the [`actions/checkout`](https://github.com/actions/checkout) action. Reference your shell script using the `run` command relative to the root of your repository. +1. In your {% data variables.product.prodname_actions %} workflow, use a `step` to call the shell script and decrypt the secret. To have a copy of your repository in the environment that your workflow runs in, you'll need to use the [`actions/checkout`](https://github.com/actions/checkout) action. Reference your shell script using the `run` command relative to the root of your repository. ```yaml name: Workflows with large secrets @@ -340,7 +356,7 @@ Secrets are limited to 64 KB in size. To use secrets that are larger than 64 KB, steps: - uses: {% data reusables.actions.action-checkout %} - name: Decrypt large secret - run: ./.github/scripts/decrypt_secret.sh + run: ./decrypt_secret.sh env: LARGE_SECRET_PASSPHRASE: {% raw %}${{ secrets.LARGE_SECRET_PASSPHRASE }}{% endraw %} # This command is just an example to show your secret being printed From cedaaedb04a8aafce0d5b9b10a9a2b38157afa2b Mon Sep 17 00:00:00 2001 From: Scott Rohde <srohde@illinois.edu> Date: Fri, 17 Jun 2022 01:21:16 -0500 Subject: [PATCH 20/21] Remove redundant notes (#18425) Co-authored-by: Lucas Costi <lucascosti@users.noreply.github.com> Co-authored-by: Martin Lopes <martin389@github.com> --- .../events-that-trigger-workflows.md | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/content/actions/using-workflows/events-that-trigger-workflows.md b/content/actions/using-workflows/events-that-trigger-workflows.md index 4d58c32f51..2b8bd84eda 100644 --- a/content/actions/using-workflows/events-that-trigger-workflows.md +++ b/content/actions/using-workflows/events-that-trigger-workflows.md @@ -563,13 +563,7 @@ on: {% note %} -**Note**: {% data reusables.developer-site.multiple_activity_types %} For information about each activity type, see "[Webhook events and payloads](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#pull_request)." By default, a workflow only runs when a `pull_request` event's activity type is `opened`, `synchronize`, or `reopened`. You can specify different activity types using the `types` keyword. For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions#onevent_nametypes)." - -{% endnote %} - -{% note %} - -**Note:** By default, only the `opened`, `synchronize`, and `reopened` activity types trigger workflows that run on the `pull_request` event. To trigger workflows by different activity types, use the `types` keyword. +**Note**: {% data reusables.developer-site.multiple_activity_types %} For information about each activity type, see "[Webhook events and payloads](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#pull_request)." By default, a workflow only runs when a `pull_request` event's activity type is `opened`, `synchronize`, or `reopened`. To trigger workflows by different activity types, use the `types` keyword. For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions#onevent_nametypes)." {% endnote %} @@ -782,13 +776,7 @@ on: {% note %} -**Note**: {% data reusables.developer-site.multiple_activity_types %} For information about each activity type, see "[Webhook events and payloads](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#pull_request_target)." By default, a workflow only runs when a `pull_request_target`'s activity type is `opened`, `synchronize`, or `reopened`. To trigger workflows for more activity types, use the `types` keyword. You can specify different activity types using the `types` keyword. For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions#onevent_nametypes)." - -{% endnote %} - -{% note %} - -**Note:** By default, only the `opened`, `synchronize`, and `reopened` activity types trigger workflows that run on the `pull_request` event. To trigger workflows by different activity types, use the `types` keyword. +**Note**: {% data reusables.developer-site.multiple_activity_types %} For information about each activity type, see "[Webhook events and payloads](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#pull_request_target)." By default, a workflow only runs when a `pull_request_target` event's activity type is `opened`, `synchronize`, or `reopened`. To trigger workflows by different activity types, use the `types` keyword. For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions#onevent_nametypes)." {% endnote %} From d13f879e513bedaf83f4f8ba8ce59c005df03703 Mon Sep 17 00:00:00 2001 From: Brice Keown <70616936+keownb@users.noreply.github.com> Date: Thu, 16 Jun 2022 23:48:46 -0700 Subject: [PATCH 21/21] Update "About GitHub AE" from the compliance manager perspective (#27986) --- content/admin/overview/about-github-ae.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/content/admin/overview/about-github-ae.md b/content/admin/overview/about-github-ae.md index a2c39f9ce7..1d35514d76 100644 --- a/content/admin/overview/about-github-ae.md +++ b/content/admin/overview/about-github-ae.md @@ -11,9 +11,9 @@ topics: ## About {% data variables.product.prodname_ghe_managed %} -{% data reusables.github-ae.github-ae-enables-you %} {% data variables.product.prodname_ghe_managed %} is fully managed, reliable, and scalable, allowing you to accelerate delivery without sacrificing risk management. +{% data reusables.github-ae.github-ae-enables-you %} {% data variables.product.prodname_ghe_managed %} is fully managed, reliable, and scalable, allowing you to accelerate delivery while improving your risk and compliance posture. -{% data variables.product.prodname_ghe_managed %} offers one developer platform from idea to production. You can increase development velocity with the tools that teams know and love, while you maintain industry and regulatory compliance with unique security and access controls, workflow automation, and policy enforcement. +{% data variables.product.prodname_ghe_managed %} offers one developer platform from idea to production. You can increase development velocity with the tools that teams know and love, while you maintain industry and regulatory compliance with security and access controls, workflow automation, and policy enforcement. ## A highly available and planet-scale cloud @@ -21,11 +21,13 @@ topics: ## Data residency -All of your data is stored within the geographic region of your choosing. You can comply with GDPR and global data protection standards by keeping all of your data within your chosen region. +All of your data is stored within the geographic region of your choosing. You can comply with GDPR data residency requirements and global data protection standards by keeping all of your data within your chosen region. ## Isolated accounts -All developer accounts are fully isolated in {% data variables.product.prodname_ghe_managed %}. You can fully control the accounts through your identity provider, with SAML single sign on as mandatory. SCIM enables you to ensure that employees only have access to the resources they should, as defined in your central identity management system. For more information, see "[Managing identity and access for your enterprise](/admin/authentication/managing-identity-and-access-for-your-enterprise)." +By default, all developer accounts on {% data variables.product.product_name %} are fully isolated from other services, including products from {% data variables.product.company_short %}. You can control the accounts through your identity provider, with SAML single sign-on as mandatory. SCIM enables you to ensure that employees only have access to the resources they should, as defined in your central identity management system. For more information, see "[Managing identity and access for your enterprise](/admin/authentication/managing-identity-and-access-for-your-enterprise)." + +Optionally, enterprise owners can enable limited integration between {% data variables.product.product_name %} and {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[About {% data variables.product.prodname_github_connect %}](/admin/configuration/configuring-github-connect/about-github-connect)." ## Restricted network access