Skip to content
Open
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
13 changes: 13 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# SPDX-License-Identifier: Apache-2.0
# Licensed to the Ed-Fi Alliance under one or more agreements.
# The Ed-Fi Alliance licenses this file to you under the Apache License, Version 2.0.
# See the LICENSE and NOTICES files in the project root for more information.

blank_issues_enabled: false
contact_links:
- name: 🏠 Ed-Fi Community Hub
url: https://community.ed-fi.org
about: For technical support, questions, and community discussions
- name: 📚 Ed-Fi Documentation
url: https://docs.ed-fi.org
about: Official Ed-Fi technical documentation and guides
47 changes: 47 additions & 0 deletions .github/ISSUE_TEMPLATE/engineering-issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# SPDX-License-Identifier: Apache-2.0
# Licensed to the Ed-Fi Alliance under one or more agreements.
# The Ed-Fi Alliance licenses this file to you under the Apache License, Version 2.0.
# See the LICENSE and NOTICES files in the project root for more information.

name: "🔧 Engineering Team Issue"
description: "Internal issue for Ed-Fi engineering team members only"
title: "Feature: [Brief Description of the Issue]"
labels: []
assignees: []
body:
- type: markdown
attributes:
value: |
## ⚠️ Engineering Team Only

This template is for Ed-Fi engineering team members only.

If you're not part of the engineering team, please use the [Ed-Fi Community Hub](https://community.ed-fi.org) for support.

- type: textarea
id: description
attributes:
label: "Issue Description"
description: "Describe the issue or task"
placeholder: "Clear description of the issue..."
validations:
required: true

- type: textarea
id: acceptance-criteria
attributes:
label: "Acceptance Criteria"
description: "What needs to be done to resolve this issue?"
placeholder: "- [ ] Criteria 1\n- [ ] Criteria 2"
validations:
required: false

- type: textarea
id: additional-context
attributes:
label: "Additional Context"
description: "Any additional information, screenshots, or context"
placeholder: "Additional details..."
validations:
required: false

32 changes: 32 additions & 0 deletions .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# SPDX-License-Identifier: Apache-2.0
# Licensed to the Ed-Fi Alliance under one or more agreements.
# The Ed-Fi Alliance licenses this file to you under the Apache License, Version 2.0.
# See the LICENSE and NOTICES files in the project root for more information.

name: Copilot Setup Steps

on:
workflow_dispatch:
push:
paths:
- ".github/workflows/copilot-setup-steps.yml"
pull_request:
paths:
- ".github/workflows/copilot-setup-steps.yml"

permissions:
contents: read

jobs:
copilot-setup-steps:
name: Copilot Setup Steps
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Install DMS packages
run: dotnet restore src/dms/EdFi.DataManagementService.sln

- name: Install Config Service packages
run: dotnet restore src/config/EdFi.DmsConfigurationService.sln
72 changes: 72 additions & 0 deletions .github/workflows/on-issue-opened.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# SPDX-License-Identifier: Apache-2.0
# Licensed to the Ed-Fi Alliance under one or more agreements.
# The Ed-Fi Alliance licenses this file to you under the Apache License, Version 2.0.
# See the LICENSE and NOTICES files in the project root for more information.

name: "Issue Management"

on:
issues:
types: [opened]

permissions:
issues: write

jobs:
manage-community-issues:
runs-on: ubuntu-latest
if: github.event.issue.user.type != 'bot'
steps:
- name: Check if user has repository access
id: check-repo-access
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
try {
// Check if user has repository access (collaborator, maintainer, admin, etc.)
const { data: permission } = await github.rest.repos.getCollaboratorPermissionLevel({
owner: context.repo.owner,
repo: context.repo.repo,
username: context.payload.issue.user.login
});

console.log(`User ${context.payload.issue.user.login} repository permission: ${permission.permission}`);
return ['admin', 'maintain', 'write', 'triage'].includes(permission.permission);
} catch (error) {
console.log(`User ${context.payload.issue.user.login} does not have repository access: ${error.message}`);
return false;
}

- name: Close community issue with helpful message
if: steps.check-repo-access.outputs.result == 'false'
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
const message = `Thank you for your interest in Ed-Fi!

This GitHub repository is maintained by the Ed-Fi engineering team for internal issue tracking and development coordination.

For technical support, questions, and community discussions, please visit the **[Ed-Fi Community Hub](https://community.ed-fi.org)** where our community and support team can better assist you.

The Ed-Fi Community Hub provides:
- Technical support and troubleshooting
- Community discussions and best practices
- Documentation and resources
- Direct access to Ed-Fi experts

We appreciate your understanding and look forward to helping you on the Community Hub!`;

await github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: message
});

await github.rest.issues.update({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
state: 'closed',
state_reason: 'not_planned'
});
41 changes: 41 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Data Management Service Agent Instructions

## General

* Make only high confidence suggestions when reviewing code changes.
* Never change NuGet.config files unless explicitly asked to.

### Code Quality

* **REQUIRED**: Obey the `.editorconfig` file settings at all times. The project uses:
* UTF-8 character encoding
* LF line endings
* 2-space indentation
* Spaces for indentation style
* Final newlines required
* Trailing whitespace must be trimmed
* **REQUIRED**: run the appropriate build process and correct any build errors with the following scripts:
* If modifying code in `./src/dms` then run `dotnet build --no-restore ./src/dms/EdFi.DataManagementService.sln`
* If modifying code in `./src/config` then run `dotnet build --no-restore ./src/config/EdFi.DmsConfigurationService.sln`

## Formatting

* Apply code-formatting style defined in `.editorconfig`.
* Prefer file-scoped namespace declarations and single-line using directives.
* Insert a newline before the opening curly brace of any code block (e.g., after `if`, `for`, `while`, `foreach`, `using`, `try`, etc.).
* Ensure that the final return statement of a method is on its own line.
* Use pattern matching and switch expressions wherever possible.
* Use `nameof` instead of string literals when referring to member names.

### Nullable Reference Types

* Declare variables non-nullable, and check for `null` at entry points.
* Always use `is null` or `is not null` instead of `== null` or `!= null`.
* Trust the C# null annotations and don't add null checks when the type system says a value cannot be null.

### Testing

* We use NUnit tests.
* We use FluentAssertions for assertions.
* Use FakeItEasy for mocking in tests.
* Copy existing style in nearby files for test method names and capitalization.
2 changes: 1 addition & 1 deletion NOTICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
This product includes software developed at the [Ed-Fi
Alliance](https://www.ed-fi.org).

Copyright (c) 2024 Ed-Fi Alliance, LLC and contributors.
Copyright (c) 2026 Ed-Fi Alliance, LLC and contributors.

This software distribution includes or contains external references to several
open source packages that are attributed below in this notice. Where required,
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ See the [docs folder](./docs/) for additional developer-oriented documentation.

## Legal Information

Copyright (c) 2025 Ed-Fi Alliance, LLC and contributors.
Copyright (c) 2026 Ed-Fi Alliance, LLC and contributors.

Licensed under the [Apache License, Version 2.0](./LICENSE) (the "License").

Expand Down
Loading