diff --git a/assets/images/help/copilot/activity-report-enterprise.png b/assets/images/help/copilot/activity-report-enterprise.png
new file mode 100644
index 000000000000..28a340d04f6b
Binary files /dev/null and b/assets/images/help/copilot/activity-report-enterprise.png differ
diff --git a/assets/images/help/copilot/activity-report-non-ghe.png b/assets/images/help/copilot/activity-report-non-ghe.png
new file mode 100644
index 000000000000..ac94003279df
Binary files /dev/null and b/assets/images/help/copilot/activity-report-non-ghe.png differ
diff --git a/assets/images/help/copilot/activity-report-org.png b/assets/images/help/copilot/activity-report-org.png
new file mode 100644
index 000000000000..9e616c246279
Binary files /dev/null and b/assets/images/help/copilot/activity-report-org.png differ
diff --git a/content/actions/how-tos/hosting-your-own-runners/managing-self-hosted-runners/using-self-hosted-runners-in-a-workflow.md b/content/actions/how-tos/hosting-your-own-runners/managing-self-hosted-runners/using-self-hosted-runners-in-a-workflow.md
index b3ba14051a04..0510d80609b6 100644
--- a/content/actions/how-tos/hosting-your-own-runners/managing-self-hosted-runners/using-self-hosted-runners-in-a-workflow.md
+++ b/content/actions/how-tos/hosting-your-own-runners/managing-self-hosted-runners/using-self-hosted-runners-in-a-workflow.md
@@ -14,28 +14,6 @@ type: tutorial
shortTitle: Use runners in a workflow
---
-{% data reusables.actions.enterprise-github-hosted-runners %}
-
-You can target self-hosted runners for use in a workflow based on the labels assigned to the runners, or their group membership, or a combination of these.
-
->[!IMPORTANT]Runner Scale Sets do not support multiple labels, only the name of the runner can be used in place of a label. See [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/deploying-runner-scale-sets-with-actions-runner-controller).
-
-## About self-hosted runner labels
-
-Labels allow you to send workflow jobs to specific types of self-hosted runners, based on their shared characteristics. For example, if your job requires a particular hardware component or software package, you can assign a custom label to a runner and then configure your job to only execute on runners with that label.
-
-{% data reusables.actions.self-hosted-runner-labels-runs-on %}
-
-For information on creating custom and default labels, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/using-labels-with-self-hosted-runners).
-
-## About self-hosted runner groups
-
-For self-hosted runners defined at the organization {% ifversion ghec or ghes %}or enterprise levels{% else %}level{% endif %}, you can group your runners with shared characteristics into a single runner group and then configure your job to target the runner group.
-
-To specify a self-hosted runner group for your job, configure `runs-on.group` in your workflow file.
-
-For information on creating and managing runner groups, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/managing-access-to-self-hosted-runners-using-groups).
-
{% ifversion repository-actions-runners %}
## Viewing available runners for a repository
@@ -99,16 +77,3 @@ These labels operate cumulatively, so a self-hosted runner must have all four la
## Using labels and groups to route jobs
{% data reusables.actions.jobs.example-runs-on-labels-and-groups %}
-
-## Routing precedence for self-hosted runners
-
-When routing a job to a self-hosted runner, {% data variables.product.prodname_dotcom %} looks for a runner that matches the job's `runs-on` labels and groups:
-
-* If {% data variables.product.prodname_dotcom %} finds an online and idle runner that matches the job's `runs-on` labels and groups, the job is then assigned and sent to the runner.
- * If the runner doesn't pick up the assigned job within 60 seconds, the job is re-queued so that a new runner can accept it.
-* If {% data variables.product.prodname_dotcom %} doesn't find an online and idle runner that matches the job's `runs-on` labels and groups, then the job will remain queued until a runner comes online.
-* If the job remains queued for more than 24 hours, the job will fail.
-
-## Workflow run continuity
-
-{% data reusables.actions.runner-workflow-continuity %}
diff --git a/content/actions/how-tos/managing-workflow-runs-and-deployments/managing-workflow-runs/manage-caches.md b/content/actions/how-tos/managing-workflow-runs-and-deployments/managing-workflow-runs/manage-caches.md
index 62b0f34792b2..3ed5475423dc 100644
--- a/content/actions/how-tos/managing-workflow-runs-and-deployments/managing-workflow-runs/manage-caches.md
+++ b/content/actions/how-tos/managing-workflow-runs-and-deployments/managing-workflow-runs/manage-caches.md
@@ -76,7 +76,7 @@ jobs:
done
echo "Done"
env:
- GH_TOKEN: {% raw %}${{ secrets.GITHUB_TOKEN }}{% endraw %}
+ GH_TOKEN: {% raw %}${{ github.token }}{% endraw %}
GH_REPO: {% raw %}${{ github.repository }}{% endraw %}
BRANCH: refs/pull/{% raw %}${{ github.event.pull_request.number }}{% endraw %}/merge
```
diff --git a/content/actions/how-tos/use-cases-and-examples/index.md b/content/actions/how-tos/use-cases-and-examples/index.md
index 471c207e86b4..530a70ace27b 100644
--- a/content/actions/how-tos/use-cases-and-examples/index.md
+++ b/content/actions/how-tos/use-cases-and-examples/index.md
@@ -10,7 +10,6 @@ redirect_from:
- /actions/examples
- /actions/use-cases-and-examples
children:
- - publishing-packages
- project-management
- using-containerized-services
---
diff --git a/content/actions/index.md b/content/actions/index.md
index b7975d9bcab9..c1a981bc87d3 100644
--- a/content/actions/index.md
+++ b/content/actions/index.md
@@ -15,7 +15,7 @@ featuredLinks:
- /actions/how-tos/monitoring-and-troubleshooting-workflows
guideCards:
- /actions/how-tos/writing-workflows/using-workflow-templates
- - /actions/how-tos/use-cases-and-examples/publishing-packages/publishing-nodejs-packages
+ - /actions/tutorials/publishing-packages/publishing-nodejs-packages
- /actions/how-tos/writing-workflows/building-and-testing/building-and-testing-powershell
popular:
- /actions/reference/workflow-syntax-for-github-actions
diff --git a/content/actions/reference/self-hosted-runners-reference.md b/content/actions/reference/self-hosted-runners-reference.md
index bcd18225f120..cc3b06492d53 100644
--- a/content/actions/reference/self-hosted-runners-reference.md
+++ b/content/actions/reference/self-hosted-runners-reference.md
@@ -58,6 +58,15 @@ You can use a machine as a self-hosted runner as long as it meets these requirem
* `ARM64` - Linux, macOS{% ifversion actions-windows-arm %}, Windows (currently in {% data variables.release-phases.public_preview %}){% endif %}.
* `ARM32` - Linux.
+## Routing precedence for self-hosted runners
+
+When routing a job to a self-hosted runner, {% data variables.product.prodname_dotcom %} looks for a runner that matches the job's `runs-on` labels and groups:
+
+* If {% data variables.product.prodname_dotcom %} finds an online and idle runner that matches the job's `runs-on` labels and groups, the job is then assigned and sent to the runner.
+ * If the runner doesn't pick up the assigned job within 60 seconds, the job is re-queued so that a new runner can accept it.
+* If {% data variables.product.prodname_dotcom %} doesn't find an online and idle runner that matches the job's `runs-on` labels and groups, then the job will remain queued until a runner comes online.
+* If the job remains queued for more than 24 hours, the job will fail.
+
## Autoscaling
You can automatically increase or decrease the number of self-hosted runners in your environment in response to the webhook events you receive with a particular label.
diff --git a/content/actions/tutorials/index.md b/content/actions/tutorials/index.md
index 8bf6aac7e840..da8e4a2b00e0 100644
--- a/content/actions/tutorials/index.md
+++ b/content/actions/tutorials/index.md
@@ -17,6 +17,7 @@ children:
- /store-and-share-data
- /deploying-with-github-actions
- /communicating-with-docker-service-containers
+ - /publishing-packages
redirect_from:
- /actions/guides
---
diff --git a/content/actions/how-tos/use-cases-and-examples/publishing-packages/index.md b/content/actions/tutorials/publishing-packages/index.md
similarity index 89%
rename from content/actions/how-tos/use-cases-and-examples/publishing-packages/index.md
rename to content/actions/tutorials/publishing-packages/index.md
index ca9b07dc5411..2e49e92738bf 100644
--- a/content/actions/how-tos/use-cases-and-examples/publishing-packages/index.md
+++ b/content/actions/tutorials/publishing-packages/index.md
@@ -10,6 +10,7 @@ redirect_from:
- /actions/publishing-packages-with-github-actions
- /actions/publishing-packages
- /actions/use-cases-and-examples/publishing-packages
+ - /actions/how-tos/use-cases-and-examples/publishing-packages
children:
- /publishing-docker-images
- /publishing-java-packages-with-gradle
diff --git a/content/actions/how-tos/use-cases-and-examples/publishing-packages/publishing-docker-images.md b/content/actions/tutorials/publishing-packages/publishing-docker-images.md
similarity index 97%
rename from content/actions/how-tos/use-cases-and-examples/publishing-packages/publishing-docker-images.md
rename to content/actions/tutorials/publishing-packages/publishing-docker-images.md
index bd5bec5aeb0c..64e51e339832 100644
--- a/content/actions/how-tos/use-cases-and-examples/publishing-packages/publishing-docker-images.md
+++ b/content/actions/tutorials/publishing-packages/publishing-docker-images.md
@@ -1,12 +1,13 @@
---
title: Publishing Docker images
shortTitle: Publish Docker images
-intro: 'You can publish Docker images to a registry, such as Docker Hub or {% data variables.product.prodname_registry %}, as part of your continuous integration (CI) workflow.'
+intro: 'In this tutorial, you''ll learn how to publish Docker images to a registry, such as Docker Hub or {% data variables.product.prodname_registry %}, as part of your continuous integration (CI) workflow.'
redirect_from:
- /actions/language-and-framework-guides/publishing-docker-images
- /actions/guides/publishing-docker-images
- /actions/publishing-packages/publishing-docker-images
- /actions/use-cases-and-examples/publishing-packages/publishing-docker-images
+ - /actions/how-tos/use-cases-and-examples/publishing-packages/publishing-docker-images
versions:
fpt: '*'
ghes: '*'
@@ -19,8 +20,6 @@ topics:
layout: inline
---
-{% data reusables.actions.enterprise-github-hosted-runners %}
-
## Introduction
This guide shows you how to create a workflow that performs a Docker build, and then publishes Docker images to Docker Hub or {% data variables.product.prodname_registry %}. With a single workflow, you can publish images to a single registry or to multiple registries.
diff --git a/content/actions/how-tos/use-cases-and-examples/publishing-packages/publishing-java-packages-with-gradle.md b/content/actions/tutorials/publishing-packages/publishing-java-packages-with-gradle.md
similarity index 97%
rename from content/actions/how-tos/use-cases-and-examples/publishing-packages/publishing-java-packages-with-gradle.md
rename to content/actions/tutorials/publishing-packages/publishing-java-packages-with-gradle.md
index e3a81a70dda4..43af51175b39 100644
--- a/content/actions/how-tos/use-cases-and-examples/publishing-packages/publishing-java-packages-with-gradle.md
+++ b/content/actions/tutorials/publishing-packages/publishing-java-packages-with-gradle.md
@@ -1,12 +1,13 @@
---
title: Publishing Java packages with Gradle
shortTitle: Publish Java packages with Gradle
-intro: You can use Gradle to publish Java packages to a registry as part of your continuous integration (CI) workflow.
+intro: In this tutorial, you'll learn how to use Gradle to publish Java packages to a registry as part of your continuous integration (CI) workflow.
redirect_from:
- /actions/language-and-framework-guides/publishing-java-packages-with-gradle
- /actions/guides/publishing-java-packages-with-gradle
- /actions/publishing-packages/publishing-java-packages-with-gradle
- /actions/use-cases-and-examples/publishing-packages/publishing-java-packages-with-gradle
+ - /actions/how-tos/use-cases-and-examples/publishing-packages/publishing-java-packages-with-gradle
versions:
fpt: '*'
ghes: '*'
@@ -18,8 +19,6 @@ topics:
- Java
- Gradle
---
-
-{% data reusables.actions.enterprise-github-hosted-runners %}
## Introduction
diff --git a/content/actions/how-tos/use-cases-and-examples/publishing-packages/publishing-java-packages-with-maven.md b/content/actions/tutorials/publishing-packages/publishing-java-packages-with-maven.md
similarity index 97%
rename from content/actions/how-tos/use-cases-and-examples/publishing-packages/publishing-java-packages-with-maven.md
rename to content/actions/tutorials/publishing-packages/publishing-java-packages-with-maven.md
index eca8f0179189..98f3d783defb 100644
--- a/content/actions/how-tos/use-cases-and-examples/publishing-packages/publishing-java-packages-with-maven.md
+++ b/content/actions/tutorials/publishing-packages/publishing-java-packages-with-maven.md
@@ -1,12 +1,13 @@
---
title: Publishing Java packages with Maven
shortTitle: Publish Java packages with Maven
-intro: You can use Maven to publish Java packages to a registry as part of your continuous integration (CI) workflow.
+intro: In this tutorial, you'll learn how to use Maven to publish Java packages to a registry as part of your continuous integration (CI) workflow.
redirect_from:
- /actions/language-and-framework-guides/publishing-java-packages-with-maven
- /actions/guides/publishing-java-packages-with-maven
- /actions/publishing-packages/publishing-java-packages-with-maven
- /actions/use-cases-and-examples/publishing-packages/publishing-java-packages-with-maven
+ - /actions/how-tos/use-cases-and-examples/publishing-packages/publishing-java-packages-with-maven
versions:
fpt: '*'
ghes: '*'
@@ -19,8 +20,6 @@ topics:
- Maven
---
-{% data reusables.actions.enterprise-github-hosted-runners %}
-
## Introduction
{% data reusables.actions.publishing-java-packages-intro %}
diff --git a/content/actions/how-tos/use-cases-and-examples/publishing-packages/publishing-nodejs-packages.md b/content/actions/tutorials/publishing-packages/publishing-nodejs-packages.md
similarity index 98%
rename from content/actions/how-tos/use-cases-and-examples/publishing-packages/publishing-nodejs-packages.md
rename to content/actions/tutorials/publishing-packages/publishing-nodejs-packages.md
index 32b4b9c723da..49ac188c71c1 100644
--- a/content/actions/how-tos/use-cases-and-examples/publishing-packages/publishing-nodejs-packages.md
+++ b/content/actions/tutorials/publishing-packages/publishing-nodejs-packages.md
@@ -1,13 +1,14 @@
---
title: Publishing Node.js packages
shortTitle: Publish Node.js packages
-intro: You can publish Node.js packages to a registry as part of your continuous integration (CI) workflow.
+intro: In this tutorial, you'll learn how to publish Node.js packages to a registry as part of your continuous integration (CI) workflow.
redirect_from:
- /actions/automating-your-workflow-with-github-actions/publishing-nodejs-packages
- /actions/language-and-framework-guides/publishing-nodejs-packages
- /actions/guides/publishing-nodejs-packages
- /actions/publishing-packages/publishing-nodejs-packages
- /actions/use-cases-and-examples/publishing-packages/publishing-nodejs-packages
+ - /actions/how-tos/use-cases-and-examples/publishing-packages/publishing-nodejs-packages
versions:
fpt: '*'
ghes: '*'
@@ -20,8 +21,6 @@ topics:
- JavaScript
---
-{% data reusables.actions.enterprise-github-hosted-runners %}
-
## Introduction
This guide shows you how to create a workflow that publishes Node.js packages to the {% data variables.product.prodname_registry %} and npm registries after continuous integration (CI) tests pass.
diff --git a/content/copilot/how-tos/administer/download-activity-report.md b/content/copilot/how-tos/administer/download-activity-report.md
new file mode 100644
index 000000000000..b1c889a9fef7
--- /dev/null
+++ b/content/copilot/how-tos/administer/download-activity-report.md
@@ -0,0 +1,58 @@
+---
+title: Downloading a Copilot activity report for your organization or enterprise
+intro: 'Monitor Copilot license usage with a detailed report.'
+permissions: Enterprise owners and organization owners
+product: '{% data variables.copilot.copilot_enterprise_short %} or {% data variables.copilot.copilot_business_short %}'
+versions:
+ feature: copilot
+allowTitleToDifferFromFilename: true
+type: how_to
+topics:
+ - Copilot
+ - Enterprise
+shortTitle: Download activity report
+---
+
+You can download a CSV report for {% data variables.product.prodname_copilot_short %} user activity in your organization. The data in the report allows you to:
+
+* Accurately monitor {% data variables.product.prodname_copilot_short %} license usage accurately.
+* Understand patterns in user authentication.
+* Manage licenses and measure key performance indicators.
+
+
+
+>[!NOTE] This report is replacing the {% data variables.product.prodname_copilot_short %} **usage report**. The new report adds clarity by introducing authentication information and improving timestamp resolution. The old usage report is closing down and will be removed on October 23rd, 2025.
+
+
+
+## Downloading the report for an enterprise
+
+1. Navigate to your enterprise account.
+{% data reusables.enterprise-accounts.policies-tab %}
+{% data reusables.enterprise-accounts.copilot-tab %}
+1. Next to "Access management", click **Activity report**.
+
+ 
+
+## Downloading the report for an organization
+
+1. Navigate to your organization settings.
+1. In the left sidebar, click **Copilot**, then click **Access**.
+1. Click **Get activity report**.
+
+ 
+
+## Downloading the report for a non-GHE enterprise
+
+These instructions apply if GitHub has provisioned you with a dedicated enterprise account for managing Copilot Business licenses. See [AUTOTITLE](/enterprise-cloud@latest/admin/copilot-business-only/about-enterprise-accounts-for-copilot-business).
+
+1. Navigate to your enterprise account.
+1. At the top of the page, click **{% octicon "credit-card" aria-hidden="true" aria-label="credit-card" %} Billing and licensing**.
+1. Click **Manage seats**.
+1. Click **Get activity report**.
+
+ 
+
+## Report fields
+
+For field definitions and details of included features, see [AUTOTITLE](/copilot/reference/metrics-data#copilot-activity-report).
diff --git a/content/copilot/how-tos/administer/index.md b/content/copilot/how-tos/administer/index.md
index 630285825852..dfdba0967b58 100644
--- a/content/copilot/how-tos/administer/index.md
+++ b/content/copilot/how-tos/administer/index.md
@@ -9,5 +9,6 @@ topics:
children:
- /organizations
- /enterprises
+ - /download-activity-report
---
diff --git a/content/copilot/how-tos/administer/organizations/reviewing-activity-related-to-github-copilot-in-your-organization/reviewing-user-activity-data-for-copilot-in-your-organization.md b/content/copilot/how-tos/administer/organizations/reviewing-activity-related-to-github-copilot-in-your-organization/reviewing-user-activity-data-for-copilot-in-your-organization.md
index 96184a8e7707..ed0338bfc3c4 100644
--- a/content/copilot/how-tos/administer/organizations/reviewing-activity-related-to-github-copilot-in-your-organization/reviewing-user-activity-data-for-copilot-in-your-organization.md
+++ b/content/copilot/how-tos/administer/organizations/reviewing-activity-related-to-github-copilot-in-your-organization/reviewing-user-activity-data-for-copilot-in-your-organization.md
@@ -18,8 +18,6 @@ redirect_from:
- /copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-activity-related-to-github-copilot-in-your-organization/reviewing-user-activity-data-for-copilot-in-your-organization
---
-## Reviewing user activity data for {% data variables.product.prodname_copilot_short %}
-
{% data reusables.profile.access_org %}
{% data reusables.profile.org_settings %}
{% data reusables.copilot.access-settings %}
@@ -31,11 +29,14 @@ redirect_from:

{% endif %}
-1. For more detailed information, next to "Access management," click **Get report**.
+1. Alternatively, under "Access management," you can use the **Sort** options to sort the list of users by when they last used {% data variables.product.prodname_copilot %}.
+1. For more detailed information, you can retrieve the **Activity report**. {% data variables.product.prodname_dotcom %} generates a report for you, which you can download as a CSV file.
+
+
- {% data variables.product.prodname_dotcom %} generates a report for you, which you can download as a CSV file.
+ >[!NOTE] This report is replacing the {% data variables.product.prodname_copilot_short %} **usage report**. The new report adds clarity by introducing authentication information and improving timestamp resolution. The old usage report is closing down and will be removed on October 23rd, 2025.
-1. Alternatively, under "Access management," you can use the **Sort** options to sort the list of users by when they last used {% data variables.product.prodname_copilot %}.
+
## Using the API to retrieve assignment information
@@ -45,7 +46,7 @@ You can use {% data variables.product.prodname_dotcom %}'s REST API to get detai
If you believe a user's `last_activity_at` date should be more recent than shown in the CSV or API report, wait 24 hours and check again. If their recent Copilot usage is still not reflected in their `last_activity_at` date, have the user check that telemetry is enabled in their IDE settings.
-For more information about this property, see [AUTOTITLE](/copilot/reference/metrics-data#last_activity_at).
+For more information about this property and other data in the activity report, see [AUTOTITLE](/copilot/reference/metrics-data).
## Further reading
diff --git a/content/copilot/reference/metrics-data.md b/content/copilot/reference/metrics-data.md
index 55404af3cc47..48081a0e0810 100644
--- a/content/copilot/reference/metrics-data.md
+++ b/content/copilot/reference/metrics-data.md
@@ -44,3 +44,41 @@ Processing new telemetry events and updating a user's `last_activity_at` date ca
* After 90 days of no new activity, a user's `last_activity_at` value is set to `nil`.
For more information, see [Updating retention period for `last_activity_at` values on the Copilot user management API to 90 days](https://github.blog/changelog/2025-01-17-updating-retention-period-for-last_activity_at-values-on-the-user-management-api-public-preview-to-90-days/) on {% data variables.product.prodname_blog %}.
+
+## Copilot activity report
+
+The Copilot activity report shows user activity data for an organization or enterprise.
+
+Data in the report refreshes automatically every 30 minutes.
+
+### Fields
+
+| Field | Description |
+|-------|-------------|
+| `report_time` | UTC timestamp when the report was generated |
+| `login` | GitHub username of the Copilot user |
+| `last_authenticated_at` | UTC timestamp of the user's most recent authentication |
+| `last_activity_at` | UTC timestamp of the user's most recent Copilot interaction |
+| `last_surface_used` | The Copilot feature used most recently: