Skip to content

Commit cc5ebc2

Browse files
committed
feat: add NetApp copyright headers to all source files and documentation
1 parent c2fc10a commit cc5ebc2

45 files changed

Lines changed: 361 additions & 7 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
## Changes
66

7-
-
7+
-
88

99
## Checklist
1010

.github/copilot-instructions.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,23 @@ convention:
3939
- Never hardcode credentials — use env vars, Ansible Vault, or Terraform `sensitive`.
4040
- Ansible playbooks use `netapp.ontap` FQCNs with `use_rest: always`.
4141
- Terraform modules use the `NetApp/netapp-ontap` provider `~> 2.5`.
42+
- Every generated source file (`.py`, `.yml`, `.tf`, `.sh`, `.html`) MUST start
43+
with the standard NetApp copyright header (see below).
44+
45+
## Copyright header (required on all source files)
46+
47+
Use the comment syntax of the file. Year is `2026`. Full trademark text
48+
lives in `NOTICE`; do not duplicate it in source files.
49+
50+
```text
51+
© 2026 NetApp, Inc. All Rights Reserved.
52+
SPDX-License-Identifier: Apache-2.0
53+
See the NOTICE file in the repo root for trademark and attribution details.
54+
```
55+
56+
The `insert-license` pre-commit hook adds and verifies it automatically.
57+
Exempt files: Markdown, `requirements.*`, `ansible/inventory/*`,
58+
`ansible/group_vars/*`, `*.example`, `dependabot.yml`.
4259

4360
## ONTAP API rules
4461

.github/copilot-review-config.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# © 2026 NetApp, Inc. All Rights Reserved.
2+
# SPDX-License-Identifier: Apache-2.0
3+
# See the NOTICE file in the repo root for trademark and attribution details.
4+
15
review:
26
auto_review: true
37

.github/license-headers/header.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
© 2026 NetApp, Inc. All Rights Reserved.
2+
SPDX-License-Identifier: Apache-2.0
3+
See the NOTICE file in the repo root for trademark and attribution details.

.github/prompts/generate-ansible.prompt.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,3 +112,20 @@ After the playbook, provide:
112112
1. Exact `ansible-playbook` command to run it.
113113
2. Idempotency behavior — what happens on re-run for each task.
114114
3. Teardown playbook or reversal instructions.
115+
116+
## Copyright header (required)
117+
118+
Every generated source file MUST start with the standard NetApp header in the
119+
language-appropriate comment syntax. The `insert-license` pre-commit hook
120+
will add it automatically, but include it from the start so AI-generated
121+
output passes review on first read.
122+
123+
```text
124+
© 2026 NetApp, Inc. All Rights Reserved.
125+
SPDX-License-Identifier: Apache-2.0
126+
See the NOTICE file in the repo root for trademark and attribution details.
127+
```
128+
129+
Place after any shebang (`#!/usr/bin/env python3`), YAML directive (`---`),
130+
or `<!DOCTYPE html>` line. Do **not** duplicate the full trademark text in
131+
source files — it lives in [NOTICE](../../NOTICE) and the LICENSE appendix.

.github/prompts/generate-python.prompt.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,3 +92,20 @@ After the code, provide:
9292
1. Exact shell commands to run the script.
9393
2. Error scenarios and how the script handles each.
9494
3. Teardown / cleanup instructions.
95+
96+
## Copyright header (required)
97+
98+
Every generated source file MUST start with the standard NetApp header in the
99+
language-appropriate comment syntax. The `insert-license` pre-commit hook
100+
will add it automatically, but include it from the start so AI-generated
101+
output passes review on first read.
102+
103+
```text
104+
© 2026 NetApp, Inc. All Rights Reserved.
105+
SPDX-License-Identifier: Apache-2.0
106+
See the NOTICE file in the repo root for trademark and attribution details.
107+
```
108+
109+
Place after any shebang (`#!/usr/bin/env python3`), YAML directive (`---`),
110+
or `<!DOCTYPE html>` line. Do **not** duplicate the full trademark text in
111+
source files — it lives in [NOTICE](../../NOTICE) and the LICENSE appendix.

.github/prompts/generate-terraform.prompt.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,3 +107,20 @@ After the module, provide:
107107
1. Exact commands: `terraform init`, `terraform plan`, `terraform apply`.
108108
2. Drift detection behavior.
109109
3. `terraform destroy` instructions for cleanup.
110+
111+
## Copyright header (required)
112+
113+
Every generated source file MUST start with the standard NetApp header in the
114+
language-appropriate comment syntax. The `insert-license` pre-commit hook
115+
will add it automatically, but include it from the start so AI-generated
116+
output passes review on first read.
117+
118+
```text
119+
© 2026 NetApp, Inc. All Rights Reserved.
120+
SPDX-License-Identifier: Apache-2.0
121+
See the NOTICE file in the repo root for trademark and attribution details.
122+
```
123+
124+
Place after any shebang (`#!/usr/bin/env python3`), YAML directive (`---`),
125+
or `<!DOCTYPE html>` line. Do **not** duplicate the full trademark text in
126+
source files — it lives in [NOTICE](../../NOTICE) and the LICENSE appendix.

.github/prompts/generate-workflow.prompt.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,20 @@ For each implementation:
8787
1. Exact commands to run it.
8888
2. Error scenarios and how they are handled.
8989
3. Cleanup / teardown instructions.
90+
91+
## Copyright header (required)
92+
93+
Every generated source file MUST start with the standard NetApp header in the
94+
language-appropriate comment syntax. The `insert-license` pre-commit hook
95+
will add it automatically, but include it from the start so AI-generated
96+
output passes review on first read.
97+
98+
```text
99+
© 2026 NetApp, Inc. All Rights Reserved.
100+
SPDX-License-Identifier: Apache-2.0
101+
See the NOTICE file in the repo root for trademark and attribution details.
102+
```
103+
104+
Place after any shebang (`#!/usr/bin/env python3`), YAML directive (`---`),
105+
or `<!DOCTYPE html>` line. Do **not** duplicate the full trademark text in
106+
source files — it lives in [NOTICE](../../NOTICE) and the LICENSE appendix.

.github/scripts/setup-branch-protection.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
#!/usr/bin/env bash
2+
# © 2026 NetApp, Inc. All Rights Reserved.
3+
# SPDX-License-Identifier: Apache-2.0
4+
# See the NOTICE file in the repo root for trademark and attribution details.
5+
26
#
37
# Configure branch protection rules on main for NetApp/pace.
48
#

.github/workflows/ci.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# © 2026 NetApp, Inc. All Rights Reserved.
2+
# SPDX-License-Identifier: Apache-2.0
3+
# See the NOTICE file in the repo root for trademark and attribution details.
4+
15
name: CI
26

37
on:
@@ -41,3 +45,30 @@ jobs:
4145
fi
4246
done
4347
[ "$ERRORS" -eq 0 ] || exit 1
48+
49+
- name: Verify NetApp copyright header on source files
50+
run: |
51+
MARKER="NetApp, Inc. All Rights Reserved"
52+
MISSING=0
53+
mapfile -t FILES < <(git ls-files \
54+
'python/*.py' \
55+
'ansible/*.yml' \
56+
'terraform/**/*.tf' \
57+
'docs/example-template/**/*.py' \
58+
'docs/example-template/**/*.yml' \
59+
'docs/example-template/**/*.tf' \
60+
'.github/scripts/*.sh' \
61+
'docs/*.html' \
62+
'poc/*.html' \
63+
| grep -Ev '(\.example$|requirements\.|inventory/|group_vars/)')
64+
for f in "${FILES[@]}"; do
65+
if ! head -10 "$f" | grep -q "$MARKER"; then
66+
echo "::error file=$f::Missing NetApp copyright header"
67+
MISSING=$((MISSING + 1))
68+
fi
69+
done
70+
if [ "$MISSING" -gt 0 ]; then
71+
echo "::error::$MISSING file(s) missing the required header. See CONTRIBUTING.md > Copyright headers."
72+
exit 1
73+
fi
74+
echo "All checked files carry the NetApp copyright header."

0 commit comments

Comments
 (0)