mirror of
https://github.com/vyos/vyos-documentation.git
synced 2025-10-26 08:41:46 +01:00
add github actions
This commit is contained in:
parent
4bc9e94a7a
commit
ba76cefc39
9
.github/styles/Google/AMPM.yml
vendored
Normal file
9
.github/styles/Google/AMPM.yml
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
extends: existence
|
||||
message: "Use 'AM' or 'PM' (preceded by a space)."
|
||||
link: 'https://developers.google.com/style/word-list'
|
||||
level: error
|
||||
nonword: true
|
||||
tokens:
|
||||
- '\d{1,2}[AP]M'
|
||||
- '\d{1,2} ?[ap]m'
|
||||
- '\d{1,2} ?[aApP]\.[mM]\.'
|
||||
64
.github/styles/Google/Acronyms.yml
vendored
Normal file
64
.github/styles/Google/Acronyms.yml
vendored
Normal file
@ -0,0 +1,64 @@
|
||||
extends: conditional
|
||||
message: "Spell out '%s', if it's unfamiliar to the audience."
|
||||
link: 'https://developers.google.com/style/abbreviations'
|
||||
level: suggestion
|
||||
ignorecase: false
|
||||
# Ensures that the existence of 'first' implies the existence of 'second'.
|
||||
first: '\b([A-Z]{3,5})\b'
|
||||
second: '(?:\b[A-Z][a-z]+ )+\(([A-Z]{3,5})\)'
|
||||
# ... with the exception of these:
|
||||
exceptions:
|
||||
- API
|
||||
- ASP
|
||||
- CLI
|
||||
- CPU
|
||||
- CSS
|
||||
- CSV
|
||||
- DEBUG
|
||||
- DOM
|
||||
- DPI
|
||||
- FAQ
|
||||
- GCC
|
||||
- GDB
|
||||
- GET
|
||||
- GPU
|
||||
- GTK
|
||||
- GUI
|
||||
- HTML
|
||||
- HTTP
|
||||
- HTTPS
|
||||
- IDE
|
||||
- JAR
|
||||
- JSON
|
||||
- JSX
|
||||
- LESS
|
||||
- LLDB
|
||||
- NET
|
||||
- NOTE
|
||||
- NVDA
|
||||
- OSS
|
||||
- PATH
|
||||
- PDF
|
||||
- PHP
|
||||
- POST
|
||||
- RAM
|
||||
- REPL
|
||||
- RSA
|
||||
- SCM
|
||||
- SCSS
|
||||
- SDK
|
||||
- SQL
|
||||
- SSH
|
||||
- SSL
|
||||
- SVG
|
||||
- TBD
|
||||
- TCP
|
||||
- TODO
|
||||
- URI
|
||||
- URL
|
||||
- USB
|
||||
- UTF
|
||||
- XML
|
||||
- XSS
|
||||
- YAML
|
||||
- ZIP
|
||||
7
.github/styles/Google/Colons.yml
vendored
Normal file
7
.github/styles/Google/Colons.yml
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
extends: existence
|
||||
message: "'%s' should be in lowercase."
|
||||
link: 'https://developers.google.com/style/colons'
|
||||
nonword: true
|
||||
level: warning
|
||||
tokens:
|
||||
- ':\s[A-Z]'
|
||||
28
.github/styles/Google/Contractions.yml
vendored
Normal file
28
.github/styles/Google/Contractions.yml
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
extends: substitution
|
||||
message: "Feel free to use '%s' instead of '%s'."
|
||||
link: 'https://developers.google.com/style/contractions'
|
||||
level: suggestion
|
||||
ignorecase: true
|
||||
swap:
|
||||
are not: aren't
|
||||
cannot: can't
|
||||
could not: couldn't
|
||||
did not: didn't
|
||||
do not: don't
|
||||
does not: doesn't
|
||||
has not: hasn't
|
||||
have not: haven't
|
||||
how is: how's
|
||||
is not: isn't
|
||||
it is: it's
|
||||
should not: shouldn't
|
||||
that is: that's
|
||||
they are: they're
|
||||
was not: wasn't
|
||||
we are: we're
|
||||
we have: we've
|
||||
were not: weren't
|
||||
what is: what's
|
||||
when is: when's
|
||||
where is: where's
|
||||
will not: won't
|
||||
9
.github/styles/Google/DateFormat.yml
vendored
Normal file
9
.github/styles/Google/DateFormat.yml
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
extends: existence
|
||||
message: "Use 'July 31, 2016' format, not '%s'."
|
||||
link: 'https://developers.google.com/style/dates-times'
|
||||
ignorecase: true
|
||||
level: error
|
||||
nonword: true
|
||||
tokens:
|
||||
- '\d{1,2}(?:\.|/)\d{1,2}(?:\.|/)\d{4}'
|
||||
- '\d{1,2} (?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)|May|Jun(?:e)|Jul(?:y)|Aug(?:ust)|Sep(?:tember)?|Oct(?:ober)|Nov(?:ember)?|Dec(?:ember)?) \d{4}'
|
||||
7
.github/styles/Google/Ellipses.yml
vendored
Normal file
7
.github/styles/Google/Ellipses.yml
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
extends: existence
|
||||
message: "In general, don't use an ellipsis."
|
||||
link: 'https://developers.google.com/style/ellipses'
|
||||
nonword: true
|
||||
level: warning
|
||||
tokens:
|
||||
- '\.\.\.'
|
||||
8
.github/styles/Google/EmDash.yml
vendored
Normal file
8
.github/styles/Google/EmDash.yml
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
extends: existence
|
||||
message: "Don't put a space before or after an em dash."
|
||||
link: 'https://developers.google.com/style/dashes'
|
||||
nonword: true
|
||||
level: error
|
||||
tokens:
|
||||
- '\s—'
|
||||
- '—\s'
|
||||
7
.github/styles/Google/EnDash.yml
vendored
Normal file
7
.github/styles/Google/EnDash.yml
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
extends: existence
|
||||
message: "Use an em dash ('—') instead of '–'."
|
||||
link: 'https://developers.google.com/style/dashes'
|
||||
nonword: true
|
||||
level: error
|
||||
tokens:
|
||||
- '–'
|
||||
7
.github/styles/Google/Exclamation.yml
vendored
Normal file
7
.github/styles/Google/Exclamation.yml
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
extends: existence
|
||||
message: "Don't use exclamation points in text."
|
||||
link: 'https://developers.google.com/style/exclamation-points'
|
||||
nonword: true
|
||||
level: error
|
||||
tokens:
|
||||
- '!'
|
||||
11
.github/styles/Google/FirstPerson.yml
vendored
Normal file
11
.github/styles/Google/FirstPerson.yml
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
extends: existence
|
||||
message: "Avoid first-person pronouns such as '%s'."
|
||||
link: 'https://developers.google.com/style/pronouns#personal-pronouns'
|
||||
ignorecase: true
|
||||
level: warning
|
||||
nonword: true
|
||||
tokens:
|
||||
- (?:^|\s)I\s
|
||||
- \bme\b
|
||||
- \bus\b
|
||||
- \bours\b
|
||||
9
.github/styles/Google/Gender.yml
vendored
Normal file
9
.github/styles/Google/Gender.yml
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
extends: existence
|
||||
message: "Don't use '%s' as a gender-neutral pronoun."
|
||||
link: 'https://developers.google.com/style/pronouns#gender-neutral-pronouns'
|
||||
level: error
|
||||
ignorecase: true
|
||||
tokens:
|
||||
- he/she
|
||||
- s/he
|
||||
- \(s\)he
|
||||
45
.github/styles/Google/GenderBias.yml
vendored
Normal file
45
.github/styles/Google/GenderBias.yml
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
extends: substitution
|
||||
message: "Consider using '%s' instead of '%s'."
|
||||
link: 'https://developers.google.com/style/inclusive-documentation'
|
||||
ignorecase: true
|
||||
level: error
|
||||
swap:
|
||||
(?:alumna|alumnus): graduate
|
||||
(?:alumnae|alumni): graduates
|
||||
air(?:m[ae]n|wom[ae]n): pilot(s)
|
||||
anchor(?:m[ae]n|wom[ae]n): anchor(s)
|
||||
authoress: author
|
||||
camera(?:m[ae]n|wom[ae]n): camera operator(s)
|
||||
chair(?:m[ae]n|wom[ae]n): chair(s)
|
||||
congress(?:m[ae]n|wom[ae]n): member(s) of congress
|
||||
door(?:m[ae]|wom[ae]n): concierge(s)
|
||||
draft(?:m[ae]n|wom[ae]n): drafter(s)
|
||||
fire(?:m[ae]n|wom[ae]n): firefighter(s)
|
||||
fisher(?:m[ae]n|wom[ae]n): fisher(s)
|
||||
fresh(?:m[ae]n|wom[ae]n): first-year student(s)
|
||||
garbage(?:m[ae]n|wom[ae]n): waste collector(s)
|
||||
lady lawyer: lawyer
|
||||
ladylike: courteous
|
||||
landlord: building manager
|
||||
mail(?:m[ae]n|wom[ae]n): mail carriers
|
||||
man and wife: husband and wife
|
||||
man enough: strong enough
|
||||
mankind: human kind
|
||||
manmade: manufactured
|
||||
manpower: personnel
|
||||
men and girls: men and women
|
||||
middle(?:m[ae]n|wom[ae]n): intermediary
|
||||
news(?:m[ae]n|wom[ae]n): journalist(s)
|
||||
ombuds(?:man|woman): ombuds
|
||||
oneupmanship: upstaging
|
||||
poetess: poet
|
||||
police(?:m[ae]n|wom[ae]n): police officer(s)
|
||||
repair(?:m[ae]n|wom[ae]n): technician(s)
|
||||
sales(?:m[ae]n|wom[ae]n): salesperson or sales people
|
||||
service(?:m[ae]n|wom[ae]n): soldier(s)
|
||||
steward(?:ess)?: flight attendant
|
||||
tribes(?:m[ae]n|wom[ae]n): tribe member(s)
|
||||
waitress: waiter
|
||||
woman doctor: doctor
|
||||
woman scientist[s]?: scientist(s)
|
||||
work(?:m[ae]n|wom[ae]n): worker(s)
|
||||
8
.github/styles/Google/HeadingPunctuation.yml
vendored
Normal file
8
.github/styles/Google/HeadingPunctuation.yml
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
extends: existence
|
||||
message: "Don't put a period at the end of a heading."
|
||||
link: 'https://developers.google.com/style/capitalization#capitalization-in-titles-and-headings'
|
||||
nonword: true
|
||||
level: warning
|
||||
scope: heading
|
||||
tokens:
|
||||
- '[a-z0-9][.](?:\s|$)'
|
||||
26
.github/styles/Google/Headings.yml
vendored
Normal file
26
.github/styles/Google/Headings.yml
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
extends: capitalization
|
||||
message: "'%s' should use sentence-style capitalization."
|
||||
link: 'https://developers.google.com/style/capitalization#capitalization-in-titles-and-headings'
|
||||
level: warning
|
||||
scope: heading
|
||||
match: $sentence
|
||||
exceptions:
|
||||
- Azure
|
||||
- CLI
|
||||
- Code
|
||||
- Cosmos
|
||||
- Docker
|
||||
- Emmet
|
||||
- I
|
||||
- Kubernetes
|
||||
- Linux
|
||||
- macOS
|
||||
- Marketplace
|
||||
- MongoDB
|
||||
- REPL
|
||||
- Studio
|
||||
- TypeScript
|
||||
- URLs
|
||||
- Visual
|
||||
- VS
|
||||
- Windows
|
||||
8
.github/styles/Google/Hyphens.yml
vendored
Normal file
8
.github/styles/Google/Hyphens.yml
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
extends: existence
|
||||
message: "Don't place a space on either side of a hyphen (unless it's suspended)."
|
||||
link: 'https://developers.google.com/style/hyphens'
|
||||
level: warning
|
||||
nonword: true
|
||||
tokens:
|
||||
- '\s-'
|
||||
- '-\s'
|
||||
9
.github/styles/Google/Latin.yml
vendored
Normal file
9
.github/styles/Google/Latin.yml
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
extends: substitution
|
||||
message: "Use '%s' instead of '%s'."
|
||||
link: 'https://developers.google.com/style/abbreviations'
|
||||
ignorecase: true
|
||||
level: error
|
||||
nonword: true
|
||||
swap:
|
||||
'\b(?:eg|e\.g\.)[\s,]': for example
|
||||
'\b(?:ie|i\.e\.)[\s,]': that is
|
||||
8
.github/styles/Google/LyHyphens.yml
vendored
Normal file
8
.github/styles/Google/LyHyphens.yml
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
extends: existence
|
||||
message: "'%s' doesn't need a hyphen."
|
||||
link: 'https://developers.google.com/style/hyphens'
|
||||
level: error
|
||||
ignorecase: false
|
||||
nonword: true
|
||||
tokens:
|
||||
- '\s[^\s-]+ly-'
|
||||
7
.github/styles/Google/OptionalPlurals.yml
vendored
Normal file
7
.github/styles/Google/OptionalPlurals.yml
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
extends: existence
|
||||
message: "Don't use plurals in parentheses such as in '%s'."
|
||||
link: 'https://developers.google.com/style/plurals-parentheses'
|
||||
level: error
|
||||
nonword: true
|
||||
tokens:
|
||||
- '\b\w+\(s\)'
|
||||
7
.github/styles/Google/Ordinal.yml
vendored
Normal file
7
.github/styles/Google/Ordinal.yml
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
extends: existence
|
||||
message: "Spell out all ordinal numbers ('%s') in text."
|
||||
link: 'https://developers.google.com/style/numbers'
|
||||
level: error
|
||||
nonword: true
|
||||
tokens:
|
||||
- \d+(?:st|th|rd)
|
||||
7
.github/styles/Google/OxfordComma.yml
vendored
Normal file
7
.github/styles/Google/OxfordComma.yml
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
extends: existence
|
||||
message: "Use the Oxford comma in '%s'."
|
||||
link: 'https://developers.google.com/style/commas'
|
||||
scope: sentence
|
||||
level: warning
|
||||
tokens:
|
||||
- '(?:[^,]+,){1,}\s\w+\sand'
|
||||
7
.github/styles/Google/Parens.yml
vendored
Normal file
7
.github/styles/Google/Parens.yml
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
extends: existence
|
||||
message: "Use parentheses judiciously."
|
||||
link: 'https://developers.google.com/style/parentheses'
|
||||
nonword: true
|
||||
level: suggestion
|
||||
tokens:
|
||||
- '\(.+\)'
|
||||
184
.github/styles/Google/Passive.yml
vendored
Normal file
184
.github/styles/Google/Passive.yml
vendored
Normal file
@ -0,0 +1,184 @@
|
||||
extends: existence
|
||||
link: 'https://developers.google.com/style/voice'
|
||||
message: "In general, use active voice instead of passive voice ('%s')."
|
||||
ignorecase: true
|
||||
level: suggestion
|
||||
raw:
|
||||
- \b(am|are|were|being|is|been|was|be)\b\s*
|
||||
tokens:
|
||||
- '[\w]+ed'
|
||||
- awoken
|
||||
- beat
|
||||
- become
|
||||
- been
|
||||
- begun
|
||||
- bent
|
||||
- beset
|
||||
- bet
|
||||
- bid
|
||||
- bidden
|
||||
- bitten
|
||||
- bled
|
||||
- blown
|
||||
- born
|
||||
- bought
|
||||
- bound
|
||||
- bred
|
||||
- broadcast
|
||||
- broken
|
||||
- brought
|
||||
- built
|
||||
- burnt
|
||||
- burst
|
||||
- cast
|
||||
- caught
|
||||
- chosen
|
||||
- clung
|
||||
- come
|
||||
- cost
|
||||
- crept
|
||||
- cut
|
||||
- dealt
|
||||
- dived
|
||||
- done
|
||||
- drawn
|
||||
- dreamt
|
||||
- driven
|
||||
- drunk
|
||||
- dug
|
||||
- eaten
|
||||
- fallen
|
||||
- fed
|
||||
- felt
|
||||
- fit
|
||||
- fled
|
||||
- flown
|
||||
- flung
|
||||
- forbidden
|
||||
- foregone
|
||||
- forgiven
|
||||
- forgotten
|
||||
- forsaken
|
||||
- fought
|
||||
- found
|
||||
- frozen
|
||||
- given
|
||||
- gone
|
||||
- gotten
|
||||
- ground
|
||||
- grown
|
||||
- heard
|
||||
- held
|
||||
- hidden
|
||||
- hit
|
||||
- hung
|
||||
- hurt
|
||||
- kept
|
||||
- knelt
|
||||
- knit
|
||||
- known
|
||||
- laid
|
||||
- lain
|
||||
- leapt
|
||||
- learnt
|
||||
- led
|
||||
- left
|
||||
- lent
|
||||
- let
|
||||
- lighted
|
||||
- lost
|
||||
- made
|
||||
- meant
|
||||
- met
|
||||
- misspelt
|
||||
- mistaken
|
||||
- mown
|
||||
- overcome
|
||||
- overdone
|
||||
- overtaken
|
||||
- overthrown
|
||||
- paid
|
||||
- pled
|
||||
- proven
|
||||
- put
|
||||
- quit
|
||||
- read
|
||||
- rid
|
||||
- ridden
|
||||
- risen
|
||||
- run
|
||||
- rung
|
||||
- said
|
||||
- sat
|
||||
- sawn
|
||||
- seen
|
||||
- sent
|
||||
- set
|
||||
- sewn
|
||||
- shaken
|
||||
- shaven
|
||||
- shed
|
||||
- shod
|
||||
- shone
|
||||
- shorn
|
||||
- shot
|
||||
- shown
|
||||
- shrunk
|
||||
- shut
|
||||
- slain
|
||||
- slept
|
||||
- slid
|
||||
- slit
|
||||
- slung
|
||||
- smitten
|
||||
- sold
|
||||
- sought
|
||||
- sown
|
||||
- sped
|
||||
- spent
|
||||
- spilt
|
||||
- spit
|
||||
- split
|
||||
- spoken
|
||||
- spread
|
||||
- sprung
|
||||
- spun
|
||||
- stolen
|
||||
- stood
|
||||
- stridden
|
||||
- striven
|
||||
- struck
|
||||
- strung
|
||||
- stuck
|
||||
- stung
|
||||
- stunk
|
||||
- sung
|
||||
- sunk
|
||||
- swept
|
||||
- swollen
|
||||
- sworn
|
||||
- swum
|
||||
- swung
|
||||
- taken
|
||||
- taught
|
||||
- thought
|
||||
- thrived
|
||||
- thrown
|
||||
- thrust
|
||||
- told
|
||||
- torn
|
||||
- trodden
|
||||
- understood
|
||||
- upheld
|
||||
- upset
|
||||
- wed
|
||||
- wept
|
||||
- withheld
|
||||
- withstood
|
||||
- woken
|
||||
- won
|
||||
- worn
|
||||
- wound
|
||||
- woven
|
||||
- written
|
||||
- wrung
|
||||
7
.github/styles/Google/Periods.yml
vendored
Normal file
7
.github/styles/Google/Periods.yml
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
extends: existence
|
||||
message: "Don't use periods with acronyms or initialisms such as '%s'."
|
||||
link: 'https://developers.google.com/style/abbreviations'
|
||||
level: error
|
||||
nonword: true
|
||||
tokens:
|
||||
- '\b(?:[A-Z]\.){3,}'
|
||||
7
.github/styles/Google/Quotes.yml
vendored
Normal file
7
.github/styles/Google/Quotes.yml
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
extends: existence
|
||||
message: "Commas and periods go inside quotation marks."
|
||||
link: 'https://developers.google.com/style/quotation-marks'
|
||||
level: error
|
||||
nonword: true
|
||||
tokens:
|
||||
- '"[^"]+"[.,?]'
|
||||
7
.github/styles/Google/Ranges.yml
vendored
Normal file
7
.github/styles/Google/Ranges.yml
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
extends: existence
|
||||
message: "Don't add words such as 'from' or 'between' to describe a range of numbers."
|
||||
link: 'https://developers.google.com/style/hyphens'
|
||||
nonword: true
|
||||
level: warning
|
||||
tokens:
|
||||
- '(?:from|between)\s\d+\s?-\s?\d+'
|
||||
8
.github/styles/Google/Semicolons.yml
vendored
Normal file
8
.github/styles/Google/Semicolons.yml
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
extends: existence
|
||||
message: "Use semicolons judiciously."
|
||||
link: 'https://developers.google.com/style/semicolons'
|
||||
nonword: true
|
||||
scope: sentence
|
||||
level: suggestion
|
||||
tokens:
|
||||
- ';'
|
||||
11
.github/styles/Google/Slang.yml
vendored
Normal file
11
.github/styles/Google/Slang.yml
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
extends: existence
|
||||
message: "Don't use internet slang abbreviations such as '%s'."
|
||||
link: 'https://developers.google.com/style/abbreviations'
|
||||
ignorecase: true
|
||||
level: error
|
||||
tokens:
|
||||
- 'tl;dr'
|
||||
- ymmv
|
||||
- rtfm
|
||||
- imo
|
||||
- fwiw
|
||||
8
.github/styles/Google/Spacing.yml
vendored
Normal file
8
.github/styles/Google/Spacing.yml
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
extends: existence
|
||||
message: "'%s' should have one space."
|
||||
link: 'https://developers.google.com/style/sentence-spacing'
|
||||
level: error
|
||||
nonword: true
|
||||
tokens:
|
||||
- '[.?!] {2,}[A-Z]'
|
||||
- '[.?!][A-Z]'
|
||||
8
.github/styles/Google/Spelling.yml
vendored
Normal file
8
.github/styles/Google/Spelling.yml
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
extends: existence
|
||||
message: "In general, use American spelling instead of '%s'."
|
||||
link: 'https://developers.google.com/style/spelling'
|
||||
ignorecase: true
|
||||
level: warning
|
||||
tokens:
|
||||
- '(?:\w+)nised?'
|
||||
- '(?:\w+)logue'
|
||||
7
.github/styles/Google/Units.yml
vendored
Normal file
7
.github/styles/Google/Units.yml
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
extends: existence
|
||||
message: "Put a nonbreaking space between the number and the unit in '%s'."
|
||||
link: 'https://developers.google.com/style/units-of-measure'
|
||||
nonword: true
|
||||
level: error
|
||||
tokens:
|
||||
- \d+(?:GB|TB|MB)
|
||||
7
.github/styles/Google/Will.yml
vendored
Normal file
7
.github/styles/Google/Will.yml
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
extends: existence
|
||||
message: "Avoid using '%s'."
|
||||
link: 'https://developers.google.com/style/tense'
|
||||
ignorecase: true
|
||||
level: warning
|
||||
tokens:
|
||||
- will
|
||||
79
.github/styles/Google/WordList.yml
vendored
Normal file
79
.github/styles/Google/WordList.yml
vendored
Normal file
@ -0,0 +1,79 @@
|
||||
extends: substitution
|
||||
message: "Use %s instead of '%s'."
|
||||
link: 'https://developers.google.com/style/word-list'
|
||||
level: warning
|
||||
ignorecase: false
|
||||
swap:
|
||||
'(?:API Console|dev|developer) key': "'API key'"
|
||||
'(?:cell ?phone|smart ?phone)': "'phone' or 'mobile phone'"
|
||||
'(?:dev|developer|APIs) console': "'API console'"
|
||||
'(?:e-mail|Email|E-mail)': "'email'"
|
||||
'(?:file ?path|path ?name)': "'path'"
|
||||
'(?:kill|terminate)': "'stop', 'exit', 'cancel', or 'end'"
|
||||
'(?:OAuth ?2|Oauth)': "'OAuth 2.0'"
|
||||
'(?:ok|Okay)': "'OK' or 'okay'"
|
||||
'(?:WiFi|wifi)': "'Wi-Fi'"
|
||||
'[\.]+apk': "'APK'"
|
||||
'3\-D': "'3D'"
|
||||
'Google (?:I\-O|IO)': "'Google I/O'"
|
||||
'tap (?:&|and) hold': "'touch & hold'"
|
||||
'un(?:check|select)': "'clear'"
|
||||
abort: "'stop', 'exit', 'cancel' or 'end'"
|
||||
above: "'preceding'"
|
||||
account name: "'username'"
|
||||
action bar: "'app bar'"
|
||||
admin: "'administrator'"
|
||||
Ajax: "'AJAX'"
|
||||
Android device: "'Android-powered device'"
|
||||
android: "'Android'"
|
||||
API explorer: "'APIs Explorer'"
|
||||
application: "'app'"
|
||||
approx\.: "'approximately'"
|
||||
authN: "'authentication'"
|
||||
authZ: "'authorization'"
|
||||
autoupdate: "'automatically update'"
|
||||
cellular data: "'mobile data'"
|
||||
cellular network: "'mobile network'"
|
||||
chapter: "'documents', 'pages', 'sections'"
|
||||
check box: "'checkbox'"
|
||||
check: "'select'"
|
||||
CLI: "'command-line tool'"
|
||||
click on: "'click' or 'click in'"
|
||||
Cloud: "'Google Cloud Platform' or 'GCP'"
|
||||
Container Engine: "'Kubernetes Engine'"
|
||||
content type: "'media type'"
|
||||
curated roles: "'predefined roles'"
|
||||
data are: "'data is'"
|
||||
Developers Console: "'Google API Console' or 'API Console'"
|
||||
disabled?: "'turn off' or 'off'"
|
||||
ephemeral IP address: "'ephemeral external IP address'"
|
||||
fewer data: "'less data'"
|
||||
file name: "'filename'"
|
||||
firewalls: "'firewall rules'"
|
||||
functionality: "'capability' or 'feature'"
|
||||
Google account: "'Google Account'"
|
||||
Google accounts: "'Google Accounts'"
|
||||
Googling: "'search with Google'"
|
||||
grayed-out: "'unavailable'"
|
||||
HTTPs: "'HTTPS'"
|
||||
in order to: "'to'"
|
||||
ingest: "'import' or 'load'"
|
||||
k8s: "'Kubernetes'"
|
||||
long press: "'touch & hold'"
|
||||
network IP address: "'internal IP address'"
|
||||
omnibox: "'address bar'"
|
||||
open-source: "'open source'"
|
||||
overview screen: "'recents screen'"
|
||||
regex: "'regular expression'"
|
||||
SHA1: "'SHA-1' or 'HAS-SHA1'"
|
||||
sign into: "'sign in to'"
|
||||
sign-?on: "'single sign-on'"
|
||||
static IP address: "'static external IP address'"
|
||||
stylesheet: "'style sheet'"
|
||||
synch: "'sync'"
|
||||
tablename: "'table name'"
|
||||
tablet: "'device'"
|
||||
touch: "'tap'"
|
||||
url: "'URL'"
|
||||
vs\.: "'versus'"
|
||||
World Wide Web: "'web'"
|
||||
16
.github/styles/Google/meta.json
vendored
Normal file
16
.github/styles/Google/meta.json
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"author": "Joseph Kato",
|
||||
"description": "A Vale-compatible implementation of the Microsoft Writing Style Guide.",
|
||||
"email": "support@errata.ai",
|
||||
"lang": "en",
|
||||
"url": "https://github.com/errata-ai/Google/releases/latest/download/Google.zip",
|
||||
"feed": "https://github.com/errata-ai/Google/releases.atom",
|
||||
"issues": "https://github.com/errata-ai/Google/issues/new",
|
||||
"license": "MIT",
|
||||
"name": "Google",
|
||||
"sources": [
|
||||
"https://developers.google.com/style/"
|
||||
],
|
||||
"vale_version": ">=1.0.0",
|
||||
"coverage": 0.0
|
||||
}
|
||||
0
.github/styles/Google/vocab.txt
vendored
Normal file
0
.github/styles/Google/vocab.txt
vendored
Normal file
9
.github/styles/VyOS/Terminology.yml
vendored
Normal file
9
.github/styles/VyOS/Terminology.yml
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
extends: substitution
|
||||
message: Prefer '%s' over '%s'
|
||||
ignorecase: false
|
||||
level: error
|
||||
swap:
|
||||
vyos: VyOS
|
||||
Vyos: VyOS
|
||||
VYOS: VyOS
|
||||
Gre: GRE
|
||||
162
.github/vyos-linter.py
vendored
Normal file
162
.github/vyos-linter.py
vendored
Normal file
@ -0,0 +1,162 @@
|
||||
import os
|
||||
import re
|
||||
import ipaddress
|
||||
import sys
|
||||
import ast
|
||||
|
||||
IPV4SEG = r'(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])'
|
||||
IPV4ADDR = r'(?:(?:' + IPV4SEG + r'\.){3,3}' + IPV4SEG + r')'
|
||||
IPV6SEG = r'(?:(?:[0-9a-fA-F]){1,4})'
|
||||
IPV6GROUPS = (
|
||||
r'(?:' + IPV6SEG + r':){7,7}' + IPV6SEG, # 1:2:3:4:5:6:7:8
|
||||
r'(?:\s' + IPV6SEG + r':){1,7}:', # 1:: 1:2:3:4:5:6:7::
|
||||
r'(?:' + IPV6SEG + r':){1,6}:' + IPV6SEG, # 1::8 1:2:3:4:5:6::8 1:2:3:4:5:6::8
|
||||
r'(?:' + IPV6SEG + r':){1,5}(?::' + IPV6SEG + r'){1,2}', # 1::7:8 1:2:3:4:5::7:8 1:2:3:4:5::8
|
||||
r'(?:' + IPV6SEG + r':){1,4}(?::' + IPV6SEG + r'){1,3}', # 1::6:7:8 1:2:3:4::6:7:8 1:2:3:4::8
|
||||
r'(?:' + IPV6SEG + r':){1,3}(?::' + IPV6SEG + r'){1,4}', # 1::5:6:7:8 1:2:3::5:6:7:8 1:2:3::8
|
||||
r'(?:' + IPV6SEG + r':){1,2}(?::' + IPV6SEG + r'){1,5}', # 1::4:5:6:7:8 1:2::4:5:6:7:8 1:2::8
|
||||
IPV6SEG + r':(?:(?::' + IPV6SEG + r'){1,6})', # 1::3:4:5:6:7:8 1::3:4:5:6:7:8 1::8
|
||||
r':(?:(?::' + IPV6SEG + r'){1,7}|:)', # ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::
|
||||
r'fe80:(?::' + IPV6SEG + r'){0,4}%[0-9a-zA-Z]{1,}', # fe80::7:8%eth0 fe80::7:8%1 (link-local IPv6 addresses with zone index)
|
||||
r'::(?:ffff(?::0{1,4}){0,1}:){0,1}[^\s:]' + IPV4ADDR, # ::255.255.255.255 ::ffff:255.255.255.255 ::ffff:0:255.255.255.255 (IPv4-mapped IPv6 addresses and IPv4-translated addresses)
|
||||
r'(?:' + IPV6SEG + r':){1,4}:[^\s:]' + IPV4ADDR, # 2001:db8:3:4::192.0.2.33 64:ff9b::192.0.2.33 (IPv4-Embedded IPv6 Address)
|
||||
)
|
||||
IPV6ADDR = '|'.join(['(?:{})'.format(g) for g in IPV6GROUPS[::-1]]) # Reverse rows for greedy match
|
||||
|
||||
MAC = r'([0-9A-F]{2}[:-]){5}([0-9A-F]{2})'
|
||||
|
||||
NUMBER = r"([\s']\d+[\s'])"
|
||||
|
||||
|
||||
def lint_mac(cnt, line):
|
||||
mac = re.search(MAC, line, re.I)
|
||||
if mac is not None:
|
||||
mac = mac.group()
|
||||
u_mac = re.search(r'((00)[:-](53)([:-][0-9A-F]{2}){4})', mac, re.I)
|
||||
m_mac = re.search(r'((90)[:-](10)([:-][0-9A-F]{2}){4})', mac, re.I)
|
||||
if u_mac is None and m_mac is None:
|
||||
return (f"Use MAC reserved for Documentation (RFC7042): {mac}", cnt, 'error')
|
||||
|
||||
|
||||
def lint_ipv4(cnt, line):
|
||||
ip = re.search(IPV4ADDR, line, re.I)
|
||||
if ip is not None:
|
||||
ip = ipaddress.ip_address(ip.group().strip(' '))
|
||||
# https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_private
|
||||
if ip.is_private is False and ip.is_multicast is False:
|
||||
return (f"Use IPv4 reserved for Documentation (RFC 5737) or private Space: {ip}", cnt, 'error')
|
||||
|
||||
|
||||
def lint_ipv6(cnt, line):
|
||||
ip = re.search(IPV6ADDR, line, re.I)
|
||||
if ip is not None:
|
||||
ip = ipaddress.ip_address(ip.group().strip(' '))
|
||||
# https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_private
|
||||
if ip.is_private is False and ip.is_multicast is False:
|
||||
return (f"Use IPv6 reserved for Documentation (RFC 3849) or private Space: {ip}", cnt, 'error')
|
||||
|
||||
|
||||
def lint_AS(cnt, line):
|
||||
number = re.search(NUMBER, line, re.I)
|
||||
if number:
|
||||
pass
|
||||
# find a way to detect AS numbers
|
||||
|
||||
|
||||
def lint_linelen(cnt, line):
|
||||
if len(line) > 80:
|
||||
return (f"Line too long: len={len(line)}", cnt, 'warning')
|
||||
|
||||
|
||||
def handle_file(path, file):
|
||||
errors = []
|
||||
path = '/'.join(path)
|
||||
filepath = f"{path}/{file}"
|
||||
try:
|
||||
with open(filepath) as fp:
|
||||
line = fp.readline()
|
||||
cnt = 1
|
||||
while line:
|
||||
err_mac = lint_mac(cnt, line.strip())
|
||||
err_ip4 = lint_ipv4(cnt, line.strip())
|
||||
err_ip6 = lint_ipv6(cnt, line.strip())
|
||||
err_len = lint_linelen(cnt, line.strip())
|
||||
if err_mac:
|
||||
errors.append(err_mac)
|
||||
if err_ip4:
|
||||
errors.append(err_ip4)
|
||||
if err_ip6:
|
||||
errors.append(err_ip6)
|
||||
if err_len:
|
||||
errors.append(err_len)
|
||||
line = fp.readline()
|
||||
cnt += 1
|
||||
finally:
|
||||
fp.close()
|
||||
|
||||
if len(errors) > 0:
|
||||
print(f"File: {filepath}")
|
||||
for error in errors:
|
||||
print(error)
|
||||
print('')
|
||||
return False
|
||||
|
||||
def handle_file_action(filepath):
|
||||
errors = []
|
||||
try:
|
||||
with open(filepath) as fp:
|
||||
line = fp.readline()
|
||||
cnt = 1
|
||||
while line:
|
||||
err_mac = lint_mac(cnt, line.strip())
|
||||
err_ip4 = lint_ipv4(cnt, line.strip())
|
||||
err_ip6 = lint_ipv6(cnt, line.strip())
|
||||
err_len = lint_linelen(cnt, line.strip())
|
||||
if err_mac:
|
||||
errors.append(err_mac)
|
||||
if err_ip4:
|
||||
errors.append(err_ip4)
|
||||
if err_ip6:
|
||||
errors.append(err_ip6)
|
||||
if err_len:
|
||||
errors.append(err_len)
|
||||
line = fp.readline()
|
||||
cnt += 1
|
||||
finally:
|
||||
fp.close()
|
||||
|
||||
if len(errors) > 0:
|
||||
'''
|
||||
"::{$type} file={$filename},line={$line},col=$column::{$log}"
|
||||
'''
|
||||
print(f"File: {filepath}")
|
||||
for error in errors:
|
||||
print(f"::{error[2]} file={filepath},line={error[1]}::{error[0]}")
|
||||
print('')
|
||||
return False
|
||||
|
||||
|
||||
def main():
|
||||
bool_error = True
|
||||
print('start')
|
||||
try:
|
||||
files = ast.literal_eval(sys.argv[1])
|
||||
for file in files:
|
||||
print(file)
|
||||
if file[-4:] == ".rst":
|
||||
if handle_file_action(file) is False:
|
||||
bool_error = False
|
||||
except Exception as e:
|
||||
print(e)
|
||||
for root, dirs, files in os.walk("../docs"):
|
||||
path = root.split(os.sep)
|
||||
for file in files:
|
||||
if file[-4:] == ".rst":
|
||||
if handle_file(path, file) is False:
|
||||
bool_error = False
|
||||
return bool_error
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if main() == False:
|
||||
exit(1)
|
||||
32
.github/workflows/main.yml
vendored
Normal file
32
.github/workflows/main.yml
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
name: Linting
|
||||
on:
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: File Changes
|
||||
id: file_changes
|
||||
uses: trilom/file-changes-action@v1.2.3
|
||||
|
||||
- name: Vale
|
||||
uses: errata-ai/vale-action@v1.3.0
|
||||
with:
|
||||
files: '${{ steps.file_changes.outputs.files_modified }}'
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: '3.x'
|
||||
|
||||
- name: run python based linter
|
||||
run: python .github/vyos-linter.py '${{ steps.file_changes.outputs.files_modified }}'
|
||||
|
||||
env:
|
||||
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||
|
||||
|
||||
4
.gitmodules
vendored
Normal file
4
.gitmodules
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
[submodule "docs/_include/vyos-1x"]
|
||||
path = docs/_include/vyos-1x
|
||||
url = https://github.com/vyos/vyos-1x
|
||||
branch = current
|
||||
16
vale.ini
Normal file
16
vale.ini
Normal file
@ -0,0 +1,16 @@
|
||||
StylesPath = .github/styles
|
||||
MinAlertLevel = suggestion
|
||||
|
||||
SkippedScopes = script, style, pre, figure, img, a, code
|
||||
|
||||
|
||||
[*.rst]
|
||||
BasedOnStyles = VyOS, Google
|
||||
|
||||
Google.DateFormat = YES
|
||||
vale.GenderBias = NO
|
||||
vale.Hedging = NO
|
||||
vale.Redundancy = NO
|
||||
vale.Repetition = YES
|
||||
vale.Uncomparables = NO
|
||||
proselint.GenderBias = NO
|
||||
Loading…
x
Reference in New Issue
Block a user