Skip to content

Commit b481569

Browse files
committed
Add CODEOWNERS and update Copilot instructions
Add a new .github/CODEOWNERS file that assigns ownership for root files and maps individual plugin directories to their primary reviewers, with a plugins/* fallback owner. Update .github/copilot-instructions.md to reformat and clarify contributor guidelines: tighten wording and formatting, add/clarify metadata fields (name, schemaVersion, category, importNotSupported, author.name options), expand UI configuration guidance (required flags, displayName/name/help/placeholder conventions), add rules for dashboards and manifest inclusion, strengthen dataStreams and docs guidance, and include other minor wording and formatting fixes to improve reviewability.
1 parent 26433c1 commit b481569

2 files changed

Lines changed: 78 additions & 36 deletions

File tree

.github/CODEOWNERS

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Root files
2+
/*.md @squaredup
3+
/LICENSE @squaredup
4+
/.github/* @squaredup
5+
6+
# Request review from original author
7+
plugins/DigiCert/* @shaswot77
8+
plugins/FantasyPremierLeague/* @TimWheeler-SQUP
9+
plugins/GoogleSheets/* @kieranlangton
10+
plugins/MetOffice/* @blackgrouse
11+
plugins/Phare/* @vinbab
12+
plugins/Postcoder/* @richbenwell
13+
plugins/RDAP/* @richbenwell
14+
plugins/RSS/* @clarkd
15+
plugins/Rootly/* @noorulkhan-n
16+
plugins/Spotify/* @jame2O
17+
plugins/Steam/* @kmichalski0
18+
plugins/SumoLogic/* @richpeters
19+
plugins/TransportForLondon/* @clarkd
20+
21+
22+
# Fallback – if a plugin has no specified author
23+
plugins/* @squaredup

.github/copilot-instructions.md

Lines changed: 55 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -7,53 +7,72 @@ Any diff that touches files inside a plugin directory must include a correspondi
77
- Check for hardcoded secrets, API keys, or credentials
88

99
## Code formatting
10-
* Follow existing formatting in the repo
11-
* Use consistent naming
12-
* Do not introduce formatting tools or config files unless explicitly requested.
10+
- Follow existing formatting in the repo
11+
- Use consistent naming
12+
- Do not introduce formatting tools or config files unless explicitly requested.
1313

1414
## Suggesting changes
1515

1616
When suggesting changes:
1717

18-
* Assume they will be reviewed by humans
19-
* Optimise for reviewability
20-
* Keep diffs focused and minimal
21-
* If a change is non-obvious, add a short comment explaining intent.
22-
* Comments should explain **why**, not restate **what** the code does
23-
* Use a neutral, professional tone
24-
* Avoid humour, sarcasm, or emojis in code comments
18+
- Assume they will be reviewed by humans
19+
- Optimise for reviewability
20+
- Keep diffs focused and minimal
21+
- If a change is non-obvious, add a short comment explaining intent.
22+
- Comments should explain **why**, not restate **what*- the code does
23+
- Use a neutral, professional tone
24+
- Avoid humour, sarcasm, or emojis in code comments
25+
- Include all review comments in the first review, do not add additional review comments to code that hasn't changed since the previous commit.
2526

2627
## File-specific guidelines
2728

2829
### icon.png/svg
29-
* SVG is preferred
30-
* Should be a square icon
31-
* Less than 100KB in size
30+
- SVG is preferred
31+
- Should be a square icon
32+
- Less than 100KB in size
3233

3334
### Metadata (metadata.json)
34-
* displayName - Use the correctly styled/cased official product name for display names, e.g. SharePoint NOT sharepoint
35-
* description - One short sentence describing what users can build or monitor. Avoid API or implementation language like Access HaloPSA APIs and query ticket data. Should always be appropriately punctuated, e.g. ending with a full stop.
36-
* version - The version number MUST be increased for any change to the plugin. It can never decrease. If a breaking change is made, the major version number of the plugin should be increased - for example, when deleting a data stream or significantly modifying the UI parameters.
37-
* author.type - Should always be set to `community`
38-
* author.name - Should typically be a GitHub username, prefixed with @. For example @username1
39-
* links - Should typically contain two links, one link with `category: source` linking to the GitHub repository, and another link with `category: documentation` linking to the markdown documentation in the repository. The links can be in any order, and there may be other links.
35+
- name - Should generally be the lowercase kebab style version of the displayName, e.g. phare or google-sheets
36+
- displayName - Use the correctly styled/cased official product name for display names, e.g. SharePoint NOT sharepoint
37+
- description - One short sentence describing what users can build or monitor. Avoid API or implementation language like Access HaloPSA APIs and query ticket data. Should always be appropriately punctuated, e.g. ending with a full stop.
38+
- schemaVersion - Should be 2.0 or higher.
39+
- version - The version number MUST be increased for any change to the plugin. It can never decrease. If a breaking change is made, the major version number of the plugin should be increased - for example, when deleting a data stream or significantly modifying the UI parameters.
40+
- author.type - Should always be set to `community`
41+
- author.name - Should typically be a GitHub username, prefixed with @ OR an organisation name. For example `@username1` or `Contoso Inc.`
42+
- category - Mandatory. Reuse an existing category from other plugins where possible.
43+
- importNotSupported - Should be true unless a importDefinition/default.json is included.
44+
- links - Should typically contain two links, one link with `category: source` linking to the GitHub repository, and another link with `category: documentation` linking to the markdown documentation in the repository. The links can be in any order, and there may be other links.
4045

4146
### UI Configuration (ui.json)
4247
- Generally prefer API tokens or OAuth where possible, flag usage of username/password unless the API offers no alternative.
43-
- Check that only stricly required fields are marked as `required`. Advanced options should never block first-time success.
44-
- Tooltips - Do not use tooltips unless they add specific value. Never state the obvious (e.g. “Enter the API key here”).
45-
- Placeholder text - Mandatory for text fields. Use example placeholders (especially for URLs) or “Enter the [data source] [info needed in lowercase]”. Use default values instead of hint text where a value is commonly the same across environments (e.g. default ports).
46-
- Do not use “you” “Your” in field names or labels. Keep text neutral, concise, and descriptive.
47-
* Should not specify the `title` attribute on any fields.
48-
49-
### Out-of-the-box dashboards (*.dash.json)
50-
* Dashboard names - Use title case
51-
* Tile names - Use title case
52-
53-
### Data streams - dataStreams/*.json
54-
* Display name - Use noun-based names describing the returned data, e.g. Tickets. Avoid verbs such as Get, Fetch, Run, Execute.
55-
* Description - Typically one sentence only. No full stop at the end. Add relevant clarifications in brackets. Never use two sentences.
56-
* Category - Mandatory. Reuse an existing category from other plugins where possible (e.g. Query).
57-
* ui
58-
* Field names - First word uppercase, then lowercase (e.g. “Table name”). Single value: singular. Multiple values: “(s)” (e.g. Tables name(s)
59-
* Tooltips - Use extremely sparingly. Never state the obvious. Only use when something important must be understood. Start with a verb where possible (e.g. “Supports the ServiceNow filtering definition format”).
48+
- Check that only strictly required fields are marked as `required: true`. Advanced options should never block first-time success.
49+
- For each field in the array:
50+
- displayName - First word uppercase, then lowercase (e.g. “Table name", or "API key"). Single value: singular. Multiple values: “(s)" (e.g. Tables name(s))
51+
- name - Should typically be the camel-cased version of the displayName.
52+
- help - Do not use tooltips unless they add specific value. Never state the obvious (e.g. “Enter the API key here"). Start with a verb where possible (e.g. “Supports the ServiceNow filtering definition format"). Encourage include a reference link if relevant `Create an API key in the [Phare portal](https://docs.phare.io/api-reference/introduction)`
53+
- placeholder - Mandatory for text fields. Use example placeholders (especially for URLs or values that follow a fixed pattern, e.g. rootly_xxxxxxxxx or https://organisation.atlassian.net) or “Enter the [data source] [info needed in lowercase]". Use default values instead of hint text where a value is commonly the same across environments (e.g. default ports).
54+
- displayName - Do not use “you" “Your" in display names. Keep text neutral, concise, and descriptive.
55+
- title - Should not specify the `title` attribute on any fields.
56+
57+
### Out-of-the-box dashboards (defaultContent/**/*.dash.json)
58+
- Dashboard names - Use title case
59+
- Tile names - Use title case
60+
61+
### Out-of-the-box dashboard manifest (defaultContent/**/manifest.json)
62+
- If out of the box dashboards are specified, ensure they are included in the manifest.json for the relevant folder.
63+
64+
### Data streams - (dataStreams/*.json)
65+
- displayName - Use noun-based names describing the returned data, e.g. Tickets. Avoid verbs such as Get, Fetch, Run, Execute.
66+
- description - Typically one sentence only. No full stop at the end. Add relevant clarifications in brackets. Never use two sentences.
67+
- tags - Mandatory. Reuse an existing category from other plugins where possible.
68+
- ui
69+
- displayName- First word uppercase, then lowercase (e.g. “Table name"). Single value: singular. Multiple values: “(s)" (e.g. Tables name(s). Do not use "you" "Your" in display names.
70+
- help - Use extremely sparingly. Never state the obvious. Only use when something important must be understood. Start with a verb where possible (e.g. “Supports the ServiceNow filtering definition format").
71+
72+
### Documentation - (docs/README.md)
73+
- Should typically start headings from level 1. When embedded in SquaredUp, the headings will be sized appropriately.
74+
- When the docs are embedded in SquaredUp, they are shown under a heading labelled "Need help?". As such, discourage documentation that starts with similar headings, or headings that don't make sense. Avoid headings that repeat the plugin name or use "Overview". A good heading might be something like `# Before you start` or `# Pre-requisites`.
75+
- Encourage the author to include documentation for all UI fields from metadata.json unless otherwise covered by a tooltip or help text.
76+
- Encourage the author to include links to the third-party tool or their documentation when appropriate, e.g. `Browse to [unifi.ui.com](https://unifi.ui.com) > Settings -> API Keys > Create New API Key`
77+
- The language should be neutral and clear, providing guidance on how to setup and use the plugin.
78+
- Note that only the README.md is shown within SquaredUp, so do not apply these rules to other markdown files.

0 commit comments

Comments
 (0)