diff --git a/content/copilot/tutorials/copilot-chat-cookbook/analyze-security/manage-dependency-updates.md b/content/copilot/tutorials/copilot-chat-cookbook/analyze-security/manage-dependency-updates.md index 0c32c865516e..1e094d405a10 100644 --- a/content/copilot/tutorials/copilot-chat-cookbook/analyze-security/manage-dependency-updates.md +++ b/content/copilot/tutorials/copilot-chat-cookbook/analyze-security/manage-dependency-updates.md @@ -90,8 +90,6 @@ Once you've committed the `dependabot.yml` file to your repository, {% data vari ### Example scenario -### Example scenario - Let's say your team has been using the basic {% data variables.product.prodname_dependabot %} configuration for a few months, and you're getting lots of dependency update pull requests. However, you're finding that: * Pull requests are sitting un-reviewed because no one is automatically assigned. diff --git a/package-lock.json b/package-lock.json index 99579eac8d23..1339ab9df41f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -49,7 +49,7 @@ "helmet": "^8.0.0", "highlight.js": "^11.11.1", "highlightjs-curl": "^1.3.0", - "hot-shots": "^11.1.0", + "hot-shots": "^12.0.0", "html-entities": "^2.5.6", "http-proxy-middleware": "^3.0.5", "imurmurhash": "^0.1.4", @@ -9284,11 +9284,12 @@ "license": "MIT" }, "node_modules/hot-shots": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/hot-shots/-/hot-shots-11.1.0.tgz", - "integrity": "sha512-D4iAs/145g7EJ/wIzBLVANEpysTPthUy/K+4EUIw02YJQTqvzD1vUpYiM3vwR0qPAQj4FhQpQz8wBpY8KDcM0g==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/hot-shots/-/hot-shots-12.0.0.tgz", + "integrity": "sha512-VdEXhNX4FYOY/Qx8sPcdR8+y/jXgwGlQdhk77dgFvJsVx+uS9WwiHEc+NKJqEQmd+0FTwy2/5FOtqe4cZ/JV5g==", + "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">=16.0.0" }, "optionalDependencies": { "unix-dgram": "2.x" @@ -13510,9 +13511,9 @@ } }, "node_modules/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", + "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.1.0" diff --git a/package.json b/package.json index b9be9abdad72..6a33555a67c3 100644 --- a/package.json +++ b/package.json @@ -195,7 +195,7 @@ "helmet": "^8.0.0", "highlight.js": "^11.11.1", "highlightjs-curl": "^1.3.0", - "hot-shots": "^11.1.0", + "hot-shots": "^12.0.0", "html-entities": "^2.5.6", "http-proxy-middleware": "^3.0.5", "imurmurhash": "^0.1.4", diff --git a/src/article-api/README.md b/src/article-api/README.md index 38d94318f7cb..acc061b020de 100644 --- a/src/article-api/README.md +++ b/src/article-api/README.md @@ -168,3 +168,42 @@ A list of pages available for a fully qualified path containing the target langu --- + +## Local Development + +### Bootstrap steps + +1. Start the dev server: + ```bash + npm run dev + ``` + +2. Test API endpoints locally: + ```bash + curl http://localhost:4000/api/article/meta?pathname=/en/get-started + curl http://localhost:4000/api/article/body?pathname=/en/get-started + curl http://localhost:4000/api/pagelist/en/free-pro-team@latest + ``` + +### Running tests + +```bash +npm run test -- src/article-api/tests +``` + +## Ownership + +- Team: Docs Engineering + +## Transformers + +Currently implemented transformers: +- **REST API transformer** (`rest-transformer.ts`) - Converts REST API autogenerated content +- **GraphQL transformer** (`graphql-transformer.ts`) - Converts GraphQL API autogenerated content +- **Audit logs transformer** (`audit-logs-transformer.ts`) - Converts audit log tables to markdown + +### Known limitations +- Some autogenerated content types don't have transformers yet +- Cache invalidation is manual +- No built-in rate limiting +- Limited API versioning diff --git a/src/automated-pipelines/README.md b/src/automated-pipelines/README.md index 1021cb35ca4d..c7798de6890c 100644 --- a/src/automated-pipelines/README.md +++ b/src/automated-pipelines/README.md @@ -53,3 +53,150 @@ Slack: `#docs-engineering` Repo: `github/docs-engineering` If you have a question about automation pipelines, you can ask in the `#docs-engineering` Slack channel. If you notice a problem with one of the automation pipelines, you can open an issue in the `github/docs-engineering` repository. + +## Sample Pipeline Template + +### Basic pipeline structure + +``` +src// +├── README.md # Pipeline documentation +├── scripts/ +│ └── sync.ts # Main sync script +├── data/ # Generated structured data (optional) +│ ├── fpt/ +│ ├── ghec/ +│ └── ghes-*/ +├── lib/ # Utilities and helpers +├── components/ # React components (if needed) +├── pages/ # Next.js pages (if needed) +└── tests/ # Pipeline-specific tests +### Minimal sync script example + +```typescript +// scripts/sync.ts +import { Command } from 'commander' + +const program = new Command() + .description('Sync data') + .option('--source-branch ', 'Source repo branch', 'main') + .parse() + +const opts = program.opts() + +async function main() { + // 1. Fetch data from external source + // 2. Transform data + // 3. Write to data/ directory (or generate Markdown) + // 4. Validate output +} + +main() +``` + +### Workflow example + +```yaml +# .github/workflows/sync-.yml +name: Sync + +on: + workflow_dispatch: + inputs: + SOURCE_BRANCH: + description: 'Branch to sync from' + default: 'main' + schedule: + - cron: '16 20 * * *' # Daily + +jobs: + sync: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - run: npm ci + - run: npm run sync- +``` + +## Ownership Table + +| Pipeline | Owning Team | Source Data Owner | Sync Frequency | +|----------|-------------|-------------------|----------------| +| REST | Docs Engineering | API Platform | Daily | +| GraphQL | Docs Engineering | API Platform | Daily | +| Webhooks | Docs Engineering | API Platform | Daily | +| CodeQL CLI | Docs Engineering | Code Scanning | Per release | +| GitHub Apps | Docs Engineering | Integrations | Daily | +| Audit Logs | Docs Engineering | Enterprise | Daily | +| Secret Scanning | Docs Engineering | Security | Daily | + +## Migration Status + +### Active pipelines (✅ Production) +- REST API - Fully automated, daily sync +- GraphQL API - Fully automated, daily sync +- Webhooks - Fully automated, daily sync +- GitHub Apps - Fully automated, daily sync +- Secret Scanning - Fully automated, daily sync +- Audit Logs - Fully automated, daily sync + +### Manual sync per release +- CodeQL CLI - Manual sync per release + +### Legacy pipelines (📦 To migrate) +- None currently identified + +### Migration patterns + +When migrating manual content to automated pipelines: +1. **Audit existing content** - Document current structure +2. **Source data analysis** - Identify gaps between source and docs +3. **Data enrichment** - Work with source team to add missing fields +4. **Scraping phase** - Temporarily scrape existing content to preserve prose +5. **Gradual migration** - Migrate section by section +6. **Validation** - Compare old vs new output +7. **Deprecate manual** - Remove manual content once automated is stable + +## Shared Components + +Components in `src/automated-pipelines/components/` available for reuse: +- Parameter tables +- Response schemas +- Code example formatting +- Common layout patterns + +## Testing Strategy + +### Automated pipeline tests + +All autogenerated pages tested in `src/automated-pipelines/tests/rendering.ts`: +- Page renders without errors +- Required sections present +- Links are valid +- Schema validation + +### Pipeline-specific tests + +Each pipeline in `src//tests/` should test: +- Data transformation logic +- Schema validation +- Version handling +- Edge cases specific to that pipeline + +### Testing locally + +```bash +# Run all automated pipeline tests +npm run test -- src/automated-pipelines/tests + +# Run specific pipeline tests +npm run test -- src//tests +``` + +We are not expecting significant investment here, but we will add and support pipelines as needed to meet business needs. + +### Developer experience +- Pipeline scaffolding tool +- Validation helpers +- Testing fixtures +- Documentation generator diff --git a/src/codeql-cli/README.md b/src/codeql-cli/README.md index 2129efd84d65..27f61a164e3e 100644 --- a/src/codeql-cli/README.md +++ b/src/codeql-cli/README.md @@ -46,3 +46,79 @@ Slack: `#docs-engineering` Repo: `github/docs-engineering` If you have a question about the CodeQL CLI pipeline, you can ask in the `#docs-engineering` Slack channel. If you notice a problem with the CodeQL CLI pipeline, you can open an issue in the `github/docs-engineering` repository. + +## Dependency Matrix + +### Required dependencies + +| Dependency | Purpose | Installation | Notes | +|------------|---------|--------------|-------| +| **Pandoc** | Convert ReStructuredText to Markdown | `brew install pandoc` (macOS) | Version 2.x+ required | +| **semmle-code repo** | Source ReStructuredText files | Clone at root of docs-internal | Private GitHub repo | +| **Node.js** | Run sync script | Already in project | Version specified in `.nvmrc` | + +### Source data location +- **Repository**: `github/semmle-code` (private) +- **Branch**: Configurable (default: `main`) +- **Source files**: ReStructuredText documentation in semmle-code +- **Output location**: `content/code-security/codeql-cli/codeql-cli-manual/` + +### Version compatibility +- CodeQL CLI releases approximately every 2 weeks +- Pipeline should be run to align with CLI releases +- Multiple CLI versions may be documented simultaneously + +## Escalation Policy + +### Ownership +- **Team**: Docs Engineering +- **Source team**: Code Security (CodeQL team) + +### Escalation path +1. **Pipeline failures** → #docs-engineering Slack +2. **Source data issues** → #code-security-docs Slack +3. **Pandoc conversion issues** → Check Pandoc version and file format +4. **Repo access issues** → Request access to `github/semmle-code` + +### On-call procedures +If the pipeline fails: +1. Check workflow logs for errors +2. Verify Pandoc is installed and working +3. Confirm access to `semmle-code` repo +4. Check for ReStructuredText format changes +5. Test conversion locally before re-running +6. Escalate to Code Security team if source data issue + +### Common failure modes +- **Pandoc not found** - Install Pandoc locally or in CI +- **semmle-code not cloned** - Clone repo at docs-internal root +- **Conversion errors** - Check for unsupported RST syntax +- **Branch not found** - Verify branch name in workflow input + +## Known Constraints + +### Pipeline limitations +- **Manual trigger only** - No automated schedule (runs on-demand) +- **Pandoc dependency** - Requires external tool installation +- **Repo access** - Requires access to private `semmle-code` repo +- **Local testing** - Must clone semmle-code locally to test + +### Content constraints +- **Frontmatter preservation** - Only first sync sets frontmatter +- **Introduction placement** - Must be above auto-generation comment +- **No inline editing** - Cannot edit autogenerated sections +- **Version handling** - Limited liquid versioning support + +### Technical constraints +- **ReStructuredText format** - Source must be valid RST +- **Pandoc conversion** - Limited control over conversion output +- **File naming** - Determined by source file structure +- **Link rewriting** - May need manual adjustment after generation + +### Process constraints +- **Release alignment** - Sync timing depends on CodeQL releases +- **PR review required** - Changes must be reviewed before merge +- **Content coordination** - Writers must coordinate intro additions +- **Multiple versions** - May need separate syncs for version branches + +We are not expecting significant new work to this pipeline, but we will support incoming changes from semmle-code. diff --git a/src/content-render/README.md b/src/content-render/README.md index 2d134219cede..36499ae65712 100644 --- a/src/content-render/README.md +++ b/src/content-render/README.md @@ -1,11 +1,36 @@ -# Render content +# Content render -In this directory is the main pipeline that converts our content from Liquid, Markdown and YAML into HTML. This directory _does not include React components_. +The content-render subject is the main pipeline that converts content from Liquid, Markdown, and YAML into HTML. It handles template processing, Markdown parsing, custom Liquid tags, and unified (remark/rehype) transformations. This directory does not include React components. -## Usage +## Purpose & Scope + +This subject is responsible for: +- Rendering Liquid templates with context variables +- Converting Markdown to HTML with unified (remark/rehype) +- Custom Liquid tags for content and data references +- Code block syntax highlighting and headers +- Link rewriting (local paths, assets, anchors) +- Image transformations and wrapping +- Alert/note callout rendering +- Table accessibility improvements +- Text-only extraction for search indexing + +## Architecture & Key Assets + +### Key capabilities and their locations + +- `index.ts` - `renderContent()`: Main entry point for content rendering +- `liquid/engine.ts` - Liquid engine with custom tag registration +- `unified/processor.ts` - Unified pipeline with remark/rehype plugins +- `liquid/*.ts` - Custom Liquid tags (data, ifversion, octicon, etc.) +- `unified/*.ts` - Content transformation plugins + +## Setup & Usage + +### Basic usage ```javascript -const renderContent = require('.') +import { renderContent } from '@/content-render' const html = await renderContent(` # Beep @@ -22,26 +47,25 @@ Creates:

bar

``` -## API +### API -### renderContent(markdown, context = {}, options = {}) +#### renderContent(markdown, context = {}, options = {}) Render a string of `markdown` with optional `context`. Returns a `Promise`. -Liquid will be looking for includes in `${process.cwd()}/includes`. +Liquid will look for includes in `${process.cwd()}/includes`. Options: +- `fileName`: File name for debugging purposes +- `textOnly`: Output text instead of HTML using cheerio (for search indexing) -- `fileName`: File name for debugging purposes. -- `textOnly`: Output text instead of html using [cheerio](https://ghub.io/cheerio). - -### .liquid +#### .liquid -The [Liquid](https://ghub.io/liquidjs) instance used internally. +The Liquid instance used internally for direct access. ### Code block headers -You can add a header to code blocks by adding the ` copy` annotation after the code fences, and a specified language: +Add a header to code blocks with the `copy` annotation: ```js copy const copyMe = true @@ -49,50 +73,113 @@ You can add a header to code blocks by adding the ` copy` annotation after the c The un-highlighted text is available as `button.js-btn-copy`'s `data-clipboard-text` attribute. -## Liquid tags +## Data & External Dependencies -See also [contributing/liquid-helpers.md](../../contributing/liquid-helpers.md) +### Data inputs +- Markdown content with Liquid templates +- Context object with variables and functions +- Data from `data/` directory (reusables, variables, features) +- Content includes from `includes/` directory -This directory contains custom Liquid tags for outputting dynamic content. These custom tags exist for a few reasons: +### Dependencies +- **LiquidJS** - Template engine for Liquid processing +- **unified/remark/rehype** - Markdown to HTML transformation +- **cheerio** - HTML parsing for text-only mode +- **highlight.js** - Syntax highlighting for code blocks +- Custom plugins for GitHub-specific transformations -- Content and styling should be separated. Writers should not be concerned with writing or maintaining stylistic markup. -- Content should be localized to match the current language. -- Styling and markup should be DRY and reusable. +### Transformation pipeline -## Using tags +1. **Liquid rendering** - Process Liquid tags and variables +2. **Markdown parsing** - Convert to syntax tree (remark) +3. **Unified plugins** - Apply transformations +4. **HTML generation** - Convert to final HTML (rehype) +5. **Post-processing** - Additional cleanup if needed -Tags can be used in: +## Cross-links & Ownership -- Articles and TOCs (`content/**/*.md`) -- Include files (`includes/*.html`) +### Related subjects +- [`src/frame`](../frame/README.md) - Page rendering uses renderContent +- [`src/data-directory`](../data-directory/README.md) - Data accessed via {% data %} tags +- [`src/versions`](../versions/README.md) - {% ifversion %} tag logic +- All content in `content/` - Source of Markdown to render +- Includes in `includes/` - Reusable Liquid includes -Tags always expect a single argument, a language agnostic href: +### Internal documentation +- [Liquid helpers guide](../../contributing/liquid-helpers.md) +- [Content style guide](../../contributing/) - Using Liquid tags in content -```html -{% data variables.product.product_name %} -``` +### Ownership +- Team: Docs Engineering -## Supported tags +## Current State & Next Steps -| Markup | Renders | -| -- | -- | -| `{% indented_data_reference foo.bar spaces=NUMBER %}` | A data reference with the specified number of spaces prepended to each line. Defaults to 2 spaces if no spaces included. For example: `{% indented_data_reference reusables.pages.wildcard-dns-warning spaces=3 %}` +### Supported Liquid tags -## Creating tags +Custom tags implemented: -Each custom tag has the following: +| Tag | Purpose | +|-----|---------| +| `{% data variables.product.product_name %}` | Access data variables | +| `{% ifversion fpt %}...{% endif %}` | Conditional content by version | +| `{% octicon "check" %}` | Render Octicons | +| `{% indented_data_reference foo.bar spaces=2 %}` | Data reference with indentation | +| `{% tool name %}` | Tool-specific content | +| `{% prompt %}` | Command prompt styling | -- a JavaScript class in `lib/liquid-tags/` -- an HTML template in `includes/liquid-tags/` +See [contributing/liquid-helpers.md](../../contributing/liquid-helpers.md) for complete list. -The class and the template should have corresponding names, like `lib/liquid-tags/my-tag.ts` and `includes/liquid-tags/my-tag.html` +### Using tags + +Tags can be used in: +- Articles and TOCs (`content/**/*.md`) +- Include files (`includes/*.html`) -You must also register the new tag in `src/content-render/liquid/engine.ts` with a line like this: +Tags expect language-agnostic hrefs or data paths: +```liquid +{% data variables.product.product_name %} +{% ifversion ghes > 3.9 %}...{% endif %} ``` -engine.registerTag('my_tag', require('./liquid-tags/my-tag')) -``` - -## Further reading -- Liquid Docs: https://github.com/liquid-lang/liquid-node#registering-new-tags +### Creating new Liquid tags + +1. Create TypeScript class in `liquid/my-tag.ts` and implement the rendering logic directly in the class (using inline HTML or template strings). +2. Register in `liquid/engine.ts`: + ```typescript + import MyTag from './my-tag' + engine.registerTag('my_tag', MyTag) + ``` +3. Add tests in `tests/` +4. Document in `contributing/liquid-helpers.md` + +See [LiquidJS docs](https://liquidjs.com/tutorials/register-filters-tags.html) for tag API. + +### Unified plugins + +Plugins transform the Markdown AST: +- `rewrite-local-links` - Rewrites internal `/en/...` links +- `rewrite-asset-urls` - Handles `/assets/...` paths +- `heading-links` - Adds anchor links to headings +- `alerts` - Converts `> [!NOTE]` to styled alerts +- `code-header` - Adds copy buttons to code blocks +- And many more... + +### Adding new unified plugins + +1. Create plugin in `unified/my-plugin.ts` +2. Add to processor in `unified/processor.ts` +3. Add tests +4. Consider impact on performance (plugins run on every render) + +### Known limitations +- Liquid rendering happens before Markdown parsing (can't use Markdown in Liquid output easily) +- Some transformations are performance-sensitive (cached where possible) +- Text-only mode used for search has different output than HTML mode +- Custom Liquid tags must be registered manually + +### Performance considerations +- Rendering is cached at the page level +- Liquid includes are resolved on every render +- Heavy transformations should be avoided in hot paths +- Use `textOnly` mode for search indexing (faster) diff --git a/src/fixtures/README.md b/src/fixtures/README.md index 49a354472cf4..d63c7609b6b1 100644 --- a/src/fixtures/README.md +++ b/src/fixtures/README.md @@ -103,3 +103,67 @@ Optionally, also set `DEBUG_MIDDLEWARE_TESTS` variable to get stacktraces for `5 ```shell DEBUG_MIDDLEWARE_TESTS=true ROOT=src/fixtures/fixtures TRANSLATIONS_FIXTURE_ROOT=src/fixtures/fixtures/translations vitest src/fixtures/tests ``` + +## Fixture Dependencies by Subject + +Which subjects rely on which fixtures: + +| Subject | Fixtures Used | Purpose | +|---------|---------------|---------| +| `src/content-render` | Liquid tags, Markdown files | Test custom tags and rendering | +| `src/versions` | Version frontmatter | Test version conditionals | +| `src/redirects` | Redirect frontmatter | Test redirect logic | +| `src/search` | Search index content | Test search functionality | +| `src/landings` | Landing page layouts | Test landing page rendering | +| `src/rest` | REST API fixtures | Test REST docs rendering | +| `src/graphql` | GraphQL schema fixtures | Test GraphQL docs rendering | +| `src/webhooks` | Webhook fixtures | Test webhook docs rendering | + +### Adding fixtures for new subjects + +When adding new functionality: +1. Create minimal content in `src/fixtures/fixtures/content/` +2. Add any required data in `src/fixtures/fixtures/data/` +3. Keep product names matching real content (top-level only) +4. Run `./src/tests/scripts/copy-fixture-data.ts` to sync required files + +## Ownership & Escalation + +### Ownership +- Team: Docs Engineering + +### Escalation +Fixture content is maintained by the team. If tests break due to fixture issues: +1. Check if fixture content needs updating +2. Run `./src/tests/scripts/copy-fixture-data.ts` to sync +3. Ask in #docs-engineering if unclear + +### Maintenance responsibilities +- Keep fixtures minimal but functional +- Update when adding new features +- Don't let fixtures drift from real content structure +- Document fixture-specific test patterns + +## Related Documentation + +- [Playwright tests](./PLAYWRIGHT.md) - Browser-based E2E tests +- [Axe accessibility tests](./axe.md) - Accessibility testing with fixtures +- [Test infrastructure](../tests/README.md) - Overall testing setup + +## Known Limitations + +### Fixture coverage +- Not all subjects have comprehensive fixtures +- Some complex scenarios may need real content for testing +- Translation fixtures are minimal + +### Maintenance burden +- Fixtures need updates when content structure changes +- Some data files must be kept in sync with real content +- Product names must exactly match real content + +### Best practices +- Keep fixtures focused on one feature at a time +- Don't replicate entire content structure unnecessarily +- Use fixtures for functionality tests, not content validation +- Update fixtures when breaking changes occur diff --git a/src/ghes-releases/README.md b/src/ghes-releases/README.md index b483e3458e88..5405221d81be 100644 --- a/src/ghes-releases/README.md +++ b/src/ghes-releases/README.md @@ -53,4 +53,82 @@ Templates in `src/ghes-releases/lib/release-templates` are Markdown, YAML frontm ## GHES deprecations -Every day a workflow runs to check whether it's time to create new deprecation tracking issues. New deprecation tracking issues get opened 7 days before the deprecation date. There is only one template used to generate the deprecation tracking issue (`src/ghes-releases/lib/deprecation-steps.md`). \ No newline at end of file +Every day a workflow runs to check whether it's time to create new deprecation tracking issues. New deprecation tracking issues get opened 7 days before the deprecation date. There is only one template used to generate the deprecation tracking issue (`src/ghes-releases/lib/deprecation-steps.md`). + +## Script Commands + +### Running scripts + +The following scripts are available for manual execution: + +| Script | Description | +|-------------------------------|--------------------------------------------------| +| `npm run create-enterprise-issue` | Create new release tracking issues for GHES. | +| `npm run deprecate-ghes` | Create new deprecation tracking issues for GHES. | +| `npm run deprecate-ghes-archive` | Archive deprecation tracking issues. | +| `npm run release-banner` | Update the release banner. | +| `npm run update-enterprise-dates` | Update enterprise release dates. | + +For example, to create new release tracking issues, run: +```bash +npm run create-enterprise-issue +``` + +Run tests: +```bash +npm run test -- src/ghes-releases/tests +``` + +### Manual operations + +The scripts in `src/ghes-releases/scripts/` support manual execution for: +- Creating release tracking issues +- Creating deprecation tracking issues +- Validating release dates +- Testing issue generation + +## Connection to Related Subjects + +### `src/versions` + +The GHES release process is tightly coupled with versioning: +- Release numbers in `src/versions/lib/enterprise-server-releases.ts` +- New releases add to `supported` array +- Deprecated releases move to `deprecated` array +- Version detection logic uses these arrays + +### `src/archives` + +When a GHES version is deprecated: +1. Content is archived from `docs-internal` to `docs-ghes-X.XX` repos +2. Archive middleware proxies requests to archived content +3. See `src/archives/` for archival process + +Release and deprecation are coordinated: +- Release: Add new version to supported list +- Deprecation: Move old version to deprecated, trigger archival +- Both processes have tracking issues with checklists + +## Known Limitations + +### Automated workflow timing +- Workflows check daily for release/deprecation dates +- Issues created on code freeze date (releases) or 7 days before (deprecations) +- No manual trigger for early issue creation + +### Template system +- Liquid variables are custom (not same as content Liquid) +- Template changes require understanding of issue linking +- No preview mode for template rendering + +### Coordination requirements +- Multiple teams involved (Docs, Enterprise, Release Engineering) +- Manual checklist completion required +- Dependencies between issues must be manually tracked + +### Release schedule changes +- Dates in `enterprise-dates.json` must be manually updated +- No automated sync with Enterprise release calendar +- Changes require code update and deployment + +We are not expecting significant new investment here, but we will continue to support GHES releases as needed. diff --git a/src/github-apps/README.md b/src/github-apps/README.md index fb770f8e87ad..c9a389021d76 100644 --- a/src/github-apps/README.md +++ b/src/github-apps/README.md @@ -68,3 +68,25 @@ Slack: `#docs-engineering` Repo: `github/docs-engineering` If you have a question about the GitHub Apps pipeline, you can ask in the `#docs-engineering` Slack channel. If you notice a problem with the GitHub Apps pipeline, you can open an issue in the `github/docs-engineering` repository. + +## Ownership & On-call + +### Ownership +- **Team**: Docs Engineering +- **Source data**: API Platform team (github/rest-api-description) + +### On-call procedures +If the GitHub Apps pipeline fails: +1. Check workflow logs in `.github/workflows/sync-openapi.yml` +2. Verify access to `github/rest-api-description` repo +3. Check for OpenAPI schema changes +4. Escalate to #docs-engineering if stuck +5. Contact API Platform team for source data issues + +### Monitoring +- Pipeline runs automatically on schedule (shared with REST/Webhooks) +- PRs created with `github-openapi-bot` label +- Failures visible in GitHub Actions +- SHA tracking in `config.json` for version history + +We are not expecting further significant development on this pipeline. We will continue to support incoming changes from the rest-api-description. diff --git a/src/graphql/README.md b/src/graphql/README.md index ae54f80bb946..9f336b11bdfc 100644 --- a/src/graphql/README.md +++ b/src/graphql/README.md @@ -1,39 +1,155 @@ # GraphQL -## About this directory +The graphql subject handles GitHub's GraphQL API documentation, including schema synchronization, data generation, and documentation rendering. It fetches schema data from GitHub's GraphQL API and generates version-specific JSON files used to render the docs. -* `src/graphql/lib` and `src/graphql/scripts` are human-editable. -* `src/graphql/data/**` are generated by [scripts](./scripts). +## Purpose & Scope -## Editable files +This subject is responsible for: +- Syncing GraphQL schema from GitHub's API +- Generating version-specific schema JSON files +- Managing GraphQL previews, upcoming changes, and changelog +- Middleware that injects GraphQL data into page context +- Rendering GraphQL reference documentation +- Validating GraphQL schema data structure -* `src/graphql/lib/validator.json` - - JSON schema used in `tests/graphql.ts`. -* `src/graphql/lib/non-schema-scalars.json` - - An array of scalar types that live in [`graphql-ruby`](https://github.com/rmosolgo/graphql-ruby/tree/356d9d369e444423bf06cab3dc767ec75fbc6745/lib/graphql/types) only. These are - not part of the core GraphQL spec. -* `src/graphql/lib/types.json` - - High-level GraphQL types and kinds. +## Architecture & Key Assets -## Data files +### Key capabilities and their locations -Generated by `src/graphql/scripts/sync.ts`: +- **Schema synchronization** - `scripts/sync.ts` fetches schema from GitHub's GraphQL API +- **Data generation** - Generates version-specific JSON files in `data/VERSION/` directories (e.g., `data/ghec/schema.json`) +- **Validation** - `lib/validator.ts` validates schema structure +- **Data loading** - `lib/index.ts` provides functions to load GraphQL data in Next.js pages +- **Content rendering** - Markdown files in `content/graphql/` use Liquid to render documentation -* `src/graphql/data/schema-VERSION.json` (separate files per version) -* `src/graphql/data/previews.json` -* `src/graphql/data/upcoming-changes.json` -* `src/graphql/data/changelog.json` +## Setup & Usage -## Rendering docs +### Syncing GraphQL schema -When the server starts, `middleware/graphql.ts` accesses the static JSON files, fetches the data for the current version, and adds it to the `context` object. The added properties are: +Run the sync script to fetch latest schema: -* `context.graphql.schemaForCurrentVersion` -* `context.graphql.previewsForCurrentVersion` -* `context.graphql.upcomingChangesForCurrentVersion` -* `context.graphql.changelog` +```bash +npm run sync-graphql +``` -Markdown files in `content/graphql` use Liquid to loop over these context properties. The Liquid calls HTML files in the `includes` directory to do most of the rendering. +This: +1. Fetches schema from GitHub's GraphQL API for each version +2. Generates `data/VERSION/schema.json` files (e.g., `data/ghec/schema.json`) +3. Builds `data/previews.json`, `data/upcoming-changes.json`, `data/changelog.json` + +### Running tests + +```bash +npm run test -- src/graphql/tests +``` + +### How rendering works + +1. GraphQL data is loaded directly in Next.js pages using `getServerSideProps` +2. Functions from `lib/index.ts` like `getGraphqlSchema()` provide the data +3. Data includes: + - Schema for current version + - Previews for current version + - Upcoming changes for current version + - Changelog +4. Markdown files in `content/graphql/` use Liquid to loop over this data +5. Liquid calls HTML includes in `includes/` for rendering + +## Data & External Dependencies + +### Data inputs +- GitHub GraphQL API - Schema introspection queries +- `lib/non-schema-scalars.json` - Custom scalar types from graphql-ruby +- `lib/types.json` - High-level GraphQL types and kinds +- `lib/validator.json` - JSON schema for validation + +### Dependencies +- GitHub GraphQL API access +- `graphql-ruby` library scalars +- JSON schema validator (AJV) +- `@/versions` - Version mapping for schema files + +### Data outputs +- `data/schema-VERSION.json` - One file per version (ghec, ghes-3.11, etc.) +- `data/previews.json` - Preview features across versions +- `data/upcoming-changes.json` - Upcoming breaking changes +- `data/changelog.json` - GraphQL API changelog entries + +### Generated files + +All files in `data/` are generated and should not be manually edited: +- ✅ Edit: `lib/*.json`, `scripts/*.ts` +- ❌ Don't edit: `data/*.json` (regenerate with sync script) + +## Cross-links & Ownership + +### Related subjects +- [`src/rest`](../rest/README.md) - Similar pattern for REST API docs +- [`src/webhooks`](../webhooks/README.md) - Similar pattern for webhooks docs +- [`src/content-render`](../content-render/README.md) - Liquid rendering of GraphQL data +- Content files in `content/graphql/` - GraphQL documentation pages + +### Internal documentation +- GitHub GraphQL API: https://docs.github.com/graphql +- graphql-ruby scalars: https://github.com/rmosolgo/graphql-ruby + +## Current State & Next Steps + +### Editable files + +Human-editable configuration: +- `lib/validator.ts` - TypeScript file for validating schema in `tests/graphql.ts` +- `lib/non-schema-scalars.json` - Scalar types from graphql-ruby (not in core spec) +- `lib/types.json` - High-level GraphQL types and kinds + +### Version-specific schemas + +Schema files generated per version: +- `data/ghec/schema.json` - GitHub Enterprise Cloud +- `data/ghes-3.11/schema.json`, `data/ghes-3.10/schema.json`, etc. - GHES versions +- Older versions may be archived + +### Content authoring + +Writers can add content to Markdown files in `content/graphql/` alongside Liquid: +- Note that Markdown files exist for every URL in GraphQL docs +- Liquid loops over `context.graphql.*` properties +- Most rendering happens in `includes/` HTML files + +### Known limitations +- Schema sync requires API access +- Generated files can be large (100KB+ per version) +- Changes to upstream schema require re-sync +- Validation schema must be kept in sync with expected structure + +### Sync workflow + +Automated sync (if configured): +- Scheduled workflow checks for schema updates +- Creates PR if changes detected +- Manual sync: `npm run sync-graphql` + +### Adding new schema versions + +When a new GHES version releases: +1. Update version list in sync script +2. Run `npm run sync-graphql` +3. Commit new `data/ghes-X.XX/schema.json` file +4. Update content if needed + +### Troubleshooting + +**Sync fails:** +- Check API access and authentication +- Verify version mappings are correct +- Check for schema validation errors + +**Schema not loading:** +- Verify `data/VERSION/schema.json` exists (e.g., `data/ghec/schema.json`) +- Verify version detection logic + +**Content not rendering:** +- Check Liquid syntax in `content/graphql/` +- Verify context properties are available +- Check includes in `includes/` directory -Note that Markdown files exist in `content/graphql` for every URL available in our GraphQL -documentation. Writers can add content to the Markdown files alongside the Liquid. diff --git a/src/graphql/data/fpt/changelog.json b/src/graphql/data/fpt/changelog.json index 65bfa9c71ca6..9a4d58d735a0 100644 --- a/src/graphql/data/fpt/changelog.json +++ b/src/graphql/data/fpt/changelog.json @@ -1,4 +1,34 @@ [ + { + "schemaChanges": [ + { + "title": "The GraphQL schema includes these changes:", + "changes": [ + "

Type CreateTeamDiscussionInput was removed

", + "

Type CreateTeamDiscussionPayload was removed

", + "

Type DeleteTeamDiscussionInput was removed

", + "

Type DeleteTeamDiscussionPayload was removed

", + "

Type TeamDiscussion was removed

", + "

Type TeamDiscussionConnection was removed

", + "

Type TeamDiscussionEdge was removed

", + "

Type TeamDiscussionOrder was removed

", + "

Type TeamDiscussionOrderField was removed

", + "

Type UpdateTeamDiscussionInput was removed

", + "

Type UpdateTeamDiscussionPayload was removed

", + "

Field createTeamDiscussion was removed from object type Mutation

", + "

Field deleteTeamDiscussion was removed from object type Mutation

", + "

Field updateTeamDiscussion was removed from object type Mutation

", + "

Field discussion was removed from object type Team

", + "

Field discussions was removed from object type Team

", + "

Field discussionsResourcePath was removed from object type Team

", + "

Field discussionsUrl was removed from object type Team

" + ] + } + ], + "previewChanges": [], + "upcomingChanges": [], + "date": "2026-01-05" + }, { "schemaChanges": [ { diff --git a/src/graphql/data/fpt/graphql_upcoming_changes.public.yml b/src/graphql/data/fpt/graphql_upcoming_changes.public.yml index 0f59bb0649a9..63fed0b0ea09 100644 --- a/src/graphql/data/fpt/graphql_upcoming_changes.public.yml +++ b/src/graphql/data/fpt/graphql_upcoming_changes.public.yml @@ -402,46 +402,6 @@ upcoming_changes: date: '2024-04-01T00:00:00+00:00' criticality: breaking owner: calvinchilds - - location: CreateTeamDiscussionInput.body - description: - '`body` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: CreateTeamDiscussionInput.private - description: - '`private` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: CreateTeamDiscussionInput.teamId - description: - '`teamId` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: CreateTeamDiscussionInput.title - description: - '`title` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: CreateTeamDiscussionPayload.teamDiscussion - description: - '`teamDiscussion` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - location: OrganizationInvitation.inviter description: '`inviter` will be removed. `inviter` will be replaced by `inviterActor`.' reason: '`inviter` will be removed.' @@ -472,102 +432,6 @@ upcoming_changes: date: '2024-07-01T00:00:00+00:00' criticality: breaking owner: JanKoszewski - - location: TeamDiscussion.authorAssociation - description: - '`authorAssociation` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.bodyVersion - description: - '`bodyVersion` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.commentsResourcePath - description: - '`commentsResourcePath` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.commentsUrl - description: - '`commentsUrl` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.isPinned - description: - '`isPinned` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.isPrivate - description: - '`isPrivate` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.number - description: - '`number` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.resourcePath - description: - '`resourcePath` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.team - description: - '`team` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.title - description: - '`title` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.url - description: - '`url` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.viewerCanPin - description: - '`viewerCanPin` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - location: Workflow.hasWorkflowDispatchTrigger description: '`hasWorkflowDispatchTrigger` will be removed. Use `has_workflow_dispatch_trigger_for_branch(branch_ref)` diff --git a/src/graphql/data/fpt/schema.docs.graphql b/src/graphql/data/fpt/schema.docs.graphql index 431070437bba..f63217359c64 100644 --- a/src/graphql/data/fpt/schema.docs.graphql +++ b/src/graphql/data/fpt/schema.docs.graphql @@ -1126,7 +1126,6 @@ input AddReactionInput { "PullRequestReview" "PullRequestReviewComment" "Release" - "TeamDiscussion" ] abstractType: "Reactable" ) @@ -9212,80 +9211,6 @@ type CreateSponsorshipsPayload { sponsorables: [Sponsorable!] } -""" -Autogenerated input type of CreateTeamDiscussion -""" -input CreateTeamDiscussionInput { - """ - The content of the discussion. This field is required. - - **Upcoming Change on 2024-07-01 UTC** - **Description:** `body` will be removed. Follow the guide at - https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to - find a suitable replacement. - **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. - """ - body: String - - """ - A unique identifier for the client performing the mutation. - """ - clientMutationId: String - - """ - If true, restricts the visibility of this discussion to team members and - organization owners. If false or not specified, allows any organization member - to view this discussion. - - **Upcoming Change on 2024-07-01 UTC** - **Description:** `private` will be removed. Follow the guide at - https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to - find a suitable replacement. - **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. - """ - private: Boolean - - """ - The ID of the team to which the discussion belongs. This field is required. - - **Upcoming Change on 2024-07-01 UTC** - **Description:** `teamId` will be removed. Follow the guide at - https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to - find a suitable replacement. - **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. - """ - teamId: ID @possibleTypes(concreteTypes: ["Team"]) - - """ - The title of the discussion. This field is required. - - **Upcoming Change on 2024-07-01 UTC** - **Description:** `title` will be removed. Follow the guide at - https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to - find a suitable replacement. - **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. - """ - title: String -} - -""" -Autogenerated return type of CreateTeamDiscussion. -""" -type CreateTeamDiscussionPayload { - """ - A unique identifier for the client performing the mutation. - """ - clientMutationId: String - - """ - The new discussion. - """ - teamDiscussion: TeamDiscussion - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) -} - """ Autogenerated input type of CreateUserList """ @@ -10720,31 +10645,6 @@ type DeleteRepositoryRulesetPayload { clientMutationId: String } -""" -Autogenerated input type of DeleteTeamDiscussion -""" -input DeleteTeamDiscussionInput { - """ - A unique identifier for the client performing the mutation. - """ - clientMutationId: String - - """ - The discussion ID to delete. - """ - id: ID! @possibleTypes(concreteTypes: ["TeamDiscussion"]) -} - -""" -Autogenerated return type of DeleteTeamDiscussion. -""" -type DeleteTeamDiscussionPayload { - """ - A unique identifier for the client performing the mutation. - """ - clientMutationId: String -} - """ Autogenerated input type of DeleteUserList """ @@ -25441,16 +25341,6 @@ type Mutation { input: CreateSponsorshipsInput! ): CreateSponsorshipsPayload - """ - Creates a new team discussion. - """ - createTeamDiscussion( - """ - Parameters for CreateTeamDiscussion - """ - input: CreateTeamDiscussionInput! - ): CreateTeamDiscussionPayload - """ Creates a new user list. """ @@ -25730,16 +25620,6 @@ type Mutation { input: DeleteRepositoryRulesetInput! ): DeleteRepositoryRulesetPayload - """ - Deletes a team discussion. - """ - deleteTeamDiscussion( - """ - Parameters for DeleteTeamDiscussion - """ - input: DeleteTeamDiscussionInput! - ): DeleteTeamDiscussionPayload - """ Deletes a user list. """ @@ -27236,16 +27116,6 @@ type Mutation { input: UpdateSubscriptionInput! ): UpdateSubscriptionPayload - """ - Updates a team discussion. - """ - updateTeamDiscussion( - """ - Parameters for UpdateTeamDiscussion - """ - input: UpdateTeamDiscussionInput! - ): UpdateTeamDiscussionPayload - """ Updates team review assignment. """ @@ -46343,7 +46213,6 @@ input RemoveReactionInput { "PullRequestReview" "PullRequestReviewComment" "Release" - "TeamDiscussion" ] abstractType: "Reactable" ) @@ -61145,61 +61014,6 @@ type Team implements MemberStatusable & Node & Subscribable { """ description: String - """ - Find a team discussion by its number. - """ - discussion( - """ - The sequence number of the discussion to find. - """ - number: Int! - ): TeamDiscussion - - """ - A list of team discussions. - """ - discussions( - """ - Returns the elements in the list that come after the specified cursor. - """ - after: String - - """ - Returns the elements in the list that come before the specified cursor. - """ - before: String - - """ - Returns the first _n_ elements from the list. - """ - first: Int - - """ - If provided, filters discussions according to whether or not they are pinned. - """ - isPinned: Boolean - - """ - Returns the last _n_ elements from the list. - """ - last: Int - - """ - Order for connection - """ - orderBy: TeamDiscussionOrder - ): TeamDiscussionConnection! - - """ - The HTTP path for team discussions - """ - discussionsResourcePath: URI! - - """ - The HTTP URL for team discussions - """ - discussionsUrl: URI! - """ The HTTP path for editing this team """ @@ -62182,337 +61996,6 @@ type TeamConnection { totalCount: Int! } -""" -A team discussion. -""" -type TeamDiscussion implements Comment & Deletable & Node & Reactable & Subscribable & UniformResourceLocatable & Updatable & UpdatableComment { - """ - The actor who authored the comment. - """ - author: Actor - - """ - Author's association with the discussion's team. - """ - authorAssociation: CommentAuthorAssociation! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - The body as Markdown. - """ - body: String! - - """ - The body rendered to HTML. - """ - bodyHTML: HTML! - - """ - The body rendered to text. - """ - bodyText: String! - - """ - Identifies the discussion body hash. - """ - bodyVersion: String! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - The HTTP path for discussion comments - """ - commentsResourcePath: URI! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - The HTTP URL for discussion comments - """ - commentsUrl: URI! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - Identifies the date and time when the object was created. - """ - createdAt: DateTime! - - """ - Check if this comment was created via an email reply. - """ - createdViaEmail: Boolean! - - """ - Identifies the primary key from the database. - """ - databaseId: Int - - """ - The actor who edited the comment. - """ - editor: Actor - - """ - The Node ID of the TeamDiscussion object - """ - id: ID! - - """ - Check if this comment was edited and includes an edit with the creation data - """ - includesCreatedEdit: Boolean! - - """ - Whether or not the discussion is pinned. - """ - isPinned: Boolean! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - Whether or not the discussion is only visible to team members and organization owners. - """ - isPrivate: Boolean! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - The moment the editor made the last edit - """ - lastEditedAt: DateTime - - """ - Identifies the discussion within its team. - """ - number: Int! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - Identifies when the comment was published at. - """ - publishedAt: DateTime - - """ - A list of reactions grouped by content left on the subject. - """ - reactionGroups: [ReactionGroup!] - - """ - A list of Reactions left on the Issue. - """ - reactions( - """ - Returns the elements in the list that come after the specified cursor. - """ - after: String - - """ - Returns the elements in the list that come before the specified cursor. - """ - before: String - - """ - Allows filtering Reactions by emoji. - """ - content: ReactionContent - - """ - Returns the first _n_ elements from the list. - """ - first: Int - - """ - Returns the last _n_ elements from the list. - """ - last: Int - - """ - Allows specifying the order in which reactions are returned. - """ - orderBy: ReactionOrder - ): ReactionConnection! - - """ - The HTTP path for this discussion - """ - resourcePath: URI! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - The team that defines the context of this discussion. - """ - team: Team! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - The title of the discussion - """ - title: String! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - Identifies the date and time when the object was last updated. - """ - updatedAt: DateTime! - - """ - The HTTP URL for this discussion - """ - url: URI! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - A list of edits to this content. - """ - userContentEdits( - """ - Returns the elements in the list that come after the specified cursor. - """ - after: String - - """ - Returns the elements in the list that come before the specified cursor. - """ - before: String - - """ - Returns the first _n_ elements from the list. - """ - first: Int - - """ - Returns the last _n_ elements from the list. - """ - last: Int - ): UserContentEditConnection - - """ - Check if the current viewer can delete this object. - """ - viewerCanDelete: Boolean! - - """ - Whether or not the current viewer can pin this discussion. - """ - viewerCanPin: Boolean! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - Can user react to this subject - """ - viewerCanReact: Boolean! - - """ - Check if the viewer is able to change their subscription status for the repository. - """ - viewerCanSubscribe: Boolean! - - """ - Check if the current viewer can update this object. - """ - viewerCanUpdate: Boolean! - - """ - Reasons why the current viewer can not update this comment. - """ - viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! - - """ - Did the viewer author this comment. - """ - viewerDidAuthor: Boolean! - - """ - Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. - """ - viewerSubscription: SubscriptionState -} - -""" -The connection type for TeamDiscussion. -""" -type TeamDiscussionConnection { - """ - A list of edges. - """ - edges: [TeamDiscussionEdge] - - """ - A list of nodes. - """ - nodes: [TeamDiscussion] - - """ - Information to aid in pagination. - """ - pageInfo: PageInfo! - - """ - Identifies the total count of items in the connection. - """ - totalCount: Int! -} - -""" -An edge in a connection. -""" -type TeamDiscussionEdge { - """ - A cursor for use in pagination. - """ - cursor: String! - - """ - The item at the end of the edge. - """ - node: TeamDiscussion -} - -""" -Ways in which team discussion connections can be ordered. -""" -input TeamDiscussionOrder { - """ - The direction in which to order nodes. - """ - direction: OrderDirection! - - """ - The field by which to order nodes. - """ - field: TeamDiscussionOrderField! -} - -""" -Properties by which team discussion connections can be ordered. -""" -enum TeamDiscussionOrderField { - """ - Allows chronological ordering of team discussions. - """ - CREATED_AT -} - """ An edge in a connection. """ @@ -67308,7 +66791,7 @@ input UpdateSubscriptionInput { """ subscribableId: ID! @possibleTypes( - concreteTypes: ["Commit", "Discussion", "Issue", "PullRequest", "Repository", "Team", "TeamDiscussion"] + concreteTypes: ["Commit", "Discussion", "Issue", "PullRequest", "Repository", "Team"] abstractType: "Subscribable" ) } @@ -67328,57 +66811,6 @@ type UpdateSubscriptionPayload { subscribable: Subscribable } -""" -Autogenerated input type of UpdateTeamDiscussion -""" -input UpdateTeamDiscussionInput { - """ - The updated text of the discussion. - """ - body: String - - """ - The current version of the body content. If provided, this update operation - will be rejected if the given version does not match the latest version on the server. - """ - bodyVersion: String - - """ - A unique identifier for the client performing the mutation. - """ - clientMutationId: String - - """ - The Node ID of the discussion to modify. - """ - id: ID! @possibleTypes(concreteTypes: ["TeamDiscussion"]) - - """ - If provided, sets the pinned state of the updated discussion. - """ - pinned: Boolean - - """ - The updated title of the discussion. - """ - title: String -} - -""" -Autogenerated return type of UpdateTeamDiscussion. -""" -type UpdateTeamDiscussionPayload { - """ - A unique identifier for the client performing the mutation. - """ - clientMutationId: String - - """ - The updated discussion. - """ - teamDiscussion: TeamDiscussion -} - """ Autogenerated input type of UpdateTeamReviewAssignment """ diff --git a/src/graphql/data/fpt/schema.json b/src/graphql/data/fpt/schema.json index 2df3f25336bf..b406a568ef5a 100644 --- a/src/graphql/data/fpt/schema.json +++ b/src/graphql/data/fpt/schema.json @@ -3665,42 +3665,6 @@ } ] }, - { - "name": "createTeamDiscussion", - "kind": "mutations", - "id": "createteamdiscussion", - "href": "/graphql/reference/mutations#createteamdiscussion", - "description": "

Creates a new team discussion.

", - "inputFields": [ - { - "name": "input", - "type": "CreateTeamDiscussionInput!", - "id": "createteamdiscussioninput", - "kind": "input-objects", - "href": "/graphql/reference/input-objects#createteamdiscussioninput" - } - ], - "returnFields": [ - { - "name": "clientMutationId", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string", - "description": "

A unique identifier for the client performing the mutation.

" - }, - { - "name": "teamDiscussion", - "type": "TeamDiscussion", - "id": "teamdiscussion", - "kind": "objects", - "href": "/graphql/reference/objects#teamdiscussion", - "description": "

The new discussion.

", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - } - ] - }, { "name": "createUserList", "kind": "mutations", @@ -4619,32 +4583,6 @@ } ] }, - { - "name": "deleteTeamDiscussion", - "kind": "mutations", - "id": "deleteteamdiscussion", - "href": "/graphql/reference/mutations#deleteteamdiscussion", - "description": "

Deletes a team discussion.

", - "inputFields": [ - { - "name": "input", - "type": "DeleteTeamDiscussionInput!", - "id": "deleteteamdiscussioninput", - "kind": "input-objects", - "href": "/graphql/reference/input-objects#deleteteamdiscussioninput" - } - ], - "returnFields": [ - { - "name": "clientMutationId", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string", - "description": "

A unique identifier for the client performing the mutation.

" - } - ] - }, { "name": "deleteUserList", "kind": "mutations", @@ -9935,40 +9873,6 @@ } ] }, - { - "name": "updateTeamDiscussion", - "kind": "mutations", - "id": "updateteamdiscussion", - "href": "/graphql/reference/mutations#updateteamdiscussion", - "description": "

Updates a team discussion.

", - "inputFields": [ - { - "name": "input", - "type": "UpdateTeamDiscussionInput!", - "id": "updateteamdiscussioninput", - "kind": "input-objects", - "href": "/graphql/reference/input-objects#updateteamdiscussioninput" - } - ], - "returnFields": [ - { - "name": "clientMutationId", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string", - "description": "

A unique identifier for the client performing the mutation.

" - }, - { - "name": "teamDiscussion", - "type": "TeamDiscussion", - "id": "teamdiscussion", - "kind": "objects", - "href": "/graphql/reference/objects#teamdiscussion", - "description": "

The updated discussion.

" - } - ] - }, { "name": "updateTeamReviewAssignment", "kind": "mutations", @@ -76083,18 +75987,72 @@ "href": "/graphql/reference/scalars#string" }, { - "name": "discussion", - "description": "

Find a team discussion by its number.

", - "type": "TeamDiscussion", - "id": "teamdiscussion", + "name": "editTeamResourcePath", + "description": "

The HTTP path for editing this team.

", + "type": "URI!", + "id": "uri", + "kind": "scalars", + "href": "/graphql/reference/scalars#uri" + }, + { + "name": "editTeamUrl", + "description": "

The HTTP URL for editing this team.

", + "type": "URI!", + "id": "uri", + "kind": "scalars", + "href": "/graphql/reference/scalars#uri" + }, + { + "name": "id", + "description": "

The Node ID of the Team object.

", + "type": "ID!", + "id": "id", + "kind": "scalars", + "href": "/graphql/reference/scalars#id" + }, + { + "name": "invitations", + "description": "

A list of pending invitations for users to this team.

", + "type": "OrganizationInvitationConnection", + "id": "organizationinvitationconnection", "kind": "objects", - "href": "/graphql/reference/objects#teamdiscussion", + "href": "/graphql/reference/objects#organizationinvitationconnection", "arguments": [ { - "name": "number", - "description": "

The sequence number of the discussion to find.

", + "name": "after", + "description": "

Returns the elements in the list that come after the specified cursor.

", "type": { - "name": "Int!", + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "before", + "description": "

Returns the elements in the list that come before the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "first", + "description": "

Returns the first n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + }, + { + "name": "last", + "description": "

Returns the last n elements from the list.

", + "type": { + "name": "Int", "id": "int", "kind": "scalars", "href": "/graphql/reference/scalars#int" @@ -76103,12 +76061,12 @@ ] }, { - "name": "discussions", - "description": "

A list of team discussions.

", - "type": "TeamDiscussionConnection!", - "id": "teamdiscussionconnection", + "name": "memberStatuses", + "description": "

Get the status messages members of this entity have set that are either public or visible only to the organization.

", + "type": "UserStatusConnection!", + "id": "userstatusconnection", "kind": "objects", - "href": "/graphql/reference/objects#teamdiscussionconnection", + "href": "/graphql/reference/objects#userstatusconnection", "arguments": [ { "name": "after", @@ -76141,13 +76099,63 @@ } }, { - "name": "isPinned", - "description": "

If provided, filters discussions according to whether or not they are pinned.

", + "name": "last", + "description": "

Returns the last n elements from the list.

", "type": { - "name": "Boolean", - "id": "boolean", + "name": "Int", + "id": "int", "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" + "href": "/graphql/reference/scalars#int" + } + }, + { + "name": "orderBy", + "description": "

Ordering options for user statuses returned from the connection.

", + "type": { + "name": "UserStatusOrder", + "id": "userstatusorder", + "kind": "input-objects", + "href": "/graphql/reference/input-objects#userstatusorder" + } + } + ] + }, + { + "name": "members", + "description": "

A list of users who are members of this team.

", + "type": "TeamMemberConnection!", + "id": "teammemberconnection", + "kind": "objects", + "href": "/graphql/reference/objects#teammemberconnection", + "arguments": [ + { + "name": "after", + "description": "

Returns the elements in the list that come after the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "before", + "description": "

Returns the elements in the list that come before the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "first", + "description": "

Returns the first n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" } }, { @@ -76160,65 +76168,148 @@ "href": "/graphql/reference/scalars#int" } }, + { + "name": "membership", + "defaultValue": "ALL", + "description": "

Filter by membership type.

", + "type": { + "name": "TeamMembershipType", + "id": "teammembershiptype", + "kind": "enums", + "href": "/graphql/reference/enums#teammembershiptype" + } + }, { "name": "orderBy", - "description": "

Order for connection.

", + "description": "

Order for the connection.

", "type": { - "name": "TeamDiscussionOrder", - "id": "teamdiscussionorder", + "name": "TeamMemberOrder", + "id": "teammemberorder", "kind": "input-objects", - "href": "/graphql/reference/input-objects#teamdiscussionorder" + "href": "/graphql/reference/input-objects#teammemberorder" + } + }, + { + "name": "query", + "description": "

The search string to look for.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "role", + "description": "

Filter by team member role.

", + "type": { + "name": "TeamMemberRole", + "id": "teammemberrole", + "kind": "enums", + "href": "/graphql/reference/enums#teammemberrole" } } ] }, { - "name": "discussionsResourcePath", - "description": "

The HTTP path for team discussions.

", + "name": "membersResourcePath", + "description": "

The HTTP path for the team' members.

", "type": "URI!", "id": "uri", "kind": "scalars", "href": "/graphql/reference/scalars#uri" }, { - "name": "discussionsUrl", - "description": "

The HTTP URL for team discussions.

", + "name": "membersUrl", + "description": "

The HTTP URL for the team' members.

", "type": "URI!", "id": "uri", "kind": "scalars", "href": "/graphql/reference/scalars#uri" }, { - "name": "editTeamResourcePath", - "description": "

The HTTP path for editing this team.

", + "name": "name", + "description": "

The name of the team.

", + "type": "String!", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + }, + { + "name": "newTeamResourcePath", + "description": "

The HTTP path creating a new team.

", "type": "URI!", "id": "uri", "kind": "scalars", "href": "/graphql/reference/scalars#uri" }, { - "name": "editTeamUrl", - "description": "

The HTTP URL for editing this team.

", + "name": "newTeamUrl", + "description": "

The HTTP URL creating a new team.

", "type": "URI!", "id": "uri", "kind": "scalars", "href": "/graphql/reference/scalars#uri" }, { - "name": "id", - "description": "

The Node ID of the Team object.

", - "type": "ID!", - "id": "id", - "kind": "scalars", - "href": "/graphql/reference/scalars#id" + "name": "notificationSetting", + "description": "

The notification setting that the team has set.

", + "type": "TeamNotificationSetting!", + "id": "teamnotificationsetting", + "kind": "enums", + "href": "/graphql/reference/enums#teamnotificationsetting" }, { - "name": "invitations", - "description": "

A list of pending invitations for users to this team.

", - "type": "OrganizationInvitationConnection", - "id": "organizationinvitationconnection", + "name": "organization", + "description": "

The organization that owns this team.

", + "type": "Organization!", + "id": "organization", "kind": "objects", - "href": "/graphql/reference/objects#organizationinvitationconnection", + "href": "/graphql/reference/objects#organization" + }, + { + "name": "parentTeam", + "description": "

The parent team of the team.

", + "type": "Team", + "id": "team", + "kind": "objects", + "href": "/graphql/reference/objects#team" + }, + { + "name": "privacy", + "description": "

The level of privacy the team has.

", + "type": "TeamPrivacy!", + "id": "teamprivacy", + "kind": "enums", + "href": "/graphql/reference/enums#teamprivacy" + }, + { + "name": "projectV2", + "description": "

Finds and returns the project according to the provided project number.

", + "type": "ProjectV2", + "id": "projectv2", + "kind": "objects", + "href": "/graphql/reference/objects#projectv2", + "arguments": [ + { + "name": "number", + "description": "

The Project number.

", + "type": { + "name": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + } + ] + }, + { + "name": "projectsV2", + "description": "

List of projects this team has collaborator access to.

", + "type": "ProjectV2Connection!", + "id": "projectv2connection", + "kind": "objects", + "href": "/graphql/reference/objects#projectv2connection", "arguments": [ { "name": "after", @@ -76240,6 +76331,16 @@ "href": "/graphql/reference/scalars#string" } }, + { + "name": "filterBy", + "description": "

Filtering options for projects returned from this connection.

", + "type": { + "name": "ProjectV2Filters", + "id": "projectv2filters", + "kind": "input-objects", + "href": "/graphql/reference/input-objects#projectv2filters" + } + }, { "name": "first", "description": "

Returns the first n elements from the list.

", @@ -76259,351 +76360,48 @@ "kind": "scalars", "href": "/graphql/reference/scalars#int" } + }, + { + "name": "minPermissionLevel", + "defaultValue": "READ", + "description": "

Filter projects based on user role.

", + "type": { + "name": "ProjectV2PermissionLevel", + "id": "projectv2permissionlevel", + "kind": "enums", + "href": "/graphql/reference/enums#projectv2permissionlevel" + } + }, + { + "name": "orderBy", + "description": "

How to order the returned projects.

", + "type": { + "name": "ProjectV2Order", + "id": "projectv2order", + "kind": "input-objects", + "href": "/graphql/reference/input-objects#projectv2order" + } + }, + { + "name": "query", + "defaultValue": "", + "description": "

The query to search projects by.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } } ] }, { - "name": "memberStatuses", - "description": "

Get the status messages members of this entity have set that are either public or visible only to the organization.

", - "type": "UserStatusConnection!", - "id": "userstatusconnection", + "name": "repositories", + "description": "

A list of repositories this team has access to.

", + "type": "TeamRepositoryConnection!", + "id": "teamrepositoryconnection", "kind": "objects", - "href": "/graphql/reference/objects#userstatusconnection", - "arguments": [ - { - "name": "after", - "description": "

Returns the elements in the list that come after the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "before", - "description": "

Returns the elements in the list that come before the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "first", - "description": "

Returns the first n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - }, - { - "name": "last", - "description": "

Returns the last n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - }, - { - "name": "orderBy", - "description": "

Ordering options for user statuses returned from the connection.

", - "type": { - "name": "UserStatusOrder", - "id": "userstatusorder", - "kind": "input-objects", - "href": "/graphql/reference/input-objects#userstatusorder" - } - } - ] - }, - { - "name": "members", - "description": "

A list of users who are members of this team.

", - "type": "TeamMemberConnection!", - "id": "teammemberconnection", - "kind": "objects", - "href": "/graphql/reference/objects#teammemberconnection", - "arguments": [ - { - "name": "after", - "description": "

Returns the elements in the list that come after the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "before", - "description": "

Returns the elements in the list that come before the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "first", - "description": "

Returns the first n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - }, - { - "name": "last", - "description": "

Returns the last n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - }, - { - "name": "membership", - "defaultValue": "ALL", - "description": "

Filter by membership type.

", - "type": { - "name": "TeamMembershipType", - "id": "teammembershiptype", - "kind": "enums", - "href": "/graphql/reference/enums#teammembershiptype" - } - }, - { - "name": "orderBy", - "description": "

Order for the connection.

", - "type": { - "name": "TeamMemberOrder", - "id": "teammemberorder", - "kind": "input-objects", - "href": "/graphql/reference/input-objects#teammemberorder" - } - }, - { - "name": "query", - "description": "

The search string to look for.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "role", - "description": "

Filter by team member role.

", - "type": { - "name": "TeamMemberRole", - "id": "teammemberrole", - "kind": "enums", - "href": "/graphql/reference/enums#teammemberrole" - } - } - ] - }, - { - "name": "membersResourcePath", - "description": "

The HTTP path for the team' members.

", - "type": "URI!", - "id": "uri", - "kind": "scalars", - "href": "/graphql/reference/scalars#uri" - }, - { - "name": "membersUrl", - "description": "

The HTTP URL for the team' members.

", - "type": "URI!", - "id": "uri", - "kind": "scalars", - "href": "/graphql/reference/scalars#uri" - }, - { - "name": "name", - "description": "

The name of the team.

", - "type": "String!", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "newTeamResourcePath", - "description": "

The HTTP path creating a new team.

", - "type": "URI!", - "id": "uri", - "kind": "scalars", - "href": "/graphql/reference/scalars#uri" - }, - { - "name": "newTeamUrl", - "description": "

The HTTP URL creating a new team.

", - "type": "URI!", - "id": "uri", - "kind": "scalars", - "href": "/graphql/reference/scalars#uri" - }, - { - "name": "notificationSetting", - "description": "

The notification setting that the team has set.

", - "type": "TeamNotificationSetting!", - "id": "teamnotificationsetting", - "kind": "enums", - "href": "/graphql/reference/enums#teamnotificationsetting" - }, - { - "name": "organization", - "description": "

The organization that owns this team.

", - "type": "Organization!", - "id": "organization", - "kind": "objects", - "href": "/graphql/reference/objects#organization" - }, - { - "name": "parentTeam", - "description": "

The parent team of the team.

", - "type": "Team", - "id": "team", - "kind": "objects", - "href": "/graphql/reference/objects#team" - }, - { - "name": "privacy", - "description": "

The level of privacy the team has.

", - "type": "TeamPrivacy!", - "id": "teamprivacy", - "kind": "enums", - "href": "/graphql/reference/enums#teamprivacy" - }, - { - "name": "projectV2", - "description": "

Finds and returns the project according to the provided project number.

", - "type": "ProjectV2", - "id": "projectv2", - "kind": "objects", - "href": "/graphql/reference/objects#projectv2", - "arguments": [ - { - "name": "number", - "description": "

The Project number.

", - "type": { - "name": "Int!", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - } - ] - }, - { - "name": "projectsV2", - "description": "

List of projects this team has collaborator access to.

", - "type": "ProjectV2Connection!", - "id": "projectv2connection", - "kind": "objects", - "href": "/graphql/reference/objects#projectv2connection", - "arguments": [ - { - "name": "after", - "description": "

Returns the elements in the list that come after the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "before", - "description": "

Returns the elements in the list that come before the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "filterBy", - "description": "

Filtering options for projects returned from this connection.

", - "type": { - "name": "ProjectV2Filters", - "id": "projectv2filters", - "kind": "input-objects", - "href": "/graphql/reference/input-objects#projectv2filters" - } - }, - { - "name": "first", - "description": "

Returns the first n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - }, - { - "name": "last", - "description": "

Returns the last n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - }, - { - "name": "minPermissionLevel", - "defaultValue": "READ", - "description": "

Filter projects based on user role.

", - "type": { - "name": "ProjectV2PermissionLevel", - "id": "projectv2permissionlevel", - "kind": "enums", - "href": "/graphql/reference/enums#projectv2permissionlevel" - } - }, - { - "name": "orderBy", - "description": "

How to order the returned projects.

", - "type": { - "name": "ProjectV2Order", - "id": "projectv2order", - "kind": "input-objects", - "href": "/graphql/reference/input-objects#projectv2order" - } - }, - { - "name": "query", - "defaultValue": "", - "description": "

The query to search projects by.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - } - ] - }, - { - "name": "repositories", - "description": "

A list of repositories this team has access to.

", - "type": "TeamRepositoryConnection!", - "id": "teamrepositoryconnection", - "kind": "objects", - "href": "/graphql/reference/objects#teamrepositoryconnection", + "href": "/graphql/reference/objects#teamrepositoryconnection", "arguments": [ { "name": "after", @@ -77700,531 +77498,6 @@ } ] }, - { - "name": "TeamDiscussion", - "kind": "objects", - "id": "teamdiscussion", - "href": "/graphql/reference/objects#teamdiscussion", - "description": "

A team discussion.

", - "implements": [ - { - "name": "Comment", - "id": "comment", - "href": "/graphql/reference/interfaces#comment" - }, - { - "name": "Deletable", - "id": "deletable", - "href": "/graphql/reference/interfaces#deletable" - }, - { - "name": "Node", - "id": "node", - "href": "/graphql/reference/interfaces#node" - }, - { - "name": "Reactable", - "id": "reactable", - "href": "/graphql/reference/interfaces#reactable" - }, - { - "name": "Subscribable", - "id": "subscribable", - "href": "/graphql/reference/interfaces#subscribable" - }, - { - "name": "UniformResourceLocatable", - "id": "uniformresourcelocatable", - "href": "/graphql/reference/interfaces#uniformresourcelocatable" - }, - { - "name": "Updatable", - "id": "updatable", - "href": "/graphql/reference/interfaces#updatable" - }, - { - "name": "UpdatableComment", - "id": "updatablecomment", - "href": "/graphql/reference/interfaces#updatablecomment" - } - ], - "fields": [ - { - "name": "author", - "description": "

The actor who authored the comment.

", - "type": "Actor", - "id": "actor", - "kind": "interfaces", - "href": "/graphql/reference/interfaces#actor" - }, - { - "name": "authorAssociation", - "description": "

Author's association with the discussion's team.

", - "type": "CommentAuthorAssociation!", - "id": "commentauthorassociation", - "kind": "enums", - "href": "/graphql/reference/enums#commentauthorassociation", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "body", - "description": "

The body as Markdown.

", - "type": "String!", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "bodyHTML", - "description": "

The body rendered to HTML.

", - "type": "HTML!", - "id": "html", - "kind": "scalars", - "href": "/graphql/reference/scalars#html" - }, - { - "name": "bodyText", - "description": "

The body rendered to text.

", - "type": "String!", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "bodyVersion", - "description": "

Identifies the discussion body hash.

", - "type": "String!", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "commentsResourcePath", - "description": "

The HTTP path for discussion comments.

", - "type": "URI!", - "id": "uri", - "kind": "scalars", - "href": "/graphql/reference/scalars#uri", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "commentsUrl", - "description": "

The HTTP URL for discussion comments.

", - "type": "URI!", - "id": "uri", - "kind": "scalars", - "href": "/graphql/reference/scalars#uri", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "createdAt", - "description": "

Identifies the date and time when the object was created.

", - "type": "DateTime!", - "id": "datetime", - "kind": "scalars", - "href": "/graphql/reference/scalars#datetime" - }, - { - "name": "createdViaEmail", - "description": "

Check if this comment was created via an email reply.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" - }, - { - "name": "databaseId", - "description": "

Identifies the primary key from the database.

", - "type": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - }, - { - "name": "editor", - "description": "

The actor who edited the comment.

", - "type": "Actor", - "id": "actor", - "kind": "interfaces", - "href": "/graphql/reference/interfaces#actor" - }, - { - "name": "id", - "description": "

The Node ID of the TeamDiscussion object.

", - "type": "ID!", - "id": "id", - "kind": "scalars", - "href": "/graphql/reference/scalars#id" - }, - { - "name": "includesCreatedEdit", - "description": "

Check if this comment was edited and includes an edit with the creation data.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" - }, - { - "name": "isPinned", - "description": "

Whether or not the discussion is pinned.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "isPrivate", - "description": "

Whether or not the discussion is only visible to team members and organization owners.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "lastEditedAt", - "description": "

The moment the editor made the last edit.

", - "type": "DateTime", - "id": "datetime", - "kind": "scalars", - "href": "/graphql/reference/scalars#datetime" - }, - { - "name": "number", - "description": "

Identifies the discussion within its team.

", - "type": "Int!", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "publishedAt", - "description": "

Identifies when the comment was published at.

", - "type": "DateTime", - "id": "datetime", - "kind": "scalars", - "href": "/graphql/reference/scalars#datetime" - }, - { - "name": "reactionGroups", - "description": "

A list of reactions grouped by content left on the subject.

", - "type": "[ReactionGroup!]", - "id": "reactiongroup", - "kind": "objects", - "href": "/graphql/reference/objects#reactiongroup" - }, - { - "name": "reactions", - "description": "

A list of Reactions left on the Issue.

", - "type": "ReactionConnection!", - "id": "reactionconnection", - "kind": "objects", - "href": "/graphql/reference/objects#reactionconnection", - "arguments": [ - { - "name": "after", - "description": "

Returns the elements in the list that come after the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "before", - "description": "

Returns the elements in the list that come before the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "content", - "description": "

Allows filtering Reactions by emoji.

", - "type": { - "name": "ReactionContent", - "id": "reactioncontent", - "kind": "enums", - "href": "/graphql/reference/enums#reactioncontent" - } - }, - { - "name": "first", - "description": "

Returns the first n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - }, - { - "name": "last", - "description": "

Returns the last n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - }, - { - "name": "orderBy", - "description": "

Allows specifying the order in which reactions are returned.

", - "type": { - "name": "ReactionOrder", - "id": "reactionorder", - "kind": "input-objects", - "href": "/graphql/reference/input-objects#reactionorder" - } - } - ] - }, - { - "name": "resourcePath", - "description": "

The HTTP path for this discussion.

", - "type": "URI!", - "id": "uri", - "kind": "scalars", - "href": "/graphql/reference/scalars#uri", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "team", - "description": "

The team that defines the context of this discussion.

", - "type": "Team!", - "id": "team", - "kind": "objects", - "href": "/graphql/reference/objects#team", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "title", - "description": "

The title of the discussion.

", - "type": "String!", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "updatedAt", - "description": "

Identifies the date and time when the object was last updated.

", - "type": "DateTime!", - "id": "datetime", - "kind": "scalars", - "href": "/graphql/reference/scalars#datetime" - }, - { - "name": "url", - "description": "

The HTTP URL for this discussion.

", - "type": "URI!", - "id": "uri", - "kind": "scalars", - "href": "/graphql/reference/scalars#uri", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "userContentEdits", - "description": "

A list of edits to this content.

", - "type": "UserContentEditConnection", - "id": "usercontenteditconnection", - "kind": "objects", - "href": "/graphql/reference/objects#usercontenteditconnection", - "arguments": [ - { - "name": "after", - "description": "

Returns the elements in the list that come after the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "before", - "description": "

Returns the elements in the list that come before the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "first", - "description": "

Returns the first n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - }, - { - "name": "last", - "description": "

Returns the last n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - } - ] - }, - { - "name": "viewerCanDelete", - "description": "

Check if the current viewer can delete this object.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" - }, - { - "name": "viewerCanPin", - "description": "

Whether or not the current viewer can pin this discussion.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "viewerCanReact", - "description": "

Can user react to this subject.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" - }, - { - "name": "viewerCanSubscribe", - "description": "

Check if the viewer is able to change their subscription status for the repository.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" - }, - { - "name": "viewerCanUpdate", - "description": "

Check if the current viewer can update this object.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" - }, - { - "name": "viewerCannotUpdateReasons", - "description": "

Reasons why the current viewer can not update this comment.

", - "type": "[CommentCannotUpdateReason!]!", - "id": "commentcannotupdatereason", - "kind": "enums", - "href": "/graphql/reference/enums#commentcannotupdatereason" - }, - { - "name": "viewerDidAuthor", - "description": "

Did the viewer author this comment.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" - }, - { - "name": "viewerSubscription", - "description": "

Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.

", - "type": "SubscriptionState", - "id": "subscriptionstate", - "kind": "enums", - "href": "/graphql/reference/enums#subscriptionstate" - } - ] - }, - { - "name": "TeamDiscussionConnection", - "kind": "objects", - "id": "teamdiscussionconnection", - "href": "/graphql/reference/objects#teamdiscussionconnection", - "description": "

The connection type for TeamDiscussion.

", - "fields": [ - { - "name": "edges", - "description": "

A list of edges.

", - "type": "[TeamDiscussionEdge]", - "id": "teamdiscussionedge", - "kind": "objects", - "href": "/graphql/reference/objects#teamdiscussionedge" - }, - { - "name": "nodes", - "description": "

A list of nodes.

", - "type": "[TeamDiscussion]", - "id": "teamdiscussion", - "kind": "objects", - "href": "/graphql/reference/objects#teamdiscussion" - }, - { - "name": "pageInfo", - "description": "

Information to aid in pagination.

", - "type": "PageInfo!", - "id": "pageinfo", - "kind": "objects", - "href": "/graphql/reference/objects#pageinfo" - }, - { - "name": "totalCount", - "description": "

Identifies the total count of items in the connection.

", - "type": "Int!", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - ] - }, - { - "name": "TeamDiscussionEdge", - "kind": "objects", - "id": "teamdiscussionedge", - "href": "/graphql/reference/objects#teamdiscussionedge", - "description": "

An edge in a connection.

", - "fields": [ - { - "name": "cursor", - "description": "

A cursor for use in pagination.

", - "type": "String!", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "node", - "description": "

The item at the end of the edge.

", - "type": "TeamDiscussion", - "id": "teamdiscussion", - "kind": "objects", - "href": "/graphql/reference/objects#teamdiscussion" - } - ] - }, { "name": "TeamEdge", "kind": "objects", @@ -95601,19 +94874,6 @@ } ] }, - { - "name": "TeamDiscussionOrderField", - "kind": "enums", - "id": "teamdiscussionorderfield", - "href": "/graphql/reference/enums#teamdiscussionorderfield", - "description": "

Properties by which team discussion connections can be ordered.

", - "values": [ - { - "name": "CREATED_AT", - "description": "

Allows chronological ordering of team discussions.

" - } - ] - }, { "name": "TeamMemberOrderField", "kind": "enums", @@ -102873,56 +102133,6 @@ } ] }, - { - "name": "CreateTeamDiscussionInput", - "kind": "inputObjects", - "id": "createteamdiscussioninput", - "href": "/graphql/reference/input-objects#createteamdiscussioninput", - "description": "

Autogenerated input type of CreateTeamDiscussion.

", - "inputFields": [ - { - "name": "body", - "description": "

The content of the discussion. This field is required.

\n

Upcoming Change on 2024-07-01 UTC\nDescription: body will be removed. Follow the guide at\nhttps://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to\nfind a suitable replacement.\nReason: The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "clientMutationId", - "description": "

A unique identifier for the client performing the mutation.

", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "private", - "description": "

If true, restricts the visibility of this discussion to team members and\norganization owners. If false or not specified, allows any organization member\nto view this discussion.

\n

Upcoming Change on 2024-07-01 UTC\nDescription: private will be removed. Follow the guide at\nhttps://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to\nfind a suitable replacement.\nReason: The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "type": "Boolean", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" - }, - { - "name": "teamId", - "description": "

The ID of the team to which the discussion belongs. This field is required.

\n

Upcoming Change on 2024-07-01 UTC\nDescription: teamId will be removed. Follow the guide at\nhttps://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to\nfind a suitable replacement.\nReason: The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "type": "ID", - "id": "id", - "kind": "scalars", - "href": "/graphql/reference/scalars#id", - "isDeprecated": false - }, - { - "name": "title", - "description": "

The title of the discussion. This field is required.

\n

Upcoming Change on 2024-07-01 UTC\nDescription: title will be removed. Follow the guide at\nhttps://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to\nfind a suitable replacement.\nReason: The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - ] - }, { "name": "CreateUserListInput", "kind": "inputObjects", @@ -103690,32 +102900,6 @@ } ] }, - { - "name": "DeleteTeamDiscussionInput", - "kind": "inputObjects", - "id": "deleteteamdiscussioninput", - "href": "/graphql/reference/input-objects#deleteteamdiscussioninput", - "description": "

Autogenerated input type of DeleteTeamDiscussion.

", - "inputFields": [ - { - "name": "clientMutationId", - "description": "

A unique identifier for the client performing the mutation.

", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "id", - "description": "

The discussion ID to delete.

", - "type": "ID!", - "id": "id", - "kind": "scalars", - "href": "/graphql/reference/scalars#id", - "isDeprecated": false - } - ] - }, { "name": "DeleteUserListInput", "kind": "inputObjects", @@ -109093,31 +108277,6 @@ } ] }, - { - "name": "TeamDiscussionOrder", - "kind": "inputObjects", - "id": "teamdiscussionorder", - "href": "/graphql/reference/input-objects#teamdiscussionorder", - "description": "

Ways in which team discussion connections can be ordered.

", - "inputFields": [ - { - "name": "direction", - "description": "

The direction in which to order nodes.

", - "type": "OrderDirection!", - "id": "orderdirection", - "kind": "enums", - "href": "/graphql/reference/enums#orderdirection" - }, - { - "name": "field", - "description": "

The field by which to order nodes.

", - "type": "TeamDiscussionOrderField!", - "id": "teamdiscussionorderfield", - "kind": "enums", - "href": "/graphql/reference/enums#teamdiscussionorderfield" - } - ] - }, { "name": "TeamMemberOrder", "kind": "inputObjects", @@ -112663,64 +111822,6 @@ } ] }, - { - "name": "UpdateTeamDiscussionInput", - "kind": "inputObjects", - "id": "updateteamdiscussioninput", - "href": "/graphql/reference/input-objects#updateteamdiscussioninput", - "description": "

Autogenerated input type of UpdateTeamDiscussion.

", - "inputFields": [ - { - "name": "body", - "description": "

The updated text of the discussion.

", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "bodyVersion", - "description": "

The current version of the body content. If provided, this update operation\nwill be rejected if the given version does not match the latest version on the server.

", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "clientMutationId", - "description": "

A unique identifier for the client performing the mutation.

", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "id", - "description": "

The Node ID of the discussion to modify.

", - "type": "ID!", - "id": "id", - "kind": "scalars", - "href": "/graphql/reference/scalars#id", - "isDeprecated": false - }, - { - "name": "pinned", - "description": "

If provided, sets the pinned state of the updated discussion.

", - "type": "Boolean", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" - }, - { - "name": "title", - "description": "

The updated title of the discussion.

", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - ] - }, { "name": "UpdateTeamReviewAssignmentInput", "kind": "inputObjects", diff --git a/src/graphql/data/fpt/upcoming-changes.json b/src/graphql/data/fpt/upcoming-changes.json index b502f6798ad3..0ad394994fe8 100644 --- a/src/graphql/data/fpt/upcoming-changes.json +++ b/src/graphql/data/fpt/upcoming-changes.json @@ -9780,102 +9780,6 @@ } ], "2024-07-01": [ - { - "location": "TeamDiscussion.viewerCanPin", - "description": "

viewerCanPin will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.url", - "description": "

url will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.title", - "description": "

title will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.team", - "description": "

team will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.resourcePath", - "description": "

resourcePath will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.number", - "description": "

number will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.isPrivate", - "description": "

isPrivate will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.isPinned", - "description": "

isPinned will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.commentsUrl", - "description": "

commentsUrl will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.commentsResourcePath", - "description": "

commentsResourcePath will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.bodyVersion", - "description": "

bodyVersion will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.authorAssociation", - "description": "

authorAssociation will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, { "location": "PullRequestReviewComment.databaseId", "description": "

databaseId will be removed. Use fullDatabaseId instead.

", @@ -9907,46 +9811,6 @@ "date": "2024-07-01", "criticality": "breaking", "owner": "jdennes" - }, - { - "location": "CreateTeamDiscussionPayload.teamDiscussion", - "description": "

teamDiscussion will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "CreateTeamDiscussionInput.title", - "description": "

title will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "CreateTeamDiscussionInput.teamId", - "description": "

teamId will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "CreateTeamDiscussionInput.private", - "description": "

private will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "CreateTeamDiscussionInput.body", - "description": "

body will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" } ], "2024-04-01": [ diff --git a/src/graphql/data/ghec/graphql_upcoming_changes.public.yml b/src/graphql/data/ghec/graphql_upcoming_changes.public.yml index 0f59bb0649a9..63fed0b0ea09 100644 --- a/src/graphql/data/ghec/graphql_upcoming_changes.public.yml +++ b/src/graphql/data/ghec/graphql_upcoming_changes.public.yml @@ -402,46 +402,6 @@ upcoming_changes: date: '2024-04-01T00:00:00+00:00' criticality: breaking owner: calvinchilds - - location: CreateTeamDiscussionInput.body - description: - '`body` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: CreateTeamDiscussionInput.private - description: - '`private` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: CreateTeamDiscussionInput.teamId - description: - '`teamId` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: CreateTeamDiscussionInput.title - description: - '`title` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: CreateTeamDiscussionPayload.teamDiscussion - description: - '`teamDiscussion` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - location: OrganizationInvitation.inviter description: '`inviter` will be removed. `inviter` will be replaced by `inviterActor`.' reason: '`inviter` will be removed.' @@ -472,102 +432,6 @@ upcoming_changes: date: '2024-07-01T00:00:00+00:00' criticality: breaking owner: JanKoszewski - - location: TeamDiscussion.authorAssociation - description: - '`authorAssociation` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.bodyVersion - description: - '`bodyVersion` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.commentsResourcePath - description: - '`commentsResourcePath` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.commentsUrl - description: - '`commentsUrl` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.isPinned - description: - '`isPinned` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.isPrivate - description: - '`isPrivate` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.number - description: - '`number` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.resourcePath - description: - '`resourcePath` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.team - description: - '`team` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.title - description: - '`title` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.url - description: - '`url` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - - location: TeamDiscussion.viewerCanPin - description: - '`viewerCanPin` will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ - to find a suitable replacement.' - reason: The Team Discussions feature is deprecated in favor of Organization Discussions. - date: '2024-07-01T00:00:00+00:00' - criticality: breaking - owner: deborah-digges - location: Workflow.hasWorkflowDispatchTrigger description: '`hasWorkflowDispatchTrigger` will be removed. Use `has_workflow_dispatch_trigger_for_branch(branch_ref)` diff --git a/src/graphql/data/ghec/schema.docs.graphql b/src/graphql/data/ghec/schema.docs.graphql index 431070437bba..f63217359c64 100644 --- a/src/graphql/data/ghec/schema.docs.graphql +++ b/src/graphql/data/ghec/schema.docs.graphql @@ -1126,7 +1126,6 @@ input AddReactionInput { "PullRequestReview" "PullRequestReviewComment" "Release" - "TeamDiscussion" ] abstractType: "Reactable" ) @@ -9212,80 +9211,6 @@ type CreateSponsorshipsPayload { sponsorables: [Sponsorable!] } -""" -Autogenerated input type of CreateTeamDiscussion -""" -input CreateTeamDiscussionInput { - """ - The content of the discussion. This field is required. - - **Upcoming Change on 2024-07-01 UTC** - **Description:** `body` will be removed. Follow the guide at - https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to - find a suitable replacement. - **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. - """ - body: String - - """ - A unique identifier for the client performing the mutation. - """ - clientMutationId: String - - """ - If true, restricts the visibility of this discussion to team members and - organization owners. If false or not specified, allows any organization member - to view this discussion. - - **Upcoming Change on 2024-07-01 UTC** - **Description:** `private` will be removed. Follow the guide at - https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to - find a suitable replacement. - **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. - """ - private: Boolean - - """ - The ID of the team to which the discussion belongs. This field is required. - - **Upcoming Change on 2024-07-01 UTC** - **Description:** `teamId` will be removed. Follow the guide at - https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to - find a suitable replacement. - **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. - """ - teamId: ID @possibleTypes(concreteTypes: ["Team"]) - - """ - The title of the discussion. This field is required. - - **Upcoming Change on 2024-07-01 UTC** - **Description:** `title` will be removed. Follow the guide at - https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to - find a suitable replacement. - **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. - """ - title: String -} - -""" -Autogenerated return type of CreateTeamDiscussion. -""" -type CreateTeamDiscussionPayload { - """ - A unique identifier for the client performing the mutation. - """ - clientMutationId: String - - """ - The new discussion. - """ - teamDiscussion: TeamDiscussion - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) -} - """ Autogenerated input type of CreateUserList """ @@ -10720,31 +10645,6 @@ type DeleteRepositoryRulesetPayload { clientMutationId: String } -""" -Autogenerated input type of DeleteTeamDiscussion -""" -input DeleteTeamDiscussionInput { - """ - A unique identifier for the client performing the mutation. - """ - clientMutationId: String - - """ - The discussion ID to delete. - """ - id: ID! @possibleTypes(concreteTypes: ["TeamDiscussion"]) -} - -""" -Autogenerated return type of DeleteTeamDiscussion. -""" -type DeleteTeamDiscussionPayload { - """ - A unique identifier for the client performing the mutation. - """ - clientMutationId: String -} - """ Autogenerated input type of DeleteUserList """ @@ -25441,16 +25341,6 @@ type Mutation { input: CreateSponsorshipsInput! ): CreateSponsorshipsPayload - """ - Creates a new team discussion. - """ - createTeamDiscussion( - """ - Parameters for CreateTeamDiscussion - """ - input: CreateTeamDiscussionInput! - ): CreateTeamDiscussionPayload - """ Creates a new user list. """ @@ -25730,16 +25620,6 @@ type Mutation { input: DeleteRepositoryRulesetInput! ): DeleteRepositoryRulesetPayload - """ - Deletes a team discussion. - """ - deleteTeamDiscussion( - """ - Parameters for DeleteTeamDiscussion - """ - input: DeleteTeamDiscussionInput! - ): DeleteTeamDiscussionPayload - """ Deletes a user list. """ @@ -27236,16 +27116,6 @@ type Mutation { input: UpdateSubscriptionInput! ): UpdateSubscriptionPayload - """ - Updates a team discussion. - """ - updateTeamDiscussion( - """ - Parameters for UpdateTeamDiscussion - """ - input: UpdateTeamDiscussionInput! - ): UpdateTeamDiscussionPayload - """ Updates team review assignment. """ @@ -46343,7 +46213,6 @@ input RemoveReactionInput { "PullRequestReview" "PullRequestReviewComment" "Release" - "TeamDiscussion" ] abstractType: "Reactable" ) @@ -61145,61 +61014,6 @@ type Team implements MemberStatusable & Node & Subscribable { """ description: String - """ - Find a team discussion by its number. - """ - discussion( - """ - The sequence number of the discussion to find. - """ - number: Int! - ): TeamDiscussion - - """ - A list of team discussions. - """ - discussions( - """ - Returns the elements in the list that come after the specified cursor. - """ - after: String - - """ - Returns the elements in the list that come before the specified cursor. - """ - before: String - - """ - Returns the first _n_ elements from the list. - """ - first: Int - - """ - If provided, filters discussions according to whether or not they are pinned. - """ - isPinned: Boolean - - """ - Returns the last _n_ elements from the list. - """ - last: Int - - """ - Order for connection - """ - orderBy: TeamDiscussionOrder - ): TeamDiscussionConnection! - - """ - The HTTP path for team discussions - """ - discussionsResourcePath: URI! - - """ - The HTTP URL for team discussions - """ - discussionsUrl: URI! - """ The HTTP path for editing this team """ @@ -62182,337 +61996,6 @@ type TeamConnection { totalCount: Int! } -""" -A team discussion. -""" -type TeamDiscussion implements Comment & Deletable & Node & Reactable & Subscribable & UniformResourceLocatable & Updatable & UpdatableComment { - """ - The actor who authored the comment. - """ - author: Actor - - """ - Author's association with the discussion's team. - """ - authorAssociation: CommentAuthorAssociation! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - The body as Markdown. - """ - body: String! - - """ - The body rendered to HTML. - """ - bodyHTML: HTML! - - """ - The body rendered to text. - """ - bodyText: String! - - """ - Identifies the discussion body hash. - """ - bodyVersion: String! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - The HTTP path for discussion comments - """ - commentsResourcePath: URI! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - The HTTP URL for discussion comments - """ - commentsUrl: URI! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - Identifies the date and time when the object was created. - """ - createdAt: DateTime! - - """ - Check if this comment was created via an email reply. - """ - createdViaEmail: Boolean! - - """ - Identifies the primary key from the database. - """ - databaseId: Int - - """ - The actor who edited the comment. - """ - editor: Actor - - """ - The Node ID of the TeamDiscussion object - """ - id: ID! - - """ - Check if this comment was edited and includes an edit with the creation data - """ - includesCreatedEdit: Boolean! - - """ - Whether or not the discussion is pinned. - """ - isPinned: Boolean! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - Whether or not the discussion is only visible to team members and organization owners. - """ - isPrivate: Boolean! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - The moment the editor made the last edit - """ - lastEditedAt: DateTime - - """ - Identifies the discussion within its team. - """ - number: Int! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - Identifies when the comment was published at. - """ - publishedAt: DateTime - - """ - A list of reactions grouped by content left on the subject. - """ - reactionGroups: [ReactionGroup!] - - """ - A list of Reactions left on the Issue. - """ - reactions( - """ - Returns the elements in the list that come after the specified cursor. - """ - after: String - - """ - Returns the elements in the list that come before the specified cursor. - """ - before: String - - """ - Allows filtering Reactions by emoji. - """ - content: ReactionContent - - """ - Returns the first _n_ elements from the list. - """ - first: Int - - """ - Returns the last _n_ elements from the list. - """ - last: Int - - """ - Allows specifying the order in which reactions are returned. - """ - orderBy: ReactionOrder - ): ReactionConnection! - - """ - The HTTP path for this discussion - """ - resourcePath: URI! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - The team that defines the context of this discussion. - """ - team: Team! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - The title of the discussion - """ - title: String! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - Identifies the date and time when the object was last updated. - """ - updatedAt: DateTime! - - """ - The HTTP URL for this discussion - """ - url: URI! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - A list of edits to this content. - """ - userContentEdits( - """ - Returns the elements in the list that come after the specified cursor. - """ - after: String - - """ - Returns the elements in the list that come before the specified cursor. - """ - before: String - - """ - Returns the first _n_ elements from the list. - """ - first: Int - - """ - Returns the last _n_ elements from the list. - """ - last: Int - ): UserContentEditConnection - - """ - Check if the current viewer can delete this object. - """ - viewerCanDelete: Boolean! - - """ - Whether or not the current viewer can pin this discussion. - """ - viewerCanPin: Boolean! - @deprecated( - reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." - ) - - """ - Can user react to this subject - """ - viewerCanReact: Boolean! - - """ - Check if the viewer is able to change their subscription status for the repository. - """ - viewerCanSubscribe: Boolean! - - """ - Check if the current viewer can update this object. - """ - viewerCanUpdate: Boolean! - - """ - Reasons why the current viewer can not update this comment. - """ - viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! - - """ - Did the viewer author this comment. - """ - viewerDidAuthor: Boolean! - - """ - Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. - """ - viewerSubscription: SubscriptionState -} - -""" -The connection type for TeamDiscussion. -""" -type TeamDiscussionConnection { - """ - A list of edges. - """ - edges: [TeamDiscussionEdge] - - """ - A list of nodes. - """ - nodes: [TeamDiscussion] - - """ - Information to aid in pagination. - """ - pageInfo: PageInfo! - - """ - Identifies the total count of items in the connection. - """ - totalCount: Int! -} - -""" -An edge in a connection. -""" -type TeamDiscussionEdge { - """ - A cursor for use in pagination. - """ - cursor: String! - - """ - The item at the end of the edge. - """ - node: TeamDiscussion -} - -""" -Ways in which team discussion connections can be ordered. -""" -input TeamDiscussionOrder { - """ - The direction in which to order nodes. - """ - direction: OrderDirection! - - """ - The field by which to order nodes. - """ - field: TeamDiscussionOrderField! -} - -""" -Properties by which team discussion connections can be ordered. -""" -enum TeamDiscussionOrderField { - """ - Allows chronological ordering of team discussions. - """ - CREATED_AT -} - """ An edge in a connection. """ @@ -67308,7 +66791,7 @@ input UpdateSubscriptionInput { """ subscribableId: ID! @possibleTypes( - concreteTypes: ["Commit", "Discussion", "Issue", "PullRequest", "Repository", "Team", "TeamDiscussion"] + concreteTypes: ["Commit", "Discussion", "Issue", "PullRequest", "Repository", "Team"] abstractType: "Subscribable" ) } @@ -67328,57 +66811,6 @@ type UpdateSubscriptionPayload { subscribable: Subscribable } -""" -Autogenerated input type of UpdateTeamDiscussion -""" -input UpdateTeamDiscussionInput { - """ - The updated text of the discussion. - """ - body: String - - """ - The current version of the body content. If provided, this update operation - will be rejected if the given version does not match the latest version on the server. - """ - bodyVersion: String - - """ - A unique identifier for the client performing the mutation. - """ - clientMutationId: String - - """ - The Node ID of the discussion to modify. - """ - id: ID! @possibleTypes(concreteTypes: ["TeamDiscussion"]) - - """ - If provided, sets the pinned state of the updated discussion. - """ - pinned: Boolean - - """ - The updated title of the discussion. - """ - title: String -} - -""" -Autogenerated return type of UpdateTeamDiscussion. -""" -type UpdateTeamDiscussionPayload { - """ - A unique identifier for the client performing the mutation. - """ - clientMutationId: String - - """ - The updated discussion. - """ - teamDiscussion: TeamDiscussion -} - """ Autogenerated input type of UpdateTeamReviewAssignment """ diff --git a/src/graphql/data/ghec/schema.json b/src/graphql/data/ghec/schema.json index 2df3f25336bf..b406a568ef5a 100644 --- a/src/graphql/data/ghec/schema.json +++ b/src/graphql/data/ghec/schema.json @@ -3665,42 +3665,6 @@ } ] }, - { - "name": "createTeamDiscussion", - "kind": "mutations", - "id": "createteamdiscussion", - "href": "/graphql/reference/mutations#createteamdiscussion", - "description": "

Creates a new team discussion.

", - "inputFields": [ - { - "name": "input", - "type": "CreateTeamDiscussionInput!", - "id": "createteamdiscussioninput", - "kind": "input-objects", - "href": "/graphql/reference/input-objects#createteamdiscussioninput" - } - ], - "returnFields": [ - { - "name": "clientMutationId", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string", - "description": "

A unique identifier for the client performing the mutation.

" - }, - { - "name": "teamDiscussion", - "type": "TeamDiscussion", - "id": "teamdiscussion", - "kind": "objects", - "href": "/graphql/reference/objects#teamdiscussion", - "description": "

The new discussion.

", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - } - ] - }, { "name": "createUserList", "kind": "mutations", @@ -4619,32 +4583,6 @@ } ] }, - { - "name": "deleteTeamDiscussion", - "kind": "mutations", - "id": "deleteteamdiscussion", - "href": "/graphql/reference/mutations#deleteteamdiscussion", - "description": "

Deletes a team discussion.

", - "inputFields": [ - { - "name": "input", - "type": "DeleteTeamDiscussionInput!", - "id": "deleteteamdiscussioninput", - "kind": "input-objects", - "href": "/graphql/reference/input-objects#deleteteamdiscussioninput" - } - ], - "returnFields": [ - { - "name": "clientMutationId", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string", - "description": "

A unique identifier for the client performing the mutation.

" - } - ] - }, { "name": "deleteUserList", "kind": "mutations", @@ -9935,40 +9873,6 @@ } ] }, - { - "name": "updateTeamDiscussion", - "kind": "mutations", - "id": "updateteamdiscussion", - "href": "/graphql/reference/mutations#updateteamdiscussion", - "description": "

Updates a team discussion.

", - "inputFields": [ - { - "name": "input", - "type": "UpdateTeamDiscussionInput!", - "id": "updateteamdiscussioninput", - "kind": "input-objects", - "href": "/graphql/reference/input-objects#updateteamdiscussioninput" - } - ], - "returnFields": [ - { - "name": "clientMutationId", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string", - "description": "

A unique identifier for the client performing the mutation.

" - }, - { - "name": "teamDiscussion", - "type": "TeamDiscussion", - "id": "teamdiscussion", - "kind": "objects", - "href": "/graphql/reference/objects#teamdiscussion", - "description": "

The updated discussion.

" - } - ] - }, { "name": "updateTeamReviewAssignment", "kind": "mutations", @@ -76083,18 +75987,72 @@ "href": "/graphql/reference/scalars#string" }, { - "name": "discussion", - "description": "

Find a team discussion by its number.

", - "type": "TeamDiscussion", - "id": "teamdiscussion", + "name": "editTeamResourcePath", + "description": "

The HTTP path for editing this team.

", + "type": "URI!", + "id": "uri", + "kind": "scalars", + "href": "/graphql/reference/scalars#uri" + }, + { + "name": "editTeamUrl", + "description": "

The HTTP URL for editing this team.

", + "type": "URI!", + "id": "uri", + "kind": "scalars", + "href": "/graphql/reference/scalars#uri" + }, + { + "name": "id", + "description": "

The Node ID of the Team object.

", + "type": "ID!", + "id": "id", + "kind": "scalars", + "href": "/graphql/reference/scalars#id" + }, + { + "name": "invitations", + "description": "

A list of pending invitations for users to this team.

", + "type": "OrganizationInvitationConnection", + "id": "organizationinvitationconnection", "kind": "objects", - "href": "/graphql/reference/objects#teamdiscussion", + "href": "/graphql/reference/objects#organizationinvitationconnection", "arguments": [ { - "name": "number", - "description": "

The sequence number of the discussion to find.

", + "name": "after", + "description": "

Returns the elements in the list that come after the specified cursor.

", "type": { - "name": "Int!", + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "before", + "description": "

Returns the elements in the list that come before the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "first", + "description": "

Returns the first n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + }, + { + "name": "last", + "description": "

Returns the last n elements from the list.

", + "type": { + "name": "Int", "id": "int", "kind": "scalars", "href": "/graphql/reference/scalars#int" @@ -76103,12 +76061,12 @@ ] }, { - "name": "discussions", - "description": "

A list of team discussions.

", - "type": "TeamDiscussionConnection!", - "id": "teamdiscussionconnection", + "name": "memberStatuses", + "description": "

Get the status messages members of this entity have set that are either public or visible only to the organization.

", + "type": "UserStatusConnection!", + "id": "userstatusconnection", "kind": "objects", - "href": "/graphql/reference/objects#teamdiscussionconnection", + "href": "/graphql/reference/objects#userstatusconnection", "arguments": [ { "name": "after", @@ -76141,13 +76099,63 @@ } }, { - "name": "isPinned", - "description": "

If provided, filters discussions according to whether or not they are pinned.

", + "name": "last", + "description": "

Returns the last n elements from the list.

", "type": { - "name": "Boolean", - "id": "boolean", + "name": "Int", + "id": "int", "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" + "href": "/graphql/reference/scalars#int" + } + }, + { + "name": "orderBy", + "description": "

Ordering options for user statuses returned from the connection.

", + "type": { + "name": "UserStatusOrder", + "id": "userstatusorder", + "kind": "input-objects", + "href": "/graphql/reference/input-objects#userstatusorder" + } + } + ] + }, + { + "name": "members", + "description": "

A list of users who are members of this team.

", + "type": "TeamMemberConnection!", + "id": "teammemberconnection", + "kind": "objects", + "href": "/graphql/reference/objects#teammemberconnection", + "arguments": [ + { + "name": "after", + "description": "

Returns the elements in the list that come after the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "before", + "description": "

Returns the elements in the list that come before the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "first", + "description": "

Returns the first n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" } }, { @@ -76160,65 +76168,148 @@ "href": "/graphql/reference/scalars#int" } }, + { + "name": "membership", + "defaultValue": "ALL", + "description": "

Filter by membership type.

", + "type": { + "name": "TeamMembershipType", + "id": "teammembershiptype", + "kind": "enums", + "href": "/graphql/reference/enums#teammembershiptype" + } + }, { "name": "orderBy", - "description": "

Order for connection.

", + "description": "

Order for the connection.

", "type": { - "name": "TeamDiscussionOrder", - "id": "teamdiscussionorder", + "name": "TeamMemberOrder", + "id": "teammemberorder", "kind": "input-objects", - "href": "/graphql/reference/input-objects#teamdiscussionorder" + "href": "/graphql/reference/input-objects#teammemberorder" + } + }, + { + "name": "query", + "description": "

The search string to look for.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "role", + "description": "

Filter by team member role.

", + "type": { + "name": "TeamMemberRole", + "id": "teammemberrole", + "kind": "enums", + "href": "/graphql/reference/enums#teammemberrole" } } ] }, { - "name": "discussionsResourcePath", - "description": "

The HTTP path for team discussions.

", + "name": "membersResourcePath", + "description": "

The HTTP path for the team' members.

", "type": "URI!", "id": "uri", "kind": "scalars", "href": "/graphql/reference/scalars#uri" }, { - "name": "discussionsUrl", - "description": "

The HTTP URL for team discussions.

", + "name": "membersUrl", + "description": "

The HTTP URL for the team' members.

", "type": "URI!", "id": "uri", "kind": "scalars", "href": "/graphql/reference/scalars#uri" }, { - "name": "editTeamResourcePath", - "description": "

The HTTP path for editing this team.

", + "name": "name", + "description": "

The name of the team.

", + "type": "String!", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + }, + { + "name": "newTeamResourcePath", + "description": "

The HTTP path creating a new team.

", "type": "URI!", "id": "uri", "kind": "scalars", "href": "/graphql/reference/scalars#uri" }, { - "name": "editTeamUrl", - "description": "

The HTTP URL for editing this team.

", + "name": "newTeamUrl", + "description": "

The HTTP URL creating a new team.

", "type": "URI!", "id": "uri", "kind": "scalars", "href": "/graphql/reference/scalars#uri" }, { - "name": "id", - "description": "

The Node ID of the Team object.

", - "type": "ID!", - "id": "id", - "kind": "scalars", - "href": "/graphql/reference/scalars#id" + "name": "notificationSetting", + "description": "

The notification setting that the team has set.

", + "type": "TeamNotificationSetting!", + "id": "teamnotificationsetting", + "kind": "enums", + "href": "/graphql/reference/enums#teamnotificationsetting" }, { - "name": "invitations", - "description": "

A list of pending invitations for users to this team.

", - "type": "OrganizationInvitationConnection", - "id": "organizationinvitationconnection", + "name": "organization", + "description": "

The organization that owns this team.

", + "type": "Organization!", + "id": "organization", "kind": "objects", - "href": "/graphql/reference/objects#organizationinvitationconnection", + "href": "/graphql/reference/objects#organization" + }, + { + "name": "parentTeam", + "description": "

The parent team of the team.

", + "type": "Team", + "id": "team", + "kind": "objects", + "href": "/graphql/reference/objects#team" + }, + { + "name": "privacy", + "description": "

The level of privacy the team has.

", + "type": "TeamPrivacy!", + "id": "teamprivacy", + "kind": "enums", + "href": "/graphql/reference/enums#teamprivacy" + }, + { + "name": "projectV2", + "description": "

Finds and returns the project according to the provided project number.

", + "type": "ProjectV2", + "id": "projectv2", + "kind": "objects", + "href": "/graphql/reference/objects#projectv2", + "arguments": [ + { + "name": "number", + "description": "

The Project number.

", + "type": { + "name": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + } + ] + }, + { + "name": "projectsV2", + "description": "

List of projects this team has collaborator access to.

", + "type": "ProjectV2Connection!", + "id": "projectv2connection", + "kind": "objects", + "href": "/graphql/reference/objects#projectv2connection", "arguments": [ { "name": "after", @@ -76240,6 +76331,16 @@ "href": "/graphql/reference/scalars#string" } }, + { + "name": "filterBy", + "description": "

Filtering options for projects returned from this connection.

", + "type": { + "name": "ProjectV2Filters", + "id": "projectv2filters", + "kind": "input-objects", + "href": "/graphql/reference/input-objects#projectv2filters" + } + }, { "name": "first", "description": "

Returns the first n elements from the list.

", @@ -76259,351 +76360,48 @@ "kind": "scalars", "href": "/graphql/reference/scalars#int" } + }, + { + "name": "minPermissionLevel", + "defaultValue": "READ", + "description": "

Filter projects based on user role.

", + "type": { + "name": "ProjectV2PermissionLevel", + "id": "projectv2permissionlevel", + "kind": "enums", + "href": "/graphql/reference/enums#projectv2permissionlevel" + } + }, + { + "name": "orderBy", + "description": "

How to order the returned projects.

", + "type": { + "name": "ProjectV2Order", + "id": "projectv2order", + "kind": "input-objects", + "href": "/graphql/reference/input-objects#projectv2order" + } + }, + { + "name": "query", + "defaultValue": "", + "description": "

The query to search projects by.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } } ] }, { - "name": "memberStatuses", - "description": "

Get the status messages members of this entity have set that are either public or visible only to the organization.

", - "type": "UserStatusConnection!", - "id": "userstatusconnection", + "name": "repositories", + "description": "

A list of repositories this team has access to.

", + "type": "TeamRepositoryConnection!", + "id": "teamrepositoryconnection", "kind": "objects", - "href": "/graphql/reference/objects#userstatusconnection", - "arguments": [ - { - "name": "after", - "description": "

Returns the elements in the list that come after the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "before", - "description": "

Returns the elements in the list that come before the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "first", - "description": "

Returns the first n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - }, - { - "name": "last", - "description": "

Returns the last n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - }, - { - "name": "orderBy", - "description": "

Ordering options for user statuses returned from the connection.

", - "type": { - "name": "UserStatusOrder", - "id": "userstatusorder", - "kind": "input-objects", - "href": "/graphql/reference/input-objects#userstatusorder" - } - } - ] - }, - { - "name": "members", - "description": "

A list of users who are members of this team.

", - "type": "TeamMemberConnection!", - "id": "teammemberconnection", - "kind": "objects", - "href": "/graphql/reference/objects#teammemberconnection", - "arguments": [ - { - "name": "after", - "description": "

Returns the elements in the list that come after the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "before", - "description": "

Returns the elements in the list that come before the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "first", - "description": "

Returns the first n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - }, - { - "name": "last", - "description": "

Returns the last n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - }, - { - "name": "membership", - "defaultValue": "ALL", - "description": "

Filter by membership type.

", - "type": { - "name": "TeamMembershipType", - "id": "teammembershiptype", - "kind": "enums", - "href": "/graphql/reference/enums#teammembershiptype" - } - }, - { - "name": "orderBy", - "description": "

Order for the connection.

", - "type": { - "name": "TeamMemberOrder", - "id": "teammemberorder", - "kind": "input-objects", - "href": "/graphql/reference/input-objects#teammemberorder" - } - }, - { - "name": "query", - "description": "

The search string to look for.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "role", - "description": "

Filter by team member role.

", - "type": { - "name": "TeamMemberRole", - "id": "teammemberrole", - "kind": "enums", - "href": "/graphql/reference/enums#teammemberrole" - } - } - ] - }, - { - "name": "membersResourcePath", - "description": "

The HTTP path for the team' members.

", - "type": "URI!", - "id": "uri", - "kind": "scalars", - "href": "/graphql/reference/scalars#uri" - }, - { - "name": "membersUrl", - "description": "

The HTTP URL for the team' members.

", - "type": "URI!", - "id": "uri", - "kind": "scalars", - "href": "/graphql/reference/scalars#uri" - }, - { - "name": "name", - "description": "

The name of the team.

", - "type": "String!", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "newTeamResourcePath", - "description": "

The HTTP path creating a new team.

", - "type": "URI!", - "id": "uri", - "kind": "scalars", - "href": "/graphql/reference/scalars#uri" - }, - { - "name": "newTeamUrl", - "description": "

The HTTP URL creating a new team.

", - "type": "URI!", - "id": "uri", - "kind": "scalars", - "href": "/graphql/reference/scalars#uri" - }, - { - "name": "notificationSetting", - "description": "

The notification setting that the team has set.

", - "type": "TeamNotificationSetting!", - "id": "teamnotificationsetting", - "kind": "enums", - "href": "/graphql/reference/enums#teamnotificationsetting" - }, - { - "name": "organization", - "description": "

The organization that owns this team.

", - "type": "Organization!", - "id": "organization", - "kind": "objects", - "href": "/graphql/reference/objects#organization" - }, - { - "name": "parentTeam", - "description": "

The parent team of the team.

", - "type": "Team", - "id": "team", - "kind": "objects", - "href": "/graphql/reference/objects#team" - }, - { - "name": "privacy", - "description": "

The level of privacy the team has.

", - "type": "TeamPrivacy!", - "id": "teamprivacy", - "kind": "enums", - "href": "/graphql/reference/enums#teamprivacy" - }, - { - "name": "projectV2", - "description": "

Finds and returns the project according to the provided project number.

", - "type": "ProjectV2", - "id": "projectv2", - "kind": "objects", - "href": "/graphql/reference/objects#projectv2", - "arguments": [ - { - "name": "number", - "description": "

The Project number.

", - "type": { - "name": "Int!", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - } - ] - }, - { - "name": "projectsV2", - "description": "

List of projects this team has collaborator access to.

", - "type": "ProjectV2Connection!", - "id": "projectv2connection", - "kind": "objects", - "href": "/graphql/reference/objects#projectv2connection", - "arguments": [ - { - "name": "after", - "description": "

Returns the elements in the list that come after the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "before", - "description": "

Returns the elements in the list that come before the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "filterBy", - "description": "

Filtering options for projects returned from this connection.

", - "type": { - "name": "ProjectV2Filters", - "id": "projectv2filters", - "kind": "input-objects", - "href": "/graphql/reference/input-objects#projectv2filters" - } - }, - { - "name": "first", - "description": "

Returns the first n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - }, - { - "name": "last", - "description": "

Returns the last n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - }, - { - "name": "minPermissionLevel", - "defaultValue": "READ", - "description": "

Filter projects based on user role.

", - "type": { - "name": "ProjectV2PermissionLevel", - "id": "projectv2permissionlevel", - "kind": "enums", - "href": "/graphql/reference/enums#projectv2permissionlevel" - } - }, - { - "name": "orderBy", - "description": "

How to order the returned projects.

", - "type": { - "name": "ProjectV2Order", - "id": "projectv2order", - "kind": "input-objects", - "href": "/graphql/reference/input-objects#projectv2order" - } - }, - { - "name": "query", - "defaultValue": "", - "description": "

The query to search projects by.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - } - ] - }, - { - "name": "repositories", - "description": "

A list of repositories this team has access to.

", - "type": "TeamRepositoryConnection!", - "id": "teamrepositoryconnection", - "kind": "objects", - "href": "/graphql/reference/objects#teamrepositoryconnection", + "href": "/graphql/reference/objects#teamrepositoryconnection", "arguments": [ { "name": "after", @@ -77700,531 +77498,6 @@ } ] }, - { - "name": "TeamDiscussion", - "kind": "objects", - "id": "teamdiscussion", - "href": "/graphql/reference/objects#teamdiscussion", - "description": "

A team discussion.

", - "implements": [ - { - "name": "Comment", - "id": "comment", - "href": "/graphql/reference/interfaces#comment" - }, - { - "name": "Deletable", - "id": "deletable", - "href": "/graphql/reference/interfaces#deletable" - }, - { - "name": "Node", - "id": "node", - "href": "/graphql/reference/interfaces#node" - }, - { - "name": "Reactable", - "id": "reactable", - "href": "/graphql/reference/interfaces#reactable" - }, - { - "name": "Subscribable", - "id": "subscribable", - "href": "/graphql/reference/interfaces#subscribable" - }, - { - "name": "UniformResourceLocatable", - "id": "uniformresourcelocatable", - "href": "/graphql/reference/interfaces#uniformresourcelocatable" - }, - { - "name": "Updatable", - "id": "updatable", - "href": "/graphql/reference/interfaces#updatable" - }, - { - "name": "UpdatableComment", - "id": "updatablecomment", - "href": "/graphql/reference/interfaces#updatablecomment" - } - ], - "fields": [ - { - "name": "author", - "description": "

The actor who authored the comment.

", - "type": "Actor", - "id": "actor", - "kind": "interfaces", - "href": "/graphql/reference/interfaces#actor" - }, - { - "name": "authorAssociation", - "description": "

Author's association with the discussion's team.

", - "type": "CommentAuthorAssociation!", - "id": "commentauthorassociation", - "kind": "enums", - "href": "/graphql/reference/enums#commentauthorassociation", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "body", - "description": "

The body as Markdown.

", - "type": "String!", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "bodyHTML", - "description": "

The body rendered to HTML.

", - "type": "HTML!", - "id": "html", - "kind": "scalars", - "href": "/graphql/reference/scalars#html" - }, - { - "name": "bodyText", - "description": "

The body rendered to text.

", - "type": "String!", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "bodyVersion", - "description": "

Identifies the discussion body hash.

", - "type": "String!", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "commentsResourcePath", - "description": "

The HTTP path for discussion comments.

", - "type": "URI!", - "id": "uri", - "kind": "scalars", - "href": "/graphql/reference/scalars#uri", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "commentsUrl", - "description": "

The HTTP URL for discussion comments.

", - "type": "URI!", - "id": "uri", - "kind": "scalars", - "href": "/graphql/reference/scalars#uri", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "createdAt", - "description": "

Identifies the date and time when the object was created.

", - "type": "DateTime!", - "id": "datetime", - "kind": "scalars", - "href": "/graphql/reference/scalars#datetime" - }, - { - "name": "createdViaEmail", - "description": "

Check if this comment was created via an email reply.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" - }, - { - "name": "databaseId", - "description": "

Identifies the primary key from the database.

", - "type": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - }, - { - "name": "editor", - "description": "

The actor who edited the comment.

", - "type": "Actor", - "id": "actor", - "kind": "interfaces", - "href": "/graphql/reference/interfaces#actor" - }, - { - "name": "id", - "description": "

The Node ID of the TeamDiscussion object.

", - "type": "ID!", - "id": "id", - "kind": "scalars", - "href": "/graphql/reference/scalars#id" - }, - { - "name": "includesCreatedEdit", - "description": "

Check if this comment was edited and includes an edit with the creation data.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" - }, - { - "name": "isPinned", - "description": "

Whether or not the discussion is pinned.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "isPrivate", - "description": "

Whether or not the discussion is only visible to team members and organization owners.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "lastEditedAt", - "description": "

The moment the editor made the last edit.

", - "type": "DateTime", - "id": "datetime", - "kind": "scalars", - "href": "/graphql/reference/scalars#datetime" - }, - { - "name": "number", - "description": "

Identifies the discussion within its team.

", - "type": "Int!", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "publishedAt", - "description": "

Identifies when the comment was published at.

", - "type": "DateTime", - "id": "datetime", - "kind": "scalars", - "href": "/graphql/reference/scalars#datetime" - }, - { - "name": "reactionGroups", - "description": "

A list of reactions grouped by content left on the subject.

", - "type": "[ReactionGroup!]", - "id": "reactiongroup", - "kind": "objects", - "href": "/graphql/reference/objects#reactiongroup" - }, - { - "name": "reactions", - "description": "

A list of Reactions left on the Issue.

", - "type": "ReactionConnection!", - "id": "reactionconnection", - "kind": "objects", - "href": "/graphql/reference/objects#reactionconnection", - "arguments": [ - { - "name": "after", - "description": "

Returns the elements in the list that come after the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "before", - "description": "

Returns the elements in the list that come before the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "content", - "description": "

Allows filtering Reactions by emoji.

", - "type": { - "name": "ReactionContent", - "id": "reactioncontent", - "kind": "enums", - "href": "/graphql/reference/enums#reactioncontent" - } - }, - { - "name": "first", - "description": "

Returns the first n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - }, - { - "name": "last", - "description": "

Returns the last n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - }, - { - "name": "orderBy", - "description": "

Allows specifying the order in which reactions are returned.

", - "type": { - "name": "ReactionOrder", - "id": "reactionorder", - "kind": "input-objects", - "href": "/graphql/reference/input-objects#reactionorder" - } - } - ] - }, - { - "name": "resourcePath", - "description": "

The HTTP path for this discussion.

", - "type": "URI!", - "id": "uri", - "kind": "scalars", - "href": "/graphql/reference/scalars#uri", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "team", - "description": "

The team that defines the context of this discussion.

", - "type": "Team!", - "id": "team", - "kind": "objects", - "href": "/graphql/reference/objects#team", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "title", - "description": "

The title of the discussion.

", - "type": "String!", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "updatedAt", - "description": "

Identifies the date and time when the object was last updated.

", - "type": "DateTime!", - "id": "datetime", - "kind": "scalars", - "href": "/graphql/reference/scalars#datetime" - }, - { - "name": "url", - "description": "

The HTTP URL for this discussion.

", - "type": "URI!", - "id": "uri", - "kind": "scalars", - "href": "/graphql/reference/scalars#uri", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "userContentEdits", - "description": "

A list of edits to this content.

", - "type": "UserContentEditConnection", - "id": "usercontenteditconnection", - "kind": "objects", - "href": "/graphql/reference/objects#usercontenteditconnection", - "arguments": [ - { - "name": "after", - "description": "

Returns the elements in the list that come after the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "before", - "description": "

Returns the elements in the list that come before the specified cursor.

", - "type": { - "name": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - }, - { - "name": "first", - "description": "

Returns the first n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - }, - { - "name": "last", - "description": "

Returns the last n elements from the list.

", - "type": { - "name": "Int", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - } - ] - }, - { - "name": "viewerCanDelete", - "description": "

Check if the current viewer can delete this object.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" - }, - { - "name": "viewerCanPin", - "description": "

Whether or not the current viewer can pin this discussion.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean", - "isDeprecated": true, - "deprecationReason": "

The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.

" - }, - { - "name": "viewerCanReact", - "description": "

Can user react to this subject.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" - }, - { - "name": "viewerCanSubscribe", - "description": "

Check if the viewer is able to change their subscription status for the repository.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" - }, - { - "name": "viewerCanUpdate", - "description": "

Check if the current viewer can update this object.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" - }, - { - "name": "viewerCannotUpdateReasons", - "description": "

Reasons why the current viewer can not update this comment.

", - "type": "[CommentCannotUpdateReason!]!", - "id": "commentcannotupdatereason", - "kind": "enums", - "href": "/graphql/reference/enums#commentcannotupdatereason" - }, - { - "name": "viewerDidAuthor", - "description": "

Did the viewer author this comment.

", - "type": "Boolean!", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" - }, - { - "name": "viewerSubscription", - "description": "

Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.

", - "type": "SubscriptionState", - "id": "subscriptionstate", - "kind": "enums", - "href": "/graphql/reference/enums#subscriptionstate" - } - ] - }, - { - "name": "TeamDiscussionConnection", - "kind": "objects", - "id": "teamdiscussionconnection", - "href": "/graphql/reference/objects#teamdiscussionconnection", - "description": "

The connection type for TeamDiscussion.

", - "fields": [ - { - "name": "edges", - "description": "

A list of edges.

", - "type": "[TeamDiscussionEdge]", - "id": "teamdiscussionedge", - "kind": "objects", - "href": "/graphql/reference/objects#teamdiscussionedge" - }, - { - "name": "nodes", - "description": "

A list of nodes.

", - "type": "[TeamDiscussion]", - "id": "teamdiscussion", - "kind": "objects", - "href": "/graphql/reference/objects#teamdiscussion" - }, - { - "name": "pageInfo", - "description": "

Information to aid in pagination.

", - "type": "PageInfo!", - "id": "pageinfo", - "kind": "objects", - "href": "/graphql/reference/objects#pageinfo" - }, - { - "name": "totalCount", - "description": "

Identifies the total count of items in the connection.

", - "type": "Int!", - "id": "int", - "kind": "scalars", - "href": "/graphql/reference/scalars#int" - } - ] - }, - { - "name": "TeamDiscussionEdge", - "kind": "objects", - "id": "teamdiscussionedge", - "href": "/graphql/reference/objects#teamdiscussionedge", - "description": "

An edge in a connection.

", - "fields": [ - { - "name": "cursor", - "description": "

A cursor for use in pagination.

", - "type": "String!", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "node", - "description": "

The item at the end of the edge.

", - "type": "TeamDiscussion", - "id": "teamdiscussion", - "kind": "objects", - "href": "/graphql/reference/objects#teamdiscussion" - } - ] - }, { "name": "TeamEdge", "kind": "objects", @@ -95601,19 +94874,6 @@ } ] }, - { - "name": "TeamDiscussionOrderField", - "kind": "enums", - "id": "teamdiscussionorderfield", - "href": "/graphql/reference/enums#teamdiscussionorderfield", - "description": "

Properties by which team discussion connections can be ordered.

", - "values": [ - { - "name": "CREATED_AT", - "description": "

Allows chronological ordering of team discussions.

" - } - ] - }, { "name": "TeamMemberOrderField", "kind": "enums", @@ -102873,56 +102133,6 @@ } ] }, - { - "name": "CreateTeamDiscussionInput", - "kind": "inputObjects", - "id": "createteamdiscussioninput", - "href": "/graphql/reference/input-objects#createteamdiscussioninput", - "description": "

Autogenerated input type of CreateTeamDiscussion.

", - "inputFields": [ - { - "name": "body", - "description": "

The content of the discussion. This field is required.

\n

Upcoming Change on 2024-07-01 UTC\nDescription: body will be removed. Follow the guide at\nhttps://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to\nfind a suitable replacement.\nReason: The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "clientMutationId", - "description": "

A unique identifier for the client performing the mutation.

", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "private", - "description": "

If true, restricts the visibility of this discussion to team members and\norganization owners. If false or not specified, allows any organization member\nto view this discussion.

\n

Upcoming Change on 2024-07-01 UTC\nDescription: private will be removed. Follow the guide at\nhttps://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to\nfind a suitable replacement.\nReason: The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "type": "Boolean", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" - }, - { - "name": "teamId", - "description": "

The ID of the team to which the discussion belongs. This field is required.

\n

Upcoming Change on 2024-07-01 UTC\nDescription: teamId will be removed. Follow the guide at\nhttps://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to\nfind a suitable replacement.\nReason: The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "type": "ID", - "id": "id", - "kind": "scalars", - "href": "/graphql/reference/scalars#id", - "isDeprecated": false - }, - { - "name": "title", - "description": "

The title of the discussion. This field is required.

\n

Upcoming Change on 2024-07-01 UTC\nDescription: title will be removed. Follow the guide at\nhttps://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to\nfind a suitable replacement.\nReason: The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - ] - }, { "name": "CreateUserListInput", "kind": "inputObjects", @@ -103690,32 +102900,6 @@ } ] }, - { - "name": "DeleteTeamDiscussionInput", - "kind": "inputObjects", - "id": "deleteteamdiscussioninput", - "href": "/graphql/reference/input-objects#deleteteamdiscussioninput", - "description": "

Autogenerated input type of DeleteTeamDiscussion.

", - "inputFields": [ - { - "name": "clientMutationId", - "description": "

A unique identifier for the client performing the mutation.

", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "id", - "description": "

The discussion ID to delete.

", - "type": "ID!", - "id": "id", - "kind": "scalars", - "href": "/graphql/reference/scalars#id", - "isDeprecated": false - } - ] - }, { "name": "DeleteUserListInput", "kind": "inputObjects", @@ -109093,31 +108277,6 @@ } ] }, - { - "name": "TeamDiscussionOrder", - "kind": "inputObjects", - "id": "teamdiscussionorder", - "href": "/graphql/reference/input-objects#teamdiscussionorder", - "description": "

Ways in which team discussion connections can be ordered.

", - "inputFields": [ - { - "name": "direction", - "description": "

The direction in which to order nodes.

", - "type": "OrderDirection!", - "id": "orderdirection", - "kind": "enums", - "href": "/graphql/reference/enums#orderdirection" - }, - { - "name": "field", - "description": "

The field by which to order nodes.

", - "type": "TeamDiscussionOrderField!", - "id": "teamdiscussionorderfield", - "kind": "enums", - "href": "/graphql/reference/enums#teamdiscussionorderfield" - } - ] - }, { "name": "TeamMemberOrder", "kind": "inputObjects", @@ -112663,64 +111822,6 @@ } ] }, - { - "name": "UpdateTeamDiscussionInput", - "kind": "inputObjects", - "id": "updateteamdiscussioninput", - "href": "/graphql/reference/input-objects#updateteamdiscussioninput", - "description": "

Autogenerated input type of UpdateTeamDiscussion.

", - "inputFields": [ - { - "name": "body", - "description": "

The updated text of the discussion.

", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "bodyVersion", - "description": "

The current version of the body content. If provided, this update operation\nwill be rejected if the given version does not match the latest version on the server.

", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "clientMutationId", - "description": "

A unique identifier for the client performing the mutation.

", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - }, - { - "name": "id", - "description": "

The Node ID of the discussion to modify.

", - "type": "ID!", - "id": "id", - "kind": "scalars", - "href": "/graphql/reference/scalars#id", - "isDeprecated": false - }, - { - "name": "pinned", - "description": "

If provided, sets the pinned state of the updated discussion.

", - "type": "Boolean", - "id": "boolean", - "kind": "scalars", - "href": "/graphql/reference/scalars#boolean" - }, - { - "name": "title", - "description": "

The updated title of the discussion.

", - "type": "String", - "id": "string", - "kind": "scalars", - "href": "/graphql/reference/scalars#string" - } - ] - }, { "name": "UpdateTeamReviewAssignmentInput", "kind": "inputObjects", diff --git a/src/graphql/data/ghec/upcoming-changes.json b/src/graphql/data/ghec/upcoming-changes.json index b502f6798ad3..0ad394994fe8 100644 --- a/src/graphql/data/ghec/upcoming-changes.json +++ b/src/graphql/data/ghec/upcoming-changes.json @@ -9780,102 +9780,6 @@ } ], "2024-07-01": [ - { - "location": "TeamDiscussion.viewerCanPin", - "description": "

viewerCanPin will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.url", - "description": "

url will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.title", - "description": "

title will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.team", - "description": "

team will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.resourcePath", - "description": "

resourcePath will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.number", - "description": "

number will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.isPrivate", - "description": "

isPrivate will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.isPinned", - "description": "

isPinned will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.commentsUrl", - "description": "

commentsUrl will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.commentsResourcePath", - "description": "

commentsResourcePath will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.bodyVersion", - "description": "

bodyVersion will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "TeamDiscussion.authorAssociation", - "description": "

authorAssociation will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, { "location": "PullRequestReviewComment.databaseId", "description": "

databaseId will be removed. Use fullDatabaseId instead.

", @@ -9907,46 +9811,6 @@ "date": "2024-07-01", "criticality": "breaking", "owner": "jdennes" - }, - { - "location": "CreateTeamDiscussionPayload.teamDiscussion", - "description": "

teamDiscussion will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "CreateTeamDiscussionInput.title", - "description": "

title will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "CreateTeamDiscussionInput.teamId", - "description": "

teamId will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "CreateTeamDiscussionInput.private", - "description": "

private will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" - }, - { - "location": "CreateTeamDiscussionInput.body", - "description": "

body will be removed. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement.

", - "reason": "

The Team Discussions feature is deprecated in favor of Organization Discussions.

", - "date": "2024-07-01", - "criticality": "breaking", - "owner": "deborah-digges" } ], "2024-04-01": [ diff --git a/src/redirects/README.md b/src/redirects/README.md index cbb901b72ab8..70fdc6a1369b 100644 --- a/src/redirects/README.md +++ b/src/redirects/README.md @@ -69,3 +69,91 @@ Here's how the `src/archives/middleware/archived-enterprise-versions.ts` fallbac Redirect tests are mainly found in `tests/routing/*`, with some additional tests in `tests/rendering/server.ts`. The `src/fixtures/fixtures/*` directory includes `developer-redirects.json`, `graphql-redirects.json`, and `rest-redirects.json`. + +## Local debugging + +### Testing redirects locally + +Run the dev server and test redirect behavior: + +```bash +npm run dev +# Visit http://localhost:4000/ to verify redirect +``` + +### Viewing all redirects + +The global redirects object is available in `req.context.redirects`. You can inspect it during debugging or in tests. + +### Adding a new redirect + +**Via frontmatter** (preferred for content moves): +```yaml +--- +title: My Article +redirect_from: + - /old-path + - /another-old-path +--- +``` + +**Via developer.json** (for API/reference): +Add to `src/redirects/lib/static/developer.json` (or similar files). + +### Testing redirect code + +```bash +npm run test -- src/redirects/tests/routing +``` + +## Cross-links & Ownership + +### Related subjects +- [`src/frame`](../frame/README.md) - `warm-server.ts` creates Page instances for redirect generation +- [`src/archives`](../archives/README.md) - Archived Enterprise redirect handling +- Content frontmatter - `redirect_from` field in all content files + +### Ownership +- Team: Docs Engineering + +Note: Most redirects are in docs-content control via frontmatter `redirect_from` field. + +We aren't expecting significant changes here moving forward. + +4. **Documentation gaps** + - Some legacy redirect files lack clear provenance + - Need better tracking of redirect addition reasons + +### Known limitations + +- Archived Enterprise redirects (2.13-2.17) incomplete +- Redirect lookup not cached (happens per-request) +- Multiple redirect sources can conflict +- No automated redirect expiry/cleanup + +### Adding redirects best practices + +1. Prefer frontmatter `redirect_from` for content moves +2. Keep redirects indefinite (links live forever on the internet) +3. Test redirects locally before deploying +4. Document reason for redirect (PR description) +5. Consider version-specific redirects for GHES + +### Troubleshooting + +**Redirect not working:** +- Check frontmatter `redirect_from` syntax +- Verify redirect in `req.context.redirects` object +- Ensure `handle-redirects` middleware is running +- Check for conflicting redirects + +**Archived Enterprise redirect fails:** +- Check `archived-redirects-from-213-to-217.json` for version 2.13-2.17 +- Check `archived-frontmatter-valid-urls.json` for valid target +- Verify archived version is properly proxied + +**Performance issues:** +- Large redirect maps can slow server startup +- Consider profiling `precompile.ts` execution +- Check for duplicate redirects + diff --git a/src/rest/README.md b/src/rest/README.md index 76f983833e91..8dd922461f54 100644 --- a/src/rest/README.md +++ b/src/rest/README.md @@ -78,3 +78,36 @@ Slack: `#docs-engineering` Repo: `github/docs-engineering` If you have a question about the REST pipeline, you can ask in the `#docs-engineering` Slack channel. If you notice a problem with the REST pipeline, you can open an issue in the `github/docs-engineering` repository. + +## Ownership & Escalation + +### Ownership +- **Team**: Docs Engineering +- **Source data**: API Platform team (github/rest-api-description) + +### Escalation path +1. **Pipeline failures** → #docs-engineering Slack +2. **OpenAPI schema issues** → #api-platform Slack + +### On-call procedures +If the REST pipeline fails: +1. Check workflow logs in `.github/workflows/sync-openapi.yml` +2. Verify access to `github/rest-api-description` repo +3. Check for OpenAPI schema validation errors +4. Review changes in generated files for unexpected output +5. Check `config.json` for version mapping issues +6. Escalate to API Platform team if schema issue + +### Monitoring +- Pipeline runs automatically on daily schedule (shared with Webhooks/GitHub Apps) +- PRs created with `github-openapi-bot` label +- SHA tracking in `config.json` for version history +- Failures visible in GitHub Actions + +We will continue to support changes incoming from the API Platform including new, deleted, changed endpoints and additional information as provided. We do not expect any significant new functionality moving forward. + +### Known limitations +- **Shared pipeline** - Can't run REST independently of Webhooks/GitHub Apps +- **Version overwrite** - Pipeline overwrites `versions` frontmatter +- **Introduction placement** - Must be above auto-generation comment +- **API version sync** - Calendar-date versions require manual config updates