Merge branch 'make-developer-redirects-static' of github.com:github/docs-internal into make-developer-redirects-static
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 11 KiB |
BIN
assets/images/help/settings/email_services_approved_header.png
Normal file
BIN
assets/images/help/settings/email_services_approved_header.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 13 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 11 KiB |
BIN
assets/images/help/settings/setup_notifications_settings.png
Normal file
BIN
assets/images/help/settings/setup_notifications_settings.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.5 KiB |
@@ -701,6 +701,18 @@ steps:
|
||||
|
||||
You can set the `shell` value to a template string using `command […options] {0} [..more_options]`. {% data variables.product.prodname_dotcom %} interprets the first whitespace-delimited word of the string as the command, and inserts the file name for the temporary script at `{0}`.
|
||||
|
||||
For example:
|
||||
|
||||
```yaml
|
||||
steps:
|
||||
- name: Display the environment variables and their values
|
||||
run: |
|
||||
print %ENV
|
||||
shell: perl {0}
|
||||
```
|
||||
|
||||
The command used, `perl` in this example, must be installed on the runner. For information about the software included on GitHub-hosted runners, see "[Specifications for GitHub-hosted runners](/actions/reference/specifications-for-github-hosted-runners#supported-software)."
|
||||
|
||||
#### Exit codes and error action preference
|
||||
|
||||
For built-in shell keywords, we provide the following defaults that are executed by {% data variables.product.prodname_dotcom %}-hosted runners. You should use these guidelines when running shell scripts.
|
||||
|
||||
@@ -44,12 +44,6 @@ settings to allow incoming emails](#configuring-dns-and-firewall-settings-to-all
|
||||
- In the **Authentication** dropdown, choose the type of encryption used by your SMTP server.
|
||||
- In the **No-reply email address** field, type the email address to use in the From and To fields for all notification emails.
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note:** If you select the **Send from author** checkbox in a repository’s **Services** email webhook, outbound email for that repository will send from the author and not from the no-reply email address. For more information, see "[About email notifications for pushes to your repository](/github/administering-a-repository/about-email-notifications-for-pushes-to-your-repository)."
|
||||
|
||||
{% endnote %}
|
||||
|
||||
6. If you want to discard all incoming emails that are addressed to the no-reply email address, select **Discard email addressed to the no-reply email address**.
|
||||

|
||||
7. Under **Support**, choose a type of link to offer additional support to your users:
|
||||
@@ -165,8 +159,7 @@ You'll notice that `metroplex` catches the inbound message, processes it, then m
|
||||
|
||||
#### Verify your DNS settings
|
||||
|
||||
In order to properly process inbound emails, you must configure a valid A Record (or CNAME), as well as an MX Record. For more information, see "[Configuring DNS and firewall settings to allow incom
|
||||
emails](#configuring-dns-and-firewall-settings-to-allow-incoming-emails)."
|
||||
In order to properly process inbound emails, you must configure a valid A Record (or CNAME), as well as an MX Record. For more information, see "[Configuring DNS and firewall settings to allow incoming emails](#configuring-dns-and-firewall-settings-to-allow-incoming-emails)."
|
||||
|
||||
#### Check firewall or AWS Security Group settings
|
||||
|
||||
|
||||
@@ -34,10 +34,10 @@ You can filter email notifications you receive for pushes to a repository. For m
|
||||
{% data reusables.repositories.sidebar-notifications %}
|
||||
5. Type up to two email addresses, separated by whitespace, where you'd like notifications to be sent. If you'd like to send emails to more than two accounts, set one of the email addresses to a group email address.
|
||||

|
||||
6. If you operate your own server, you can verify the integrity of emails via the **Secret** token. This token is sent with the email as the `Approved` header. If the `Approved` header matches the token you sent, you can trust that the email is from {% data variables.product.product_name %}.
|
||||

|
||||
7. Click **Save settings**.
|
||||

|
||||
1. If you operate your own server, you can verify the integrity of emails via the **Approved header**. The **Approved header** is a token or secret that you type in this field, and that is sent with the email. If the `Approved` header of an email matches the token, you can trust that the email is from {% data variables.product.product_name %}.
|
||||

|
||||
7. Click **Setup notifications**.
|
||||

|
||||
|
||||
### Further reading
|
||||
{% if currentVersion == "free-pro-team@latest" or currentVersion == "github-ae@latest" or currentVersion ver_gt "enterprise-server@2.20" %}
|
||||
|
||||
@@ -9,7 +9,7 @@ versions:
|
||||
|
||||
### About navigating code on {% data variables.product.prodname_dotcom %}
|
||||
|
||||
Navigating code functions use the open source library [`semantic`](https://github.com/github/semantic). The following languages are supported:
|
||||
Code navigation uses the open source library [`tree-sitter`](https://github.com/tree-sitter/tree-sitter). The following languages are supported:
|
||||
- C#
|
||||
- CodeQL
|
||||
- Go
|
||||
|
||||
@@ -55,7 +55,7 @@ Actions and any elements of the Actions service may not be used in violation of
|
||||
- any activity that places a burden on our servers, where that burden is disproportionate to the benefits provided to users (for example, don't use Actions as a content delivery network or as part of a serverless application, but a low benefit Action could be ok if it’s also low burden); or
|
||||
- any other activity unrelated to the production, testing, deployment, or publication of the software project associated with the repository where GitHub Actions are used.
|
||||
|
||||
In order to prevent violations of these limitations and abuse of GitHub Actions, GitHub may monitor your use of GitHub Actions. Misuse of GitHub Actions may result in termination of jobs, or restrictions in your ability to use GitHub Actions.
|
||||
In order to prevent violations of these limitations and abuse of GitHub Actions, GitHub may monitor your use of GitHub Actions. Misuse of GitHub Actions may result in termination of jobs, restrictions in your ability to use GitHub Actions, or the disabling of repositories created to run Actions in a way that violates these Terms.
|
||||
|
||||
#### b. Packages Usage
|
||||
GitHub Packages is billed on a usage basis. The [Packages documentation](/packages) includes details, including bandwidth and storage quantities (depending on your Account plan), and how to monitor your Packages usage and set usage limits. Packages bandwidth usage is limited by the [GitHub Acceptable Use Polices](/github/site-policy/github-acceptable-use-policies).
|
||||
|
||||
@@ -1 +1 @@
|
||||
If you're not a billing manger for the organization, ask your client to have an *owner* of the organization [add you to the organization as a billing manager](/articles/adding-a-billing-manager-to-your-organization).
|
||||
If you're not a billing manager for the organization, ask your client to have an *owner* of the organization [add you to the organization as a billing manager](/articles/adding-a-billing-manager-to-your-organization).
|
||||
|
||||
@@ -55444,11 +55444,13 @@
|
||||
},
|
||||
"authorized_credential_title": {
|
||||
"type": "string",
|
||||
"nullable": true,
|
||||
"example": "my ssh key",
|
||||
"description": "The title given to the ssh key. This will only be present when the credential is an ssh key."
|
||||
},
|
||||
"authorized_credential_note": {
|
||||
"type": "string",
|
||||
"nullable": true,
|
||||
"example": "my token",
|
||||
"description": "The note given to the token. This will only be present when the credential is a token."
|
||||
}
|
||||
|
||||
@@ -24,13 +24,22 @@ module.exports = async (req, res, next) => {
|
||||
|
||||
if (guideIndex > 0) {
|
||||
const prevGuidePath = track.guides[guideIndex - 1]
|
||||
const { href, title } = await getLinkData(prevGuidePath, req.context, { title: true, intro: false })
|
||||
const result = await getLinkData(prevGuidePath, req.context, { title: true, intro: false })
|
||||
if (!result) return noTrack()
|
||||
|
||||
const href = result.href
|
||||
const title = result.title
|
||||
currentLearningTrack.prevGuide = { href, title }
|
||||
}
|
||||
|
||||
if (guideIndex < track.guides.length - 1) {
|
||||
const nextGuidePath = track.guides[guideIndex + 1]
|
||||
const { href, title } = await getLinkData(nextGuidePath, req.context, { title: true, intro: false })
|
||||
const result = await getLinkData(nextGuidePath, req.context, { title: true, intro: false })
|
||||
if (!result) return noTrack()
|
||||
|
||||
const href = result.href
|
||||
const title = result.title
|
||||
|
||||
currentLearningTrack.nextGuide = { href, title }
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
const linkinator = require('linkinator')
|
||||
const checker = new linkinator.LinkChecker()
|
||||
const { deprecated } = require('../lib/enterprise-server-releases')
|
||||
const englishRoot = 'http://localhost:4002/en'
|
||||
|
||||
// [start-readme]
|
||||
//
|
||||
@@ -10,17 +11,23 @@ const { deprecated } = require('../lib/enterprise-server-releases')
|
||||
// not including deprecated Enterprise Server content. This is different from script/check-english-links.js,
|
||||
// which checks *all* links in the site, both internal and external, and is much slower.
|
||||
//
|
||||
// If you want to run it locally, you must have a local server running. You can use `npm run link-check`.
|
||||
//
|
||||
// [end-readme]
|
||||
|
||||
const config = {
|
||||
path: 'http://localhost:4002/en',
|
||||
path: englishRoot,
|
||||
// Use concurrency = 10 to optimize for Actions
|
||||
// See https://github.com/JustinBeckwith/linkinator/issues/135#issuecomment-623240879
|
||||
concurrency: 10,
|
||||
recurse: true,
|
||||
linksToSkip: [
|
||||
// Skip any link that is not an internal link
|
||||
'^((?!http://localhost:4002/en).)*$',
|
||||
// Skip any link that is not an internal link.
|
||||
// NOTE: If we want this test to check for broken asset paths in the future,
|
||||
// we can remove `en` from the path below. This will increase the runtime, but that
|
||||
// may be an acceptable tradeoff. For the record: `check-external-links`, which runs
|
||||
// nightly, currently does check for broken asset paths.
|
||||
`^((?!${englishRoot}).)*$`,
|
||||
// Skip dist files
|
||||
'/dist/index.*',
|
||||
// Skip deprecated Enterprise content
|
||||
@@ -37,6 +44,11 @@ async function main () {
|
||||
.filter(link => link.state === 'BROKEN')
|
||||
.map(link => { delete link.failureDetails; return link })
|
||||
|
||||
if (brokenLinks.length === 1 && brokenLinks[0].url === englishRoot) {
|
||||
console.log(`You must be running ${englishRoot}!\n\nTry instead: npm run link-check`)
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
// Exit successfully if no broken links!
|
||||
if (!brokenLinks.length) {
|
||||
console.log('All links are good!')
|
||||
|
||||
@@ -329,8 +329,8 @@ describe('server', () => {
|
||||
})
|
||||
|
||||
test('admin articles that link to Enterprise user articles have Enterprise user links', async () => {
|
||||
const $ = await getDOM(`${latestEnterprisePath}/admin/user-management/configuring-email-for-notifications`)
|
||||
expect($('article a[href*="about-email-notifications-for-pushes-to-your-repository"]').length).toBe(1)
|
||||
const $ = await getDOM(`${latestEnterprisePath}/admin/user-management/customizing-user-messages-for-your-enterprise`)
|
||||
expect($('article a[href*="about-writing-and-formatting-on-github"]').length).toBe(1)
|
||||
})
|
||||
|
||||
test('articles that link to external links that contain /articles/ are not rewritten', async () => {
|
||||
|
||||
Reference in New Issue
Block a user