You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
Copy file name to clipboardExpand all lines: .github/copilot-instructions.md
+55-36Lines changed: 55 additions & 36 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,53 +7,72 @@ Any diff that touches files inside a plugin directory must include a correspondi
7
7
- Check for hardcoded secrets, API keys, or credentials
8
8
9
9
## 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.
13
13
14
14
## Suggesting changes
15
15
16
16
When suggesting changes:
17
17
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.
25
26
26
27
## File-specific guidelines
27
28
28
29
### 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
32
33
33
34
### 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.
40
45
41
46
### UI Configuration (ui.json)
42
47
- 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.
- 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