diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e15ab0dec1ca..384757c47e2b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -45,6 +45,7 @@ jobs: - automated-pipelines # - bookmarklets - changelogs + # - code-scanning # - codeql-cli - color-schemes - content-linter @@ -71,10 +72,11 @@ jobs: - release-notes - rest - search + - secret-scanning - shielding - - tracking # - tests # - tools + - tracking - versions - webhooks - workflows diff --git a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/index.md b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/index.md index 9cadec614d48..8a5da15b3b71 100644 --- a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/index.md +++ b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/index.md @@ -15,4 +15,5 @@ children: - /configuring-your-proxy-server-or-firewall-for-copilot - /managing-access-to-github-copilot-in-your-organization - /customizing-copilot-for-your-organization + - /reviewing-activity-related-to-github-copilot-in-your-organization --- diff --git a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/index.md b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/index.md index e7412e60dd01..388564a4e7f6 100644 --- a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/index.md +++ b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/index.md @@ -11,9 +11,6 @@ children: - /managing-requests-for-copilot-business-in-your-organization - /revoking-access-to-copilot-for-members-of-your-organization - /managing-github-copilot-access-to-your-organizations-network - - /reviewing-user-activity-data-for-copilot-in-your-organization - - /reviewing-changes-to-content-exclusions-for-github-copilot - - /reviewing-audit-logs-for-copilot-business redirect_from: - /copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-github-copilot-activity-in-your-organization --- diff --git a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-activity-related-to-github-copilot-in-your-organization/index.md b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-activity-related-to-github-copilot-in-your-organization/index.md new file mode 100644 index 000000000000..80d45c51de75 --- /dev/null +++ b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-activity-related-to-github-copilot-in-your-organization/index.md @@ -0,0 +1,13 @@ +--- +title: Reviewing activity related to GitHub Copilot in your organization +shortTitle: Review activity +intro: 'Organization owners can review {% data variables.product.prodname_copilot_short %} usage in their organization.' +versions: + feature: copilot +topics: + - Copilot +children: + - /reviewing-user-activity-data-for-copilot-in-your-organization + - /reviewing-audit-logs-for-copilot-business + - /reviewing-changes-to-content-exclusions-for-github-copilot +--- diff --git a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-audit-logs-for-copilot-business.md b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-activity-related-to-github-copilot-in-your-organization/reviewing-audit-logs-for-copilot-business.md similarity index 95% rename from content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-audit-logs-for-copilot-business.md rename to content/copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-activity-related-to-github-copilot-in-your-organization/reviewing-audit-logs-for-copilot-business.md index 394c304d354a..df9f380dcaa4 100644 --- a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-audit-logs-for-copilot-business.md +++ b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-activity-related-to-github-copilot-in-your-organization/reviewing-audit-logs-for-copilot-business.md @@ -9,6 +9,7 @@ redirect_from: - /copilot/managing-github-copilot-in-your-organization/reviewing-audit-logs-for-copilot-business - /copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-audit-logs-for-copilot-business - /copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-github-copilot-activity-in-your-organization/reviewing-audit-logs-for-copilot-business + - /copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-audit-logs-for-copilot-business versions: feature: copilot product: '{% data reusables.gated-features.copilot-audit-logs %}' diff --git a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-changes-to-content-exclusions-for-github-copilot.md b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-activity-related-to-github-copilot-in-your-organization/reviewing-changes-to-content-exclusions-for-github-copilot.md similarity index 92% rename from content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-changes-to-content-exclusions-for-github-copilot.md rename to content/copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-activity-related-to-github-copilot-in-your-organization/reviewing-changes-to-content-exclusions-for-github-copilot.md index 938e247aad59..9d4e45228c23 100644 --- a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-changes-to-content-exclusions-for-github-copilot.md +++ b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-activity-related-to-github-copilot-in-your-organization/reviewing-changes-to-content-exclusions-for-github-copilot.md @@ -11,6 +11,7 @@ topics: redirect_from: - /copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-github-copilot-features-in-your-organization/reviewing-changes-to-content-exclusions-for-github-copilot - /copilot/managing-copilot/managing-github-copilot-in-your-organization/setting-policies-for-copilot-in-your-organization/reviewing-changes-to-content-exclusions-for-github-copilot + - /copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-changes-to-content-exclusions-for-github-copilot --- {% data reusables.copilot.content-exclusions-availability-and-beta-note %} diff --git a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-user-activity-data-for-copilot-in-your-organization.md b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-activity-related-to-github-copilot-in-your-organization/reviewing-user-activity-data-for-copilot-in-your-organization.md similarity index 96% rename from content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-user-activity-data-for-copilot-in-your-organization.md rename to content/copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-activity-related-to-github-copilot-in-your-organization/reviewing-user-activity-data-for-copilot-in-your-organization.md index ea287ebb16ee..5727d0b84ad2 100644 --- a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-user-activity-data-for-copilot-in-your-organization.md +++ b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-activity-related-to-github-copilot-in-your-organization/reviewing-user-activity-data-for-copilot-in-your-organization.md @@ -14,6 +14,7 @@ redirect_from: - /billing/managing-billing-for-github-copilot/viewing-your-github-copilot-usage - /copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-github-copilot-activity-in-your-organization/reviewing-usage-data-for-github-copilot-in-your-organization - /copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-usage-data-for-github-copilot-in-your-organization + - /copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-user-activity-data-for-copilot-in-your-organization --- ## Reviewing user activity data for {% data variables.product.prodname_copilot_short %} diff --git a/package-lock.json b/package-lock.json index 16fa183a25a3..46d5c5941d67 100644 --- a/package-lock.json +++ b/package-lock.json @@ -145,7 +145,7 @@ "husky": "^9.1.4", "json-schema-merge-allof": "^0.8.1", "kill-port": "2.0.1", - "lint-staged": "^15.2.2", + "lint-staged": "^15.2.9", "markdownlint": "^0.34.0", "markdownlint-rule-search-replace": "^1.2.0", "mdast-util-gfm-table": "^2.0.0", @@ -3922,12 +3922,15 @@ } }, "node_modules/ansi-escapes": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", - "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", "dev": true, + "dependencies": { + "environment": "^1.0.0" + }, "engines": { - "node": ">=14.16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4702,15 +4705,15 @@ } }, "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", "dev": true }, "node_modules/cli-truncate/node_modules/string-width": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", - "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "dependencies": { "emoji-regex": "^10.3.0", @@ -5501,6 +5504,18 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/es-abstract": { "version": "1.23.3", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", @@ -8905,12 +8920,15 @@ } }, "node_modules/lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", "dev": true, "engines": { "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/linkify-it": { @@ -8923,21 +8941,21 @@ } }, "node_modules/lint-staged": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.2.tgz", - "integrity": "sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==", - "dev": true, - "dependencies": { - "chalk": "5.3.0", - "commander": "11.1.0", - "debug": "4.3.4", - "execa": "8.0.1", - "lilconfig": "3.0.0", - "listr2": "8.0.1", - "micromatch": "4.0.5", - "pidtree": "0.6.0", - "string-argv": "0.3.2", - "yaml": "2.3.4" + "version": "15.2.9", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.9.tgz", + "integrity": "sha512-BZAt8Lk3sEnxw7tfxM7jeZlPRuT4M68O0/CwZhhaw6eeWu0Lz5eERE3m386InivXB64fp/mDID452h48tvKlRQ==", + "dev": true, + "dependencies": { + "chalk": "~5.3.0", + "commander": "~12.1.0", + "debug": "~4.3.6", + "execa": "~8.0.1", + "lilconfig": "~3.1.2", + "listr2": "~8.2.4", + "micromatch": "~4.0.7", + "pidtree": "~0.6.0", + "string-argv": "~0.3.2", + "yaml": "~2.5.0" }, "bin": { "lint-staged": "bin/lint-staged.js" @@ -8949,13 +8967,21 @@ "url": "https://opencollective.com/lint-staged" } }, - "node_modules/lint-staged/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "node_modules/lint-staged/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dev": true, + "dependencies": { + "ms": "2.1.2" + }, "engines": { - "node": ">=16" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/lint-staged/node_modules/execa": { @@ -9120,16 +9146,16 @@ } }, "node_modules/listr2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.0.1.tgz", - "integrity": "sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==", + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", + "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", "dev": true, "dependencies": { "cli-truncate": "^4.0.0", "colorette": "^2.0.20", "eventemitter3": "^5.0.1", - "log-update": "^6.0.0", - "rfdc": "^1.3.0", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", "wrap-ansi": "^9.0.0" }, "engines": { @@ -9216,14 +9242,14 @@ } }, "node_modules/log-update": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz", - "integrity": "sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", "dev": true, "dependencies": { - "ansi-escapes": "^6.2.0", - "cli-cursor": "^4.0.0", - "slice-ansi": "^7.0.0", + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", "strip-ansi": "^7.1.0", "wrap-ansi": "^9.0.0" }, @@ -9246,6 +9272,21 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/log-update/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/log-update/node_modules/is-fullwidth-code-point": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", @@ -9261,6 +9302,49 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/log-update/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/log-update/node_modules/slice-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", @@ -10439,10 +10523,11 @@ ] }, "node_modules/micromatch": { - "version": "4.0.5", - "license": "MIT", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -10483,6 +10568,18 @@ "node": ">=6" } }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mimic-response": { "version": "4.0.0", "license": "MIT", @@ -12671,9 +12768,9 @@ } }, "node_modules/rfdc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", - "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", "dev": true }, "node_modules/rimraf": { @@ -15292,10 +15389,13 @@ } }, "node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "dev": true, + "bin": { + "yaml": "bin.mjs" + }, "engines": { "node": ">= 14" } diff --git a/package.json b/package.json index b1b213dc8c34..aa2742be7faf 100644 --- a/package.json +++ b/package.json @@ -362,7 +362,7 @@ "husky": "^9.1.4", "json-schema-merge-allof": "^0.8.1", "kill-port": "2.0.1", - "lint-staged": "^15.2.2", + "lint-staged": "^15.2.9", "markdownlint": "^0.34.0", "markdownlint-rule-search-replace": "^1.2.0", "mdast-util-gfm-table": "^2.0.0", diff --git a/src/audit-logs/lib/config.json b/src/audit-logs/lib/config.json index 2acd9335092c..9b83958a33d9 100644 --- a/src/audit-logs/lib/config.json +++ b/src/audit-logs/lib/config.json @@ -3,5 +3,5 @@ "apiOnlyEvents": "This event is not available in the web interface, only via the REST API, audit log streaming, or JSON/CSV exports.", "apiRequestEvent": "This event is only available via audit log streaming." }, - "sha": "fbace6ef9a52fb210dc8af9ff44d248edb88538c" + "sha": "15fd749a37853e5031d654d96970f9fabc989c76" } \ No newline at end of file diff --git a/src/content-render/stylesheets/annotate.scss b/src/content-render/stylesheets/annotate.scss index dffe1cfb9070..624cd84ef4f6 100644 --- a/src/content-render/stylesheets/annotate.scss +++ b/src/content-render/stylesheets/annotate.scss @@ -69,6 +69,29 @@ border-bottom: 1px solid var(--color-border-default); } +.annotate-toggle { + background: var(--color-segmented-control-bg); + border-radius: 6px; + margin-right: 1rem; + font-weight: 500; +} + +.annotate-option { + background: none; + border: 1px solid transparent; + border-radius: 6px; + padding: 0.25rem 0.75rem; + + &:hover { + background: var(--color-segmented-control-button-hover-bg); + } + + &.selected { + background: var(--color-segmented-control-button-bg); + border-color: var(--color-segmented-control-button-selected-border); + } +} + .annotate-row { display: flex; flex-direction: column; diff --git a/src/content-render/tests/__snapshots__/annotate.js.snap b/src/content-render/tests/__snapshots__/annotate.js.snap index 6cae4edfc748..d70eab5517f0 100644 --- a/src/content-render/tests/__snapshots__/annotate.js.snap +++ b/src/content-render/tests/__snapshots__/annotate.js.snap @@ -1,30 +1,7 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`annotate > renders annotations 1`] = ` -"
# The name of the workflow as it will appear in the "Actions" tab of the GitHub repository. -name: Post welcome comment - -# Add the \`pull_request\` event, so that the workflow runs automatically -# every time a pull request is created. -on: - pull_request: - types: [opened] -
name: Post welcome comment
The name of the workflow as it will appear in the "Actions" tab of the GitHub repository.
on:
- pull_request:
- types: [opened]
Add the pull_request
event, so that the workflow runs automatically
-every time a pull request is created.
# The name of the workflow as it will appear in the "Actions" tab of the GitHub repository.
-name: Post welcome comment
-
-# Add the \`pull_request\` event, so that the workflow runs automatically
-# every time a pull request is created.
-on:
- pull_request:
- types: [opened]
-
# The name of the workflow as it will appear in the "Actions" tab of the GitHub repository. +"YAML # The name of the workflow as it will appear in the "Actions" tab of the GitHub repository. name: Post welcome comment # Add the \`pull_request\` event, so that the workflow runs automatically diff --git a/src/content-render/unified/annotate.js b/src/content-render/unified/annotate.js index 65fcc057b49c..5fd5fd9cc1f2 100644 --- a/src/content-render/unified/annotate.js +++ b/src/content-render/unified/annotate.js @@ -160,7 +160,7 @@ function getSubnav() { name: 'annotate-display', value: 'beside', type: 'button', - className: 'BtnGroup-item btn btn-sm', + className: 'annotate-option', }, ['Beside'], ) @@ -170,12 +170,12 @@ function getSubnav() { name: 'annotate-display', value: 'inline', type: 'button', - className: 'BtnGroup-item btn btn-sm', + className: 'annotate-option', }, ['Inline'], ) - return h('div', { className: 'BtnGroup' }, [besideBtn, inlineBtn]) + return h('div', { className: 'annotate-toggle' }, [besideBtn, inlineBtn]) } function template({ lang, code, rows }) { diff --git a/src/frame/components/lib/toggle-annotations.ts b/src/frame/components/lib/toggle-annotations.ts index 46acbaf574af..72e44b07df8d 100644 --- a/src/frame/components/lib/toggle-annotations.ts +++ b/src/frame/components/lib/toggle-annotations.ts @@ -19,7 +19,7 @@ function validateMode(mode?: string) { } export default function toggleAnnotation() { - const annotationButtons = Array.from(document.querySelectorAll('div.BtnGroup button')) + const annotationButtons = Array.from(document.querySelectorAll('.annotate-toggle button')) if (!annotationButtons.length) return const cookie = validateMode(Cookies.get('annotate-mode')) // will default to beside @@ -53,11 +53,11 @@ function setActive(annotationButtons: Array, targetMode?: string) { annotationButtons.forEach((el) => { if (el.getAttribute('value') === targetMode) { el.ariaCurrent = 'true' - el.classList.add('selected', 'color-fg-on-emphasis', 'color-bg-emphasis') + el.classList.add('selected') activeElements.push(el) } else { el.removeAttribute('aria-current') - el.classList.remove('selected', 'color-fg-on-emphasis', 'color-bg-emphasis') + el.classList.remove('selected') } }) diff --git a/src/graphql/data/fpt/changelog.json b/src/graphql/data/fpt/changelog.json index 967b9ad7b98d..1c7791565cea 100644 --- a/src/graphql/data/fpt/changelog.json +++ b/src/graphql/data/fpt/changelog.json @@ -1,4 +1,22 @@ [ + { + "schemaChanges": [ + { + "title": "The GraphQL schema includes these changes:", + "changes": [] + } + ], + "previewChanges": [], + "upcomingChanges": [ + { + "title": "The following changes will be made to the schema:", + "changes": [ + " On member
" + ] + } + ], + "date": "2024-08-29" + }, { "schemaChanges": [ { diff --git a/src/graphql/data/fpt/graphql_upcoming_changes.public.yml b/src/graphql/data/fpt/graphql_upcoming_changes.public.yml index 895e53b59153..2195c2f62610 100644 --- a/src/graphql/data/fpt/graphql_upcoming_changes.public.yml +++ b/src/graphql/data/fpt/graphql_upcoming_changes.public.yml @@ -658,3 +658,11 @@ upcoming_changes: date: '2024-10-01T00:00:00+00:00' criticality: breaking owner: stevepopovich + - location: AddMobileDevicePublicKeyPayload.expiresAt + description: + '`expiresAt` will be removed. Do not rely on this field, it is currently + set to a date far in the future if a device key is expirationless' + reason: We are deprecating expirations for mobile device keys used in mobile 2FA + date: '2025-01-01T00:00:00+00:00' + criticality: breaking + owner: chriskirkland diff --git a/src/graphql/data/fpt/upcoming-changes.json b/src/graphql/data/fpt/upcoming-changes.json index cb57402c30b1..4ca5619de54a 100644 --- a/src/graphql/data/fpt/upcoming-changes.json +++ b/src/graphql/data/fpt/upcoming-changes.json @@ -1,4 +1,14 @@ { + "2025-01-01": [ + { + "location": "AddMobileDevicePublicKeyPayload.expiresAt", + "description": "AddMobileDevicePublicKeyPayload.expiresAt
:expiresAt
will be removed. Do not rely on this field, it is currently set to a date far in the future if a device key is expirationless Effective 2025-01-01.", + "reason": "
expiresAt
will be removed. Do not rely on this field, it is currently set to a date far in the future if a device key is expirationlessWe are deprecating expirations for mobile device keys used in mobile 2FA
", + "date": "2025-01-01", + "criticality": "breaking", + "owner": "chriskirkland" + } + ], "2024-10-01": [ { "location": "Workflow.hasWorkflowDispatchTrigger", diff --git a/src/graphql/data/ghec/graphql_upcoming_changes.public.yml b/src/graphql/data/ghec/graphql_upcoming_changes.public.yml index 895e53b59153..2195c2f62610 100644 --- a/src/graphql/data/ghec/graphql_upcoming_changes.public.yml +++ b/src/graphql/data/ghec/graphql_upcoming_changes.public.yml @@ -658,3 +658,11 @@ upcoming_changes: date: '2024-10-01T00:00:00+00:00' criticality: breaking owner: stevepopovich + - location: AddMobileDevicePublicKeyPayload.expiresAt + description: + '`expiresAt` will be removed. Do not rely on this field, it is currently + set to a date far in the future if a device key is expirationless' + reason: We are deprecating expirations for mobile device keys used in mobile 2FA + date: '2025-01-01T00:00:00+00:00' + criticality: breaking + owner: chriskirkland diff --git a/src/graphql/data/ghec/upcoming-changes.json b/src/graphql/data/ghec/upcoming-changes.json index cb57402c30b1..4ca5619de54a 100644 --- a/src/graphql/data/ghec/upcoming-changes.json +++ b/src/graphql/data/ghec/upcoming-changes.json @@ -1,4 +1,14 @@ { + "2025-01-01": [ + { + "location": "AddMobileDevicePublicKeyPayload.expiresAt", + "description": "", + "reason": "
expiresAt
will be removed. Do not rely on this field, it is currently set to a date far in the future if a device key is expirationlessWe are deprecating expirations for mobile device keys used in mobile 2FA
", + "date": "2025-01-01", + "criticality": "breaking", + "owner": "chriskirkland" + } + ], "2024-10-01": [ { "location": "Workflow.hasWorkflowDispatchTrigger", diff --git a/src/secret-scanning/README.md b/src/secret-scanning/README.md index c35a910cc505..431986c4bcaf 100644 --- a/src/secret-scanning/README.md +++ b/src/secret-scanning/README.md @@ -1,3 +1,18 @@ # Secret scanning -The files in the secret scanning folder support our secret scanning informational pages. +This secret scanning pipeline automates a table displayed on the [Supported secret scanning patterns](https://docs.github.com/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets) page. + +Each day a workflow checks if the [data](src/secret-scanning/data/public-docs.yml) is up-to-date. When there are changes, the workflow automatically creates a pull request to update the `src/secret-scanning/data/public-docs.yml` file. The workflow runs `npm run sync-secret-scanning` to check for updates. + +This pipeline uses middleware to check if the path of the URL matches the page that contains the table. The middleware decorates the context with the data, which is displayed on the page using a Markdown table and Liquid. For example: + +```markdown + +{% ifversion fpt %} + +| Provider | Token | Partner | User | Push protection +|----|:----|:----:|:----:|:----:| +{%- for entry in secretScanningData %} +| {{ entry.provider }} | {{ entry.secretType }} | {% if entry.isPublic %}{% octicon "check" aria-label="Supported" %}{% else %}{% octicon "x" aria-label="Unsupported" %}{% endif %} | {% if entry.isPrivateWithGhas %}{% octicon "check" aria-label="Supported" %}{% else %}{% octicon "x" aria-label="Unsupported" %}{% endif %} | {% if entry.hasPushProtection %}{% octicon "check" aria-label="Supported" %}{% else %}{% octicon "x" aria-label="Unsupported" %}{% endif %} | +{%- endfor %} +``` diff --git a/src/secret-scanning/lib/config.json b/src/secret-scanning/lib/config.json index 95cbdb6c9783..9283b6a72e6e 100644 --- a/src/secret-scanning/lib/config.json +++ b/src/secret-scanning/lib/config.json @@ -1,4 +1,5 @@ { "sha": "bb86a15b48fe62030cf0ad8c38520508063ec20b", - "blob-sha": "96de8d829b93d371162f193a68ea19ae86ac0d09" + "blob-sha": "96de8d829b93d371162f193a68ea19ae86ac0d09", + "targetFilename": "code-security/secret-scanning/introduction/supported-secret-scanning-patterns" } \ No newline at end of file diff --git a/src/secret-scanning/middleware/secret-scanning.ts b/src/secret-scanning/middleware/secret-scanning.ts index 95eef0f48581..20b139194d21 100644 --- a/src/secret-scanning/middleware/secret-scanning.ts +++ b/src/secret-scanning/middleware/secret-scanning.ts @@ -9,17 +9,19 @@ import { ExtendedRequest, SecretScanningData } from '@/types' const secretScanningPath = 'src/secret-scanning/data/public-docs.yml' +// This is the path to the file that contains the secret scanning data. +// Currently it's: +// code-security/secret-scanning/introduction/supported-secret-scanning-pattern +const { targetFilename } = JSON.parse( + fs.readFileSync('src/secret-scanning/lib/config.json', 'utf-8'), +) + export default async function secretScanning( req: ExtendedRequest, res: Response, next: NextFunction, ) { - if ( - !req.pagePath!.endsWith( - 'code-security/secret-scanning/introduction/supported-secret-scanning-patterns', - ) - ) - return next() + if (!req.pagePath!.endsWith(targetFilename)) return next() const secretScanningData = yaml.load( fs.readFileSync(secretScanningPath, 'utf-8'), diff --git a/src/secret-scanning/tests/rendering.js b/src/secret-scanning/tests/rendering.js new file mode 100644 index 000000000000..1725a2fa5802 --- /dev/null +++ b/src/secret-scanning/tests/rendering.js @@ -0,0 +1,14 @@ +import { describe, expect, test } from 'vitest' +import { readFileSync } from 'fs' + +import { get } from '#src/tests/helpers/e2etest.js' + +describe('secret-scanning pipeline', () => { + const { targetFilename } = JSON.parse(readFileSync('src/secret-scanning/lib/config.json')) + // This test ensures that the configured page exists. If the page moves + // this test will fail. + test(`check if ${targetFilename} was moved`, async () => { + const page = await get(`/${targetFilename}`, { followRedirects: true }) + expect(page.statusCode).toBe(200) + }) +}) diff --git a/src/workflows/ready-for-docs-review.js b/src/workflows/ready-for-docs-review.js index 866955ff348c..8ac4942e9ee2 100644 --- a/src/workflows/ready-for-docs-review.js +++ b/src/workflows/ready-for-docs-review.js @@ -144,9 +144,7 @@ async function run() { // Generate a mutation to populate fields for the new project item const updateProjectV2ItemMutation = generateUpdateProjectV2ItemFieldMutation({ item: newItemID, - author: firstTimeContributor - ? `${process.env.AUTHOR_LOGIN} (first time contributor)` - : process.env.AUTHOR_LOGIN, + author: firstTimeContributor ? ':star: first time contributor' : process.env.AUTHOR_LOGIN, turnaround, feature, })