Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,27 @@ This is an example of adding key `nuget.org` as true to the `disabledPackageSour
</configuration>
```

To configure {% data variables.product.prodname_dependabot %} to access both private _and_ public feeds, view the following `dependabot.yml` example which includes the configured `public` feed under `registries`:

```yaml
version: 2
registries:
nuget-example:
type: nuget-feed
url: https://nuget.example.com/v3/index.json
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
public:
type: nuget-feed
url: https://api.nuget.org/v3/index.json
updates:
- package-ecosystem: nuget
directory: "/"
registries: "*"
schedule:
interval: daily
```

## Python

Pip, Pip-compile, Pipenv, and Poetry are the four package managers that the Python ecosystem currently supports.
Expand Down
50 changes: 16 additions & 34 deletions src/content-linter/tests/site-data-references.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import fs from 'fs/promises'
import { fileURLToPath } from 'url'
import path from 'path'
import { isEqual, uniqWith } from 'lodash-es'
import { jest } from '@jest/globals'
Expand All @@ -9,9 +8,7 @@ import patterns from '../../../lib/patterns.js'
import frontmatter from '../../../lib/read-frontmatter.js'
import { getDataByLanguage, getDeepDataByLanguage } from '../../../lib/get-data.js'

const __dirname = path.dirname(fileURLToPath(import.meta.url))

const pages = (await loadPages()).filter((page) => page.languageCode === 'en')
const pages = await loadPages()

// Given syntax like {% data foo.bar %} or {% indented_data_reference foo.bar spaces=3 %},
// the following regex returns just the dotted path: foo.bar
Expand Down Expand Up @@ -55,7 +52,7 @@ describe('data references', () => {
await Promise.all(
pages.map(async (page) => {
const metadataFile = path.join('content', page.relativePath)
const fileContents = await fs.readFile(path.join(__dirname, '../../..', metadataFile))
const fileContents = await fs.readFile(page.fullPath)
const { data: metadata } = frontmatter(fileContents, { filepath: page.fullPath })
const metadataRefs = getDataReferences(JSON.stringify(metadata))
metadataRefs.forEach((key) => {
Expand All @@ -77,18 +74,17 @@ describe('data references', () => {

await Promise.all(
reusables.map(async (reusablesPerFile) => {
let reusableFile = path.join(
__dirname,
'../../../data/reusables/',
getFilenameByValue(allReusables, reusablesPerFile)
)
reusableFile = await getFilepath(reusableFile)

const reusableRefs = getDataReferences(JSON.stringify(reusablesPerFile))

reusableRefs.forEach((key) => {
const value = getDataByLanguage(key, 'en')
if (typeof value !== 'string') errors.push({ key, value, reusableFile })
if (typeof value !== 'string') {
const reusableFile = path.join(
'data/reusables',
getFilenameByValue(allReusables, reusablesPerFile)
)
errors.push({ key, value, reusableFile })
}
})
})
)
Expand All @@ -105,18 +101,17 @@ describe('data references', () => {

await Promise.all(
variables.map(async (variablesPerFile) => {
let variableFile = path.join(
__dirname,
'../../../data/variables/',
getFilenameByValue(allVariables, variablesPerFile)
)
variableFile = await getFilepath(variableFile)

const variableRefs = getDataReferences(JSON.stringify(variablesPerFile))

variableRefs.forEach((key) => {
const value = getDataByLanguage(key, 'en')
if (typeof value !== 'string') errors.push({ key, value, variableFile })
if (typeof value !== 'string') {
const variableFile = path.join(
'data/variables',
getFilenameByValue(allVariables, variablesPerFile)
)
errors.push({ key, value, variableFile })
}
})
})
)
Expand All @@ -129,16 +124,3 @@ describe('data references', () => {
function getFilenameByValue(object, value) {
return Object.keys(object).find((key) => object[key] === value)
}

// if path exists, assume it's a directory; otherwise, assume a YML extension
async function getFilepath(filepath) {
try {
await fs.stat(filepath)
filepath = filepath + '/'
} catch (_) {
filepath = filepath + '.yml'
}

// we only need the relative path
return filepath.replace(path.join(__dirname, '../../../'), '')
}