1
0
mirror of synced 2026-01-07 09:01:31 -05:00

Merge pull request #33940 from github/repo-sync

Repo sync
This commit is contained in:
docs-bot
2024-07-11 14:30:51 -07:00
committed by GitHub
18 changed files with 3236 additions and 1036 deletions

View File

@@ -64,6 +64,11 @@ jobs:
node-version-file: 'package.json'
cache: npm
# Currently we only need this to run dependencies in
# src/workflows/check-canary-slots.js
- name: Install dependencies
run: npm install
- name: Clone docs-early-access
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:

View File

@@ -23,9 +23,7 @@ You can set up a {% data variables.product.prodname_copilot %} subscription for
* **For an organization**, you can set up a subscription to {% data variables.product.prodname_copilot_for_business %}, then grant access to members.
* **For an enterprise on {% data variables.product.prodname_ghe_cloud %}**, you can set up a subscription to {% data variables.product.prodname_copilot_for_business %} or {% data variables.product.prodname_copilot_enterprise %}, then allow organizations to grant access to members.
A free subscription for {% data variables.product.prodname_copilot %} is available to verified students, teachers, and maintainers of popular open-source repositories on {% data variables.product.company_short %}. If you meet the criteria as an open source maintainer, you will be automatically notified when you visit the {% data variables.product.prodname_copilot %} subscription page. As a student, if you receive the {% data variables.product.prodname_student_pack %}, you will also be offered a free subscription when you visit the {% data variables.product.prodname_copilot %} subscription page. For more information about the {% data variables.product.prodname_student_pack %}, see "[AUTOTITLE](/free-pro-team@latest/education/explore-the-benefits-of-teaching-and-learning-with-github-education/github-global-campus-for-students/apply-to-github-global-campus-as-a-student)."
{% data reusables.billing.billing-info %}
> [!NOTE] A free subscription for {% data variables.product.prodname_copilot %} is available to verified students, teachers, and maintainers of popular open-source repositories on {% data variables.product.company_short %}. See "[AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-free-access-to-copilot-as-a-student-teacher-or-maintainer)."
## About billing for {% data variables.product.prodname_copilot_for_individuals %}

View File

@@ -54,7 +54,7 @@ For more information, see "[AUTOTITLE](/copilot/about-github-copilot/github-copi
* _Sign up for a subscription to {% data variables.product.prodname_copilot_for_individuals %}_. You can <a href="https://github.com/github-copilot/signup?ref_cta=Copilot+trial&ref_loc=about+github+copilot&ref_page=docs" target="_blank"><span>try {% data variables.product.prodname_copilot %} for free</span></a> with a one-time 30-day trial. After the free trial, you will need a paid subscription for continued use.
* _If you are a member of an organization or enterprise_ that has a subscription to {% data variables.product.prodname_copilot %}, you can request access to {% data variables.product.prodname_copilot_short %} by going to [https://github.com/settings/copilot](https://github.com/settings/copilot) and requesting access under "Get Copilot from an organization."
* _If you are a verified student, teacher, or maintainer of a popular open source project_, {% data variables.product.prodname_copilot %} is free to use. See "[AUTOTITLE](/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot)."
* _If you are a verified student, teacher, or maintainer of a popular open source project_, {% data variables.product.prodname_copilot %} is free to use. See "[AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-free-access-to-copilot-as-a-student-teacher-or-maintainer)."
**As an organization owner or enterprise admin**, you can purchase a subscription to {% data variables.product.prodname_copilot_for_business %} or {% data variables.product.prodname_copilot_enterprise %} for your organization or enterprise, and allow organizations to grant access to members. For more information, see "[AUTOTITLE](/copilot/about-github-copilot/)"

View File

@@ -0,0 +1,28 @@
---
title: Getting free access to Copilot as a student, teacher, or maintainer
shortTitle: Get free access
intro: 'Learn how to use {% data variables.product.prodname_copilot_short %} for free as a student, teacher, or open-source maintainer.'
versions:
feature: copilot
type: how_to
topics:
- Copilot
---
## About free {% data variables.product.prodname_copilot_short %} access
There are three ways to qualify for free access to {% data variables.product.prodname_copilot_for_individuals %}:
* **As a verified student on {% data variables.product.prodname_education %}.** To learn about becoming a verified student, see "[AUTOTITLE](/free-pro-team@latest/education/explore-the-benefits-of-teaching-and-learning-with-github-education/github-education-for-students/apply-to-github-education-as-a-student)."
* **As a verified teacher on {% data variables.product.prodname_education %}.** To learn about becoming a verified teacher, see "[AUTOTITLE](/free-pro-team@latest/education/explore-the-benefits-of-teaching-and-learning-with-github-education/github-education-for-teachers/apply-to-github-education-as-a-teacher)."
* **As a maintainer of a popular open-source repository.** To determine if you are an eligible maintainer, see "[Accessing {% data variables.product.prodname_copilot %} for free](#accessing-github-copilot-for-free)."
{% data variables.product.company_short %} reevaluates your eligibility every month.
> [!NOTE] If you do not meet the previous criteria, you can still <a href="https://github.com/github-copilot/signup?ref_cta=Copilot+trial&ref_loc=about+github+copilot&ref_page=docs" target="_blank"><span>try {% data variables.product.prodname_copilot %} for free</span></a> with a one-time 30-day trial. After the free trial, you will need a paid subscription for continued use.
## Accessing {% data variables.product.prodname_copilot %} for free
1. In the upper-right corner of any page, click your profile photo, then click **{% octicon "copilot" aria-hidden="true" %} Your {% data variables.product.prodname_copilot_short %}**.
1. If you qualify for free access to {% data variables.product.prodname_copilot_short %}, you will see a page titled "{% data variables.product.prodname_copilot_for_individuals %}" informing you that you are eligible. Click **Get access to {% data variables.product.prodname_copilot %}**.
1. On the page that appears, configure the {% data variables.product.prodname_copilot_short %} use policies to meet your needs, then click **Save and complete**.

View File

@@ -7,6 +7,7 @@ versions:
topics:
- Copilot
children:
- /getting-free-access-to-copilot-as-a-student-teacher-or-maintainer
- /subscribing-to-copilot-as-an-individual-user
- /installing-github-copilot-extensions-for-your-personal-account
- /managing-copilot-policies-as-an-individual-subscriber
@@ -14,4 +15,3 @@ children:
- /canceling-your-copilot-trial-as-an-individual-user
- /canceling-copilot-as-an-individual-user
---

View File

@@ -16,7 +16,7 @@ There are a few ways that you can get access to {% data variables.product.prodna
* _Sign up for a subscription to {% data variables.product.prodname_copilot_for_individuals %}_. You can <a href="https://github.com/github-copilot/signup?ref_cta=Copilot+trial&ref_loc=about+github+copilot&ref_page=docs" target="_blank"><span>try {% data variables.product.prodname_copilot %} for free</span></a> with a one-time 30-day trial. After the free trial, you will need a paid subscription for continued use.
* _If you are a member of an organization or enterprise_ that has a subscription to {% data variables.product.prodname_copilot %}, you can request access to {% data variables.product.prodname_copilot_short %} by going to [https://github.com/settings/copilot](https://github.com/settings/copilot) and requesting access under "Get Copilot from an organization."
* _If you are a verified student, teacher, or maintainer of a popular open source project_, {% data variables.product.prodname_copilot %} is free to use. See "[AUTOTITLE](/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot)."
* _If you are a verified student, teacher, or maintainer of a popular open source project_, {% data variables.product.prodname_copilot %} is free to use. See "[AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-free-access-to-copilot-as-a-student-teacher-or-maintainer)."
## 2. Install the {% data variables.product.prodname_copilot_short %} extension for your IDE

View File

@@ -34,7 +34,7 @@ Once you are a verified {% data variables.product.prodname_global_campus %} stud
* Discover student-created repositories from {% data variables.product.prodname_community_exchange %}. For more information, see "[AUTOTITLE](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/github-global-campus-for-students/about-github-community-exchange)."
{% data variables.product.prodname_global_campus %} students also receive the following {% data variables.product.prodname_dotcom %} benefits.
* **{% data variables.product.prodname_copilot %}**: Verified students receive a free subscription for {% data variables.product.prodname_copilot %}. You will be automatically notified about the free subscription when you visit the {% data variables.product.prodname_copilot %} subscription page in your account settings. For more information about subscribing to and using {% data variables.product.prodname_copilot %}, see "[AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/subscribing-to-copilot-as-an-individual-user)."
* **{% data variables.product.prodname_copilot %}**: Verified students receive a free subscription for {% data variables.product.prodname_copilot %}. See "[AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-free-access-to-copilot-as-a-student-teacher-or-maintainer)."
* **{% data variables.product.prodname_github_codespaces %}**: {% data reusables.education.student-codespaces-benefit %} For more information on getting started with {% data variables.product.prodname_github_codespaces %}, see "[AUTOTITLE](/codespaces/overview)."
{% note %}

View File

@@ -29,7 +29,7 @@ Before applying for an individual discount, check if your learning community is
* Stay in the know on what the student community is interested in by rewatching recent [Campus TV](https://www.twitch.tv/githubeducation) episodes. Campus TV is created by {% data variables.product.prodname_dotcom %} and student community leaders and can be watched live or on demand.
* Request a {% data variables.product.prodname_dotcom %} swag bag with educational materials and goodies for your students.
A free subscription for {% data variables.product.prodname_copilot %} is available to verified teachers with {% data variables.product.prodname_education %}. You will be automatically notified about the free subscription when you visit the {% data variables.product.prodname_copilot %} subscription page in your account settings. For more information about subscribing to and using {% data variables.product.prodname_copilot %}, see "[AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/subscribing-to-copilot-as-an-individual-user)" and "[AUTOTITLE](/copilot/about-github-copilot/what-is-github-copilot)."
A free subscription for {% data variables.product.prodname_copilot %} is available to verified teachers with {% data variables.product.prodname_education %}. See "[AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-free-access-to-copilot-as-a-student-teacher-or-maintainer)."
## Further reading

View File

@@ -60,5 +60,5 @@
"2022-11-28"
]
},
"sha": "bd6097760dede8c78b9e98d7ecc48df3629fda5b"
"sha": "a48c6511928cb3036021dcad2c1542814c6ce122"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -197323,7 +197323,9 @@
},
"base": {
"type": "array",
"items": {}
"items": {
"type": "string"
}
},
"uid": {
"type": [
@@ -197351,7 +197353,9 @@
},
"user_groups": {
"type": "array",
"items": {}
"items": {
"type": "string"
}
},
"admin_group": {
"type": [

View File

@@ -197499,7 +197499,9 @@
},
"base": {
"type": "array",
"items": {}
"items": {
"type": "string"
}
},
"uid": {
"type": [
@@ -197527,7 +197529,9 @@
},
"user_groups": {
"type": "array",
"items": {}
"items": {
"type": "string"
}
},
"admin_group": {
"type": [

View File

@@ -44,5 +44,5 @@
]
}
},
"sha": "bd6097760dede8c78b9e98d7ecc48df3629fda5b"
"sha": "a48c6511928cb3036021dcad2c1542814c6ce122"
}

View File

@@ -2368,6 +2368,22 @@
]
}
]
},
{
"type": "object",
"name": "secret_scanning_non_provider_patterns",
"description": "",
"childParamsGroups": [
{
"type": "string",
"name": "status",
"description": "",
"enum": [
"enabled",
"disabled"
]
}
]
}
]
}
@@ -3989,6 +4005,22 @@
]
}
]
},
{
"type": "object",
"name": "secret_scanning_non_provider_patterns",
"description": "",
"childParamsGroups": [
{
"type": "string",
"name": "status",
"description": "",
"enum": [
"enabled",
"disabled"
]
}
]
}
]
}
@@ -5611,6 +5643,22 @@
]
}
]
},
{
"type": "object",
"name": "secret_scanning_non_provider_patterns",
"description": "",
"childParamsGroups": [
{
"type": "string",
"name": "status",
"description": "",
"enum": [
"enabled",
"disabled"
]
}
]
}
]
}
@@ -7245,6 +7293,22 @@
]
}
]
},
{
"type": "object",
"name": "secret_scanning_non_provider_patterns",
"description": "",
"childParamsGroups": [
{
"type": "string",
"name": "status",
"description": "",
"enum": [
"enabled",
"disabled"
]
}
]
}
]
}
@@ -211872,6 +211936,22 @@
]
}
]
},
{
"type": "object",
"name": "secret_scanning_non_provider_patterns",
"description": "",
"childParamsGroups": [
{
"type": "string",
"name": "status",
"description": "",
"enum": [
"enabled",
"disabled"
]
}
]
}
]
}

View File

@@ -4639,6 +4639,22 @@
}
]
},
{
"type": "object",
"name": "secret_scanning_non_provider_patterns",
"description": "",
"childParamsGroups": [
{
"type": "string",
"name": "status",
"description": "",
"enum": [
"enabled",
"disabled"
]
}
]
},
{
"type": "object",
"name": "secret_scanning_validity_checks",
@@ -6276,6 +6292,22 @@
}
]
},
{
"type": "object",
"name": "secret_scanning_non_provider_patterns",
"description": "",
"childParamsGroups": [
{
"type": "string",
"name": "status",
"description": "",
"enum": [
"enabled",
"disabled"
]
}
]
},
{
"type": "object",
"name": "secret_scanning_validity_checks",
@@ -7914,6 +7946,22 @@
}
]
},
{
"type": "object",
"name": "secret_scanning_non_provider_patterns",
"description": "",
"childParamsGroups": [
{
"type": "string",
"name": "status",
"description": "",
"enum": [
"enabled",
"disabled"
]
}
]
},
{
"type": "object",
"name": "secret_scanning_validity_checks",
@@ -9564,6 +9612,22 @@
}
]
},
{
"type": "object",
"name": "secret_scanning_non_provider_patterns",
"description": "",
"childParamsGroups": [
{
"type": "string",
"name": "status",
"description": "",
"enum": [
"enabled",
"disabled"
]
}
]
},
{
"type": "object",
"name": "secret_scanning_validity_checks",
@@ -214207,6 +214271,22 @@
}
]
},
{
"type": "object",
"name": "secret_scanning_non_provider_patterns",
"description": "",
"childParamsGroups": [
{
"type": "string",
"name": "status",
"description": "",
"enum": [
"enabled",
"disabled"
]
}
]
},
{
"type": "object",
"name": "secret_scanning_validity_checks",

View File

@@ -1,3 +1,3 @@
{
"sha": "bd6097760dede8c78b9e98d7ecc48df3629fda5b"
"sha": "a48c6511928cb3036021dcad2c1542814c6ce122"
}

View File

@@ -1,28 +1,51 @@
#!/usr/bin/env node
import { execSync } from 'child_process'
import yaml from 'js-yaml'
const slotName = process.env.SLOT_NAME
const appServiceName = process.env.APP_SERVICE_NAME
const resourceGroupName = process.env.RESOURCE_GROUP_NAME
const url = process.env.CANARY_BUILD_URL
const expectedSHA = process.env.EXPECTED_SHA
const waitDuration = parseInt(process.env.CHECK_INTERVAL, 10) || 10000
const curlConnectTimeoutSeconds = parseInt(process.env.CURL_CONNECT_TIMEOUT_SECONDS || '5', 10)
const maxWaitingTimeSeconds = parseInt(process.MAX_WAITING_TIME || 10 * 60 * 1000, 10)
function getBuildSha() {
console.log(`Fetching ${url}`)
function getBuildSha(slot, appService, resourceGroup) {
console.log('Getting Canary App Service Docker config')
const t0 = Date.now()
let config
try {
const o = execSync(`curl --connect-timeout ${curlConnectTimeoutSeconds} ${url}`, {
encoding: 'utf8',
})
console.log(`Fetched ${url}. Took ${Date.now() - t0}ms`)
return o.toString().trim()
config = JSON.parse(
execSync(
`az webapp config container show --show-multicontainer-config --slot ${slot} -n ${appService} -g ${resourceGroup}`,
{ encoding: 'utf8' },
),
)
} catch (err) {
console.log(`Error fetching build sha from ${url}`)
console.log('Error getting the Canary App Service Slot config')
return null
}
// The config is an array of objects. One of the objects
// contains a copy of the Docker compose configuration file
// pushed to the slot (see src/workflows/docker-compose.prod.tmpl.yaml).
// The value key contains the stringified YAML file, so we
// need to parse it to JSON to extract the image sha.
const dockerComposeYaml = config.find(
(obj) => obj.name === 'DOCKER_CUSTOM_IMAGE_NAME_DECODED',
).value
let dockerComposeConfig
try {
dockerComposeConfig = yaml.load(dockerComposeYaml)
} catch (err) {
console.log('Error loading the YAML configuration data from the Canary App Service Slot config')
return null
}
// The image key looks like this:
// `ghdocsprod.azurecr.io/github/docs-internal:d7ee70f225a0f10f293ffdd2d43931acf02c6751`
const sha = dockerComposeConfig.services['ghdocs-prod'].image.split(':')[1]
console.log(`Fetched Canary App Service Slot configuration}. Took ${Date.now() - t0}ms`)
return sha
}
function getStatesForSlot(slot, appService, resourceGroup) {
@@ -38,7 +61,7 @@ let attempts = 0
async function doCheck() {
attempts++
console.log('Attempt:', attempts)
const buildSha = getBuildSha()
const buildSha = getBuildSha(slotName, appServiceName, resourceGroupName)
console.log('Canary build SHA:', buildSha || '*unknown/failed*', 'Expected SHA:', expectedSHA)
const states = getStatesForSlot(slotName, appServiceName, resourceGroupName)