From f8ca45703c48c7d1976a278337bc3391fb14fe9e Mon Sep 17 00:00:00 2001 From: Donal Ellis Date: Tue, 30 Jul 2024 21:42:43 +1000 Subject: [PATCH 01/17] tweak copy for replacing primary MySQL on cluster (#51783) --- .../replacing-a-cluster-node.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/content/admin/monitoring-managing-and-updating-your-instance/configuring-clustering/replacing-a-cluster-node.md b/content/admin/monitoring-managing-and-updating-your-instance/configuring-clustering/replacing-a-cluster-node.md index 5b6c8110ce..5a3520e848 100644 --- a/content/admin/monitoring-managing-and-updating-your-instance/configuring-clustering/replacing-a-cluster-node.md +++ b/content/admin/monitoring-managing-and-updating-your-instance/configuring-clustering/replacing-a-cluster-node.md @@ -166,7 +166,7 @@ To replace a node in an emergency, install the {% data variables.product.product ## Replacing the primary MySQL node -To provide database services, your cluster requires a primary MySQL node and at least one secondary MySQL node. For more information, see "[AUTOTITLE](/admin/monitoring-managing-and-updating-your-instance/configuring-clustering/about-cluster-nodes)." +To provide database services, your cluster requires a primary MySQL node and at least one replica MySQL node. For more information, see "[AUTOTITLE](/admin/monitoring-managing-and-updating-your-instance/configuring-clustering/about-cluster-nodes)." If you want to provide the VM for your primary MySQL node with more resources, or if the node fails, you can replace the node. To minimize downtime, add the new node to your cluster, replicate the MySQL data, and then promote the node. Some downtime is required during promotion. @@ -194,10 +194,10 @@ If you want to provide the VM for your primary MySQL node with more resources, o {% data reusables.enterprise_clustering.replacing-a-cluster-node-initialize-new-node %} -{% data reusables.enterprise_clustering.replacing-a-cluster-node-validate-config %} +1. From the administrative shell of the node where you modified `cluster.conf`, run `ghe-cluster-config-apply`. The newly added node will become a replica MySQL node and any other configured services will run there. 1. Wait for MySQL replication to finish. To monitor MySQL replication from any node in the cluster, run `ghe-cluster-status -v`. - Shortly after adding the node to the cluster, you may see an error for replication status while replication catches up. Replication can take hours depending on the instance's load and the last time the instance generated a database seed. + Shortly after adding the node to the cluster, you may see an error for replication status while replication catches up. Replication can take hours depending on the instance's load, the amount of database data, and the last time the instance generated a database seed. 1. During your scheduled maintenance window, enable maintenance mode. For more information, see "[AUTOTITLE](/admin/administering-your-instance/configuring-maintenance-mode/enabling-and-scheduling-maintenance-mode#enabling-or-disabling-maintenance-mode-for-all-nodes-in-a-cluster-via-the-cli)." 1. Ensure that MySQL replication is finished from any node in the cluster by running `ghe-cluster-status -v`. @@ -212,13 +212,13 @@ If you want to provide the VM for your primary MySQL node with more resources, o echo "SET GLOBAL super_read_only = 1;" | sudo mysql ``` -1. Wait until Global Transaction Identifiers (GTIDs) set on the primary and secondary MySQL nodes are identical. To check the GTIDs, run the following command from any of the instance's nodes. +1. Wait until Global Transaction Identifiers (GTIDs) set on the primary and replica MySQL nodes are identical. To check the GTIDs, run the following command from any of the instance's nodes. ```shell copy ghe-cluster-each -r mysql -- 'echo "SELECT @@global.gtid_executed;" | sudo mysql' ``` -1. After the GTIDs on the primary and secondary MySQL nodes match, update the cluster configuration by opening the cluster configuration file at `/data/user/common/cluster.conf` in a text editor. +1. After the GTIDs on the primary and replica MySQL nodes match, update the cluster configuration by opening the cluster configuration file at `/data/user/common/cluster.conf` in a text editor. * Create a backup of the `cluster.conf` file before you edit the file. * In the top-level `[cluster]` section, remove the hostname for the node you replaced from the `mysql-master` key-value pair, then assign the new node instead. If the new node is also a primary Redis node, adjust the `redis-master` key-value pair. @@ -230,6 +230,6 @@ If you want to provide the VM for your primary MySQL node with more resources, o primary-datacenter = primary ... -{% data reusables.enterprise_clustering.replacing-a-cluster-node-validate-config %} +1. From the administrative shell of the node where you modified `cluster.conf`, run `ghe-cluster-config-apply`. This will reconfigure the cluster so that the newly added node becomes the primary MySQL node and the original primary MySQL node becomes a replica MySQL node. 1. Check the status of MySQL replication from any node in the cluster by running `ghe-cluster-status -v`. 1. If MySQL replication is finished, from any node in the cluster, disable maintenance mode. For more information, see "[AUTOTITLE](/admin/administering-your-instance/configuring-maintenance-mode/enabling-and-scheduling-maintenance-mode#enabling-or-disabling-maintenance-mode-for-all-nodes-in-a-cluster-via-the-cli)." From 1c35f6a468c0e8a18123b9d1f786ca5c17e755c1 Mon Sep 17 00:00:00 2001 From: hubwriter Date: Tue, 30 Jul 2024 14:25:42 +0000 Subject: [PATCH 02/17] Actions: Document automatically masked GitHub Actions secrets outside of those managed within secrets (#51629) --- .../using-secrets-in-github-actions.md | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/content/actions/security-guides/using-secrets-in-github-actions.md b/content/actions/security-guides/using-secrets-in-github-actions.md index 65b050ca68..a7dceb814a 100644 --- a/content/actions/security-guides/using-secrets-in-github-actions.md +++ b/content/actions/security-guides/using-secrets-in-github-actions.md @@ -447,4 +447,27 @@ You can use Base64 encoding to store small binary blobs as secrets. You can then ## Redacting secrets from workflow run logs -While {% data variables.product.prodname_dotcom %} automatically redacts secrets printed to workflow logs, runners can only delete secrets they have access to. This means a secret will only be redacted if it was used within a job. As a security measure, you can delete workflow run logs to prevent sensitive values being leaked. For more information, see "[AUTOTITLE](/actions/monitoring-and-troubleshooting-workflows/using-workflow-run-logs#deleting-logs)." +{% data variables.product.prodname_actions %} automatically redacts the contents of all {% data variables.product.prodname_dotcom %} secrets that are printed to workflow logs. + +{% data variables.product.prodname_actions %} also redacts information that is recognized as sensitive, but is not stored as a secret. Currently {% data variables.product.prodname_dotcom %} supports the following: + +* 32-byte and 64-byte Azure keys +* Azure AD client app passwords +* Azure Cache keys +* Azure Container Registry keys +* Azure Function host keys +* Azure Search keys +* Database connection strings +* HTTP Bearer token headers +* JWTs +* NPM author tokens +* NuGet API keys +* v1 GitHub installation tokens +* v2 GitHub installation tokens (`ghp`, `gho`, `ghu`, `ghs`, `ghr`) +* v2 GitHub PATs + +> [!NOTE] If you would like other types of sensitive information to be automatically redacted, please reach out to us in our [community discussions](https://github.com/orgs/community/discussions?discussions_q=is%3Aopen+label%3AActions). + +As a habit of best practice, you should mask all sensitive information that is not a {% data variables.product.prodname_dotcom %} secret by using `::add-mask::VALUE`. This causes the value to be treated as a secret and redacted from logs. For more information about masking data, see "[AUTOTITLE](/actions/using-workflows/workflow-commands-for-github-actions#masking-a-value-in-a-log)." + +Redacting of secrets is performed by your workflow runners. This means a secret will only be redacted if it was used within a job and is accessible by the runner. If an unredacted secret is sent to a workflow run log, you should delete the log and rotate the secret. For information on deleting logs, see "[AUTOTITLE](/actions/monitoring-and-troubleshooting-workflows/using-workflow-run-logs#deleting-logs)." From f54f6ee0338e8041cd73f8a34254948da644ba65 Mon Sep 17 00:00:00 2001 From: Sophie <29382425+sophietheking@users.noreply.github.com> Date: Tue, 30 Jul 2024 17:56:08 +0200 Subject: [PATCH 03/17] Temporary PayPal authorization holds on metered products (#51838) --- .../about-billing-for-github-advanced-security.md | 6 ++++++ .../about-billing-for-github-copilot.md | 6 ++++++ data/reusables/billing/authorization-charge.md | 6 +----- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/content/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security.md b/content/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security.md index d2ca7d95d2..bde94e402d 100644 --- a/content/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security.md +++ b/content/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security.md @@ -21,6 +21,12 @@ shortTitle: Advanced Security billing ## About licenses for {% data variables.product.prodname_GH_advanced_security %} +{% ifversion billing-auth-and-capture %} + +{% data reusables.billing.authorization-charge %} + +{% endif %} + {% ifversion fpt %} {% data reusables.advanced-security.ghas-license-info-for-fpt %} diff --git a/content/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot.md b/content/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot.md index 19abb8e836..f51e32caf2 100644 --- a/content/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot.md +++ b/content/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot.md @@ -17,6 +17,12 @@ shortTitle: Billing for GitHub Copilot ## About billing for {% data variables.product.prodname_copilot_short %} +{% ifversion billing-auth-and-capture %} + +{% data reusables.billing.authorization-charge %} + +{% endif %} + You can set up a {% data variables.product.prodname_copilot %} subscription for your personal account, or for an organization or enterprise. * **For your personal account**, you can set up a subscription to {% data variables.product.prodname_copilot_for_individuals %}. diff --git a/data/reusables/billing/authorization-charge.md b/data/reusables/billing/authorization-charge.md index 257ab22308..eb3fd1d5a9 100644 --- a/data/reusables/billing/authorization-charge.md +++ b/data/reusables/billing/authorization-charge.md @@ -1,5 +1 @@ -{% note %} - -**Note:** {% data variables.product.company_short %} may apply a temporary authorization hold for the value of the usage-based costs in advance, which will appear as a pending charge in your account's payment method. - -{% endnote %} +>[!NOTE] {% data variables.product.company_short %} may apply a temporary authorization hold for the value of the usage-based costs in advance, which will appear as a pending charge in your account's payment method. From 1ff7f7bf2875531daaee736e5f677b3e0cd7cc68 Mon Sep 17 00:00:00 2001 From: Yanisa Haley Scherber Date: Tue, 30 Jul 2024 12:02:51 -0400 Subject: [PATCH 04/17] Indicate that you may not be prompted to re-authenticate (#33751) Co-authored-by: Ben Ahmady <32935794+subatoi@users.noreply.github.com> Co-authored-by: Alex Nguyen <150945400+nguyenalex836@users.noreply.github.com> --- .../adding-a-gpg-key-to-your-github-account.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account.md b/content/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account.md index e15ee81932..22ad160dff 100644 --- a/content/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account.md +++ b/content/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account.md @@ -44,7 +44,7 @@ When verifying a signature, {% data variables.product.product_name %} extracts t 1. In the "Title" field, type a name for your GPG key. 1. In the "Key" field, paste the GPG key you copied when you [generated your GPG key](/authentication/managing-commit-signature-verification/generating-a-new-gpg-key). 1. Click **Add GPG key**. -1. To confirm the action, authenticate to your {% data variables.product.prodname_dotcom %} account. +1. If prompted, authenticate to your {% data variables.product.prodname_dotcom %} account to confirm the action. {% ifversion upload-expired-or-revoked-gpg-key %} {% else %} From fb980a11aff126d386d34b2178c690288620d77c Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Tue, 30 Jul 2024 09:33:41 -0700 Subject: [PATCH 05/17] Update audit log event data (#51842) --- src/audit-logs/lib/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/audit-logs/lib/config.json b/src/audit-logs/lib/config.json index 56778992c5..046d4e5e9f 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": "2ff6ca1490c05079b409af85320cec5089dc388a" + "sha": "0d0a015e748451e1083bdce44ce19206c4cda4d3" } \ No newline at end of file From e6da72439f16195347306c7f86d1244bf6a97a9a Mon Sep 17 00:00:00 2001 From: Hector Alfaro Date: Tue, 30 Jul 2024 13:59:59 -0400 Subject: [PATCH 06/17] Update public-facing search docs: src/search/README.md (#51839) --- assets/images/contributing/search-results.png | Bin 0 -> 491027 bytes src/search/README.md | 99 ++++-------------- 2 files changed, 22 insertions(+), 77 deletions(-) create mode 100644 assets/images/contributing/search-results.png diff --git a/assets/images/contributing/search-results.png b/assets/images/contributing/search-results.png new file mode 100644 index 0000000000000000000000000000000000000000..df4c4f0c22796c77f7b3fb830df162be74ec6c7b GIT binary patch literal 491027 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
w&l7khWVG*vM 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

MN6~P?t|O$)G7%8FT>$H=Bc|M>DMdh+KFvQ(Lp; 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

!Y*Zvhj`F)v1Q-!IlC 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

KGe^7}Y$^rY%uO$FvMEGMjPl^QR>h;uM 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

  • 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%0DvVq3=>dOgAC1lZ4Hw4c- zly3naIaU;&zR4ZrXYg`0kQS;-oRXF5VI`7jB3Cb%c23%zDWoA&h#>@}i=Kr;7aOG#xwyVk(~9bxnj@p9+C`
      I~5Z4}=HYo52c`3%h- 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 zUeW&language=&filters=topics:&query=` +`https://docs.github.com/search?version=&language=&query=` - The VERSION can be any numbered supported GitHub Enterprise Server version (e.g., `3.12`), Enterprise Cloud (`ghec`), or the Free pro team plan (`dotcom`). - The LANGUAGE CODE can be one of: `zh`, `es`, `pt`, `ru`, `ja`, `fr`, `de`, `ko` -- TOPIC can be any topics in [the allowed list of topics](/data/allowed-topics.js). The values in the `topics` attribute are **not** case sensitive, so filtering on `GitHub actions` or `github actions` will return the same result. **Note:** Currently, the topics filter only works for the dotcom version in the English language. We plan to expand this search query to other languages and versions in the future. - Any search QUERY you'd like. -For example, to filter on the topic `ssh` and the query `passphrases`, you'd use this search query: - -https://docs.github.com/search?version=dotcom&language=en&filters=topics:ssh&query=passphrases - -To filter for the topics `oauth apps` and `github apps` and the query `install`, you'd use this search query: - -https://docs.github.com/search?version=dotcom&language=en&filters=topics:'oauth apps'+AND+topics:'github apps'&query=install - -### Using the topics search filter - -Using the attribute `topics` in your query will only return results that have the matching topic value. When the topic contains spaces, you must use quotes. Filters with spaces or combining filters requires special syntax. - ## Production deploys -A [GitHub Actions workflow](.github/workflows/sync-search-indices.yml) that runs every four hours syncs the search data. This process generates structured data for all pages on the site, compares that data to what's currently on search, then adds, updates, or removes indices based on the diff of the local and remote data, being careful not to create duplicate records and avoiding any unnecessary (and costly) indexing operations. +A [GitHub Actions workflow](/.github/workflows/sync-search-elasticsearch.yml) that runs every four hours syncs the search data. This process generates structured data for all pages on the site, compares that data to what's currently on search, then adds, updates, or removes indices based on the diff of the local and remote data, being careful not to create duplicate records and avoiding any unnecessary (and costly) indexing operations. -The Actions workflow progress can be viewed (by GitHub employees) in the [Actions tab](https://github.com/github/docs/actions?query=workflow%3Asearch) of the repo. +The workflow runs are only accessible to GitHub employees using internal resources. ## Manually triggering the search index update workflow @@ -47,76 +32,36 @@ You can manually run the workflow to generate the indexes after you push your ch ### Build and sync -To build all the indices (this takes about an hour): -``` -npm run sync-search -``` -To build indices for a specific language and/or version and sync them: -``` -VERSION= npm run sync-search -``` -You can set `VERSION` and `LANGUAGE` individually, too. - -Substitute a currently supported version for `` and a currently supported two-letter language code for ``. Languages and versions are lowercase. The options for version are currently `free-pro-team`, `github-ae`, and `enterprise-server`. - -## Label-triggered Actions workflow - -Docs team members can use an Actions workflow on GHES release PRs by applying a label in this format: -``` -sync-english-index-for- -``` -This label will run a workflow on every push that **builds and uploads ONLY** the English index for the specified version. This means: - -* The GHES content will be searchable at the same time the release PR is shipped, with no delay. -* The GHES content will be searchable on staging throughout content creation. -* No manual steps (unless you want to do a [dry run test](#build-without-sync-dry-run)). - -Why do we need this? For our daily shipping needs, it's tolerable that search updates aren't available for up to an hour after the content goes live. But GHES releases are more time-sensitive, and writers have a greater need to preview search data on staging. +The preferred way to build and sync the search indices is to do so via the [GitHub Actions workflow](/.github/workflows/sync-search-elasticsearch.yml). ## Files ### Actions workflow files -- [`.github/workflows/sync-search-indices.yml`](.github/workflows/sync-search-indices.yml) - Builds and syncs search indices on the `main` branch every four hours. Search indices are committed directly to the `main` branch on both the `github/docs-internal` and `github/docs` repositories. It can also be run manually. To run it manually, click "Run workflow" button in the Actions tab. -- [`.github/workflows/sync-single-english-index.yml`](.github/workflows/sync-single-english-index.yml) - This workflow is run when a label in the right format is applied to a PR. See "[Label-triggered Actions workflow](#label-triggered-actions-workflow)" for details. +- [`.github/workflows/sync-search-elasticsearch.yml`](/.github/workflows/sync-search-elasticsearch.yml) - Builds and syncs search indices on the `main` branch every four hours. Search indices are stored in an internal-only Elasticsearch instance. To run it manually, click "Run workflow" button in the Actions tab. -### Code files +### Notable code files and directories -- [components/lib/search.ts](components/lib/search.ts) - The browser-side code that enables search. -- [lib/search/client.js](lib/search/client.js) - A thin wrapper around the Node.js module for interacting with the search API. -- [lib/search/search-index.js](lib/search/search-index.js) - A class for generating structured search data from repository content and syncing it. This class has built-in validation to ensure that all records are valid before they're uploaded. This class also takes care of removing deprecated records, and compares existing remote records with the latest local records to avoid uploading records that haven't changed. -- [src/search/scripts/sync-search-indices.js](src/search/scripts/sync-search-indices.js) - The script used by the Actions workflow to update search indices. This can also be [run in the development environment](#development). -- [tests/content/search.js](tests/content/search.js) - Tests! - -## Indices - -There's a separate search index for each combination of product and language. Some examples: - -Index Name | Description ----------- | ----------- -`github-docs-dotcom-en` | GitHub.com English -`github-docs-dotcom-zh` | GitHub.com Chinese -`github-docs-dotcom-es` | GitHub.com Spanish -`github-docs-2.18-en` | GitHub Enterprise 2.18 English -`github-docs-2.18-zh` | GitHub Enterprise 2.18 Chinese -`github-docs-2.18-es` | GitHub Enterprise 2.18 Spanish -`github-docs-2.17-en` | GitHub Enterprise 2.17 English -`github-docs-2.17-zh` | GitHub Enterprise 2.17 Chinese -`github-docs-2.17-es` | GitHub Enterprise 2.17 Spanish +- [src/search/components/Search.tsx](/src/search/components/Search.tsx) - The browser-side code that enables the search. +- [src/search/components/SearchResults.tsx](/src/search/components/SearchResults.tsx) - The browser-side code that displays search results. +- [src/search/middleware/es-search.js](/src/search/middleware/es-search.js) - A wrapper around the Node.js Elasticsearch module for interacting with the search API. +- [src/search/scripts/](/src/search/scripts/) - Scripts used by Actions workflows or for manual operations. +- [src/search/tests](/src/search/tests) - Tests! ## Records -Each record represents a section of a page. Sections are derived by splitting up pages by their headings. Each record has a `title`, `intro` (if one exists in the frontmatter), `body` content (in text, not HTML), a `url`, and a unique `objectID` that is currently just the permalink of the article. Here's an example: +Each record represents a page. Each record has `breadcrumbs`, `title`, `headings`, `content` (the article content in text, not HTML), `intro` (if one exists in the frontmatter), and a unique `objectID` that is currently just the permalink of the article. Here's an example: -```javascript +```json { - objectID: '/en/actions/creating-actions/about-actions#about-actions', - url: 'https://docs.github.com/en/actions/creating-actions/about-actions#about-actions', - slug: 'about-actions', - breadcrumbs: 'GitHub Actions / Creating actions / About actions', - heading: 'About actions', - title: 'About actions', - content: "You can create actions by writing custom code that interacts with your repository in any way you'd like..." + "objectID":"/en/actions/creating-actions/about-custom-actions", + "breadcrumbs":"GitHub Actions / Creating actions", + "title":"About custom actions", + "headings":"About custom actions\nTypes of actions\n[...]", + "content":"Actions are individual tasks that you can combine to create jobs and customize your workflow. You can create your own actions, [...]", + "intro":"Actions are individual tasks that you can combine to create jobs and customize your workflow. You can create your own actions, or use and customize actions shared by the GitHub community.", + "toplevel":"GitHub Actions", + "popularity":0 } ``` From cdf8d0fc1843b67cd57e0aef34f84d645764237e Mon Sep 17 00:00:00 2001 From: Sam Browning <106113886+sabrowning1@users.noreply.github.com> Date: Tue, 30 Jul 2024 14:09:18 -0400 Subject: [PATCH 07/17] Add a separate article on configuring a proxy server/firewall for Copilot (#51748) Co-authored-by: Jess Hosman <1183847+jhosman@users.noreply.github.com> --- ...ing-network-settings-for-github-copilot.md | 2 ++ ...ur-proxy-server-or-firewall-for-copilot.md | 33 +++++++++++++++++++ .../index.md | 1 + ...g-up-github-copilot-for-your-enterprise.md | 4 +-- ...up-github-copilot-for-your-organization.md | 4 +-- .../setting-up-github-copilot-for-yourself.md | 4 +-- ...ng-firewall-settings-for-github-copilot.md | 27 +++------------ ...oting-network-errors-for-github-copilot.md | 2 ++ 8 files changed, 49 insertions(+), 28 deletions(-) create mode 100644 content/copilot/managing-copilot/managing-github-copilot-in-your-organization/configuring-your-proxy-server-or-firewall-for-copilot.md diff --git a/content/copilot/managing-copilot/configure-personal-settings/configuring-network-settings-for-github-copilot.md b/content/copilot/managing-copilot/configure-personal-settings/configuring-network-settings-for-github-copilot.md index 57ad007ab5..61823c60a0 100644 --- a/content/copilot/managing-copilot/configure-personal-settings/configuring-network-settings-for-github-copilot.md +++ b/content/copilot/managing-copilot/configure-personal-settings/configuring-network-settings-for-github-copilot.md @@ -23,6 +23,8 @@ By default, {% data variables.product.prodname_copilot %} connects to {% data va Some networks use an HTTP proxy server to intercept Internet traffic before sending it to its intended location. Companies often use an HTTP proxy to detect suspicious traffic or restrict the content entering their networks. If you're working on a corporate network, you may need to configure {% data variables.product.prodname_copilot_short %} to connect via an HTTP proxy. +> [!NOTE] The administrator of your proxy server or firewall also needs to configure network settings for {% data variables.product.prodname_copilot_short %} to work as expected. See "[AUTOTITLE](/copilot/managing-copilot/managing-github-copilot-in-your-organization/configuring-your-proxy-server-or-firewall-for-copilot)." + ## Configuring proxy settings for {% data variables.product.prodname_copilot %} {% data variables.product.prodname_copilot %} supports basic HTTP proxy setups. If you need to authenticate to a proxy, {% data variables.product.prodname_copilot %} supports basic authentication or authentication with Kerberos. If the proxy URL starts `https://`, the proxy is not currently supported. diff --git a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/configuring-your-proxy-server-or-firewall-for-copilot.md b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/configuring-your-proxy-server-or-firewall-for-copilot.md new file mode 100644 index 0000000000..8e7da918ae --- /dev/null +++ b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/configuring-your-proxy-server-or-firewall-for-copilot.md @@ -0,0 +1,33 @@ +--- +title: Configuring your proxy server or firewall for Copilot +intro: 'You should allow certain traffic through your firewall or proxy server for {% data variables.product.prodname_copilot_short %} to work as intended.' +permissions: 'Proxy server maintainers or firewall maintainers' +product: '{% data reusables.gated-features.copilot %}' +versions: + feature: copilot +topics: + - Copilot +shortTitle: Allow Copilot traffic +--- + +If your company employs security measures like a firewall or proxy server, you should add the following URLs, ports, and protocols to an allowlist to ensure {% data variables.product.prodname_copilot_short %} works as expected: + +| Domain and/or URL | Purpose | +| :------------------------------------- | :--------------------------------- | +| `https://github.com/login/*` | Authentication | +| `https://api.github.com/user` | User Management | +| `https://api.github.com/copilot_internal/*` | User Management | +| `https://copilot-telemetry.githubusercontent.com/telemetry` | Telemetry | +| `https://default.exp-tas.com/` | Telemetry | +| `https://copilot-proxy.githubusercontent.com/` | API service for {% data variables.product.prodname_copilot_short %} suggestions | +| `https://origin-tracker.githubusercontent.com` | API service for {% data variables.product.prodname_copilot_short %} suggestions | +| `https://*.githubcopilot.com` | API service for {% data variables.product.prodname_copilot_short %} suggestions | + +Depending on the security policies and editors your organization uses, you may need to allowlist additional domains and URLs. For more information on specific editors, see "[Further reading](#further-reading)." + +Every user of the proxy server or firewall also needs to configure their own environment to connect to {% data variables.product.prodname_copilot_short %}. See "[AUTOTITLE](/copilot/configuring-github-copilot/configuring-network-settings-for-github-copilot)." + +## Further reading + +* [Network Connections in {% data variables.product.prodname_vscode %}](https://code.visualstudio.com/docs/setup/network) in the {% data variables.product.prodname_vs %} documentation +* [Install and use {% data variables.product.prodname_vs %} and Azure Services behind a firewall or proxy server](https://learn.microsoft.com/en-us/visualstudio/install/install-and-use-visual-studio-behind-a-firewall-or-proxy-server) in the Microsoft documentation 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 122d905202..6a984804bd 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 @@ -12,6 +12,7 @@ topics: children: - /managing-the-copilot-subscription-for-your-organization - /setting-policies-for-copilot-in-your-organization + - /configuring-your-proxy-server-or-firewall-for-copilot - /managing-access-to-github-copilot-in-your-organization - /enhancing-copilot-for-your-organization --- diff --git a/content/copilot/setting-up-github-copilot/setting-up-github-copilot-for-your-enterprise.md b/content/copilot/setting-up-github-copilot/setting-up-github-copilot-for-your-enterprise.md index daf568e0b8..b3c24e4f45 100644 --- a/content/copilot/setting-up-github-copilot/setting-up-github-copilot-for-your-enterprise.md +++ b/content/copilot/setting-up-github-copilot/setting-up-github-copilot-for-your-enterprise.md @@ -24,9 +24,9 @@ Control which {% data variables.product.prodname_copilot_short %} features are a ## 3. Set up networking (if necessary) -If your enterprise users connect through an HTTP proxy server or firewall, ensure that [these URLs](/copilot/troubleshooting-github-copilot/troubleshooting-firewall-settings-for-github-copilot#urls-to-add-to-an-allowlist) are added to the allowlist for the proxy server or firewall. +If your enterprise users connect through an HTTP proxy server or firewall, ensure that key URLs are added to the allowlist for the proxy server or firewall. See "[AUTOTITLE](/copilot/managing-copilot/managing-github-copilot-in-your-organization/configuring-your-proxy-server-or-firewall-for-copilot)." -You may also need to install custom SSL certificates on your users' machines. See "[AUTOTITLE](/copilot/managing-copilot/configure-personal-settings/configuring-network-settings-for-github-copilot)." +You may also need to install custom SSL certificates on your users' machines. See "[AUTOTITLE](/copilot/managing-copilot/configure-personal-settings/configuring-network-settings-for-github-copilot#installing-custom-certificates)." ## 4. Grant access to organizations diff --git a/content/copilot/setting-up-github-copilot/setting-up-github-copilot-for-your-organization.md b/content/copilot/setting-up-github-copilot/setting-up-github-copilot-for-your-organization.md index 110cdd581b..7134fa17ad 100644 --- a/content/copilot/setting-up-github-copilot/setting-up-github-copilot-for-your-organization.md +++ b/content/copilot/setting-up-github-copilot/setting-up-github-copilot-for-your-organization.md @@ -27,9 +27,9 @@ Control which {% data variables.product.prodname_copilot_short %} features are a ## 3. Set up networking (if necessary) -If your organization members connect through an HTTP proxy server or firewall, ensure that [these URLs](/copilot/troubleshooting-github-copilot/troubleshooting-firewall-settings-for-github-copilot#urls-to-add-to-an-allowlist) are added to the allowlist for the proxy server or firewall. +If your organization members connect through an HTTP proxy server or firewall, ensure that key URLs are added to the allowlist for the proxy server or firewall. See "[AUTOTITLE](/copilot/managing-copilot/managing-github-copilot-in-your-organization/configuring-your-proxy-server-or-firewall-for-copilot)." -You may also need to install custom SSL certificates on your members' machines. See "[AUTOTITLE](/copilot/managing-copilot/configure-personal-settings/configuring-network-settings-for-github-copilot)." +You may also need to install custom SSL certificates on your members' machines. See "[AUTOTITLE](/copilot/managing-copilot/configure-personal-settings/configuring-network-settings-for-github-copilot#-installing-custom-certificates)." ## 4. Grant access to members diff --git a/content/copilot/setting-up-github-copilot/setting-up-github-copilot-for-yourself.md b/content/copilot/setting-up-github-copilot/setting-up-github-copilot-for-yourself.md index 1e098ac053..12aebdf67e 100644 --- a/content/copilot/setting-up-github-copilot/setting-up-github-copilot-for-yourself.md +++ b/content/copilot/setting-up-github-copilot/setting-up-github-copilot-for-yourself.md @@ -28,9 +28,9 @@ If you want to use {% data variables.product.prodname_copilot_short %} in the co ## 4. Set up networking (if necessary) -If you connect through an HTTP proxy server or firewall, ensure that [these URLs](/copilot/troubleshooting-github-copilot/troubleshooting-firewall-settings-for-github-copilot#urls-to-add-to-an-allowlist) are added to the allowlist for the proxy server or firewall. +If you connect through an HTTP proxy server or firewall, ensure that key URLs are added to the allowlist for the proxy server or firewall. See "[AUTOTITLE](/copilot/managing-copilot/managing-github-copilot-in-your-organization/configuring-your-proxy-server-or-firewall-for-copilot)." -You may also need to install a custom SSL certificate on your machine. See "[AUTOTITLE](/copilot/managing-copilot/configure-personal-settings/configuring-network-settings-for-github-copilot)." +You may also need to install a custom SSL certificate on your machine. See "[AUTOTITLE](/copilot/managing-copilot/configure-personal-settings/configuring-network-settings-for-github-copilot#installing-custom-certificates)." ## 5. Configure settings (optional) diff --git a/content/copilot/troubleshooting-github-copilot/troubleshooting-firewall-settings-for-github-copilot.md b/content/copilot/troubleshooting-github-copilot/troubleshooting-firewall-settings-for-github-copilot.md index d46e0fadef..57eaacd6c5 100644 --- a/content/copilot/troubleshooting-github-copilot/troubleshooting-firewall-settings-for-github-copilot.md +++ b/content/copilot/troubleshooting-github-copilot/troubleshooting-firewall-settings-for-github-copilot.md @@ -8,30 +8,13 @@ topics: - Networking versions: feature: copilot -shortTitle: Firewall settings +shortTitle: Connectivity security settings --- -If you or your organization employs security measures like a firewall or proxy server, it may be beneficial to include certain domain URLs in an "allowlist" and open specific ports and protocols. Doing so will enhance your installation and usage of {% data variables.product.prodname_copilot_short %} for an optimal experience. +## About the problem -## URLs to add to an allowlist +If you or your company uses a firewall, {% data variables.product.prodname_copilot_short %} may not function as expected. {% data variables.product.prodname_copilot_short %} interacts with a remote machine learning model and checks for updates, and a firewall may block important traffic and degrade the user experience. -Due to {% data variables.product.prodname_copilot_short %}'s interaction with a remote machine learning model and its update-checking functionality, it is recommended to include the following domain URLs in the allowlist, marking them as trusted either in the user interface or within your deployment scripts. +## Solving the problem -| Domain and/or URL | Purpose | -| :------------------------------------- | :--------------------------------- | -| `https://github.com/login/*` | Authentication | -| `https://api.github.com/user` | User Management | -| `https://api.github.com/copilot_internal/*` | User Management | -| `https://copilot-telemetry.githubusercontent.com/telemetry` | Telemetry | -| `https://default.exp-tas.com/` | Telemetry | -| `https://copilot-proxy.githubusercontent.com/` | API service for {% data variables.product.prodname_copilot_short %} suggestions | -| `https://origin-tracker.githubusercontent.com` | API service for {% data variables.product.prodname_copilot_short %} suggestions | -| `https://*.githubcopilot.com` | API service for {% data variables.product.prodname_copilot_short %} suggestions | - -Additional domains and URLs may require allowlisting, depending on your organization's security policies and the editors in use. For more information about specific editors, see "[Further reading](#further-reading)." - -## Further reading - -* [Network Connections in {% data variables.product.prodname_vscode %}](https://code.visualstudio.com/docs/setup/network) -* [Install and use Visual Studio and Azure Services behind a firewall or proxy server](https://learn.microsoft.com/en-us/visualstudio/install/install-and-use-visual-studio-behind-a-firewall-or-proxy-server) -* "[AUTOTITLE](/get-started/using-github/troubleshooting-connectivity-problems)" +For an optimal {% data variables.product.prodname_copilot_short %} experience, you should create an "allowlist" that lets certain URLs, ports, and protocols through your firewall. See "[AUTOTITLE](/copilot/managing-copilot/managing-github-copilot-in-your-organization/configuring-your-proxy-server-or-firewall-for-copilot)." diff --git a/content/copilot/troubleshooting-github-copilot/troubleshooting-network-errors-for-github-copilot.md b/content/copilot/troubleshooting-github-copilot/troubleshooting-network-errors-for-github-copilot.md index f0affb60b1..06f75212a5 100644 --- a/content/copilot/troubleshooting-github-copilot/troubleshooting-network-errors-for-github-copilot.md +++ b/content/copilot/troubleshooting-github-copilot/troubleshooting-network-errors-for-github-copilot.md @@ -47,6 +47,8 @@ If there is a problem with your proxy setup, you may see the following error: `{ If you know you are connecting via a proxy, make sure the proxy is configured correctly in your environment. For more information, see "[AUTOTITLE](/copilot/configuring-github-copilot/configuring-network-settings-for-github-copilot#configuring-proxy-settings-for-github-copilot)." +> [!NOTE] If you are an employee of a company with a proxy server, your company must also configure proxy settings for {% data variables.product.prodname_copilot_short %} at the company level. See "[AUTOTITLE](/copilot/managing-copilot/managing-github-copilot-in-your-organization/configuring-your-proxy-server-or-firewall-for-copilot)." + {% data variables.product.prodname_copilot %} uses custom code to connect to proxies. This means a proxy setup supported by your editor is not necessarily supported by {% data variables.product.prodname_copilot %}. Some common causes for errors related to proxies are: * If your proxy's URL starts `https://`, it is not currently supported by {% data variables.product.prodname_copilot %}. From 3b16d72ea90a4c037fa98f1b491fcd265502fab9 Mon Sep 17 00:00:00 2001 From: Evan Bonsignori Date: Tue, 30 Jul 2024 11:47:05 -0700 Subject: [PATCH 08/17] add reusables helper CLI (#50800) Co-authored-by: Peter Bengtsson Co-authored-by: Peter Bengtsson --- package.json | 1 + src/content-render/scripts/reusables-cli.ts | 71 +++++++ .../scripts/reusables-cli/README.md | 132 ++++++++++++ .../reusables-cli/find/potential-uses.ts | 99 +++++++++ .../scripts/reusables-cli/find/unused.ts | 54 +++++ .../scripts/reusables-cli/find/used.ts | 74 +++++++ .../scripts/reusables-cli/ignore-reusables.ts | 5 + .../scripts/reusables-cli/shared.ts | 196 ++++++++++++++++++ 8 files changed, 632 insertions(+) create mode 100644 src/content-render/scripts/reusables-cli.ts create mode 100644 src/content-render/scripts/reusables-cli/README.md create mode 100644 src/content-render/scripts/reusables-cli/find/potential-uses.ts create mode 100644 src/content-render/scripts/reusables-cli/find/unused.ts create mode 100644 src/content-render/scripts/reusables-cli/find/used.ts create mode 100644 src/content-render/scripts/reusables-cli/ignore-reusables.ts create mode 100644 src/content-render/scripts/reusables-cli/shared.ts diff --git a/package.json b/package.json index ae780e584e..565ddccd33 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "prettier-check": "prettier -c \"**/*.{ts,tsx,js,mjs,scss,yml,yaml}\"", "prevent-pushes-to-main": "node src/workflows/prevent-pushes-to-main.js", "release-banner": "node src/ghes-releases/scripts/release-banner.js", + "reusables": "tsx src/content-render/scripts/reusables-cli.ts", "remove-version-markup": "node src/ghes-releases/scripts/remove-version-markup.js", "rendered-content-link-checker": "tsx src/links/scripts/rendered-content-link-checker.ts", "rendered-content-link-checker-cli": "tsx src/links/scripts/rendered-content-link-checker-cli.ts", diff --git a/src/content-render/scripts/reusables-cli.ts b/src/content-render/scripts/reusables-cli.ts new file mode 100644 index 0000000000..0d5990b953 --- /dev/null +++ b/src/content-render/scripts/reusables-cli.ts @@ -0,0 +1,71 @@ +// Usage: npm run reusables -- --help +// Usage: npm run reusables -- find used accounts/create-account.md +// Usage: npm run reusables -- find unused accounts/create-account.md +// Usage: npm run reusables -- find any-unused +// Usage: npm run reusables -- find top-used + +import { Command } from 'commander' +import { findTopUsed, findUsed } from './reusables-cli/find/used' +import { findPotentialUses } from './reusables-cli/find/potential-uses' +import { findUnused } from './reusables-cli/find/unused' + +const defaultSimilarityThreshold = 10000 +const defaultTopUsedCount = 10 +const absolutePathDescription = 'Show absolute paths in output instead of relative path to repo' + +const program = new Command() + +program + .name('reusables-helper-cli') + .description('Tools to help with reusable Docs content snippets') + +const findCommand = program.command('find') + +findCommand + .command('used') + .description('Find all content files that use a specific reusable.') + .argument( + '', + 'Path to the reusable file relative to content/data/reusables, e.g. "accounts/create-account.md".', + ) + .option('-a --absolute', absolutePathDescription, false) + .action(findUsed) + +findCommand + .command('top-used') + .description('Find the top x most used reusables.') + .argument( + '[number-of-most-used-to-find]', + 'Number of most used reusables to find.', + defaultTopUsedCount, + ) + .option('-a --absolute', absolutePathDescription, false) + .action(findTopUsed) + +findCommand + .command('unused') + .description( + 'Find all reusables that are not used in any content files. WARNING: This command may take a long time to run.', + ) + .option('-a --absolute', absolutePathDescription, false) + .action(findUnused) + +findCommand + .command('potential-uses') + .option( + '-s, --similar', + 'Find files where contents loosely matches a reusable instead of an exact match.', + ) + .option( + '-t, --threshold ', + 'Similarity threshold for similar reusables. e.g. 10000. This requires the --similar flag and some experimentation to find a useful value.', + parseFloat, + defaultSimilarityThreshold, + ) + .option('-a --absolute', absolutePathDescription, false) + .description( + 'Find all content files that could use any reusables, but do not. WARNING: This command may take a long time to run.', + ) + .action(findPotentialUses) + +program.parse() diff --git a/src/content-render/scripts/reusables-cli/README.md b/src/content-render/scripts/reusables-cli/README.md new file mode 100644 index 0000000000..9e492e1ab8 --- /dev/null +++ b/src/content-render/scripts/reusables-cli/README.md @@ -0,0 +1,132 @@ +# Reusables CLI + +Helpful CLI tool for making it easier to work with `data/reusables`. + +Helps find where reusables are already used, and where they could be used. + +## Usage + +`npm run reusables -- --help` to see commands + +## Commands: + +`npm run reusables --`: + +- [find used ](#command-npm-run-reusables-cli----find-used-reusable-path) +- [find top-used [number-of-most-used-to-find]](#command-npm-run-reusables-cli----find-top-used-number-of-most-used-to-find) +- [find unused](#command-npm-run-reusables-cli----find-unused) +- [find potential-uses](#command-npm-run-reusables-cli----find-potential-uses) + + +### Command: `npm run reusables -- find used ` + +Find where a specific reusable is used + +#### Example + +`npm run reusables -- find used copilot/signup-procedure.md` + +``` +Searching for content files that use data/reusables/copilot/signup-procedure.md... + +Found 2 files that use data/reusables/copilot/signup-procedure.md. + +In content/billing/managing-billing-for-github-copilot/managing-your-github-copilot-individual-subscription.md on: + Line 35 + +In content/copilot/quickstart.md on: + Line 29 +``` + +### Command: `npm run reusables -- find top-used [number-of-most-used-to-find]` + +Find top X (default 10) most used reusables and the number of times they are used. + +#### Example + +`npm run reusables -- find top-used 5` + +``` +Searching for the top 5 most used reusables... +0/3225 reusables checked... +100/3225 reusables checked... +(etc, etc) +3225/3225 reusables checked... + +Top 5 most used reusables: +#1. 318 uses of data/reusables/repositories/navigate-to-repo.md +#2. 286 uses of data/reusables/profile/access_org.md +#3. 212 uses of data/reusables/enterprise-accounts/access-enterprise.md +#4. 193 uses of data/reusables/profile/org_settings.md +#5. 171 uses of data/reusables/actions/action-checkout.md +``` + +### Command: `npm run reusables -- find unused` + +Find which reusables aren't used in any content files. + +This will take ~10+ minutes to run locally. You will be updated at each 5% interval. + +#### Example + +`npm run reusables -- find unused` + +``` +Searching 6468 files and 3225 reusables... +Progress: 5% done +Progress: 10% done +Progress: 15% done + +... + +Found 111 unused reusables: +data/reusables/actions/action-labeler.md +data/reusables/actions/actions-audit-events-for-enterprise.md +data/reusables/actions/actions-audit-events-workflow.md +data/reusables/actions/cache-no-org-policy.md +data/reusables/actions/configure-runner-group-access.md +... +``` + +### Command: `npm run reusables -- find potential-uses` + +Find which files that reusables might be used in. + +The command does this by searching every `content/` & `data/` file for strings that match every reusable that isn't ignored in `src/content-render/scripts/reusables-cli/ignore-reusables.ts`. + +#### Example + +`npm run reusables -- find potential-uses` + +``` +Searching 6468 files for potential reusable use... +0/3225 reusables checked... +100/3225 reusables checked... +(etc, etc) +3223/3225 reusables checked... + +Found 13 files that could use reusables. + +Reusable data/reusables/actions/action-labeler.md can be used +In content/actions/using-workflows/reusing-workflows.md on: + Line 146 + Line 188 + +(cont.) +``` + +#### Ignoring reusables + +Some reusables might not make sense to "reuse" everywhere they could be reused. For instance, at the time of writing there is a reusable that is just the number "30" which shows up in certain files, but doesn't make sense to be replaced with a reusable. + +In these cases you can skip these reusables from being checked by the `find potential-uses` command by adding their paths to the array in [src/content-render/scripts/reusables-cli/ignore-reusables.ts](./ignore-unused-reusables.ts) + +#### Similarity search + +This may or may not be a useful search. It does a looser search to find places where the reusable _may_ be usable. You can include this type of search with the `-s` flag. You can alter the "threshold" used by the scoring algorithm to show more (higher number) or less (lower number) potential results with the `-t` flag. + +The threshold is a number that finds how similar the words in the reusable are to the words in a given article. + +A good default threshold number is `15000`. You can experiment with a higher/lower number if you aren't getting good results. + +e.g. `npm run reusables -- find potential-uses -s -t 15000` diff --git a/src/content-render/scripts/reusables-cli/find/potential-uses.ts b/src/content-render/scripts/reusables-cli/find/potential-uses.ts new file mode 100644 index 0000000000..cb423a4750 --- /dev/null +++ b/src/content-render/scripts/reusables-cli/find/potential-uses.ts @@ -0,0 +1,99 @@ +import fs from 'fs' +import { + FilesWithLineNumbers, + FilesWithSimilarity, + findIndicesOfSubstringInString, + findSimilarSubStringInString, + getAllContentFilePaths, + getAllReusablesFilePaths, + getRelativeReusablesPath, + printFindsWithLineNumbers, +} from '../shared' +import { reusablesToIgnore } from '../ignore-reusables' + +export function findPotentialUses({ + similar, + threshold, + absolute, +}: { + similar?: boolean + threshold: number + absolute: boolean +}) { + const reusableFiles = getAllReusablesFilePaths() + const allFilePaths = getAllContentFilePaths() + + const filesThatCouldUseReusable: FilesWithLineNumbers = [] + const filesThatCouldUseReusableSimilar: FilesWithSimilarity = [] + + // Read all content & data files into memory + const allFileContents = allFilePaths.map((filePath) => { + return { + filePath, + fileContents: fs.readFileSync(filePath, 'utf-8'), + } + }) + + console.log(`Searching ${allFileContents.length} files for potential reusable use...`) + if (similar) { + console.log('Using similarity search, this may take a while...') + } + + let reusableCount = 0 + let reusableContents + for (const reusableFilePath of reusableFiles) { + reusableContents = fs.readFileSync(reusableFilePath, 'utf-8') + + const reusableRelativeFilePath = getRelativeReusablesPath(reusableFilePath) + if (!reusableContents.trim()) { + if (!absolute) { + console.log(`Skipping empty reusable file: ${reusableRelativeFilePath}`) + } else { + console.log(`Skipping empty reusable file: ${reusableFilePath}`) + } + continue + } + + if (reusablesToIgnore.includes(reusableRelativeFilePath)) { + continue + } + + if (reusableCount % 100 === 0) { + console.log(`${reusableCount}/${reusableFiles.length} reusables checked...`) + } + reusableCount += 1 + + for (const { filePath, fileContents } of allFileContents) { + // Skip the reusable file itself + if (filePath === reusableFilePath) continue + + const indices = findIndicesOfSubstringInString(reusableContents.trim(), fileContents) + if (indices.length > 0) { + // Find line numbers of each index in fileContents + const lineNumbers = indices.map((index) => fileContents.slice(0, index).split('\n').length) + + filesThatCouldUseReusable.push({ + filePath, + lineNumbers, + reusableFile: reusableFilePath, + }) + } + + if (similar) { + const similarityScore = findSimilarSubStringInString(reusableContents.trim(), fileContents) + if (similarityScore > threshold) { + filesThatCouldUseReusableSimilar.push({ + filePath, + similarityScore, + reusableFile: reusableFilePath, + }) + } + } + } + } + + console.log(`${reusableCount}/${reusableFiles.length} reusables checked...`) + + console.log(`\nFound ${filesThatCouldUseReusable.length} files that could use reusables.`) + printFindsWithLineNumbers(absolute, filesThatCouldUseReusable) +} diff --git a/src/content-render/scripts/reusables-cli/find/unused.ts b/src/content-render/scripts/reusables-cli/find/unused.ts new file mode 100644 index 0000000000..7d2dc342f5 --- /dev/null +++ b/src/content-render/scripts/reusables-cli/find/unused.ts @@ -0,0 +1,54 @@ +import fs from 'fs' +import path from 'path' +import { getLiquidTokens } from '@/content-linter/lib/helpers/liquid-utils.js' +import { + getAllContentFilePaths, + getAllReusablesFilePaths, + getRelativeReusablesPath, + resolveReusablePath, +} from '../shared' + +export function findUnused({ absolute }: { absolute: boolean }) { + const reusableFilePaths = getAllReusablesFilePaths() + const allFilePaths = getAllContentFilePaths() + + const usedReusables = new Set() + const totalFiles = allFilePaths.length + let lastLoggedPercent = 0 + + console.log(`Searching ${totalFiles} files and ${reusableFilePaths.length} reusables...`) + + for (let i = 0; i < totalFiles; i++) { + const filePath = allFilePaths[i] + const fileContents = fs.readFileSync(filePath, 'utf-8') + const liquidTokens = getLiquidTokens(fileContents) + for (const token of liquidTokens) { + const { args, name } = token + if (name === 'data' && args.startsWith('reusables.')) { + const reusableName = path.join('data', ...args.split('.')) + '.md' + // Special cases where we don't want them to count as reusables. It's an example in a how-to doc + if (reusableName.includes('foo/bar.md') || reusableName.includes('your-reusable-name.md')) { + continue + } + const reusablePath = resolveReusablePath(reusableName) + usedReusables.add(reusablePath) + } + } + + const percentDone = Math.floor(((i + 1) / totalFiles) * 100) + if (percentDone >= lastLoggedPercent + 5) { + console.log(`Progress: ${percentDone}% done`) + lastLoggedPercent = percentDone + } + } + + const unusedReusables = reusableFilePaths.filter((filePath) => !usedReusables.has(filePath)) + + console.log(`\nFound ${unusedReusables.length} unused reusables:`) + for (const reusableFilePath of unusedReusables) { + const printReusablePath = absolute + ? reusableFilePath + : getRelativeReusablesPath(reusableFilePath) + console.log(printReusablePath) + } +} diff --git a/src/content-render/scripts/reusables-cli/find/used.ts b/src/content-render/scripts/reusables-cli/find/used.ts new file mode 100644 index 0000000000..9669eb0bc5 --- /dev/null +++ b/src/content-render/scripts/reusables-cli/find/used.ts @@ -0,0 +1,74 @@ +import fs from 'fs' +import path from 'path' +import { getLiquidTokens } from '@/content-linter/lib/helpers/liquid-utils.js' +import { + FilesWithLineNumbers, + getAllContentFilePaths, + getIndicesOfLiquidVariable, + getRelativeReusablesPath, + getReusableLiquidString, + printFindsWithLineNumbers, + resolveReusablePath, +} from '../shared' + +export function findUsed(reusablePath: string, { absolute }: { absolute: boolean }) { + const reusableFilePath = resolveReusablePath(reusablePath) + const reusableLiquidVar = getReusableLiquidString(reusableFilePath) + + const printReusablePath = absolute ? reusableFilePath : getRelativeReusablesPath(reusableFilePath) + + console.log(`Searching for content files that use ${printReusablePath}...`) + + const allFilePaths = getAllContentFilePaths() + + const filesWithReusables: FilesWithLineNumbers = [] + + for (const filePath of allFilePaths) { + // Skip the reusable file itself + if (filePath === reusableFilePath) continue + + const fileContents = fs.readFileSync(filePath, 'utf-8') + + const indices = getIndicesOfLiquidVariable(reusableLiquidVar, fileContents) + if (indices.length > 0) { + // Find line numbers of each index in fileContents + const lineNumbers = indices.map((index) => fileContents.slice(0, index).split('\n').length) + + filesWithReusables.push({ + filePath, + lineNumbers, + }) + } + } + + console.log(`\nFound ${filesWithReusables.length} files that use ${printReusablePath}.`) + printFindsWithLineNumbers(absolute, filesWithReusables) +} + +export function findTopUsed(numberOfMostUsedToFind: number, { absolute }: { absolute: boolean }) { + const allFilePaths = getAllContentFilePaths() + + const reusableCounts = new Map() + for (const filePath of allFilePaths) { + const fileContents = fs.readFileSync(filePath, 'utf-8') + const liquidTokens = getLiquidTokens(fileContents) + for (const token of liquidTokens) { + const { args, name } = token + if (name === 'data' && args.startsWith('reusables.')) { + reusableCounts.set(args, (reusableCounts.get(args) || 0) + 1) + } + } + } + + const sortedCounts = Array.from(reusableCounts.entries()).sort((a, b) => b[1] - a[1]) + + console.log(`\nTop ${numberOfMostUsedToFind} most used reusables:`) + let i = 0 + for (const [reusable, count] of sortedCounts.slice(0, numberOfMostUsedToFind)) { + let printReusablePath = path.join('data', ...reusable.split('.')) + '.md' + if (absolute) { + printReusablePath = path.resolve(printReusablePath) + } + console.log(`#${`${++i}.`.padEnd(3)} ${count} uses of ${printReusablePath}`) + } +} diff --git a/src/content-render/scripts/reusables-cli/ignore-reusables.ts b/src/content-render/scripts/reusables-cli/ignore-reusables.ts new file mode 100644 index 0000000000..9c9979f80f --- /dev/null +++ b/src/content-render/scripts/reusables-cli/ignore-reusables.ts @@ -0,0 +1,5 @@ +// List of reusables to ignore when checking for potential uses of reusables +// Make sure paths are relative to the root of the repo +export const reusablesToIgnore = [ + 'data/reusables/copilot/trial-period.md', // Just a number, so it pops up in unrelated files +] diff --git a/src/content-render/scripts/reusables-cli/shared.ts b/src/content-render/scripts/reusables-cli/shared.ts new file mode 100644 index 0000000000..e42dc25de6 --- /dev/null +++ b/src/content-render/scripts/reusables-cli/shared.ts @@ -0,0 +1,196 @@ +import walk from 'walk-sync' +import path from 'path' +import { TokenizationError } from 'liquidjs' +import { getLiquidTokens } from '@/content-linter/lib/helpers/liquid-utils' + +const __dirname = path.dirname(new URL(import.meta.url).pathname) + +const repoRoot = path.resolve(__dirname, '../../../../') +const contentDirectory = path.resolve(__dirname, repoRoot, 'content/') +const dataDirectory = path.resolve(__dirname, repoRoot, 'data/') + +const reusablesDirectory = path.resolve(dataDirectory, 'reusables/') + +export type FilesWithLineNumbers = { + filePath: string + lineNumbers: number[] + reusableFile?: string +}[] +export type FilesWithSimilarity = { + filePath: string + similarityScore: number + reusableFile?: string +}[] + +export function filterFiles(files: string[]) { + return files.filter( + (filePath) => + filePath.endsWith('.md') || (filePath.endsWith('.yml') && !filePath.endsWith('README.md')), + ) +} + +export function getAllContentFilePaths() { + const allContentFiles = filterFiles( + walk(contentDirectory, { + includeBasePath: true, + directories: false, + }), + ) + + const allDataFiles = filterFiles( + walk(dataDirectory, { + includeBasePath: true, + directories: false, + }), + ) + + return [...allContentFiles, ...allDataFiles] +} + +// Get the string that represents the reusable in the content files +export function getReusableLiquidString(reusablePath: string): string { + const relativePath = path.relative(reusablesDirectory, reusablePath) + return `reusables.${relativePath.slice(0, -3).split('/').join('.')}` +} + +export function getIndicesOfLiquidVariable(liquidVariable: string, fileContents: string): number[] { + const indices: number[] = [] + try { + for (const token of getLiquidTokens(fileContents)) { + if (token.name === 'data' && token.args.trim() === liquidVariable) { + indices.push(token.begin) + } + } + } catch (err) { + if (err instanceof TokenizationError) return [] + throw err + } + + return indices +} + +// Find the path to a reusable file. +export function resolveReusablePath(reusablePath: string): string { + // Try .md if extension is not provided + if (!reusablePath.endsWith('.md') && !reusablePath.endsWith('.yml')) { + reusablePath += '.md' + } + + // Allow user to just pass the name of the file. If it's not ambiguous, we'll find it. + const allReusableFiles = getAllReusablesFilePaths() + const foundPaths = [] + for (const possiblePath of allReusableFiles) { + if (possiblePath.includes(reusablePath)) { + foundPaths.push(possiblePath) + } + } + + if (foundPaths.length === 0) { + console.error(`Reusables file not found: ${reusablePath}`) + process.exit(1) + } else if (foundPaths.length === 1) { + return foundPaths[0] + } else { + console.error(`Multiple reusables found by name: ${reusablePath}`) + for (let i = 0; i < foundPaths.length; i++) { + console.error(` ${i + 1}: ${getRelativeReusablesPath(foundPaths[i])}`) + } + console.error('Please specify which reusable by passing the full path') + process.exit(1) + } +} + +export function getAllReusablesFilePaths(): string[] { + return filterFiles( + walk(reusablesDirectory, { + includeBasePath: true, + directories: false, + }), + ) +} + +export function findIndicesOfSubstringInString(substr: string, str: string): number[] { + str = str.toLowerCase() + + const result: number[] = [] + + let idx = str.indexOf(substr) + + while (idx !== -1) { + result.push(idx) + idx = str.indexOf(substr, idx + 1) + } + return result +} + +export function findSimilarSubStringInString(substr: string, str: string) { + // Take every sentence in the substr, lower case it, and compare it to every sentence in the str to get a similarity score + const substrSentences = substr.split('.').map((sentence) => sentence.toLowerCase()) + const corpus = str.split('.').map((sentence) => sentence.toLowerCase()) + + let similarityScore = 0 + + // Find how similar every two strings are based on the words they share + for (const substrSentence of substrSentences) { + for (const sentence of corpus) { + const substrTokens = substrSentence.split(' ') + const tokens = sentence.split(' ') + + const sharedWords = substrTokens.filter((token) => tokens.includes(token)) + + similarityScore += sharedWords.length / (substrTokens.length + tokens.length) + } + } + + // Normalize the similarity score + return Math.round((similarityScore / substrSentences.length) * corpus.length) +} + +export function printFindsWithLineNumbers( + absolute: boolean, + reusableFindings: { filePath: string; lineNumbers: number[]; reusableFile?: string }[], + similarityFindings?: { filePath: string; similarityScore: number; reusableFile?: string }[], +) { + for (const { filePath, lineNumbers, reusableFile } of reusableFindings) { + let printReusablePath = reusableFile + let printFilePath = filePath + if (!absolute) { + printReusablePath = getRelativeReusablesPath(printReusablePath as string) + printFilePath = path.relative(repoRoot, printFilePath) + } + if (reusableFile) { + console.log(`\nReusable ${printReusablePath} can be used`) + console.log(`In ${printFilePath} on:`) + } else { + console.log(`\nIn ${printFilePath} on:`) + } + for (const lineNumber of lineNumbers) { + console.log(` Line ${lineNumber}`) + } + } + + if (similarityFindings?.length) { + console.log('\nFindings using "similar" algorithm:') + for (const { filePath, similarityScore, reusableFile } of similarityFindings) { + let printReusablePath = reusableFile + let printFilePath = filePath + if (!absolute) { + printReusablePath = getRelativeReusablesPath(printReusablePath as string) + printFilePath = path.relative(repoRoot, printFilePath) + } + if (reusableFile) { + console.log(`\nReusables ${printReusablePath} can be used`) + console.log(`In ${printFilePath} with similarity score: ${similarityScore}`) + } else { + console.log(`\nIn ${printFilePath} with similarity score: ${similarityScore}`) + } + } + } +} + +export function getRelativeReusablesPath(reusablePath: string) { + if (!reusablePath) { + return '' + } + return path.relative(repoRoot, reusablePath) +} From 6e5737581683c499ae9cb667b62cd005ed314e3f Mon Sep 17 00:00:00 2001 From: Ashley Date: Tue, 30 Jul 2024 15:12:53 -0400 Subject: [PATCH 09/17] changed short-version.js to ts and updated references (#51805) Co-authored-by: Evan Bonsignori --- src/content-linter/tests/category-pages.ts | 2 +- src/content-render/scripts/all-documents/lib.ts | 2 +- src/links/lib/validate-docs-urls.ts | 2 +- .../scripts/rendered-content-link-checker.ts | 2 +- src/pageinfo/middleware.ts | 2 +- src/types.ts | 8 +++----- .../{short-versions.js => short-versions.ts} | 16 +++++++++++++--- src/versions/tests/ghes-versioning.js | 2 +- 8 files changed, 22 insertions(+), 14 deletions(-) rename src/versions/middleware/{short-versions.js => short-versions.ts} (53%) diff --git a/src/content-linter/tests/category-pages.ts b/src/content-linter/tests/category-pages.ts index 91c9f3fb02..b6c95c9909 100644 --- a/src/content-linter/tests/category-pages.ts +++ b/src/content-linter/tests/category-pages.ts @@ -141,7 +141,7 @@ describe.skip('category pages', () => { } await contextualize(req as ExtendedRequest, res as Response, next) - await shortVersions(req, res, next) + await shortVersions(req as ExtendedRequest, res as Response, next) // Save the index title for later testing indexTitle = data.title.includes('{') diff --git a/src/content-render/scripts/all-documents/lib.ts b/src/content-render/scripts/all-documents/lib.ts index 3cf15de989..c6553fe52c 100644 --- a/src/content-render/scripts/all-documents/lib.ts +++ b/src/content-render/scripts/all-documents/lib.ts @@ -66,7 +66,7 @@ export async function allDocuments(options: Options): Promise { } await contextualize(req as ExtendedRequest, res as Response, next) - await shortVersions(req, res, next) + await shortVersions(req as ExtendedRequest, res as Response, next) req.context.page = page features(req as any, res as any, next) diff --git a/src/links/lib/validate-docs-urls.ts b/src/links/lib/validate-docs-urls.ts index 702ef6ac1b..be24baee72 100644 --- a/src/links/lib/validate-docs-urls.ts +++ b/src/links/lib/validate-docs-urls.ts @@ -128,7 +128,7 @@ async function renderInnerHTML(page: Page, permalink: Permalink) { context: {}, } await contextualize(req as ExtendedRequest, res as Response, next) - await shortVersions(req, res, next) + await shortVersions(req as ExtendedRequest, res as Response, next) await findPage(req, res, next) features(req as ExtendedRequest, res as Response, next) diff --git a/src/links/scripts/rendered-content-link-checker.ts b/src/links/scripts/rendered-content-link-checker.ts index 53174b8de9..ba87dbd28a 100755 --- a/src/links/scripts/rendered-content-link-checker.ts +++ b/src/links/scripts/rendered-content-link-checker.ts @@ -1309,7 +1309,7 @@ async function renderInnerHTML(page: Page, permalink: Permalink) { } // This will create and set `req.context = {...}` await contextualize(req as ExtendedRequest, res as Response, next) - await shortVersions(req, res, next) + await shortVersions(req as ExtendedRequest, res as Response, next) req.context.page = page features(req as ExtendedRequest, res as Response, next) diff --git a/src/pageinfo/middleware.ts b/src/pageinfo/middleware.ts index 797e2023ef..d321717534 100644 --- a/src/pageinfo/middleware.ts +++ b/src/pageinfo/middleware.ts @@ -131,7 +131,7 @@ export async function getPageInfo(page: Page, pathname: string) { const next = () => {} const res = {} await contextualize(renderingReq as ExtendedRequest, res as Response, next) - await shortVersions(renderingReq, res, next) + await shortVersions(renderingReq as ExtendedRequest, res as Response, next) renderingReq.context.page = page features(renderingReq as ExtendedRequest, res as Response, next) const context = renderingReq.context diff --git a/src/types.ts b/src/types.ts index e2d4cb4f79..9466dc0e14 100644 --- a/src/types.ts +++ b/src/types.ts @@ -100,11 +100,9 @@ type Redirects = { [key: string]: string } -type Features = { - [feature: string]: boolean -} - -export type Context = Features & { +export type Context = { + // Allows dynamic properties like features & version shortnames as keys + [key: string]: any currentCategory?: string error?: Error siteTree?: SiteTree diff --git a/src/versions/middleware/short-versions.js b/src/versions/middleware/short-versions.ts similarity index 53% rename from src/versions/middleware/short-versions.js rename to src/versions/middleware/short-versions.ts index 7b6761fa5f..2dfbfff09a 100644 --- a/src/versions/middleware/short-versions.js +++ b/src/versions/middleware/short-versions.ts @@ -6,7 +6,15 @@ // {% if ghes %} // // For the custom operator handling in statements like {% if ghes > 3.0 %}, see `lib/liquid-tags/if-ver.js`. -export default function shortVersions(req, res, next) { +import type { ExtendedRequest } from '@/types.js' +import type { Response, NextFunction } from 'express' + +export default function shortVersions( + req: ExtendedRequest, + res: Response | null, + next: NextFunction, +): void { + if (!req.context) throw new Error('No context on request') const { currentVersion, currentVersionObj } = req.context if (!currentVersionObj) { return next() @@ -16,8 +24,10 @@ export default function shortVersions(req, res, next) { req.context[currentVersionObj.shortName] = true // Add convenience props. - req.context.currentRelease = currentVersion.split('@')[1] - req.context.currentVersionShortName = currentVersionObj.shortName + if (currentVersion) { + req.context.currentRelease = currentVersion.split('@')[1] + req.context.currentVersionShortName = currentVersionObj.shortName + } return next() } diff --git a/src/versions/tests/ghes-versioning.js b/src/versions/tests/ghes-versioning.js index 437262b4ff..47eea2a6c2 100644 --- a/src/versions/tests/ghes-versioning.js +++ b/src/versions/tests/ghes-versioning.js @@ -3,7 +3,7 @@ import { beforeAll, describe, expect, test } from 'vitest' import { allVersions } from '#src/versions/lib/all-versions.js' import { liquid } from '#src/content-render/index.js' import { supported } from '#src/versions/lib/enterprise-server-releases.js' -import shortVersionsMiddleware from '#src/versions/middleware/short-versions.js' +import shortVersionsMiddleware from '#src/versions/middleware/short-versions' const contextualize = (req) => { req.context.currentVersionObj = req.context.allVersions[req.context.currentVersion] From e2f9d64d7b7db8f751481c7e4f6b01a3ca6cfa1f Mon Sep 17 00:00:00 2001 From: Rachael Sewell Date: Tue, 30 Jul 2024 13:05:14 -0700 Subject: [PATCH 10/17] Update GHES deprecation script (#51613) --- package-lock.json | 61 +++++++++++- package.json | 3 +- ...{archive-version.js => archive-version.ts} | 97 +++++-------------- .../scripts/rewrite-asset-paths.ts | 74 ++++++++++++++ 4 files changed, 158 insertions(+), 77 deletions(-) rename src/ghes-releases/scripts/{archive-version.js => archive-version.ts} (64%) create mode 100644 src/ghes-releases/scripts/rewrite-asset-paths.ts diff --git a/package-lock.json b/package-lock.json index c3134132c8..e78365a5e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -123,6 +123,7 @@ "@types/react-dom": "^18.3.0", "@types/semver": "^7.5.8", "@types/tcp-port-used": "1.0.4", + "@types/website-scraper": "^1.2.10", "@typescript-eslint/eslint-plugin": "^7.15.0", "@typescript-eslint/parser": "^7.16.0", "chalk": "^5.0.1", @@ -3168,6 +3169,12 @@ "@types/node": "*" } }, + "node_modules/@types/caseless": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", + "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==", + "dev": true + }, "node_modules/@types/connect": { "version": "3.4.38", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", @@ -3368,8 +3375,12 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, "node_modules/@types/node": { - "version": "18.14.6", - "license": "MIT" + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.0.0.tgz", + "integrity": "sha512-VT7KSYudcPOzP5Q0wfbowyNLaVR8QWUdw+088uFWwfvpY6uCWaXpqV6ieLAu9WBcnTa7H4Z5RLK8I5t2FuOcqw==", + "dependencies": { + "undici-types": "~6.11.1" + } }, "node_modules/@types/prop-types": { "version": "15.7.4", @@ -3413,6 +3424,32 @@ "@types/react": "*" } }, + "node_modules/@types/request": { + "version": "2.48.12", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz", + "integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==", + "dev": true, + "dependencies": { + "@types/caseless": "*", + "@types/node": "*", + "@types/tough-cookie": "*", + "form-data": "^2.5.0" + } + }, + "node_modules/@types/request/node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, "node_modules/@types/semver": { "version": "7.5.8", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", @@ -3475,10 +3512,25 @@ "integrity": "sha512-0vQ4fz9TTM4bCdllYWEJ2JHBUXR9xqPtc70dJ7BMRDVfvZyYdrgey3nP5RRcVj+qAgnHJM8r9fvgrfnPMxdnhA==", "dev": true }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true + }, "node_modules/@types/unist": { "version": "2.0.6", "license": "MIT" }, + "node_modules/@types/website-scraper": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@types/website-scraper/-/website-scraper-1.2.10.tgz", + "integrity": "sha512-yJR4klQv1/7PuqMmgm331re3gQLKHt3dtCYQPPDwlCdthZgE/zHhWyb3XsXCVt6IPnMnOb62I5oJIZECqfvx1A==", + "dev": true, + "dependencies": { + "@types/request": "*" + } + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "7.15.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.15.0.tgz", @@ -14505,6 +14557,11 @@ "node": ">=14.0" } }, + "node_modules/undici-types": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.11.1.tgz", + "integrity": "sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ==" + }, "node_modules/unified": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.3.tgz", diff --git a/package.json b/package.json index 565ddccd33..d2932dd3fd 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "all-documents": "tsx src/content-render/scripts/all-documents/cli.ts", "analyze-text": "node src/search/scripts/analyze-text.js", "analyze-comment": "tsx src/events/scripts/analyze-comment-cli.ts", - "archive-version": "node --max-old-space-size=8192 src/ghes-releases/scripts/archive-version.js", + "archive-version": "tsx --max-old-space-size=16384 src/ghes-releases/scripts/archive-version.ts", "audit-log-sync": "tsx src/audit-logs/scripts/sync.ts", "build": "next build", "check-content-type": "node src/workflows/check-content-type.js", @@ -340,6 +340,7 @@ "@types/react-dom": "^18.3.0", "@types/semver": "^7.5.8", "@types/tcp-port-used": "1.0.4", + "@types/website-scraper": "^1.2.10", "@typescript-eslint/eslint-plugin": "^7.15.0", "@typescript-eslint/parser": "^7.16.0", "chalk": "^5.0.1", diff --git a/src/ghes-releases/scripts/archive-version.js b/src/ghes-releases/scripts/archive-version.ts similarity index 64% rename from src/ghes-releases/scripts/archive-version.js rename to src/ghes-releases/scripts/archive-version.ts index 16f2ed3ace..0a2cced3c3 100755 --- a/src/ghes-releases/scripts/archive-version.js +++ b/src/ghes-releases/scripts/archive-version.ts @@ -15,17 +15,23 @@ import { program } from 'commander' import { rimraf } from 'rimraf' import http from 'http' -import createApp from '#src/frame/lib/app.js' +import createApp from '@/frame/lib/app' import EnterpriseServerReleases from '#src/versions/lib/enterprise-server-releases.js' import loadRedirects from '#src/redirects/lib/precompile.js' import { loadPageMap, loadPages } from '#src/frame/lib/page-data.js' import { languageKeys } from '#src/languages/lib/languages.js' +import { RewriteAssetPathsPlugin } from '@/ghes-releases/scripts/rewrite-asset-paths' const port = '4001' const host = `http://localhost:${port}` const version = EnterpriseServerReleases.oldestSupported const REMOTE_ENTERPRISE_STORAGE_URL = 'https://githubdocs.azureedge.net/enterprise' +// Once page-data.js is converted to TS, +// we can import the more comprehesive type +type PageList = Array +type MapObj = { [key: string]: string } + program .description( 'Scrape HTML of the oldest supported Enterprise version and add it to a temp output directory.', @@ -57,76 +63,10 @@ const tmpArchivalDirectory = output : path.join(process.cwd(), `tmpArchivalDir_${version}`) main() - -class RewriteAssetPathsPlugin { - constructor(version, tempDirectory) { - this.version = version - this.tempDirectory = tempDirectory - } - - apply(registerAction) { - registerAction('onResourceSaved', async ({ resource }) => { - // Show some activity - process.stdout.write('.') - - // Only operate on HTML files - if (!resource.isHtml() && !resource.isCss()) return - - // Get the text contents of the resource - const text = resource.getText() - let newBody = text - - // Rewrite HTML asset paths. Example: - // ../assets/images/foo/bar.png -> - // https://githubdocs.azureedge.net/github-images/enterprise/2.17/assets/images/foo/bar.png - - if (resource.isHtml()) { - // Remove nextjs scripts and manifest.json link - newBody = newBody.replace( - /<\/script>/g, - '', - ) - newBody = newBody.replace(//g, '') - - if (!localDev) { - // Rewrite asset paths - newBody = newBody.replace( - /(?src|href)="(?:\.\.\/|\/)*(?_next\/static|javascripts|stylesheets|assets\/fonts|assets\/cb-\d+\/images|node_modules)/g, - (match, attribute, basepath) => { - const replaced = `${REMOTE_ENTERPRISE_STORAGE_URL}/${this.version}/${basepath}` - return `${attribute}="${replaced}` - }, - ) - } - } - - // Rewrite CSS asset paths. Example - // url("../assets/fonts/alliance/alliance-no-1-regular.woff") -> - // url("https://githubdocs.azureedge.net/github-images/enterprise/2.20/assets/fonts/alliance/alliance-no-1-regular.woff") - // url(../../../assets/cb-303/images/octicons/search-24.svg) -> - // url(https://githubdocs.azureedge.net/github-images/enterprise/2.20/assets/cb-303/images/octicons/search-24.svg) - if (resource.isCss()) { - if (!localDev) { - newBody = newBody.replace( - /(?url)(?\("|\()(?:\.\.\/)*(?_next\/static|assets\/fonts|assets\/images|assets\/cb-\d+\/images)/g, - (match, attribute, paren, basepath) => { - const replaced = `${REMOTE_ENTERPRISE_STORAGE_URL}/${this.version}/${basepath}` - return `${attribute}${paren}${replaced}` - }, - ) - } - } - - const filePath = path.join(this.tempDirectory, resource.getFilename()) - await fs.promises.writeFile(filePath, newBody, resource.encoding) - }) - } -} - async function main() { console.log(`Archiving Enterprise version: ${version}`) - let pageList, urls + let pageList: PageList, urls: Array if (singlePage) { const pageName = singlePage.trim().startsWith('/') ? singlePage.slice(1) : singlePage const urls = languageKeys @@ -160,7 +100,7 @@ async function main() { await scrape({ urls, - urlFilter: (url) => { + urlFilter: (url: string) => { // Do not download assets from other hosts like S3 or octodex.github.com // (this will keep them as remote references in the downloaded pages) return url.startsWith(`http://localhost:${port}/`) @@ -168,8 +108,15 @@ async function main() { directory: tmpArchivalDirectory, filenameGenerator: 'bySiteStructure', requestConcurrency: 6, - plugins: [new RewriteAssetPathsPlugin(version, tmpArchivalDirectory)], - }).catch((err) => { + plugins: [ + new RewriteAssetPathsPlugin( + version, + tmpArchivalDirectory, + localDev, + REMOTE_ENTERPRISE_STORAGE_URL, + ), + ], + }).catch((err: Error) => { console.error('scraping error') console.error(err) }) @@ -195,12 +142,14 @@ async function main() { }) } -async function createRedirectsFile(pageList, outputDirectory) { +async function createRedirectsFile(pageList: PageList, outputDirectory: string) { console.log('Creating redirects file...') const redirects = await loadRedirects(pageList) - const redirectsPerVersion = {} + const redirectsPerVersion: MapObj = {} - Object.entries(redirects).forEach(([oldPath, newPath]) => { + const redirectEntries: Array<[string, string]> = Object.entries(redirects) + + redirectEntries.forEach(([oldPath, newPath]) => { // remove any liquid variables that sneak in oldPath = oldPath.replace('/{{ page.version }}', '').replace('/{{ currentVersion }}', '') // ignore any old paths that are not in this version diff --git a/src/ghes-releases/scripts/rewrite-asset-paths.ts b/src/ghes-releases/scripts/rewrite-asset-paths.ts new file mode 100644 index 0000000000..c8e793c3bd --- /dev/null +++ b/src/ghes-releases/scripts/rewrite-asset-paths.ts @@ -0,0 +1,74 @@ +import fs from 'fs' +import path from 'path' + +export class RewriteAssetPathsPlugin { + version: string + tempDirectory: string + localDev: boolean + replaceUrl: string + + constructor(version: string, tempDirectory: string, localDev: boolean, replaceUrl: string) { + this.version = version + this.tempDirectory = tempDirectory + this.localDev = localDev + this.replaceUrl = replaceUrl + } + + apply(registerAction: Function) { + registerAction('onResourceSaved', async ({ resource }: any) => { + // Show some activity + process.stdout.write('.') + + // Only operate on HTML files + if (!resource.isHtml() && !resource.isCss()) return + + // Get the text contents of the resource + const text = resource.getText() + let newBody = text + + // Rewrite HTML asset paths. Example: + // ../assets/images/foo/bar.png -> + // https://githubdocs.azureedge.net/github-images/enterprise/2.17/assets/images/foo/bar.png + + if (resource.isHtml()) { + // Remove nextjs scripts and manifest.json link + newBody = newBody.replace( + /<\/script>/g, + '', + ) + newBody = newBody.replace(//g, '') + + if (!this.localDev) { + // Rewrite asset paths + newBody = newBody.replace( + /(?src|href)="(?:\.\.\/|\/)*(?_next\/static|javascripts|stylesheets|assets\/fonts|assets\/cb-\d+\/images|node_modules)/g, + (attribute: string, basepath: string) => { + const replaced = `${this.replaceUrl}/${this.version}/${basepath}` + return `${attribute}="${replaced}` + }, + ) + } + } + + // Rewrite CSS asset paths. Example + // url("../assets/fonts/alliance/alliance-no-1-regular.woff") -> + // url("https://githubdocs.azureedge.net/github-images/enterprise/2.20/assets/fonts/alliance/alliance-no-1-regular.woff") + // url(../../../assets/cb-303/images/octicons/search-24.svg) -> + // url(https://githubdocs.azureedge.net/github-images/enterprise/2.20/assets/cb-303/images/octicons/search-24.svg) + if (resource.isCss()) { + if (!this.localDev) { + newBody = newBody.replace( + /(?url)(?\("|\()(?:\.\.\/)*(?_next\/static|assets\/fonts|assets\/images|assets\/cb-\d+\/images)/g, + (attribute: string, paren: string, basepath: string) => { + const replaced = `${this.replaceUrl}/${this.version}/${basepath}` + return `${attribute}${paren}${replaced}` + }, + ) + } + } + + const filePath = path.join(this.tempDirectory, resource.getFilename()) + await fs.promises.writeFile(filePath, newBody, resource.encoding) + }) + } +} From 34a7bf4115040d4ca3207a65d1a4b8688c8d2b5c Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Tue, 30 Jul 2024 13:20:19 -0700 Subject: [PATCH 11/17] Update OpenAPI Description (#51843) Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> --- src/github-apps/lib/config.json | 2 +- src/rest/lib/config.json | 2 +- src/webhooks/lib/config.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/github-apps/lib/config.json b/src/github-apps/lib/config.json index 8fc4dca33e..613894eee9 100644 --- a/src/github-apps/lib/config.json +++ b/src/github-apps/lib/config.json @@ -60,5 +60,5 @@ "2022-11-28" ] }, - "sha": "49254d7d53442739e29ffe74d2615566aa5fc0a5" + "sha": "2a8a2c6f064a6d0c2bff8cb96b43791beb470f07" } \ No newline at end of file diff --git a/src/rest/lib/config.json b/src/rest/lib/config.json index 855b66a507..a1b1098857 100644 --- a/src/rest/lib/config.json +++ b/src/rest/lib/config.json @@ -44,5 +44,5 @@ ] } }, - "sha": "49254d7d53442739e29ffe74d2615566aa5fc0a5" + "sha": "2a8a2c6f064a6d0c2bff8cb96b43791beb470f07" } \ No newline at end of file diff --git a/src/webhooks/lib/config.json b/src/webhooks/lib/config.json index c88d93d5be..b87264a295 100644 --- a/src/webhooks/lib/config.json +++ b/src/webhooks/lib/config.json @@ -1,3 +1,3 @@ { - "sha": "49254d7d53442739e29ffe74d2615566aa5fc0a5" + "sha": "2a8a2c6f064a6d0c2bff8cb96b43791beb470f07" } \ No newline at end of file From 54bc7ec38e0f20a71896c12d20112472f81017b7 Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Tue, 30 Jul 2024 13:36:32 -0700 Subject: [PATCH 12/17] A11y: update paths on guides links (#51845) --- src/learning-track/components/guides/LearningTrack.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/learning-track/components/guides/LearningTrack.tsx b/src/learning-track/components/guides/LearningTrack.tsx index 65acb7ff47..a5fd9e3026 100644 --- a/src/learning-track/components/guides/LearningTrack.tsx +++ b/src/learning-track/components/guides/LearningTrack.tsx @@ -31,11 +31,12 @@ export const LearningTrack = ({ track }: Props) => {
        {track.guides.map((guide) => (
      1. - + {tObject('guide_types')[guide.page?.type || ''] as string} {guide.title} From 641ccd50c41a11660d7646beb3712ac2143c347e Mon Sep 17 00:00:00 2001 From: Siara <108543037+SiaraMist@users.noreply.github.com> Date: Tue, 30 Jul 2024 14:36:57 -0700 Subject: [PATCH 13/17] Keyboard navigation for Hover Card [GA] (#51762) --- .../managing-accessibility-settings.md | 1 + content/get-started/accessibility/keyboard-shortcuts.md | 1 + 2 files changed, 2 insertions(+) diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-user-account-settings/managing-accessibility-settings.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-user-account-settings/managing-accessibility-settings.md index ed09910ddb..0ea45fd698 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-user-account-settings/managing-accessibility-settings.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-user-account-settings/managing-accessibility-settings.md @@ -28,6 +28,7 @@ You can control whether links in text blocks on {% data variables.location.produ * To enable underlines on links in text blocks, under "Link underlines", select **Show link underlines**. * To disable underlines on links in text blocks, under "Link underlines", select **Hide link underlines**. + * To disable hovercards for previewing link content, deselect **Hovercards**. {% endif %} diff --git a/content/get-started/accessibility/keyboard-shortcuts.md b/content/get-started/accessibility/keyboard-shortcuts.md index 4175ecf026..8ada03537e 100644 --- a/content/get-started/accessibility/keyboard-shortcuts.md +++ b/content/get-started/accessibility/keyboard-shortcuts.md @@ -34,6 +34,7 @@ The following sections list some of the available keyboard shortcuts, organized |-----------|------------ |S or / | Focus the search bar. For more information, see "[AUTOTITLE](/search-github/getting-started-with-searching-on-github/about-searching-on-github)." |G N | Go to your notifications. For more information, see "[AUTOTITLE](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications)." +|Option+↑ (Mac) or
        Alt+↑ (Windows/Linux) | Move focus from an element to its hovercard | |Esc | When focused on a user, issue, or pull request hovercard, closes the hovercard and refocuses on the element the hovercard is in ## Repositories From a540798efc94038496e35fcb981df21bec7e01b0 Mon Sep 17 00:00:00 2001 From: Siara <108543037+SiaraMist@users.noreply.github.com> Date: Tue, 30 Jul 2024 15:33:36 -0700 Subject: [PATCH 14/17] Relocate articles into new "About GitHub Actions" and "Writing workflows" categories (#51761) --- .../about-continuous-deployment.md | 3 +- .../about-continuous-integration.md | 1 + content/actions/about-github-actions/index.md | 14 ++ .../understanding-github-actions.md | 2 + .../automating-builds-and-tests/index.md | 1 - .../deployment/about-deployments/index.md | 1 - content/actions/guides.md | 16 +-- .../running-scripts-before-or-after-a-job.md | 2 +- content/actions/index.md | 27 ++-- .../essential-features-of-github-actions.md | 131 ------------------ content/actions/learn-github-actions/index.md | 29 ---- content/actions/using-jobs/index.md | 23 --- content/actions/using-workflows/index.md | 7 - .../adding-scripts-to-your-workflow.md | 59 ++++++++ .../assigning-permissions-to-jobs.md | 2 + ...hing-dependencies-to-speed-up-workflows.md | 1 + .../contexts.md | 1 + .../defining-outputs-for-jobs.md | 2 + .../expressions.md | 2 + .../finding-and-customizing-actions.md | 1 + .../choosing-what-your-workflow-does/index.md | 29 ++++ .../setting-default-values-for-jobs.md | 2 + .../storing-workflow-data-as-artifacts.md | 1 + .../using-a-matrix-for-your-jobs.md | 1 + .../using-concurrency.md | 2 + .../using-environments-for-deployment.md | 1 + .../using-github-cli-in-workflows.md | 1 + .../using-jobs-in-a-workflow.md | 2 + .../variables.md | 1 + .../workflow-commands-for-github-actions.md | 1 + .../events-that-trigger-workflows.md | 1 + .../choosing-when-your-workflow-runs/index.md | 14 ++ .../triggering-a-workflow.md | 2 + ...ing-conditions-to-control-job-execution.md | 2 + .../choosing-the-runner-for-a-job.md | 2 + .../index.md | 13 ++ .../running-jobs-in-a-container.md | 2 + content/actions/writing-workflows/index.md | 19 +++ .../{ => writing-workflows}/quickstart.md | 1 + .../using-starter-workflows.md | 1 + .../workflow-syntax-for-github-actions.md | 3 +- content/github-cli/index.md | 2 +- data/learning-tracks/actions.yml | 9 +- data/learning-tracks/admin.yml | 4 +- 44 files changed, 216 insertions(+), 225 deletions(-) rename content/actions/{deployment/about-deployments => about-github-actions}/about-continuous-deployment.md (96%) rename content/actions/{automating-builds-and-tests => about-github-actions}/about-continuous-integration.md (98%) create mode 100644 content/actions/about-github-actions/index.md rename content/actions/{learn-github-actions => about-github-actions}/understanding-github-actions.md (98%) delete mode 100644 content/actions/learn-github-actions/essential-features-of-github-actions.md delete mode 100644 content/actions/learn-github-actions/index.md delete mode 100644 content/actions/using-jobs/index.md create mode 100644 content/actions/writing-workflows/choosing-what-your-workflow-does/adding-scripts-to-your-workflow.md rename content/actions/{using-jobs => writing-workflows/choosing-what-your-workflow-does}/assigning-permissions-to-jobs.md (94%) rename content/actions/{using-workflows => writing-workflows/choosing-what-your-workflow-does}/caching-dependencies-to-speed-up-workflows.md (99%) rename content/actions/{learn-github-actions => writing-workflows/choosing-what-your-workflow-does}/contexts.md (99%) rename content/actions/{using-jobs => writing-workflows/choosing-what-your-workflow-does}/defining-outputs-for-jobs.md (82%) rename content/actions/{learn-github-actions => writing-workflows/choosing-what-your-workflow-does}/expressions.md (99%) rename content/actions/{learn-github-actions => writing-workflows/choosing-what-your-workflow-does}/finding-and-customizing-actions.md (99%) create mode 100644 content/actions/writing-workflows/choosing-what-your-workflow-does/index.md rename content/actions/{using-jobs => writing-workflows/choosing-what-your-workflow-does}/setting-default-values-for-jobs.md (92%) rename content/actions/{using-workflows => writing-workflows/choosing-what-your-workflow-does}/storing-workflow-data-as-artifacts.md (99%) rename content/actions/{using-jobs => writing-workflows/choosing-what-your-workflow-does}/using-a-matrix-for-your-jobs.md (96%) rename content/actions/{using-jobs => writing-workflows/choosing-what-your-workflow-does}/using-concurrency.md (96%) rename content/actions/{using-jobs => writing-workflows/choosing-what-your-workflow-does}/using-environments-for-deployment.md (94%) rename content/actions/{using-workflows => writing-workflows/choosing-what-your-workflow-does}/using-github-cli-in-workflows.md (97%) rename content/actions/{using-jobs => writing-workflows/choosing-what-your-workflow-does}/using-jobs-in-a-workflow.md (90%) rename content/actions/{learn-github-actions => writing-workflows/choosing-what-your-workflow-does}/variables.md (99%) rename content/actions/{using-workflows => writing-workflows/choosing-what-your-workflow-does}/workflow-commands-for-github-actions.md (99%) rename content/actions/{using-workflows => writing-workflows/choosing-when-your-workflow-runs}/events-that-trigger-workflows.md (99%) create mode 100644 content/actions/writing-workflows/choosing-when-your-workflow-runs/index.md rename content/actions/{using-workflows => writing-workflows/choosing-when-your-workflow-runs}/triggering-a-workflow.md (99%) rename content/actions/{using-jobs => writing-workflows/choosing-when-your-workflow-runs}/using-conditions-to-control-job-execution.md (91%) rename content/actions/{using-jobs => writing-workflows/choosing-where-your-workflow-runs}/choosing-the-runner-for-a-job.md (90%) create mode 100644 content/actions/writing-workflows/choosing-where-your-workflow-runs/index.md rename content/actions/{using-jobs => writing-workflows/choosing-where-your-workflow-runs}/running-jobs-in-a-container.md (93%) create mode 100644 content/actions/writing-workflows/index.md rename content/actions/{ => writing-workflows}/quickstart.md (99%) rename content/actions/{learn-github-actions => writing-workflows}/using-starter-workflows.md (98%) rename content/actions/{using-workflows => writing-workflows}/workflow-syntax-for-github-actions.md (99%) diff --git a/content/actions/deployment/about-deployments/about-continuous-deployment.md b/content/actions/about-github-actions/about-continuous-deployment.md similarity index 96% rename from content/actions/deployment/about-deployments/about-continuous-deployment.md rename to content/actions/about-github-actions/about-continuous-deployment.md index 03f9b3e385..c12f32fefa 100644 --- a/content/actions/deployment/about-deployments/about-continuous-deployment.md +++ b/content/actions/about-github-actions/about-continuous-deployment.md @@ -1,5 +1,6 @@ --- title: About continuous deployment +shortTitle: Continuous deployment intro: 'You can create custom continuous deployment (CD) workflows directly in your {% data variables.product.prodname_dotcom %} repository with {% data variables.product.prodname_actions %}.' versions: fpt: '*' @@ -8,9 +9,9 @@ versions: type: overview redirect_from: - /actions/deployment/about-continuous-deployment + - /actions/deployment/about-deployments/about-continuous-deployment topics: - CD -shortTitle: About continuous deployment --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/automating-builds-and-tests/about-continuous-integration.md b/content/actions/about-github-actions/about-continuous-integration.md similarity index 98% rename from content/actions/automating-builds-and-tests/about-continuous-integration.md rename to content/actions/about-github-actions/about-continuous-integration.md index a8b1732182..6aae0a7f30 100644 --- a/content/actions/automating-builds-and-tests/about-continuous-integration.md +++ b/content/actions/about-github-actions/about-continuous-integration.md @@ -7,6 +7,7 @@ redirect_from: - /actions/automating-your-workflow-with-github-actions/about-continuous-integration - /actions/building-and-testing-code-with-continuous-integration/about-continuous-integration - /actions/guides/about-continuous-integration + - /actions/automating-builds-and-tests/about-continuous-integration versions: fpt: '*' ghes: '*' diff --git a/content/actions/about-github-actions/index.md b/content/actions/about-github-actions/index.md new file mode 100644 index 0000000000..fc8b1a2ded --- /dev/null +++ b/content/actions/about-github-actions/index.md @@ -0,0 +1,14 @@ +--- +title: About GitHub Actions +shortTitle: About GitHub Actions +intro: '{% data variables.product.prodname_actions %} is a tool that you can use to build automations to assist with each stage of the software development lifecycle. This section describes {% data variables.product.prodname_actions %} concepts, common terminology, and some high level use cases.' +versions: + fpt: '*' + ghes: '*' + ghec: '*' +children: + - /understanding-github-actions + - /about-continuous-integration + - /about-continuous-deployment +--- + diff --git a/content/actions/learn-github-actions/understanding-github-actions.md b/content/actions/about-github-actions/understanding-github-actions.md similarity index 98% rename from content/actions/learn-github-actions/understanding-github-actions.md rename to content/actions/about-github-actions/understanding-github-actions.md index 32e44186ab..879968201e 100644 --- a/content/actions/learn-github-actions/understanding-github-actions.md +++ b/content/actions/about-github-actions/understanding-github-actions.md @@ -7,6 +7,8 @@ redirect_from: - /actions/automating-your-workflow-with-github-actions/core-concepts-for-github-actions - /actions/getting-started-with-github-actions/core-concepts-for-github-actions - /actions/learn-github-actions/introduction-to-github-actions + - /actions/learn-github-actions/understanding-github-actions + - /actions/learn-github-actions/essential-features-of-github-actions versions: fpt: '*' ghes: '*' diff --git a/content/actions/automating-builds-and-tests/index.md b/content/actions/automating-builds-and-tests/index.md index 69b611085a..897c33724a 100644 --- a/content/actions/automating-builds-and-tests/index.md +++ b/content/actions/automating-builds-and-tests/index.md @@ -16,7 +16,6 @@ redirect_from: - /actions/guides/building-and-testing-nodejs-or-python - /actions/automating-builds-and-tests/building-and-testing-nodejs-or-python children: - - /about-continuous-integration - /building-and-testing-go - /building-and-testing-java-with-ant - /building-and-testing-java-with-gradle diff --git a/content/actions/deployment/about-deployments/index.md b/content/actions/deployment/about-deployments/index.md index 0f98a41d10..964c6cdd0e 100644 --- a/content/actions/deployment/about-deployments/index.md +++ b/content/actions/deployment/about-deployments/index.md @@ -7,7 +7,6 @@ versions: ghes: '*' ghec: '*' children: - - /about-continuous-deployment - /deploying-with-github-actions --- diff --git a/content/actions/guides.md b/content/actions/guides.md index 4f28868a7f..0060d45e3c 100644 --- a/content/actions/guides.md +++ b/content/actions/guides.md @@ -1,5 +1,5 @@ --- -title: Guides for {% data variables.product.prodname_actions %} +title: 'Guides for {% data variables.product.prodname_actions %}' intro: 'These guides for {% data variables.product.prodname_actions %} include specific use cases and examples to help you configure workflows.' allowTitleToDifferFromFilename: true layout: product-guides @@ -14,16 +14,16 @@ learningTracks: - hosting_your_own_runners - create_actions includeGuides: - - /actions/quickstart - - /actions/learn-github-actions/understanding-github-actions + - /actions/writing-workflows/quickstart + - /actions/about-github-actions/understanding-github-actions - /actions/creating-actions/creating-a-docker-container-action - - /actions/learn-github-actions/using-starter-workflows + - /actions/writing-workflows/using-starter-workflows - /actions/automating-builds-and-tests/building-and-testing-python - /actions/automating-builds-and-tests/building-and-testing-nodejs - /actions/publishing-packages/about-packaging-with-github-actions - /actions/publishing-packages/publishing-docker-images - - /actions/using-workflows/caching-dependencies-to-speed-up-workflows - - /actions/automating-builds-and-tests/about-continuous-integration + - /actions/writing-workflows/choosing-what-your-workflow-does/caching-dependencies-to-speed-up-workflows + - /actions/about-github-actions/about-continuous-integration - /actions/automating-builds-and-tests/building-and-testing-powershell - /actions/automating-builds-and-tests/building-and-testing-ruby - /actions/automating-builds-and-tests/building-and-testing-java-with-maven @@ -35,13 +35,12 @@ includeGuides: - /actions/publishing-packages/publishing-nodejs-packages - /actions/publishing-packages/publishing-java-packages-with-maven - /actions/publishing-packages/publishing-java-packages-with-gradle - - /actions/using-workflows/storing-workflow-data-as-artifacts + - /actions/writing-workflows/choosing-what-your-workflow-does/storing-workflow-data-as-artifacts - /actions/using-containerized-services/about-service-containers - /actions/using-containerized-services/creating-redis-service-containers - /actions/using-containerized-services/creating-postgresql-service-containers - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-amazon-elastic-container-service - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-google-kubernetes-engine - - /actions/learn-github-actions/essential-features-of-github-actions - /actions/security-guides/security-hardening-for-github-actions - /actions/creating-actions/about-custom-actions - /actions/creating-actions/creating-a-javascript-action @@ -69,3 +68,4 @@ includeGuides: - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-static-web-app - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-kubernetes-service --- + diff --git a/content/actions/hosting-your-own-runners/managing-self-hosted-runners/running-scripts-before-or-after-a-job.md b/content/actions/hosting-your-own-runners/managing-self-hosted-runners/running-scripts-before-or-after-a-job.md index b9bce5f66e..bcf37637d6 100644 --- a/content/actions/hosting-your-own-runners/managing-self-hosted-runners/running-scripts-before-or-after-a-job.md +++ b/content/actions/hosting-your-own-runners/managing-self-hosted-runners/running-scripts-before-or-after-a-job.md @@ -77,7 +77,7 @@ If you get a "permission denied" error when you attempt to run a script, make su chmod +x PATH/TO/FILE ``` -For information about using workflows to run scripts, see "[AUTOTITLE](/actions/learn-github-actions/essential-features-of-github-actions#adding-scripts-to-your-workflow)." +For information about using workflows to run scripts, see "[AUTOTITLE](/actions/writing-workflows/choosing-what-your-workflow-does/adding-scripts-to-your-workflow)." ### No timeout setting diff --git a/content/actions/index.md b/content/actions/index.md index 83e156544d..9c3960e085 100644 --- a/content/actions/index.md +++ b/content/actions/index.md @@ -3,28 +3,28 @@ title: '{% data variables.product.prodname_actions %} documentation' shortTitle: '{% data variables.product.prodname_actions %}' intro: 'Automate, customize, and execute your software development workflows right in your repository with {% data variables.product.prodname_actions %}. You can discover, create, and share actions to perform any job you''d like, including CI/CD, and combine actions in a completely customized workflow.' introLinks: - overview: /actions/learn-github-actions/understanding-github-actions - quickstart: /actions/quickstart + overview: /actions/about-github-actions/understanding-github-actions + quickstart: /actions/writing-workflows/quickstart featuredLinks: startHere: - - /actions/learn-github-actions + - /actions/writing-workflows - /actions/examples - - /actions/automating-builds-and-tests/about-continuous-integration + - /actions/about-github-actions/about-continuous-integration - /actions/deployment/about-deployments/deploying-with-github-actions - /actions/publishing-packages/about-packaging-with-github-actions - /actions/monitoring-and-troubleshooting-workflows guideCards: - - /actions/learn-github-actions/using-starter-workflows + - /actions/writing-workflows/using-starter-workflows - /actions/publishing-packages/publishing-nodejs-packages - /actions/automating-builds-and-tests/building-and-testing-powershell popular: - - /actions/using-workflows/workflow-syntax-for-github-actions - - /actions/learn-github-actions + - /actions/writing-workflows/workflow-syntax-for-github-actions + - /actions/writing-workflows - /actions/examples - - /actions/using-workflows/events-that-trigger-workflows - - /actions/learn-github-actions/contexts - - /actions/learn-github-actions/expressions - - /actions/learn-github-actions/variables + - /actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows + - /actions/writing-workflows/choosing-what-your-workflow-does/contexts + - /actions/writing-workflows/choosing-what-your-workflow-does/expressions + - /actions/writing-workflows/choosing-what-your-workflow-does/variables - /actions/security-guides/using-secrets-in-github-actions changelog: label: actions @@ -42,11 +42,10 @@ versions: ghes: '*' ghec: '*' children: - - /quickstart - - /learn-github-actions + - /about-github-actions - /examples + - /writing-workflows - /using-workflows - - /using-jobs - /managing-workflow-runs - /automating-builds-and-tests - /deployment diff --git a/content/actions/learn-github-actions/essential-features-of-github-actions.md b/content/actions/learn-github-actions/essential-features-of-github-actions.md deleted file mode 100644 index df21f2a459..0000000000 --- a/content/actions/learn-github-actions/essential-features-of-github-actions.md +++ /dev/null @@ -1,131 +0,0 @@ ---- -title: Essential features of GitHub Actions -shortTitle: Essential features -intro: '{% data variables.product.prodname_actions %} are designed to help you build robust and dynamic automations. This guide will show you how to craft {% data variables.product.prodname_actions %} workflows that include environment variables, customized scripts, and more.' -versions: - fpt: '*' - ghes: '*' - ghec: '*' -type: overview -topics: - - Fundamentals ---- - -{% data reusables.actions.enterprise-github-hosted-runners %} - -## Overview - -{% data variables.product.prodname_actions %} allow you to customize your workflows to meet the unique needs of your application and team. In this guide, we'll discuss some of the essential customization techniques such as using variables, running scripts, and sharing data and artifacts between jobs. - -## Using variables in your workflows - -{% data variables.product.prodname_actions %} include default environment variables for each workflow run. If you need to use custom environment variables, you can set these in your YAML workflow file. This example demonstrates how to create custom variables named `POSTGRES_HOST` and `POSTGRES_PORT`. These variables are then available to the `node client.js` script. - -```yaml -jobs: - example-job: - runs-on: ubuntu-latest - steps: - - name: Connect to PostgreSQL - run: node client.js - env: - POSTGRES_HOST: postgres - POSTGRES_PORT: 5432 -``` - -For more information, see "[AUTOTITLE](/actions/learn-github-actions/variables#default-environment-variables)." - -## Adding scripts to your workflow - -You can use a {% data variables.product.prodname_actions %} workflow to run scripts and shell commands, which are then executed on the assigned runner. This example demonstrates how to use the `run` keyword to execute the command `npm install -g bats` on the runner. - -```yaml -jobs: - example-job: - runs-on: ubuntu-latest - steps: - - run: npm install -g bats -``` - -To use a workflow to run a script stored in your repository you must first check out the repository to the runner. Having done this, you can use the `run` keyword to run the script on the runner. The following example runs two scripts, each in a separate job step. The location of the scripts on the runner is specified by setting a default working directory for run commands. For more information, see "[AUTOTITLE](/actions/using-jobs/setting-default-values-for-jobs)." - -```yaml -jobs: - example-job: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./scripts - steps: - - name: Check out the repository to the runner - uses: {% data reusables.actions.action-checkout %} - - name: Run a script - run: ./my-script.sh - - name: Run another script - run: ./my-other-script.sh -``` - -Any scripts that you want a workflow job to run must be executable. You can do this either within the workflow by passing the script as an argument to the interpreter that will run the script - for example, `run: bash script.sh` - or by making the file itself executable. You can give the file the execute permission by using the command `git update-index --chmod=+x PATH/TO/YOUR/script.sh` locally, then committing and pushing the file to the repository. Alternatively, for workflows that are run on Linux and Mac runners, you can add a command to give the file the execute permission in the workflow job, prior to running the script: - -```yaml -jobs: - example-job: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./scripts - steps: - - name: Check out the repository to the runner - uses: {% data reusables.actions.action-checkout %} - - name: Make the script files executable - run: chmod +x my-script.sh my-other-script.sh - - name: Run the scripts - run: | - ./my-script.sh - ./my-other-script.sh -``` - -For more information about the `run` keyword, see "[AUTOTITLE](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun)." - -## Sharing data between jobs - -If your job generates files that you want to share with another job in the same workflow, or if you want to save the files for later reference, you can store them in {% data variables.product.prodname_dotcom %} as _artifacts_. Artifacts are the files created when you build and test your code. For example, artifacts might include binary or package files, test results, screenshots, or log files. Artifacts are associated with the workflow run where they were created and can be used by another job. {% data reusables.actions.reusable-workflow-artifacts %} - -For example, you can create a file and then upload it as an artifact. - -```yaml -jobs: - example-job: - name: Save output - runs-on: ubuntu-latest - steps: - - shell: bash - run: | - expr 1 + 1 > output.log - - name: Upload output file - uses: {% data reusables.actions.action-upload-artifact %} - with: - name: output-log-file - path: output.log -``` - -To download an artifact from a separate workflow run, you can use the `actions/download-artifact` action. For example, you can download the artifact named `output-log-file`. - -```yaml -jobs: - example-job: - runs-on: ubuntu-latest - steps: - - name: Download a single artifact - uses: {% data reusables.actions.action-download-artifact %} - with: - name: output-log-file -``` - -To download an artifact from the same workflow run, your download job should specify `needs: upload-job-name` so it doesn't start until the upload job finishes. - -For more information about artifacts, see "[AUTOTITLE](/actions/using-workflows/storing-workflow-data-as-artifacts)." - -## Next steps - -To continue learning about {% data variables.product.prodname_actions %}, see "[AUTOTITLE](/actions/using-workflows/about-workflows)." diff --git a/content/actions/learn-github-actions/index.md b/content/actions/learn-github-actions/index.md deleted file mode 100644 index 57eaee541e..0000000000 --- a/content/actions/learn-github-actions/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Learn GitHub Actions -shortTitle: Learn GitHub Actions -intro: 'Whether you are new to {% data variables.product.prodname_actions %} or interested in learning all they have to offer, this guide will help you use {% data variables.product.prodname_actions %} to accelerate your application development workflows.' -redirect_from: - - /articles/about-github-actions - - /actions/getting-started-with-github-actions - - /actions/getting-started-with-github-actions/about-github-actions - - /actions/getting-started-with-github-actions/overview - - /actions/getting-started-with-github-actions/getting-started-with-github-actions - - /articles/getting-started-with-github-actions - - /github/automating-your-workflow-with-github-actions/about-github-actions - - /actions/automating-your-workflow-with-github-actions/about-github-actions - - /github/automating-your-workflow-with-github-actions/getting-started-with-github-actions - - /actions/automating-your-workflow-with-github-actions/getting-started-with-github-actions -versions: - fpt: '*' - ghes: '*' - ghec: '*' -children: - - /understanding-github-actions - - /finding-and-customizing-actions - - /essential-features-of-github-actions - - /expressions - - /contexts - - /variables - - /using-starter-workflows ---- - diff --git a/content/actions/using-jobs/index.md b/content/actions/using-jobs/index.md deleted file mode 100644 index 867d8f936d..0000000000 --- a/content/actions/using-jobs/index.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Using jobs -shortTitle: Using jobs -intro: 'Creating and managing {% data variables.product.prodname_actions %} jobs.' -redirect_from: - - /actions/jobs -versions: - fpt: '*' - ghes: '*' - ghec: '*' -children: - - /using-jobs-in-a-workflow - - /choosing-the-runner-for-a-job - - /using-conditions-to-control-job-execution - - /using-a-matrix-for-your-jobs - - /using-concurrency - - /using-environments-for-deployment - - /running-jobs-in-a-container - - /setting-default-values-for-jobs - - /assigning-permissions-to-jobs - - /defining-outputs-for-jobs ---- - diff --git a/content/actions/using-workflows/index.md b/content/actions/using-workflows/index.md index 7d1af2ac95..91da7eefdc 100644 --- a/content/actions/using-workflows/index.md +++ b/content/actions/using-workflows/index.md @@ -21,18 +21,11 @@ versions: ghec: '*' children: - /about-workflows - - /triggering-a-workflow - /manually-running-a-workflow - /disabling-and-enabling-a-workflow - - /events-that-trigger-workflows - - /workflow-syntax-for-github-actions - - /workflow-commands-for-github-actions - /avoiding-duplication - /reusing-workflows - /required-workflows - - /caching-dependencies-to-speed-up-workflows - - /storing-workflow-data-as-artifacts - /creating-starter-workflows-for-your-organization - - /using-github-cli-in-workflows --- diff --git a/content/actions/writing-workflows/choosing-what-your-workflow-does/adding-scripts-to-your-workflow.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/adding-scripts-to-your-workflow.md new file mode 100644 index 0000000000..d67498211b --- /dev/null +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/adding-scripts-to-your-workflow.md @@ -0,0 +1,59 @@ +--- +title: Adding scripts to your workflow +shortTitle: Add scripts +intro: 'You can use {% data variables.product.prodname_actions %} workflows to run scripts.' +versions: + fpt: '*' + ghes: '*' + ghec: '*' +--- + +You can use a {% data variables.product.prodname_actions %} workflow to run scripts and shell commands, which are then executed on the assigned runner. This example demonstrates how to use the `run` keyword to execute the command `npm install -g bats` on the runner. + +```yaml +jobs: + example-job: + runs-on: ubuntu-latest + steps: + - run: npm install -g bats +``` + +To use a workflow to run a script stored in your repository you must first check out the repository to the runner. Having done this, you can use the `run` keyword to run the script on the runner. The following example runs two scripts, each in a separate job step. The location of the scripts on the runner is specified by setting a default working directory for run commands. For more information, see "[AUTOTITLE](/actions/using-jobs/setting-default-values-for-jobs)." + +```yaml +jobs: + example-job: + runs-on: ubuntu-latest + defaults: + run: + working-directory: ./scripts + steps: + - name: Check out the repository to the runner + uses: {% data reusables.actions.action-checkout %} + - name: Run a script + run: ./my-script.sh + - name: Run another script + run: ./my-other-script.sh +``` + +Any scripts that you want a workflow job to run must be executable. You can do this either within the workflow by passing the script as an argument to the interpreter that will run the script - for example, `run: bash script.sh` - or by making the file itself executable. You can give the file the execute permission by using the command `git update-index --chmod=+x PATH/TO/YOUR/script.sh` locally, then committing and pushing the file to the repository. Alternatively, for workflows that are run on Linux and Mac runners, you can add a command to give the file the execute permission in the workflow job, prior to running the script: + +```yaml +jobs: + example-job: + runs-on: ubuntu-latest + defaults: + run: + working-directory: ./scripts + steps: + - name: Check out the repository to the runner + uses: {% data reusables.actions.action-checkout %} + - name: Make the script files executable + run: chmod +x my-script.sh my-other-script.sh + - name: Run the scripts + run: | + ./my-script.sh + ./my-other-script.sh +``` + +For more information about the `run` keyword, see "[AUTOTITLE](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun)." diff --git a/content/actions/using-jobs/assigning-permissions-to-jobs.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/assigning-permissions-to-jobs.md similarity index 94% rename from content/actions/using-jobs/assigning-permissions-to-jobs.md rename to content/actions/writing-workflows/choosing-what-your-workflow-does/assigning-permissions-to-jobs.md index eb97fdffd1..691240d917 100644 --- a/content/actions/using-jobs/assigning-permissions-to-jobs.md +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/assigning-permissions-to-jobs.md @@ -6,6 +6,8 @@ versions: fpt: '*' ghes: '> 3.1' ghec: '*' +redirect_from: + - /actions/using-jobs/assigning-permissions-to-jobs --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/using-workflows/caching-dependencies-to-speed-up-workflows.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/caching-dependencies-to-speed-up-workflows.md similarity index 99% rename from content/actions/using-workflows/caching-dependencies-to-speed-up-workflows.md rename to content/actions/writing-workflows/choosing-what-your-workflow-does/caching-dependencies-to-speed-up-workflows.md index 064eeb6325..ea455ca382 100644 --- a/content/actions/using-workflows/caching-dependencies-to-speed-up-workflows.md +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/caching-dependencies-to-speed-up-workflows.md @@ -8,6 +8,7 @@ redirect_from: - /actions/configuring-and-managing-workflows/caching-dependencies-to-speed-up-workflows - /actions/guides/caching-dependencies-to-speed-up-workflows - /actions/advanced-guides/caching-dependencies-to-speed-up-workflows + - /actions/using-workflows/caching-dependencies-to-speed-up-workflows versions: feature: actions-caching type: tutorial diff --git a/content/actions/learn-github-actions/contexts.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/contexts.md similarity index 99% rename from content/actions/learn-github-actions/contexts.md rename to content/actions/writing-workflows/choosing-what-your-workflow-does/contexts.md index fddf3655e5..14156bfe42 100644 --- a/content/actions/learn-github-actions/contexts.md +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/contexts.md @@ -8,6 +8,7 @@ redirect_from: - /actions/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions - /actions/reference/contexts-and-expression-syntax-for-github-actions - /actions/reference/context-and-expression-syntax-for-github-actions + - /actions/learn-github-actions/contexts versions: fpt: '*' ghes: '*' diff --git a/content/actions/using-jobs/defining-outputs-for-jobs.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/defining-outputs-for-jobs.md similarity index 82% rename from content/actions/using-jobs/defining-outputs-for-jobs.md rename to content/actions/writing-workflows/choosing-what-your-workflow-does/defining-outputs-for-jobs.md index b0cb5b6838..80c53cae9d 100644 --- a/content/actions/using-jobs/defining-outputs-for-jobs.md +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/defining-outputs-for-jobs.md @@ -6,6 +6,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +redirect_from: + - /actions/using-jobs/defining-outputs-for-jobs --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/learn-github-actions/expressions.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/expressions.md similarity index 99% rename from content/actions/learn-github-actions/expressions.md rename to content/actions/writing-workflows/choosing-what-your-workflow-does/expressions.md index f97f1c2185..5518ebe3c3 100644 --- a/content/actions/learn-github-actions/expressions.md +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/expressions.md @@ -6,6 +6,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +redirect_from: + - /actions/learn-github-actions/expressions --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/learn-github-actions/finding-and-customizing-actions.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/finding-and-customizing-actions.md similarity index 99% rename from content/actions/learn-github-actions/finding-and-customizing-actions.md rename to content/actions/writing-workflows/choosing-what-your-workflow-does/finding-and-customizing-actions.md index 8517a9bef2..40fc194f8c 100644 --- a/content/actions/learn-github-actions/finding-and-customizing-actions.md +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/finding-and-customizing-actions.md @@ -7,6 +7,7 @@ redirect_from: - /actions/automating-your-workflow-with-github-actions/using-actions-from-github-marketplace-in-your-workflow - /actions/getting-started-with-github-actions/using-actions-from-github-marketplace - /actions/getting-started-with-github-actions/using-community-workflows-and-actions + - /actions/learn-github-actions/finding-and-customizing-actions versions: fpt: '*' ghes: '*' diff --git a/content/actions/writing-workflows/choosing-what-your-workflow-does/index.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/index.md new file mode 100644 index 0000000000..48c3734178 --- /dev/null +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/index.md @@ -0,0 +1,29 @@ +--- +title: Choosing what your workflow does +shortTitle: Choose what workflows do +intro: 'Workflows automate tasks in your software development lifecycle. Many tasks that you manually complete can be converted to a {% data variables.product.prodname_actions %} workflow.' +redirect_from: + - /actions/using-jobs +versions: + fpt: '*' + ghes: '*' + ghec: '*' +children: + - /using-jobs-in-a-workflow + - /finding-and-customizing-actions + - /using-github-cli-in-workflows + - /workflow-commands-for-github-actions + - /adding-scripts-to-your-workflow + - /assigning-permissions-to-jobs + - /expressions + - /variables + - /contexts + - /defining-outputs-for-jobs + - /setting-default-values-for-jobs + - /using-environments-for-deployment + - /using-concurrency + - /using-a-matrix-for-your-jobs + - /caching-dependencies-to-speed-up-workflows + - /storing-workflow-data-as-artifacts +--- + diff --git a/content/actions/using-jobs/setting-default-values-for-jobs.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/setting-default-values-for-jobs.md similarity index 92% rename from content/actions/using-jobs/setting-default-values-for-jobs.md rename to content/actions/writing-workflows/choosing-what-your-workflow-does/setting-default-values-for-jobs.md index 97fd482e5a..016d4e60ef 100644 --- a/content/actions/using-jobs/setting-default-values-for-jobs.md +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/setting-default-values-for-jobs.md @@ -6,6 +6,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +redirect_from: + - /actions/using-jobs/setting-default-values-for-jobs --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/using-workflows/storing-workflow-data-as-artifacts.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/storing-workflow-data-as-artifacts.md similarity index 99% rename from content/actions/using-workflows/storing-workflow-data-as-artifacts.md rename to content/actions/writing-workflows/choosing-what-your-workflow-does/storing-workflow-data-as-artifacts.md index 3532188f18..2ae20cf2d6 100644 --- a/content/actions/using-workflows/storing-workflow-data-as-artifacts.md +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/storing-workflow-data-as-artifacts.md @@ -9,6 +9,7 @@ redirect_from: - /actions/configuring-and-managing-workflows/persisting-workflow-data-using-artifacts - /actions/guides/storing-workflow-data-as-artifacts - /actions/advanced-guides/storing-workflow-data-as-artifacts + - /actions/using-workflows/storing-workflow-data-as-artifacts versions: fpt: '*' ghes: '*' diff --git a/content/actions/using-jobs/using-a-matrix-for-your-jobs.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/using-a-matrix-for-your-jobs.md similarity index 96% rename from content/actions/using-jobs/using-a-matrix-for-your-jobs.md rename to content/actions/writing-workflows/choosing-what-your-workflow-does/using-a-matrix-for-your-jobs.md index 5312977ab1..06cfa45261 100644 --- a/content/actions/using-jobs/using-a-matrix-for-your-jobs.md +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/using-a-matrix-for-your-jobs.md @@ -8,6 +8,7 @@ versions: ghec: '*' redirect_from: - /actions/using-jobs/using-a-build-matrix-for-your-jobs + - /actions/using-jobs/using-a-matrix-for-your-jobs --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/using-jobs/using-concurrency.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/using-concurrency.md similarity index 96% rename from content/actions/using-jobs/using-concurrency.md rename to content/actions/writing-workflows/choosing-what-your-workflow-does/using-concurrency.md index 25cef3d7d8..c3fdb1a87d 100644 --- a/content/actions/using-jobs/using-concurrency.md +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/using-concurrency.md @@ -6,6 +6,8 @@ versions: fpt: '*' ghes: '> 3.1' ghec: '*' +redirect_from: + - /actions/using-jobs/using-concurrency --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/using-jobs/using-environments-for-deployment.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/using-environments-for-deployment.md similarity index 94% rename from content/actions/using-jobs/using-environments-for-deployment.md rename to content/actions/writing-workflows/choosing-what-your-workflow-does/using-environments-for-deployment.md index 3ba1ea3d9f..db8b1fa1f3 100644 --- a/content/actions/using-jobs/using-environments-for-deployment.md +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/using-environments-for-deployment.md @@ -8,6 +8,7 @@ versions: ghec: '*' redirect_from: - /actions/using-jobs/using-environments-for-jobs + - /actions/using-jobs/using-environments-for-deployment --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/using-workflows/using-github-cli-in-workflows.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/using-github-cli-in-workflows.md similarity index 97% rename from content/actions/using-workflows/using-github-cli-in-workflows.md rename to content/actions/writing-workflows/choosing-what-your-workflow-does/using-github-cli-in-workflows.md index f243e06081..1f3be5e885 100644 --- a/content/actions/using-workflows/using-github-cli-in-workflows.md +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/using-github-cli-in-workflows.md @@ -5,6 +5,7 @@ intro: 'You can script with {% data variables.product.prodname_cli %} in {% data redirect_from: - /actions/guides/using-github-cli-in-workflows - /actions/advanced-guides/using-github-cli-in-workflows + - /actions/using-workflows/using-github-cli-in-workflows versions: fpt: '*' ghes: '*' diff --git a/content/actions/using-jobs/using-jobs-in-a-workflow.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/using-jobs-in-a-workflow.md similarity index 90% rename from content/actions/using-jobs/using-jobs-in-a-workflow.md rename to content/actions/writing-workflows/choosing-what-your-workflow-does/using-jobs-in-a-workflow.md index ecb0619203..993a032faf 100644 --- a/content/actions/using-jobs/using-jobs-in-a-workflow.md +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/using-jobs-in-a-workflow.md @@ -6,6 +6,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +redirect_from: + - /actions/using-jobs/using-jobs-in-a-workflow --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/learn-github-actions/variables.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/variables.md similarity index 99% rename from content/actions/learn-github-actions/variables.md rename to content/actions/writing-workflows/choosing-what-your-workflow-does/variables.md index 9c0093f80d..4457ade054 100644 --- a/content/actions/learn-github-actions/variables.md +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/variables.md @@ -7,6 +7,7 @@ redirect_from: - /actions/configuring-and-managing-workflows/using-environment-variables - /actions/reference/environment-variables - /actions/learn-github-actions/environment-variables + - /actions/learn-github-actions/variables versions: fpt: '*' ghes: '*' diff --git a/content/actions/using-workflows/workflow-commands-for-github-actions.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions.md similarity index 99% rename from content/actions/using-workflows/workflow-commands-for-github-actions.md rename to content/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions.md index 72d094242d..6e86da7b1a 100644 --- a/content/actions/using-workflows/workflow-commands-for-github-actions.md +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions.md @@ -11,6 +11,7 @@ redirect_from: - /actions/reference/logging-commands-for-github-actions - /actions/reference/workflow-commands-for-github-actions - /actions/learn-github-actions/workflow-commands-for-github-actions + - /actions/using-workflows/workflow-commands-for-github-actions versions: fpt: '*' ghes: '*' diff --git a/content/actions/using-workflows/events-that-trigger-workflows.md b/content/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows.md similarity index 99% rename from content/actions/using-workflows/events-that-trigger-workflows.md rename to content/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows.md index 2833c76dba..0b6e8c8277 100644 --- a/content/actions/using-workflows/events-that-trigger-workflows.md +++ b/content/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows.md @@ -7,6 +7,7 @@ redirect_from: - /actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows - /actions/reference/events-that-trigger-workflows - /actions/learn-github-actions/events-that-trigger-workflows + - /actions/using-workflows/events-that-trigger-workflows versions: fpt: '*' ghes: '*' diff --git a/content/actions/writing-workflows/choosing-when-your-workflow-runs/index.md b/content/actions/writing-workflows/choosing-when-your-workflow-runs/index.md new file mode 100644 index 0000000000..7958c95b08 --- /dev/null +++ b/content/actions/writing-workflows/choosing-when-your-workflow-runs/index.md @@ -0,0 +1,14 @@ +--- +title: Choosing when your workflow runs +shortTitle: Choose when workflows run +intro: You can configure workflows to run on a schedule or to run when certain events happen. +versions: + fpt: '*' + ghes: '*' + ghec: '*' +children: + - /triggering-a-workflow + - /using-conditions-to-control-job-execution + - /events-that-trigger-workflows +--- + diff --git a/content/actions/using-workflows/triggering-a-workflow.md b/content/actions/writing-workflows/choosing-when-your-workflow-runs/triggering-a-workflow.md similarity index 99% rename from content/actions/using-workflows/triggering-a-workflow.md rename to content/actions/writing-workflows/choosing-when-your-workflow-runs/triggering-a-workflow.md index 06b8c049bb..71f27c7e91 100644 --- a/content/actions/using-workflows/triggering-a-workflow.md +++ b/content/actions/writing-workflows/choosing-when-your-workflow-runs/triggering-a-workflow.md @@ -11,6 +11,8 @@ topics: - Workflows - CI - CD +redirect_from: + - /actions/using-workflows/triggering-a-workflow --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/using-jobs/using-conditions-to-control-job-execution.md b/content/actions/writing-workflows/choosing-when-your-workflow-runs/using-conditions-to-control-job-execution.md similarity index 91% rename from content/actions/using-jobs/using-conditions-to-control-job-execution.md rename to content/actions/writing-workflows/choosing-when-your-workflow-runs/using-conditions-to-control-job-execution.md index c76acbfe53..601967794e 100644 --- a/content/actions/using-jobs/using-conditions-to-control-job-execution.md +++ b/content/actions/writing-workflows/choosing-when-your-workflow-runs/using-conditions-to-control-job-execution.md @@ -6,6 +6,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +redirect_from: + - /actions/using-jobs/using-conditions-to-control-job-execution --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/using-jobs/choosing-the-runner-for-a-job.md b/content/actions/writing-workflows/choosing-where-your-workflow-runs/choosing-the-runner-for-a-job.md similarity index 90% rename from content/actions/using-jobs/choosing-the-runner-for-a-job.md rename to content/actions/writing-workflows/choosing-where-your-workflow-runs/choosing-the-runner-for-a-job.md index 0c3b63b66a..ff21f8983b 100644 --- a/content/actions/using-jobs/choosing-the-runner-for-a-job.md +++ b/content/actions/writing-workflows/choosing-where-your-workflow-runs/choosing-the-runner-for-a-job.md @@ -6,6 +6,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +redirect_from: + - /actions/using-jobs/choosing-the-runner-for-a-job --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/writing-workflows/choosing-where-your-workflow-runs/index.md b/content/actions/writing-workflows/choosing-where-your-workflow-runs/index.md new file mode 100644 index 0000000000..1a3a3dd857 --- /dev/null +++ b/content/actions/writing-workflows/choosing-where-your-workflow-runs/index.md @@ -0,0 +1,13 @@ +--- +title: Choosing where your workflow runs +shortTitle: Choose where workflows run +intro: You can specify the compute environment your jobs and workflows run in. +versions: + fpt: '*' + ghes: '*' + ghec: '*' +children: + - /choosing-the-runner-for-a-job + - /running-jobs-in-a-container +--- + diff --git a/content/actions/using-jobs/running-jobs-in-a-container.md b/content/actions/writing-workflows/choosing-where-your-workflow-runs/running-jobs-in-a-container.md similarity index 93% rename from content/actions/using-jobs/running-jobs-in-a-container.md rename to content/actions/writing-workflows/choosing-where-your-workflow-runs/running-jobs-in-a-container.md index 100469bcc4..ee375f636f 100644 --- a/content/actions/using-jobs/running-jobs-in-a-container.md +++ b/content/actions/writing-workflows/choosing-where-your-workflow-runs/running-jobs-in-a-container.md @@ -6,6 +6,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +redirect_from: + - /actions/using-jobs/running-jobs-in-a-container --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/writing-workflows/index.md b/content/actions/writing-workflows/index.md new file mode 100644 index 0000000000..95b0af399b --- /dev/null +++ b/content/actions/writing-workflows/index.md @@ -0,0 +1,19 @@ +--- +title: Writing workflows +shortTitle: Write workflows +intro: '{% data variables.product.prodname_actions %} workflows can automate tasks throughout the software development lifecycle.' +redirect_from: + - /actions/learn-github-actions +versions: + fpt: '*' + ghes: '*' + ghec: '*' +children: + - /quickstart + - /using-starter-workflows + - /choosing-when-your-workflow-runs + - /choosing-where-your-workflow-runs + - /choosing-what-your-workflow-does + - /workflow-syntax-for-github-actions +--- + diff --git a/content/actions/quickstart.md b/content/actions/writing-workflows/quickstart.md similarity index 99% rename from content/actions/quickstart.md rename to content/actions/writing-workflows/quickstart.md index b196cb476e..914060af90 100644 --- a/content/actions/quickstart.md +++ b/content/actions/writing-workflows/quickstart.md @@ -4,6 +4,7 @@ intro: 'Try out the features of {% data variables.product.prodname_actions %} in allowTitleToDifferFromFilename: true redirect_from: - /actions/getting-started-with-github-actions/starting-with-preconfigured-workflow-templates + - /actions/quickstart versions: fpt: '*' ghes: '*' diff --git a/content/actions/learn-github-actions/using-starter-workflows.md b/content/actions/writing-workflows/using-starter-workflows.md similarity index 98% rename from content/actions/learn-github-actions/using-starter-workflows.md rename to content/actions/writing-workflows/using-starter-workflows.md index a70df4b808..96ba862288 100644 --- a/content/actions/learn-github-actions/using-starter-workflows.md +++ b/content/actions/writing-workflows/using-starter-workflows.md @@ -10,6 +10,7 @@ redirect_from: - /actions/guides/setting-up-continuous-integration-using-workflow-templates - /actions/learn-github-actions/using-workflow-templates - /actions/using-workflows/using-starter-workflows + - /actions/learn-github-actions/using-starter-workflows versions: fpt: '*' ghes: '*' diff --git a/content/actions/using-workflows/workflow-syntax-for-github-actions.md b/content/actions/writing-workflows/workflow-syntax-for-github-actions.md similarity index 99% rename from content/actions/using-workflows/workflow-syntax-for-github-actions.md rename to content/actions/writing-workflows/workflow-syntax-for-github-actions.md index 0350093bb8..a0d3cc4702 100644 --- a/content/actions/using-workflows/workflow-syntax-for-github-actions.md +++ b/content/actions/writing-workflows/workflow-syntax-for-github-actions.md @@ -8,6 +8,7 @@ redirect_from: - /actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions - /actions/reference/workflow-syntax-for-github-actions - /actions/learn-github-actions/workflow-syntax-for-github-actions + - /actions/using-workflows/workflow-syntax-for-github-actions versions: fpt: '*' ghes: '*' @@ -683,7 +684,7 @@ Using the `working-directory` keyword, you can specify the working directory of Alternatively, you can specify a default working directory for all `run` steps in a job, or for all `run` steps in the entire workflow. For more information, see "[`defaults.run.working-directory`](/actions/using-workflows/workflow-syntax-for-github-actions#defaultsrunworking-directory)" and "[`jobs..defaults.run.working-directory`](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_iddefaultsrunworking-directory)." -You can also use a `run` step to run a script. For more information, see "[AUTOTITLE](/actions/learn-github-actions/essential-features-of-github-actions#adding-scripts-to-your-workflow)." +You can also use a `run` step to run a script. For more information, see "[AUTOTITLE](/actions/writing-workflows/choosing-what-your-workflow-does/adding-scripts-to-your-workflow)." ## `jobs..steps[*].shell` diff --git a/content/github-cli/index.md b/content/github-cli/index.md index ad85a790f2..122f56226c 100644 --- a/content/github-cli/index.md +++ b/content/github-cli/index.md @@ -16,7 +16,7 @@ featuredLinks: startHere: - /github-cli/github-cli/creating-github-cli-extensions - /github-cli/github-cli/using-github-cli-extensions - - /actions/using-workflows/using-github-cli-in-workflows + - /actions/writing-workflows/choosing-what-your-workflow-does/using-github-cli-in-workflows - /codespaces/developing-in-a-codespace/using-github-codespaces-with-github-cli popular: - /pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request diff --git a/data/learning-tracks/actions.yml b/data/learning-tracks/actions.yml index 987df03fa5..18572ec136 100644 --- a/data/learning-tracks/actions.yml +++ b/data/learning-tracks/actions.yml @@ -4,9 +4,8 @@ getting_started: Discover the possibilities of {% data variables.product.prodname_actions %} by creating your first workflow. guides: - - /actions/learn-github-actions/understanding-github-actions - - /actions/learn-github-actions/finding-and-customizing-actions - - /actions/learn-github-actions/essential-features-of-github-actions + - /actions/about-github-actions/understanding-github-actions + - /actions/writing-workflows/choosing-what-your-workflow-does/finding-and-customizing-actions - /actions/using-workflows/about-workflows - /actions/using-workflows/reusing-workflows - /actions/security-guides/security-hardening-for-github-actions @@ -20,7 +19,7 @@ adopting_github_actions_for_your_enterprise_ghec: guides: - >- /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises - - /actions/learn-github-actions/understanding-github-actions + - /actions/about-github-actions/understanding-github-actions - >- /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise - >- @@ -40,7 +39,7 @@ adopting_github_actions_for_your_enterprise_ghes: guides: - >- /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises - - /actions/learn-github-actions/understanding-github-actions + - /actions/about-github-actions/understanding-github-actions - >- /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise - >- diff --git a/data/learning-tracks/admin.yml b/data/learning-tracks/admin.yml index 9e45e9be23..c6a881a8fe 100644 --- a/data/learning-tracks/admin.yml +++ b/data/learning-tracks/admin.yml @@ -43,7 +43,7 @@ adopting_github_actions_for_your_enterprise_ghec: guides: - >- /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises - - /actions/learn-github-actions/understanding-github-actions + - /actions/about-github-actions/understanding-github-actions - >- /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise - >- @@ -63,7 +63,7 @@ adopting_github_actions_for_your_enterprise_ghes: guides: - >- /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises - - /actions/learn-github-actions/understanding-github-actions + - /actions/about-github-actions/understanding-github-actions - >- /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise - >- From 0555b581d346c0952926b6cd37a311b14660333a Mon Sep 17 00:00:00 2001 From: Siara <108543037+SiaraMist@users.noreply.github.com> Date: Tue, 30 Jul 2024 15:52:02 -0700 Subject: [PATCH 15/17] Relocate articles into a new "Managing workflow runs and deployments" category (#51797) --- .../administering-github-actions/index.md | 1 - content/actions/deployment/index.md | 2 -- .../managing-your-deployments/index.md | 12 --------- .../protecting-deployments/index.md | 13 --------- content/actions/index.md | 2 +- .../index.md | 21 +++++++++++++++ ...ring-custom-deployment-protection-rules.md | 2 ++ ...ting-custom-deployment-protection-rules.md | 2 ++ .../managing-deployments/index.md | 19 +++++++++++++ .../managing-environments-for-deployment.md | 1 + .../reviewing-deployments.md | 2 ++ .../viewing-deployment-history.md | 1 + ...roving-workflow-runs-from-private-forks.md | 2 ++ ...proving-workflow-runs-from-public-forks.md | 2 ++ .../canceling-a-workflow.md | 2 ++ .../deleting-a-workflow-run.md | 2 ++ .../disabling-and-enabling-a-workflow.md | 1 + .../downloading-workflow-artifacts.md | 2 ++ .../managing-workflow-runs/index.md | 21 +++++++++++++++ .../manually-running-a-workflow.md | 1 + .../re-running-workflows-and-jobs.md | 1 + .../removing-workflow-artifacts.md | 2 ++ .../skipping-workflow-runs.md | 2 ++ .../actions/managing-workflow-runs/index.md | 27 ------------------- content/actions/using-workflows/index.md | 2 -- 25 files changed, 87 insertions(+), 58 deletions(-) delete mode 100644 content/actions/deployment/managing-your-deployments/index.md delete mode 100644 content/actions/deployment/protecting-deployments/index.md create mode 100644 content/actions/managing-workflow-runs-and-deployments/index.md rename content/actions/{deployment/protecting-deployments => managing-workflow-runs-and-deployments/managing-deployments}/configuring-custom-deployment-protection-rules.md (97%) rename content/actions/{deployment/protecting-deployments => managing-workflow-runs-and-deployments/managing-deployments}/creating-custom-deployment-protection-rules.md (98%) create mode 100644 content/actions/managing-workflow-runs-and-deployments/managing-deployments/index.md rename content/actions/{administering-github-actions => managing-workflow-runs-and-deployments/managing-deployments}/managing-environments-for-deployment.md (99%) rename content/actions/{managing-workflow-runs => managing-workflow-runs-and-deployments/managing-deployments}/reviewing-deployments.md (97%) rename content/actions/{deployment/managing-your-deployments => managing-workflow-runs-and-deployments/managing-deployments}/viewing-deployment-history.md (98%) rename content/actions/{ => managing-workflow-runs-and-deployments}/managing-workflow-runs/approving-workflow-runs-from-private-forks.md (89%) rename content/actions/{ => managing-workflow-runs-and-deployments}/managing-workflow-runs/approving-workflow-runs-from-public-forks.md (93%) rename content/actions/{ => managing-workflow-runs-and-deployments}/managing-workflow-runs/canceling-a-workflow.md (97%) rename content/actions/{ => managing-workflow-runs-and-deployments}/managing-workflow-runs/deleting-a-workflow-run.md (92%) rename content/actions/{using-workflows => managing-workflow-runs-and-deployments/managing-workflow-runs}/disabling-and-enabling-a-workflow.md (98%) rename content/actions/{ => managing-workflow-runs-and-deployments}/managing-workflow-runs/downloading-workflow-artifacts.md (97%) create mode 100644 content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/index.md rename content/actions/{using-workflows => managing-workflow-runs-and-deployments/managing-workflow-runs}/manually-running-a-workflow.md (98%) rename content/actions/{ => managing-workflow-runs-and-deployments}/managing-workflow-runs/re-running-workflows-and-jobs.md (99%) rename content/actions/{ => managing-workflow-runs-and-deployments}/managing-workflow-runs/removing-workflow-artifacts.md (96%) rename content/actions/{ => managing-workflow-runs-and-deployments}/managing-workflow-runs/skipping-workflow-runs.md (96%) delete mode 100644 content/actions/managing-workflow-runs/index.md diff --git a/content/actions/administering-github-actions/index.md b/content/actions/administering-github-actions/index.md index 0409446d4a..bfd9579642 100644 --- a/content/actions/administering-github-actions/index.md +++ b/content/actions/administering-github-actions/index.md @@ -10,6 +10,5 @@ children: - /usage-limits-billing-and-administration - /viewing-github-actions-usage-metrics-for-your-organization - /sharing-workflows-secrets-and-runners-with-your-organization - - /managing-environments-for-deployment --- diff --git a/content/actions/deployment/index.md b/content/actions/deployment/index.md index 3498ad6166..63dfcab8e2 100644 --- a/content/actions/deployment/index.md +++ b/content/actions/deployment/index.md @@ -10,8 +10,6 @@ children: - /about-deployments - /deploying-to-your-cloud-provider - /security-hardening-your-deployments - - /protecting-deployments - - /managing-your-deployments - /deploying-xcode-applications --- diff --git a/content/actions/deployment/managing-your-deployments/index.md b/content/actions/deployment/managing-your-deployments/index.md deleted file mode 100644 index b1298fd47b..0000000000 --- a/content/actions/deployment/managing-your-deployments/index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Managing your deployments -shortTitle: Manage your deployments -intro: You can review the past activity of your deployments. -versions: - fpt: '*' - ghes: '*' - ghec: '*' -children: - - /viewing-deployment-history ---- - diff --git a/content/actions/deployment/protecting-deployments/index.md b/content/actions/deployment/protecting-deployments/index.md deleted file mode 100644 index 1070fd517e..0000000000 --- a/content/actions/deployment/protecting-deployments/index.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Protecting your deployments with custom deployment protection rules -shortTitle: Protect deployments -intro: You can create and configure custom deployment protection rules to approve or reject deployments across environments with more control and confidence. -versions: - fpt: '*' - ghec: '*' - ghes: '*' -children: - - /creating-custom-deployment-protection-rules - - /configuring-custom-deployment-protection-rules ---- - diff --git a/content/actions/index.md b/content/actions/index.md index 9c3960e085..334021322d 100644 --- a/content/actions/index.md +++ b/content/actions/index.md @@ -46,7 +46,7 @@ children: - /examples - /writing-workflows - /using-workflows - - /managing-workflow-runs + - /managing-workflow-runs-and-deployments - /automating-builds-and-tests - /deployment - /using-containerized-services diff --git a/content/actions/managing-workflow-runs-and-deployments/index.md b/content/actions/managing-workflow-runs-and-deployments/index.md new file mode 100644 index 0000000000..96d0567b74 --- /dev/null +++ b/content/actions/managing-workflow-runs-and-deployments/index.md @@ -0,0 +1,21 @@ +--- +title: Managing workflow runs and deployments +shortTitle: Manage workflows and deployments +intro: '{% data variables.product.prodname_dotcom %} enables you to have control over your workflow runs and deployments.' +redirect_from: + - /actions/configuring-and-managing-workflows/managing-a-workflow-run + - /articles/managing-a-workflow-run + - /github/automating-your-workflow-with-github-actions/managing-a-workflow-run + - /actions/automating-your-workflow-with-github-actions/managing-a-workflow-run + - /actions/configuring-and-managing-workflows/configuring-and-managing-workflow-files-and-runs + - /actions/managing-workflow-runs +versions: + fpt: '*' + ghes: '*' + ghec: '*' +children: + - /managing-workflow-runs + - /managing-deployments +--- + +{% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/deployment/protecting-deployments/configuring-custom-deployment-protection-rules.md b/content/actions/managing-workflow-runs-and-deployments/managing-deployments/configuring-custom-deployment-protection-rules.md similarity index 97% rename from content/actions/deployment/protecting-deployments/configuring-custom-deployment-protection-rules.md rename to content/actions/managing-workflow-runs-and-deployments/managing-deployments/configuring-custom-deployment-protection-rules.md index 0300604d29..1e0ed34c1f 100644 --- a/content/actions/deployment/protecting-deployments/configuring-custom-deployment-protection-rules.md +++ b/content/actions/managing-workflow-runs-and-deployments/managing-deployments/configuring-custom-deployment-protection-rules.md @@ -11,6 +11,8 @@ topics: - Actions - CD - Deployment +redirect_from: + - /actions/deployment/protecting-deployments/configuring-custom-deployment-protection-rules --- {% data reusables.actions.custom-deployment-protection-rules-beta-note %} diff --git a/content/actions/deployment/protecting-deployments/creating-custom-deployment-protection-rules.md b/content/actions/managing-workflow-runs-and-deployments/managing-deployments/creating-custom-deployment-protection-rules.md similarity index 98% rename from content/actions/deployment/protecting-deployments/creating-custom-deployment-protection-rules.md rename to content/actions/managing-workflow-runs-and-deployments/managing-deployments/creating-custom-deployment-protection-rules.md index a6ee0ac634..21ae0fdce8 100644 --- a/content/actions/deployment/protecting-deployments/creating-custom-deployment-protection-rules.md +++ b/content/actions/managing-workflow-runs-and-deployments/managing-deployments/creating-custom-deployment-protection-rules.md @@ -11,6 +11,8 @@ topics: - Actions - CD - Deployment +redirect_from: + - /actions/deployment/protecting-deployments/creating-custom-deployment-protection-rules --- {% data reusables.actions.custom-deployment-protection-rules-beta-note %} diff --git a/content/actions/managing-workflow-runs-and-deployments/managing-deployments/index.md b/content/actions/managing-workflow-runs-and-deployments/managing-deployments/index.md new file mode 100644 index 0000000000..086e954c72 --- /dev/null +++ b/content/actions/managing-workflow-runs-and-deployments/managing-deployments/index.md @@ -0,0 +1,19 @@ +--- +title: Managing deployments +shortTitle: Manage deployments +intro: 'View your deployment history and configure rules to protect your deployments.' +redirect_from: + - /actions/deployment/managing-your-deployments + - /actions/deployment/protecting-deployments +versions: + fpt: '*' + ghes: '*' + ghec: '*' +children: + - /viewing-deployment-history + - /managing-environments-for-deployment + - /reviewing-deployments + - /creating-custom-deployment-protection-rules + - /configuring-custom-deployment-protection-rules +--- + diff --git a/content/actions/administering-github-actions/managing-environments-for-deployment.md b/content/actions/managing-workflow-runs-and-deployments/managing-deployments/managing-environments-for-deployment.md similarity index 99% rename from content/actions/administering-github-actions/managing-environments-for-deployment.md rename to content/actions/managing-workflow-runs-and-deployments/managing-deployments/managing-environments-for-deployment.md index 2773e58dc5..6adc0d591b 100644 --- a/content/actions/administering-github-actions/managing-environments-for-deployment.md +++ b/content/actions/managing-workflow-runs-and-deployments/managing-deployments/managing-environments-for-deployment.md @@ -11,6 +11,7 @@ redirect_from: - /actions/deployment/targeting-different-environments/using-environments-for-deployment - /actions/deployment/targeting-different-environments - /actions/deployment/targeting-different-environments/managing-environments-for-deployment + - /actions/administering-github-actions/managing-environments-for-deployment topics: - CD - Deployment diff --git a/content/actions/managing-workflow-runs/reviewing-deployments.md b/content/actions/managing-workflow-runs-and-deployments/managing-deployments/reviewing-deployments.md similarity index 97% rename from content/actions/managing-workflow-runs/reviewing-deployments.md rename to content/actions/managing-workflow-runs-and-deployments/managing-deployments/reviewing-deployments.md index e521136bf3..87295e370a 100644 --- a/content/actions/managing-workflow-runs/reviewing-deployments.md +++ b/content/actions/managing-workflow-runs-and-deployments/managing-deployments/reviewing-deployments.md @@ -7,6 +7,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +redirect_from: + - /actions/managing-workflow-runs/reviewing-deployments --- diff --git a/content/actions/deployment/managing-your-deployments/viewing-deployment-history.md b/content/actions/managing-workflow-runs-and-deployments/managing-deployments/viewing-deployment-history.md similarity index 98% rename from content/actions/deployment/managing-your-deployments/viewing-deployment-history.md rename to content/actions/managing-workflow-runs-and-deployments/managing-deployments/viewing-deployment-history.md index 95da372314..06bc83c6cb 100644 --- a/content/actions/deployment/managing-your-deployments/viewing-deployment-history.md +++ b/content/actions/managing-workflow-runs-and-deployments/managing-deployments/viewing-deployment-history.md @@ -11,6 +11,7 @@ topics: redirect_from: - /developers/overview/viewing-deployment-history - /actions/deployment/viewing-deployment-history + - /actions/deployment/managing-your-deployments/viewing-deployment-history --- {% ifversion actions-deployment-history-beta %} diff --git a/content/actions/managing-workflow-runs/approving-workflow-runs-from-private-forks.md b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/approving-workflow-runs-from-private-forks.md similarity index 89% rename from content/actions/managing-workflow-runs/approving-workflow-runs-from-private-forks.md rename to content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/approving-workflow-runs-from-private-forks.md index 09d136909e..83b30cf0fa 100644 --- a/content/actions/managing-workflow-runs/approving-workflow-runs-from-private-forks.md +++ b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/approving-workflow-runs-from-private-forks.md @@ -5,6 +5,8 @@ permissions: Maintainers with write access to a repository can approve workflow versions: feature: actions-private-fork-workflow-approvals shortTitle: Approve private fork runs +redirect_from: + - /actions/managing-workflow-runs/approving-workflow-runs-from-private-forks --- ## About workflow runs from private forks diff --git a/content/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks.md b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/approving-workflow-runs-from-public-forks.md similarity index 93% rename from content/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks.md rename to content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/approving-workflow-runs-from-public-forks.md index a706c1c012..ee2a5befa3 100644 --- a/content/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks.md +++ b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/approving-workflow-runs-from-public-forks.md @@ -5,6 +5,8 @@ versions: fpt: '*' ghec: '*' shortTitle: Approve public fork runs +redirect_from: + - /actions/managing-workflow-runs/approving-workflow-runs-from-public-forks --- ## About workflow runs from public forks diff --git a/content/actions/managing-workflow-runs/canceling-a-workflow.md b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/canceling-a-workflow.md similarity index 97% rename from content/actions/managing-workflow-runs/canceling-a-workflow.md rename to content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/canceling-a-workflow.md index efbd3b1700..6a3a6d2bd0 100644 --- a/content/actions/managing-workflow-runs/canceling-a-workflow.md +++ b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/canceling-a-workflow.md @@ -6,6 +6,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +redirect_from: + - /actions/managing-workflow-runs/canceling-a-workflow --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/managing-workflow-runs/deleting-a-workflow-run.md b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/deleting-a-workflow-run.md similarity index 92% rename from content/actions/managing-workflow-runs/deleting-a-workflow-run.md rename to content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/deleting-a-workflow-run.md index 843c22315e..d718fb0f81 100644 --- a/content/actions/managing-workflow-runs/deleting-a-workflow-run.md +++ b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/deleting-a-workflow-run.md @@ -6,6 +6,8 @@ versions: fpt: '*' ghes: '*' ghec: '*' +redirect_from: + - /actions/managing-workflow-runs/deleting-a-workflow-run --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/using-workflows/disabling-and-enabling-a-workflow.md b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/disabling-and-enabling-a-workflow.md similarity index 98% rename from content/actions/using-workflows/disabling-and-enabling-a-workflow.md rename to content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/disabling-and-enabling-a-workflow.md index c9b5d51c0e..6219e13dd8 100644 --- a/content/actions/using-workflows/disabling-and-enabling-a-workflow.md +++ b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/disabling-and-enabling-a-workflow.md @@ -8,6 +8,7 @@ versions: shortTitle: Disable & enable a workflow redirect_from: - /actions/managing-workflow-runs/disabling-and-enabling-a-workflow + - /actions/using-workflows/disabling-and-enabling-a-workflow --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/managing-workflow-runs/downloading-workflow-artifacts.md b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/downloading-workflow-artifacts.md similarity index 97% rename from content/actions/managing-workflow-runs/downloading-workflow-artifacts.md rename to content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/downloading-workflow-artifacts.md index 9adb2e4eec..fc2fb9f820 100644 --- a/content/actions/managing-workflow-runs/downloading-workflow-artifacts.md +++ b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/downloading-workflow-artifacts.md @@ -7,6 +7,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Download workflow artifacts +redirect_from: + - /actions/managing-workflow-runs/downloading-workflow-artifacts --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/index.md b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/index.md new file mode 100644 index 0000000000..4804327b0c --- /dev/null +++ b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/index.md @@ -0,0 +1,21 @@ +--- +title: Managing workflow runs +shortTitle: Manage workflow runs +intro: 'You can manually interact with workflow runs to ensure they run effectively.' +versions: + fpt: '*' + ghes: '*' + ghec: '*' +children: + - /manually-running-a-workflow + - /re-running-workflows-and-jobs + - /canceling-a-workflow + - /disabling-and-enabling-a-workflow + - /skipping-workflow-runs + - /deleting-a-workflow-run + - /downloading-workflow-artifacts + - /removing-workflow-artifacts + - /approving-workflow-runs-from-public-forks + - /approving-workflow-runs-from-private-forks +--- + diff --git a/content/actions/using-workflows/manually-running-a-workflow.md b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/manually-running-a-workflow.md similarity index 98% rename from content/actions/using-workflows/manually-running-a-workflow.md rename to content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/manually-running-a-workflow.md index 6eac414118..291ae42af5 100644 --- a/content/actions/using-workflows/manually-running-a-workflow.md +++ b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/manually-running-a-workflow.md @@ -8,6 +8,7 @@ versions: shortTitle: Manually run a workflow redirect_from: - /actions/managing-workflow-runs/manually-running-a-workflow + - /actions/using-workflows/manually-running-a-workflow --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/managing-workflow-runs/re-running-workflows-and-jobs.md b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/re-running-workflows-and-jobs.md similarity index 99% rename from content/actions/managing-workflow-runs/re-running-workflows-and-jobs.md rename to content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/re-running-workflows-and-jobs.md index 75324b16a3..20e2e72002 100644 --- a/content/actions/managing-workflow-runs/re-running-workflows-and-jobs.md +++ b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/re-running-workflows-and-jobs.md @@ -5,6 +5,7 @@ intro: 'You can re-run a workflow run{% ifversion re-run-jobs %}, all failed job permissions: People with write permissions to a repository can re-run workflows in the repository. redirect_from: - /actions/managing-workflow-runs/re-running-a-workflow + - /actions/managing-workflow-runs/re-running-workflows-and-jobs versions: fpt: '*' ghes: '*' diff --git a/content/actions/managing-workflow-runs/removing-workflow-artifacts.md b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/removing-workflow-artifacts.md similarity index 96% rename from content/actions/managing-workflow-runs/removing-workflow-artifacts.md rename to content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/removing-workflow-artifacts.md index 9d34ecc2e6..7dd813db73 100644 --- a/content/actions/managing-workflow-runs/removing-workflow-artifacts.md +++ b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/removing-workflow-artifacts.md @@ -6,6 +6,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Remove workflow artifacts +redirect_from: + - /actions/managing-workflow-runs/removing-workflow-artifacts --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/managing-workflow-runs/skipping-workflow-runs.md b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/skipping-workflow-runs.md similarity index 96% rename from content/actions/managing-workflow-runs/skipping-workflow-runs.md rename to content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/skipping-workflow-runs.md index 913e992440..3f1d4421ae 100644 --- a/content/actions/managing-workflow-runs/skipping-workflow-runs.md +++ b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/skipping-workflow-runs.md @@ -6,6 +6,8 @@ versions: ghes: '*' ghec: '*' shortTitle: Skip workflow runs +redirect_from: + - /actions/managing-workflow-runs/skipping-workflow-runs --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/managing-workflow-runs/index.md b/content/actions/managing-workflow-runs/index.md deleted file mode 100644 index 3230055a3b..0000000000 --- a/content/actions/managing-workflow-runs/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: Managing workflow runs -shortTitle: Manage workflow runs -intro: 'You can re-run or cancel a workflow, {% ifversion fpt or ghes %}review deployments, {% endif %}view billable job execution minutes, and download artifacts.' -redirect_from: - - /actions/configuring-and-managing-workflows/managing-a-workflow-run - - /articles/managing-a-workflow-run - - /github/automating-your-workflow-with-github-actions/managing-a-workflow-run - - /actions/automating-your-workflow-with-github-actions/managing-a-workflow-run - - /actions/configuring-and-managing-workflows/configuring-and-managing-workflow-files-and-runs -versions: - fpt: '*' - ghes: '*' - ghec: '*' -children: - - /re-running-workflows-and-jobs - - /canceling-a-workflow - - /approving-workflow-runs-from-public-forks - - /approving-workflow-runs-from-private-forks - - /reviewing-deployments - - /skipping-workflow-runs - - /deleting-a-workflow-run - - /downloading-workflow-artifacts - - /removing-workflow-artifacts ---- - -{% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/using-workflows/index.md b/content/actions/using-workflows/index.md index 91da7eefdc..f644c6c945 100644 --- a/content/actions/using-workflows/index.md +++ b/content/actions/using-workflows/index.md @@ -21,8 +21,6 @@ versions: ghec: '*' children: - /about-workflows - - /manually-running-a-workflow - - /disabling-and-enabling-a-workflow - /avoiding-duplication - /reusing-workflows - /required-workflows From 69d37098b504151ced95c89f54447c5e46e8f0ec Mon Sep 17 00:00:00 2001 From: Siara <108543037+SiaraMist@users.noreply.github.com> Date: Tue, 30 Jul 2024 16:15:24 -0700 Subject: [PATCH 16/17] Relocate articles into a new "Security" category (#51809) --- content/actions/deployment/index.md | 1 - content/actions/guides.md | 1 - content/actions/index.md | 7 +------ .../actions/security-for-github-actions/index.md | 15 +++++++++++++++ .../automatic-token-authentication.md | 1 + .../security-guides/index.md | 6 +----- .../security-hardening-for-github-actions.md | 1 + ...atures-to-secure-your-use-of-github-actions.md | 2 ++ .../using-secrets-in-github-actions.md | 1 + ...bout-security-hardening-with-openid-connect.md | 2 ++ ...uring-openid-connect-in-amazon-web-services.md | 2 ++ .../configuring-openid-connect-in-azure.md | 2 ++ ...nfiguring-openid-connect-in-cloud-providers.md | 2 ++ ...ing-openid-connect-in-google-cloud-platform.md | 2 ++ ...nfiguring-openid-connect-in-hashicorp-vault.md | 2 ++ .../configuring-openid-connect-in-jfrog.md | 2 ++ .../configuring-openid-connect-in-pypi.md | 2 ++ .../security-hardening-your-deployments/index.md | 7 +++++-- ...sing-openid-connect-with-reusable-workflows.md | 1 + ...ions-with-a-kubernetes-admission-controller.md | 4 +++- .../using-artifact-attestations/index.md | 15 +++++++++++++++ ...-workflows-to-achieve-slsa-v1-build-level-3.md | 8 ++++---- ...stations-to-establish-provenance-for-builds.md | 4 +++- .../verifying-attestations-offline.md | 2 ++ data/learning-tracks/actions.yml | 6 +++--- data/learning-tracks/admin.yml | 4 ++-- src/frame/tests/secure-files.js | 3 +-- 27 files changed, 77 insertions(+), 28 deletions(-) create mode 100644 content/actions/security-for-github-actions/index.md rename content/actions/{ => security-for-github-actions}/security-guides/automatic-token-authentication.md (99%) rename content/actions/{ => security-for-github-actions}/security-guides/index.md (59%) rename content/actions/{ => security-for-github-actions}/security-guides/security-hardening-for-github-actions.md (99%) rename content/actions/{ => security-for-github-actions}/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions.md (98%) rename content/actions/{ => security-for-github-actions}/security-guides/using-secrets-in-github-actions.md (99%) rename content/actions/{deployment => security-for-github-actions}/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md (99%) rename content/actions/{deployment => security-for-github-actions}/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md (98%) rename content/actions/{deployment => security-for-github-actions}/security-hardening-your-deployments/configuring-openid-connect-in-azure.md (97%) rename content/actions/{deployment => security-for-github-actions}/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md (98%) rename content/actions/{deployment => security-for-github-actions}/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform.md (97%) rename content/actions/{deployment => security-for-github-actions}/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md (98%) rename content/actions/{deployment => security-for-github-actions}/security-hardening-your-deployments/configuring-openid-connect-in-jfrog.md (97%) rename content/actions/{deployment => security-for-github-actions}/security-hardening-your-deployments/configuring-openid-connect-in-pypi.md (97%) rename content/actions/{deployment => security-for-github-actions}/security-hardening-your-deployments/index.md (89%) rename content/actions/{deployment => security-for-github-actions}/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows.md (98%) rename content/actions/{security-guides => security-for-github-actions/using-artifact-attestations}/enforcing-artifact-attestations-with-a-kubernetes-admission-controller.md (97%) create mode 100644 content/actions/security-for-github-actions/using-artifact-attestations/index.md rename content/actions/{security-guides => security-for-github-actions/using-artifact-attestations}/using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3.md (92%) rename content/actions/{security-guides => security-for-github-actions/using-artifact-attestations}/using-artifact-attestations-to-establish-provenance-for-builds.md (97%) rename content/actions/{security-guides => security-for-github-actions/using-artifact-attestations}/verifying-attestations-offline.md (97%) diff --git a/content/actions/deployment/index.md b/content/actions/deployment/index.md index 63dfcab8e2..ac7cf5de13 100644 --- a/content/actions/deployment/index.md +++ b/content/actions/deployment/index.md @@ -9,7 +9,6 @@ versions: children: - /about-deployments - /deploying-to-your-cloud-provider - - /security-hardening-your-deployments - /deploying-xcode-applications --- diff --git a/content/actions/guides.md b/content/actions/guides.md index 0060d45e3c..41a78ab25a 100644 --- a/content/actions/guides.md +++ b/content/actions/guides.md @@ -41,7 +41,6 @@ includeGuides: - /actions/using-containerized-services/creating-postgresql-service-containers - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-amazon-elastic-container-service - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-google-kubernetes-engine - - /actions/security-guides/security-hardening-for-github-actions - /actions/creating-actions/about-custom-actions - /actions/creating-actions/creating-a-javascript-action - /actions/creating-actions/creating-a-composite-action diff --git a/content/actions/index.md b/content/actions/index.md index 334021322d..cc5e03f7f0 100644 --- a/content/actions/index.md +++ b/content/actions/index.md @@ -21,11 +21,6 @@ featuredLinks: - /actions/writing-workflows/workflow-syntax-for-github-actions - /actions/writing-workflows - /actions/examples - - /actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows - - /actions/writing-workflows/choosing-what-your-workflow-does/contexts - - /actions/writing-workflows/choosing-what-your-workflow-does/expressions - - /actions/writing-workflows/choosing-what-your-workflow-does/variables - - /actions/security-guides/using-secrets-in-github-actions changelog: label: actions redirect_from: @@ -56,7 +51,7 @@ children: - /monitoring-and-troubleshooting-workflows - /using-github-hosted-runners - /hosting-your-own-runners - - /security-guides + - /security-for-github-actions - /creating-actions - /administering-github-actions - /guides diff --git a/content/actions/security-for-github-actions/index.md b/content/actions/security-for-github-actions/index.md new file mode 100644 index 0000000000..05ce0005e6 --- /dev/null +++ b/content/actions/security-for-github-actions/index.md @@ -0,0 +1,15 @@ +--- +title: Security for GitHub Actions +shortTitle: Security +intro: 'Use security best practices with {% data variables.product.prodname_actions %}, and use {% data variables.product.prodname_actions %} to improve the security of your software supply chain.' +redirect_from: + - /actions/security-guides +versions: + fpt: '*' + ghes: '*' + ghec: '*' +children: + - /security-guides + - /using-artifact-attestations + - /security-hardening-your-deployments +--- \ No newline at end of file diff --git a/content/actions/security-guides/automatic-token-authentication.md b/content/actions/security-for-github-actions/security-guides/automatic-token-authentication.md similarity index 99% rename from content/actions/security-guides/automatic-token-authentication.md rename to content/actions/security-for-github-actions/security-guides/automatic-token-authentication.md index 5742eec505..6061fe8b34 100644 --- a/content/actions/security-guides/automatic-token-authentication.md +++ b/content/actions/security-for-github-actions/security-guides/automatic-token-authentication.md @@ -6,6 +6,7 @@ redirect_from: - /actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token - /actions/configuring-and-managing-workflows/authenticating-with-the-github_token - /actions/reference/authentication-in-a-workflow + - /actions/security-guides/automatic-token-authentication versions: fpt: '*' ghes: '*' diff --git a/content/actions/security-guides/index.md b/content/actions/security-for-github-actions/security-guides/index.md similarity index 59% rename from content/actions/security-guides/index.md rename to content/actions/security-for-github-actions/security-guides/index.md index 9a70b44b61..4de1b09b3d 100644 --- a/content/actions/security-guides/index.md +++ b/content/actions/security-for-github-actions/security-guides/index.md @@ -9,11 +9,7 @@ versions: children: - /security-hardening-for-github-actions - /using-secrets-in-github-actions - - /using-githubs-security-features-to-secure-your-use-of-github-actions - /automatic-token-authentication - - /using-artifact-attestations-to-establish-provenance-for-builds - - /enforcing-artifact-attestations-with-a-kubernetes-admission-controller - - /using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3 - - /verifying-attestations-offline + - /using-githubs-security-features-to-secure-your-use-of-github-actions --- diff --git a/content/actions/security-guides/security-hardening-for-github-actions.md b/content/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions.md similarity index 99% rename from content/actions/security-guides/security-hardening-for-github-actions.md rename to content/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions.md index 12aa6e17c2..1422e783f0 100644 --- a/content/actions/security-guides/security-hardening-for-github-actions.md +++ b/content/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions.md @@ -5,6 +5,7 @@ intro: 'Good security practices for using {% data variables.product.prodname_act redirect_from: - /actions/getting-started-with-github-actions/security-hardening-for-github-actions - /actions/learn-github-actions/security-hardening-for-github-actions + - /actions/security-guides/security-hardening-for-github-actions versions: fpt: '*' ghes: '*' diff --git a/content/actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions.md b/content/actions/security-for-github-actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions.md similarity index 98% rename from content/actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions.md rename to content/actions/security-for-github-actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions.md index f24626c0e2..ef600c9e54 100644 --- a/content/actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions.md +++ b/content/actions/security-for-github-actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions.md @@ -6,6 +6,8 @@ versions: ghes: '*' ghec: '*' shortTitle: GitHub security features +redirect_from: + - /actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions --- ## About {% data variables.product.prodname_dotcom %}'s security features diff --git a/content/actions/security-guides/using-secrets-in-github-actions.md b/content/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions.md similarity index 99% rename from content/actions/security-guides/using-secrets-in-github-actions.md rename to content/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions.md index a7dceb814a..c5b20df7b2 100644 --- a/content/actions/security-guides/using-secrets-in-github-actions.md +++ b/content/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions.md @@ -10,6 +10,7 @@ redirect_from: - /actions/reference/encrypted-secrets - /actions/managing-workflows/storing-secrets - /actions/security-guides/encrypted-secrets + - /actions/security-guides/using-secrets-in-github-actions versions: fpt: '*' ghes: '*' diff --git a/content/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md b/content/actions/security-for-github-actions/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md similarity index 99% rename from content/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md rename to content/actions/security-for-github-actions/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md index 5e84bdf350..188dba8969 100644 --- a/content/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md +++ b/content/actions/security-for-github-actions/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md @@ -9,6 +9,8 @@ versions: type: tutorial topics: - Security +redirect_from: + - /actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md b/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md similarity index 98% rename from content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md rename to content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md index 61af9c575a..243c32aee5 100644 --- a/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md +++ b/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md @@ -9,6 +9,8 @@ versions: type: tutorial topics: - Security +redirect_from: + - /actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure.md b/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-azure.md similarity index 97% rename from content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure.md rename to content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-azure.md index 99dd138a40..caa354d188 100644 --- a/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure.md +++ b/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-azure.md @@ -9,6 +9,8 @@ versions: type: tutorial topics: - Security +redirect_from: + - /actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md b/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md similarity index 98% rename from content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md rename to content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md index 579154a596..c277facdc5 100644 --- a/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md +++ b/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md @@ -9,6 +9,8 @@ versions: type: tutorial topics: - Security +redirect_from: + - /actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform.md b/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform.md similarity index 97% rename from content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform.md rename to content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform.md index c6f38f3da2..362c76c2e8 100644 --- a/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform.md +++ b/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform.md @@ -9,6 +9,8 @@ versions: type: tutorial topics: - Security +redirect_from: + - /actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md b/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md similarity index 98% rename from content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md rename to content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md index faf32f2fb1..8fd07e492f 100644 --- a/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md +++ b/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md @@ -9,6 +9,8 @@ versions: type: tutorial topics: - Security +redirect_from: + - /actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-jfrog.md b/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-jfrog.md similarity index 97% rename from content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-jfrog.md rename to content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-jfrog.md index 105c0bd3b1..8504d41b99 100644 --- a/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-jfrog.md +++ b/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-jfrog.md @@ -9,6 +9,8 @@ type: tutorial topics: - Security - Actions +redirect_from: + - /actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-jfrog --- ## Overview diff --git a/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-pypi.md b/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-pypi.md similarity index 97% rename from content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-pypi.md rename to content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-pypi.md index 0fa0c20c3a..f49dd6f8ce 100644 --- a/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-pypi.md +++ b/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-pypi.md @@ -9,6 +9,8 @@ type: tutorial topics: - Security - Actions +redirect_from: + - /actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-pypi --- ## Overview diff --git a/content/actions/deployment/security-hardening-your-deployments/index.md b/content/actions/security-for-github-actions/security-hardening-your-deployments/index.md similarity index 89% rename from content/actions/deployment/security-hardening-your-deployments/index.md rename to content/actions/security-for-github-actions/security-hardening-your-deployments/index.md index dd131d0b32..6424dc3402 100644 --- a/content/actions/deployment/security-hardening-your-deployments/index.md +++ b/content/actions/security-for-github-actions/security-hardening-your-deployments/index.md @@ -2,6 +2,8 @@ title: Security hardening your deployments shortTitle: Security harden deployments intro: Use OpenID Connect within your workflows to authenticate with your cloud provider. +redirect_from: + - /actions/deployment/security-hardening-your-deployments versions: fpt: '*' ghec: '*' @@ -12,8 +14,9 @@ children: - /configuring-openid-connect-in-azure - /configuring-openid-connect-in-google-cloud-platform - /configuring-openid-connect-in-hashicorp-vault - - /configuring-openid-connect-in-cloud-providers - - /configuring-openid-connect-in-pypi - /configuring-openid-connect-in-jfrog + - /configuring-openid-connect-in-pypi + - /configuring-openid-connect-in-cloud-providers - /using-openid-connect-with-reusable-workflows --- + diff --git a/content/actions/deployment/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows.md b/content/actions/security-for-github-actions/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows.md similarity index 98% rename from content/actions/deployment/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows.md rename to content/actions/security-for-github-actions/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows.md index a39e582e88..3ba6e40d69 100644 --- a/content/actions/deployment/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows.md +++ b/content/actions/security-for-github-actions/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows.md @@ -4,6 +4,7 @@ shortTitle: OpenID Connect with reusable workflows intro: You can use reusable workflows with OIDC to standardize and security harden your deployment steps. redirect_from: - /actions/deployment/security-hardening-your-deployments/using-oidc-with-your-reusable-workflows + - /actions/deployment/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows versions: fpt: '*' ghec: '*' diff --git a/content/actions/security-guides/enforcing-artifact-attestations-with-a-kubernetes-admission-controller.md b/content/actions/security-for-github-actions/using-artifact-attestations/enforcing-artifact-attestations-with-a-kubernetes-admission-controller.md similarity index 97% rename from content/actions/security-guides/enforcing-artifact-attestations-with-a-kubernetes-admission-controller.md rename to content/actions/security-for-github-actions/using-artifact-attestations/enforcing-artifact-attestations-with-a-kubernetes-admission-controller.md index f8d8c9fdd3..150efbffa8 100644 --- a/content/actions/security-guides/enforcing-artifact-attestations-with-a-kubernetes-admission-controller.md +++ b/content/actions/security-for-github-actions/using-artifact-attestations/enforcing-artifact-attestations-with-a-kubernetes-admission-controller.md @@ -1,10 +1,12 @@ --- title: Enforcing artifact attestations with a Kubernetes admission controller -intro: 'Use an admission controller to enforce artifact attestations in your Kubernetes cluster.' +intro: Use an admission controller to enforce artifact attestations in your Kubernetes cluster. versions: fpt: '*' ghec: '*' shortTitle: Artifact attestations Kubernetes admission controller +redirect_from: + - /actions/security-guides/enforcing-artifact-attestations-with-a-kubernetes-admission-controller --- ## About Kubernetes admission controller diff --git a/content/actions/security-for-github-actions/using-artifact-attestations/index.md b/content/actions/security-for-github-actions/using-artifact-attestations/index.md new file mode 100644 index 0000000000..ab7abbfe17 --- /dev/null +++ b/content/actions/security-for-github-actions/using-artifact-attestations/index.md @@ -0,0 +1,15 @@ +--- +title: Using artifact attestations +shortTitle: Artifact attestations +intro: Use artifact attestations to establish build provenance for the software you produce and to verify the software you consume. +versions: + fpt: '*' + ghes: '*' + ghec: '*' +children: + - /using-artifact-attestations-to-establish-provenance-for-builds + - /using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3 + - /enforcing-artifact-attestations-with-a-kubernetes-admission-controller + - /verifying-attestations-offline +--- + diff --git a/content/actions/security-guides/using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3.md b/content/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3.md similarity index 92% rename from content/actions/security-guides/using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3.md rename to content/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3.md index 6c17090f2f..d6bba21c19 100644 --- a/content/actions/security-guides/using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3.md +++ b/content/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3.md @@ -1,9 +1,7 @@ --- -title: >- - Using artifact attestations and reusable workflows to achieve SLSA v1 Build Level 3 +title: Using artifact attestations and reusable workflows to achieve SLSA v1 Build Level 3 shortTitle: Attest with reusable workflows -intro: >- - Building software with reusable workflows and artifact attestations can streamline your supply chain security and help you achieve SLSA v1.0 Build Level 3. +intro: Building software with reusable workflows and artifact attestations can streamline your supply chain security and help you achieve SLSA v1.0 Build Level 3. type: quick_start topics: - Actions @@ -12,6 +10,8 @@ topics: versions: fpt: '*' ghec: '*' +redirect_from: + - /actions/security-guides/using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3 --- ## Introduction diff --git a/content/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds.md b/content/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-to-establish-provenance-for-builds.md similarity index 97% rename from content/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds.md rename to content/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-to-establish-provenance-for-builds.md index 8eddad21a9..2c998f2760 100644 --- a/content/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds.md +++ b/content/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-to-establish-provenance-for-builds.md @@ -1,10 +1,12 @@ --- title: Using artifact attestations to establish provenance for builds -intro: 'Artifact attestations enable you to increase the supply chain security of your builds by establishing where and how your software was built.' +intro: Artifact attestations enable you to increase the supply chain security of your builds by establishing where and how your software was built. versions: fpt: '*' ghec: '*' shortTitle: Artifact attestations +redirect_from: + - /actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds --- ## About artifact attestations diff --git a/content/actions/security-guides/verifying-attestations-offline.md b/content/actions/security-for-github-actions/using-artifact-attestations/verifying-attestations-offline.md similarity index 97% rename from content/actions/security-guides/verifying-attestations-offline.md rename to content/actions/security-for-github-actions/using-artifact-attestations/verifying-attestations-offline.md index 0ac0034766..907c3bed50 100644 --- a/content/actions/security-guides/verifying-attestations-offline.md +++ b/content/actions/security-for-github-actions/using-artifact-attestations/verifying-attestations-offline.md @@ -10,6 +10,8 @@ topics: versions: fpt: '*' ghec: '*' +redirect_from: + - /actions/security-guides/verifying-attestations-offline --- ## Introduction diff --git a/data/learning-tracks/actions.yml b/data/learning-tracks/actions.yml index 18572ec136..9d71d1bb72 100644 --- a/data/learning-tracks/actions.yml +++ b/data/learning-tracks/actions.yml @@ -8,7 +8,7 @@ getting_started: - /actions/writing-workflows/choosing-what-your-workflow-does/finding-and-customizing-actions - /actions/using-workflows/about-workflows - /actions/using-workflows/reusing-workflows - - /actions/security-guides/security-hardening-for-github-actions + - /actions/security-for-github-actions/security-guides/security-hardening-for-github-actions adopting_github_actions_for_your_enterprise_ghec: title: Adopt GitHub Actions for your enterprise description: >- @@ -26,7 +26,7 @@ adopting_github_actions_for_your_enterprise_ghec: /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/migrating-your-enterprise-to-github-actions - >- /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-cloud - - /actions/security-guides/security-hardening-for-github-actions + - /actions/security-for-github-actions/security-guides/security-hardening-for-github-actions - >- /billing/managing-billing-for-github-actions/about-billing-for-github-actions adopting_github_actions_for_your_enterprise_ghes: @@ -50,7 +50,7 @@ adopting_github_actions_for_your_enterprise_ghes: /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server - >- /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise - - /actions/security-guides/security-hardening-for-github-actions + - /actions/security-for-github-actions/security-guides/security-hardening-for-github-actions - >- /billing/managing-billing-for-github-actions/about-billing-for-github-actions hosting_your_own_runners: diff --git a/data/learning-tracks/admin.yml b/data/learning-tracks/admin.yml index c6a881a8fe..3d95df74b1 100644 --- a/data/learning-tracks/admin.yml +++ b/data/learning-tracks/admin.yml @@ -50,7 +50,7 @@ adopting_github_actions_for_your_enterprise_ghec: /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/migrating-your-enterprise-to-github-actions - >- /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-cloud - - /actions/security-guides/security-hardening-for-github-actions + - /actions/security-for-github-actions/security-guides/security-hardening-for-github-actions - >- /billing/managing-billing-for-github-actions/about-billing-for-github-actions adopting_github_actions_for_your_enterprise_ghes: @@ -74,7 +74,7 @@ adopting_github_actions_for_your_enterprise_ghes: /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server - >- /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise - - /actions/security-guides/security-hardening-for-github-actions + - /actions/security-for-github-actions/security-guides/security-hardening-for-github-actions - >- /billing/managing-billing-for-github-actions/about-billing-for-github-actions increase_fault_tolerance: diff --git a/src/frame/tests/secure-files.js b/src/frame/tests/secure-files.js index 2be1033940..664dc7d7dd 100644 --- a/src/frame/tests/secure-files.js +++ b/src/frame/tests/secure-files.js @@ -13,8 +13,7 @@ import { glob } from 'glob' const secureFiles = [ { name: 'Security hardening your deployments', - path: 'content/actions/deployment/security-hardening-your-deployments/**', - requiredCodeOwner: 'github/oidc', + path: 'content/actions/security-for-github-actions/security-hardening-your-deployments/**', }, { name: 'RAI transparency note reusable directory', From ef7cffe7358b315bef933cb5397cf9e990f7e392 Mon Sep 17 00:00:00 2001 From: Rachael Sewell Date: Tue, 30 Jul 2024 17:49:38 -0700 Subject: [PATCH 17/17] Revert "Relocate articles into a new "Security" category (#51809)" This reverts commit 69d37098b504151ced95c89f54447c5e46e8f0ec. --- content/actions/deployment/index.md | 1 + ...bout-security-hardening-with-openid-connect.md | 2 -- ...uring-openid-connect-in-amazon-web-services.md | 2 -- .../configuring-openid-connect-in-azure.md | 2 -- ...nfiguring-openid-connect-in-cloud-providers.md | 2 -- ...ing-openid-connect-in-google-cloud-platform.md | 2 -- ...nfiguring-openid-connect-in-hashicorp-vault.md | 2 -- .../configuring-openid-connect-in-jfrog.md | 2 -- .../configuring-openid-connect-in-pypi.md | 2 -- .../security-hardening-your-deployments/index.md | 7 ++----- ...sing-openid-connect-with-reusable-workflows.md | 1 - content/actions/guides.md | 1 + content/actions/index.md | 7 ++++++- .../actions/security-for-github-actions/index.md | 15 --------------- .../using-artifact-attestations/index.md | 15 --------------- .../automatic-token-authentication.md | 1 - ...ions-with-a-kubernetes-admission-controller.md | 4 +--- .../security-guides/index.md | 6 +++++- .../security-hardening-for-github-actions.md | 1 - ...-workflows-to-achieve-slsa-v1-build-level-3.md | 8 ++++---- ...stations-to-establish-provenance-for-builds.md | 4 +--- ...atures-to-secure-your-use-of-github-actions.md | 2 -- .../using-secrets-in-github-actions.md | 1 - .../verifying-attestations-offline.md | 2 -- data/learning-tracks/actions.yml | 6 +++--- data/learning-tracks/admin.yml | 4 ++-- src/frame/tests/secure-files.js | 3 ++- 27 files changed, 28 insertions(+), 77 deletions(-) rename content/actions/{security-for-github-actions => deployment}/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md (99%) rename content/actions/{security-for-github-actions => deployment}/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md (98%) rename content/actions/{security-for-github-actions => deployment}/security-hardening-your-deployments/configuring-openid-connect-in-azure.md (97%) rename content/actions/{security-for-github-actions => deployment}/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md (98%) rename content/actions/{security-for-github-actions => deployment}/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform.md (97%) rename content/actions/{security-for-github-actions => deployment}/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md (98%) rename content/actions/{security-for-github-actions => deployment}/security-hardening-your-deployments/configuring-openid-connect-in-jfrog.md (97%) rename content/actions/{security-for-github-actions => deployment}/security-hardening-your-deployments/configuring-openid-connect-in-pypi.md (97%) rename content/actions/{security-for-github-actions => deployment}/security-hardening-your-deployments/index.md (89%) rename content/actions/{security-for-github-actions => deployment}/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows.md (98%) delete mode 100644 content/actions/security-for-github-actions/index.md delete mode 100644 content/actions/security-for-github-actions/using-artifact-attestations/index.md rename content/actions/{security-for-github-actions => }/security-guides/automatic-token-authentication.md (99%) rename content/actions/{security-for-github-actions/using-artifact-attestations => security-guides}/enforcing-artifact-attestations-with-a-kubernetes-admission-controller.md (97%) rename content/actions/{security-for-github-actions => }/security-guides/index.md (59%) rename content/actions/{security-for-github-actions => }/security-guides/security-hardening-for-github-actions.md (99%) rename content/actions/{security-for-github-actions/using-artifact-attestations => security-guides}/using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3.md (92%) rename content/actions/{security-for-github-actions/using-artifact-attestations => security-guides}/using-artifact-attestations-to-establish-provenance-for-builds.md (97%) rename content/actions/{security-for-github-actions => }/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions.md (98%) rename content/actions/{security-for-github-actions => }/security-guides/using-secrets-in-github-actions.md (99%) rename content/actions/{security-for-github-actions/using-artifact-attestations => security-guides}/verifying-attestations-offline.md (97%) diff --git a/content/actions/deployment/index.md b/content/actions/deployment/index.md index ac7cf5de13..63dfcab8e2 100644 --- a/content/actions/deployment/index.md +++ b/content/actions/deployment/index.md @@ -9,6 +9,7 @@ versions: children: - /about-deployments - /deploying-to-your-cloud-provider + - /security-hardening-your-deployments - /deploying-xcode-applications --- diff --git a/content/actions/security-for-github-actions/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md b/content/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md similarity index 99% rename from content/actions/security-for-github-actions/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md rename to content/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md index 188dba8969..5e84bdf350 100644 --- a/content/actions/security-for-github-actions/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md +++ b/content/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md @@ -9,8 +9,6 @@ versions: type: tutorial topics: - Security -redirect_from: - - /actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md b/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md similarity index 98% rename from content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md rename to content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md index 243c32aee5..61af9c575a 100644 --- a/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md +++ b/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md @@ -9,8 +9,6 @@ versions: type: tutorial topics: - Security -redirect_from: - - /actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-azure.md b/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure.md similarity index 97% rename from content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-azure.md rename to content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure.md index caa354d188..99dd138a40 100644 --- a/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-azure.md +++ b/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure.md @@ -9,8 +9,6 @@ versions: type: tutorial topics: - Security -redirect_from: - - /actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md b/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md similarity index 98% rename from content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md rename to content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md index c277facdc5..579154a596 100644 --- a/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md +++ b/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md @@ -9,8 +9,6 @@ versions: type: tutorial topics: - Security -redirect_from: - - /actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform.md b/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform.md similarity index 97% rename from content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform.md rename to content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform.md index 362c76c2e8..c6f38f3da2 100644 --- a/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform.md +++ b/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform.md @@ -9,8 +9,6 @@ versions: type: tutorial topics: - Security -redirect_from: - - /actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md b/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md similarity index 98% rename from content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md rename to content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md index 8fd07e492f..faf32f2fb1 100644 --- a/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md +++ b/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md @@ -9,8 +9,6 @@ versions: type: tutorial topics: - Security -redirect_from: - - /actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault --- {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-jfrog.md b/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-jfrog.md similarity index 97% rename from content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-jfrog.md rename to content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-jfrog.md index 8504d41b99..105c0bd3b1 100644 --- a/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-jfrog.md +++ b/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-jfrog.md @@ -9,8 +9,6 @@ type: tutorial topics: - Security - Actions -redirect_from: - - /actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-jfrog --- ## Overview diff --git a/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-pypi.md b/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-pypi.md similarity index 97% rename from content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-pypi.md rename to content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-pypi.md index f49dd6f8ce..0fa0c20c3a 100644 --- a/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-pypi.md +++ b/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-pypi.md @@ -9,8 +9,6 @@ type: tutorial topics: - Security - Actions -redirect_from: - - /actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-pypi --- ## Overview diff --git a/content/actions/security-for-github-actions/security-hardening-your-deployments/index.md b/content/actions/deployment/security-hardening-your-deployments/index.md similarity index 89% rename from content/actions/security-for-github-actions/security-hardening-your-deployments/index.md rename to content/actions/deployment/security-hardening-your-deployments/index.md index 6424dc3402..dd131d0b32 100644 --- a/content/actions/security-for-github-actions/security-hardening-your-deployments/index.md +++ b/content/actions/deployment/security-hardening-your-deployments/index.md @@ -2,8 +2,6 @@ title: Security hardening your deployments shortTitle: Security harden deployments intro: Use OpenID Connect within your workflows to authenticate with your cloud provider. -redirect_from: - - /actions/deployment/security-hardening-your-deployments versions: fpt: '*' ghec: '*' @@ -14,9 +12,8 @@ children: - /configuring-openid-connect-in-azure - /configuring-openid-connect-in-google-cloud-platform - /configuring-openid-connect-in-hashicorp-vault - - /configuring-openid-connect-in-jfrog - - /configuring-openid-connect-in-pypi - /configuring-openid-connect-in-cloud-providers + - /configuring-openid-connect-in-pypi + - /configuring-openid-connect-in-jfrog - /using-openid-connect-with-reusable-workflows --- - diff --git a/content/actions/security-for-github-actions/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows.md b/content/actions/deployment/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows.md similarity index 98% rename from content/actions/security-for-github-actions/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows.md rename to content/actions/deployment/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows.md index 3ba6e40d69..a39e582e88 100644 --- a/content/actions/security-for-github-actions/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows.md +++ b/content/actions/deployment/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows.md @@ -4,7 +4,6 @@ shortTitle: OpenID Connect with reusable workflows intro: You can use reusable workflows with OIDC to standardize and security harden your deployment steps. redirect_from: - /actions/deployment/security-hardening-your-deployments/using-oidc-with-your-reusable-workflows - - /actions/deployment/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows versions: fpt: '*' ghec: '*' diff --git a/content/actions/guides.md b/content/actions/guides.md index 41a78ab25a..0060d45e3c 100644 --- a/content/actions/guides.md +++ b/content/actions/guides.md @@ -41,6 +41,7 @@ includeGuides: - /actions/using-containerized-services/creating-postgresql-service-containers - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-amazon-elastic-container-service - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-google-kubernetes-engine + - /actions/security-guides/security-hardening-for-github-actions - /actions/creating-actions/about-custom-actions - /actions/creating-actions/creating-a-javascript-action - /actions/creating-actions/creating-a-composite-action diff --git a/content/actions/index.md b/content/actions/index.md index cc5e03f7f0..334021322d 100644 --- a/content/actions/index.md +++ b/content/actions/index.md @@ -21,6 +21,11 @@ featuredLinks: - /actions/writing-workflows/workflow-syntax-for-github-actions - /actions/writing-workflows - /actions/examples + - /actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows + - /actions/writing-workflows/choosing-what-your-workflow-does/contexts + - /actions/writing-workflows/choosing-what-your-workflow-does/expressions + - /actions/writing-workflows/choosing-what-your-workflow-does/variables + - /actions/security-guides/using-secrets-in-github-actions changelog: label: actions redirect_from: @@ -51,7 +56,7 @@ children: - /monitoring-and-troubleshooting-workflows - /using-github-hosted-runners - /hosting-your-own-runners - - /security-for-github-actions + - /security-guides - /creating-actions - /administering-github-actions - /guides diff --git a/content/actions/security-for-github-actions/index.md b/content/actions/security-for-github-actions/index.md deleted file mode 100644 index 05ce0005e6..0000000000 --- a/content/actions/security-for-github-actions/index.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Security for GitHub Actions -shortTitle: Security -intro: 'Use security best practices with {% data variables.product.prodname_actions %}, and use {% data variables.product.prodname_actions %} to improve the security of your software supply chain.' -redirect_from: - - /actions/security-guides -versions: - fpt: '*' - ghes: '*' - ghec: '*' -children: - - /security-guides - - /using-artifact-attestations - - /security-hardening-your-deployments ---- \ No newline at end of file diff --git a/content/actions/security-for-github-actions/using-artifact-attestations/index.md b/content/actions/security-for-github-actions/using-artifact-attestations/index.md deleted file mode 100644 index ab7abbfe17..0000000000 --- a/content/actions/security-for-github-actions/using-artifact-attestations/index.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Using artifact attestations -shortTitle: Artifact attestations -intro: Use artifact attestations to establish build provenance for the software you produce and to verify the software you consume. -versions: - fpt: '*' - ghes: '*' - ghec: '*' -children: - - /using-artifact-attestations-to-establish-provenance-for-builds - - /using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3 - - /enforcing-artifact-attestations-with-a-kubernetes-admission-controller - - /verifying-attestations-offline ---- - diff --git a/content/actions/security-for-github-actions/security-guides/automatic-token-authentication.md b/content/actions/security-guides/automatic-token-authentication.md similarity index 99% rename from content/actions/security-for-github-actions/security-guides/automatic-token-authentication.md rename to content/actions/security-guides/automatic-token-authentication.md index 6061fe8b34..5742eec505 100644 --- a/content/actions/security-for-github-actions/security-guides/automatic-token-authentication.md +++ b/content/actions/security-guides/automatic-token-authentication.md @@ -6,7 +6,6 @@ redirect_from: - /actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token - /actions/configuring-and-managing-workflows/authenticating-with-the-github_token - /actions/reference/authentication-in-a-workflow - - /actions/security-guides/automatic-token-authentication versions: fpt: '*' ghes: '*' diff --git a/content/actions/security-for-github-actions/using-artifact-attestations/enforcing-artifact-attestations-with-a-kubernetes-admission-controller.md b/content/actions/security-guides/enforcing-artifact-attestations-with-a-kubernetes-admission-controller.md similarity index 97% rename from content/actions/security-for-github-actions/using-artifact-attestations/enforcing-artifact-attestations-with-a-kubernetes-admission-controller.md rename to content/actions/security-guides/enforcing-artifact-attestations-with-a-kubernetes-admission-controller.md index 150efbffa8..f8d8c9fdd3 100644 --- a/content/actions/security-for-github-actions/using-artifact-attestations/enforcing-artifact-attestations-with-a-kubernetes-admission-controller.md +++ b/content/actions/security-guides/enforcing-artifact-attestations-with-a-kubernetes-admission-controller.md @@ -1,12 +1,10 @@ --- title: Enforcing artifact attestations with a Kubernetes admission controller -intro: Use an admission controller to enforce artifact attestations in your Kubernetes cluster. +intro: 'Use an admission controller to enforce artifact attestations in your Kubernetes cluster.' versions: fpt: '*' ghec: '*' shortTitle: Artifact attestations Kubernetes admission controller -redirect_from: - - /actions/security-guides/enforcing-artifact-attestations-with-a-kubernetes-admission-controller --- ## About Kubernetes admission controller diff --git a/content/actions/security-for-github-actions/security-guides/index.md b/content/actions/security-guides/index.md similarity index 59% rename from content/actions/security-for-github-actions/security-guides/index.md rename to content/actions/security-guides/index.md index 4de1b09b3d..9a70b44b61 100644 --- a/content/actions/security-for-github-actions/security-guides/index.md +++ b/content/actions/security-guides/index.md @@ -9,7 +9,11 @@ versions: children: - /security-hardening-for-github-actions - /using-secrets-in-github-actions - - /automatic-token-authentication - /using-githubs-security-features-to-secure-your-use-of-github-actions + - /automatic-token-authentication + - /using-artifact-attestations-to-establish-provenance-for-builds + - /enforcing-artifact-attestations-with-a-kubernetes-admission-controller + - /using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3 + - /verifying-attestations-offline --- diff --git a/content/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions.md b/content/actions/security-guides/security-hardening-for-github-actions.md similarity index 99% rename from content/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions.md rename to content/actions/security-guides/security-hardening-for-github-actions.md index 1422e783f0..12aa6e17c2 100644 --- a/content/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions.md +++ b/content/actions/security-guides/security-hardening-for-github-actions.md @@ -5,7 +5,6 @@ intro: 'Good security practices for using {% data variables.product.prodname_act redirect_from: - /actions/getting-started-with-github-actions/security-hardening-for-github-actions - /actions/learn-github-actions/security-hardening-for-github-actions - - /actions/security-guides/security-hardening-for-github-actions versions: fpt: '*' ghes: '*' diff --git a/content/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3.md b/content/actions/security-guides/using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3.md similarity index 92% rename from content/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3.md rename to content/actions/security-guides/using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3.md index d6bba21c19..6c17090f2f 100644 --- a/content/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3.md +++ b/content/actions/security-guides/using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3.md @@ -1,7 +1,9 @@ --- -title: Using artifact attestations and reusable workflows to achieve SLSA v1 Build Level 3 +title: >- + Using artifact attestations and reusable workflows to achieve SLSA v1 Build Level 3 shortTitle: Attest with reusable workflows -intro: Building software with reusable workflows and artifact attestations can streamline your supply chain security and help you achieve SLSA v1.0 Build Level 3. +intro: >- + Building software with reusable workflows and artifact attestations can streamline your supply chain security and help you achieve SLSA v1.0 Build Level 3. type: quick_start topics: - Actions @@ -10,8 +12,6 @@ topics: versions: fpt: '*' ghec: '*' -redirect_from: - - /actions/security-guides/using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3 --- ## Introduction diff --git a/content/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-to-establish-provenance-for-builds.md b/content/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds.md similarity index 97% rename from content/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-to-establish-provenance-for-builds.md rename to content/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds.md index 2c998f2760..8eddad21a9 100644 --- a/content/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-to-establish-provenance-for-builds.md +++ b/content/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds.md @@ -1,12 +1,10 @@ --- title: Using artifact attestations to establish provenance for builds -intro: Artifact attestations enable you to increase the supply chain security of your builds by establishing where and how your software was built. +intro: 'Artifact attestations enable you to increase the supply chain security of your builds by establishing where and how your software was built.' versions: fpt: '*' ghec: '*' shortTitle: Artifact attestations -redirect_from: - - /actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds --- ## About artifact attestations diff --git a/content/actions/security-for-github-actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions.md b/content/actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions.md similarity index 98% rename from content/actions/security-for-github-actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions.md rename to content/actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions.md index ef600c9e54..f24626c0e2 100644 --- a/content/actions/security-for-github-actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions.md +++ b/content/actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions.md @@ -6,8 +6,6 @@ versions: ghes: '*' ghec: '*' shortTitle: GitHub security features -redirect_from: - - /actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions --- ## About {% data variables.product.prodname_dotcom %}'s security features diff --git a/content/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions.md b/content/actions/security-guides/using-secrets-in-github-actions.md similarity index 99% rename from content/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions.md rename to content/actions/security-guides/using-secrets-in-github-actions.md index c5b20df7b2..a7dceb814a 100644 --- a/content/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions.md +++ b/content/actions/security-guides/using-secrets-in-github-actions.md @@ -10,7 +10,6 @@ redirect_from: - /actions/reference/encrypted-secrets - /actions/managing-workflows/storing-secrets - /actions/security-guides/encrypted-secrets - - /actions/security-guides/using-secrets-in-github-actions versions: fpt: '*' ghes: '*' diff --git a/content/actions/security-for-github-actions/using-artifact-attestations/verifying-attestations-offline.md b/content/actions/security-guides/verifying-attestations-offline.md similarity index 97% rename from content/actions/security-for-github-actions/using-artifact-attestations/verifying-attestations-offline.md rename to content/actions/security-guides/verifying-attestations-offline.md index 907c3bed50..0ac0034766 100644 --- a/content/actions/security-for-github-actions/using-artifact-attestations/verifying-attestations-offline.md +++ b/content/actions/security-guides/verifying-attestations-offline.md @@ -10,8 +10,6 @@ topics: versions: fpt: '*' ghec: '*' -redirect_from: - - /actions/security-guides/verifying-attestations-offline --- ## Introduction diff --git a/data/learning-tracks/actions.yml b/data/learning-tracks/actions.yml index 9d71d1bb72..18572ec136 100644 --- a/data/learning-tracks/actions.yml +++ b/data/learning-tracks/actions.yml @@ -8,7 +8,7 @@ getting_started: - /actions/writing-workflows/choosing-what-your-workflow-does/finding-and-customizing-actions - /actions/using-workflows/about-workflows - /actions/using-workflows/reusing-workflows - - /actions/security-for-github-actions/security-guides/security-hardening-for-github-actions + - /actions/security-guides/security-hardening-for-github-actions adopting_github_actions_for_your_enterprise_ghec: title: Adopt GitHub Actions for your enterprise description: >- @@ -26,7 +26,7 @@ adopting_github_actions_for_your_enterprise_ghec: /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/migrating-your-enterprise-to-github-actions - >- /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-cloud - - /actions/security-for-github-actions/security-guides/security-hardening-for-github-actions + - /actions/security-guides/security-hardening-for-github-actions - >- /billing/managing-billing-for-github-actions/about-billing-for-github-actions adopting_github_actions_for_your_enterprise_ghes: @@ -50,7 +50,7 @@ adopting_github_actions_for_your_enterprise_ghes: /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server - >- /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise - - /actions/security-for-github-actions/security-guides/security-hardening-for-github-actions + - /actions/security-guides/security-hardening-for-github-actions - >- /billing/managing-billing-for-github-actions/about-billing-for-github-actions hosting_your_own_runners: diff --git a/data/learning-tracks/admin.yml b/data/learning-tracks/admin.yml index 3d95df74b1..c6a881a8fe 100644 --- a/data/learning-tracks/admin.yml +++ b/data/learning-tracks/admin.yml @@ -50,7 +50,7 @@ adopting_github_actions_for_your_enterprise_ghec: /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/migrating-your-enterprise-to-github-actions - >- /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-cloud - - /actions/security-for-github-actions/security-guides/security-hardening-for-github-actions + - /actions/security-guides/security-hardening-for-github-actions - >- /billing/managing-billing-for-github-actions/about-billing-for-github-actions adopting_github_actions_for_your_enterprise_ghes: @@ -74,7 +74,7 @@ adopting_github_actions_for_your_enterprise_ghes: /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server - >- /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise - - /actions/security-for-github-actions/security-guides/security-hardening-for-github-actions + - /actions/security-guides/security-hardening-for-github-actions - >- /billing/managing-billing-for-github-actions/about-billing-for-github-actions increase_fault_tolerance: diff --git a/src/frame/tests/secure-files.js b/src/frame/tests/secure-files.js index 664dc7d7dd..2be1033940 100644 --- a/src/frame/tests/secure-files.js +++ b/src/frame/tests/secure-files.js @@ -13,7 +13,8 @@ import { glob } from 'glob' const secureFiles = [ { name: 'Security hardening your deployments', - path: 'content/actions/security-for-github-actions/security-hardening-your-deployments/**', + path: 'content/actions/deployment/security-hardening-your-deployments/**', + requiredCodeOwner: 'github/oidc', }, { name: 'RAI transparency note reusable directory',