diff --git a/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/configuring-the-backup-service.md b/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/configuring-the-backup-service.md index b06e163d309c..51118d8f4235 100644 --- a/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/configuring-the-backup-service.md +++ b/content/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/configuring-the-backup-service.md @@ -62,15 +62,29 @@ If you're using a dedicated block device as your backup target, you need to init >[!WARNING] This command will permanently erase all data on the specified device. Double-check the device name and back up any important data before proceeding. + {% ifversion ghes > 3.17 %} + + ```shell + ghe-storage-init-backup /dev/YOUR_DEVICE_NAME + ``` + + {% else %} + ```shell /usr/local/share/enterprise/ghe-storage-init-backup /dev/YOUR_DEVICE_NAME ``` + {% endif %} + This command: * Formats the device (erases all data). * Prepares it for use by the backup service. * Sets it to mount automatically at `/data/backup` on boot. + {% ifversion ghes = 3.17 %} + From {% data variables.product.prodname_ghe_server %} 3.17.4 onward, the script is installed in PATH so you can run it directly using: `ghe-storage-init-backup /dev/YOUR_DEVICE_NAME`. + {% endif %} + #### Reusing a previously initialized disk If the device was already initialized using `ghe-storage-init-backup`, you can reuse it without reformatting: diff --git a/content/copilot/how-tos/use-copilot-agents/coding-agent/customize-the-agent-environment.md b/content/copilot/how-tos/use-copilot-agents/coding-agent/customize-the-agent-environment.md index 461af490df12..0eae04c49b1d 100644 --- a/content/copilot/how-tos/use-copilot-agents/coding-agent/customize-the-agent-environment.md +++ b/content/copilot/how-tos/use-copilot-agents/coding-agent/customize-the-agent-environment.md @@ -99,6 +99,10 @@ Your `copilot-setup-steps.yml` file will automatically be run as a normal {% dat Once you have merged the yml file into your default branch, you can manually run the workflow from the repository's **Actions** tab at any time to check that everything works as expected. For more information, see [AUTOTITLE](/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/manually-running-a-workflow). +When {% data variables.product.prodname_copilot_short %} starts work, your setup steps will be run, and updates will show in the session logs. See [AUTOTITLE](/copilot/how-tos/agents/copilot-coding-agent/tracking-copilots-sessions). + +If any setup step fails by returning a non-zero exit code, {% data variables.product.prodname_copilot_short %} will skip the remaining setup steps and begin working with the current state of its development environment. + ## Setting environment variables in {% data variables.product.prodname_copilot_short %}'s environment You may want to set environment variables in {% data variables.product.prodname_copilot_short %}'s environment to configure or authenticate tools or dependencies that it has access to. diff --git a/content/copilot/how-tos/use-copilot-agents/coding-agent/review-copilot-prs.md b/content/copilot/how-tos/use-copilot-agents/coding-agent/review-copilot-prs.md index 1798057d30fe..48a060c6c319 100644 --- a/content/copilot/how-tos/use-copilot-agents/coding-agent/review-copilot-prs.md +++ b/content/copilot/how-tos/use-copilot-agents/coding-agent/review-copilot-prs.md @@ -48,6 +48,8 @@ If {% data variables.product.prodname_copilot_short %} starts a new agent sessio > [!TIP] > If you don't want {% data variables.product.prodname_copilot_short %} to respond to comments on a pull request, you can unassign {% data variables.product.prodname_copilot_short %} from the pull request. If you later reassign {% data variables.product.prodname_copilot_short %} to the same pull request it will respond to new comments and push more changes. It will not respond to comments that were added while it was not assigned. +As {% data variables.product.prodname_copilot_short %} makes changes to the pull request, it will keep the title and body up to date so they reflect the current changes. + For more information, see the section "Use comments to iterate on a pull request" in [AUTOTITLE](/copilot/tutorials/coding-agent/best-practices#using-comments-to-iterate-on-a-pull-request). ## Managing {% data variables.product.prodname_actions %} workflow runs diff --git a/content/copilot/tutorials/coding-agent/get-the-best-results.md b/content/copilot/tutorials/coding-agent/get-the-best-results.md index 3dbbb7dcb2d6..6c10a1f5e8fb 100644 --- a/content/copilot/tutorials/coding-agent/get-the-best-results.md +++ b/content/copilot/tutorials/coding-agent/get-the-best-results.md @@ -67,6 +67,8 @@ Working with {% data variables.product.prodname_copilot_short %} on a pull reque > [!NOTE] > {% data reusables.copilot.coding-agent.write-access-required %} +As {% data variables.product.prodname_copilot_short %} makes changes to the pull request, it will keep the title and body up to date so they reflect the current changes. + ## Adding custom instructions to your repository By adding custom instructions to your repository, you can guide {% data variables.product.prodname_copilot_short %} on how to understand your project and how to build, test and validate its changes. diff --git a/package-lock.json b/package-lock.json index c2caf191d209..45db695bf7c3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -133,7 +133,7 @@ "chalk": "^5.0.1", "change-case": "^5.4.4", "commander": "^14.0.0", - "cross-env": "^7.0.3", + "cross-env": "^10.0.0", "csp-parse": "0.0.2", "csv-parse": "6.1.0", "eslint": "^8.57.1", @@ -989,6 +989,13 @@ "version": "0.7.5", "license": "MIT" }, + "node_modules/@epic-web/invariant": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz", + "integrity": "sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==", + "dev": true, + "license": "MIT" + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.25.0", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", @@ -6756,20 +6763,21 @@ "license": "MIT" }, "node_modules/cross-env": { - "version": "7.0.3", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-10.0.0.tgz", + "integrity": "sha512-aU8qlEK/nHYtVuN4p7UQgAwVljzMg8hB4YK5ThRqD2l/ziSnryncPNn7bMLt5cFYsKVKBh8HqLqyCoTupEUu7Q==", "dev": true, "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.1" + "@epic-web/invariant": "^1.0.0", + "cross-spawn": "^7.0.6" }, "bin": { - "cross-env": "src/bin/cross-env.js", - "cross-env-shell": "src/bin/cross-env-shell.js" + "cross-env": "dist/bin/cross-env.js", + "cross-env-shell": "dist/bin/cross-env-shell.js" }, "engines": { - "node": ">=10.14", - "npm": ">=6", - "yarn": ">=1" + "node": ">=20" } }, "node_modules/cross-inspect": { diff --git a/package.json b/package.json index 161000ac2caa..01e9fcf0ec3f 100644 --- a/package.json +++ b/package.json @@ -371,7 +371,7 @@ "chalk": "^5.0.1", "change-case": "^5.4.4", "commander": "^14.0.0", - "cross-env": "^7.0.3", + "cross-env": "^10.0.0", "csp-parse": "0.0.2", "csv-parse": "6.1.0", "eslint": "^8.57.1", diff --git a/src/graphql/data/fpt/changelog.json b/src/graphql/data/fpt/changelog.json index 77821f510373..9c6feb8c4929 100644 --- a/src/graphql/data/fpt/changelog.json +++ b/src/graphql/data/fpt/changelog.json @@ -1,4 +1,30 @@ [ + { + "schemaChanges": [ + { + "title": "The GraphQL schema includes these changes:", + "changes": [ + "

Type AddBlockedByInput was added

", + "

Type AddBlockedByPayload was added

", + "

Type IssueDependenciesSummary was added

", + "

Type IssueDependencyOrder was added

", + "

Type IssueDependencyOrderField was added

", + "

Type RemoveBlockedByInput was added

", + "

Type RemoveBlockedByPayload was added

", + "

Field blockedBy was added to object type Issue

", + "

Field blocking was added to object type Issue

", + "

Field issueDependenciesSummary was added to object type Issue

", + "

Enum value 'BLOCKED_BY_ADDED_EVENTwas added to enumIssueTimelineItemsItemType'

", + "

Field addBlockedBy was added to object type Mutation

", + "

Field removeBlockedBy was added to object type Mutation

", + "

Enum value 'BLOCKED_BY_ADDED_EVENTwas added to enumPullRequestTimelineItemsItemType'

" + ] + } + ], + "previewChanges": [], + "upcomingChanges": [], + "date": "2025-07-30" + }, { "schemaChanges": [ { diff --git a/src/graphql/data/fpt/schema.docs.graphql b/src/graphql/data/fpt/schema.docs.graphql index 6c6122782dff..4a476108bbf4 100644 --- a/src/graphql/data/fpt/schema.docs.graphql +++ b/src/graphql/data/fpt/schema.docs.graphql @@ -386,6 +386,46 @@ type AddAssigneesToAssignablePayload { clientMutationId: String } +""" +Autogenerated input type of AddBlockedBy +""" +input AddBlockedByInput { + """ + The ID of the issue that blocks the given issue. + """ + blockingIssueId: ID! @possibleTypes(concreteTypes: ["Issue"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the issue to be blocked. + """ + issueId: ID! @possibleTypes(concreteTypes: ["Issue"]) +} + +""" +Autogenerated return type of AddBlockedBy. +""" +type AddBlockedByPayload { + """ + The issue that is blocking the given issue. + """ + blockingIssue: Issue + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The issue that is blocked. + """ + issue: Issue +} + """ Autogenerated input type of AddComment """ @@ -18613,6 +18653,66 @@ type Issue implements Assignable & Closable & Comment & Deletable & Labelable & """ authorAssociation: CommentAuthorAssociation! + """ + A list of issues that are blocking this issue. + """ + blockedBy( + """ + 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 + + """ + Ordering options for dependencies + """ + orderBy: IssueDependencyOrder = {field: DEPENDENCY_ADDED_AT, direction: DESC} + ): IssueConnection! + + """ + A list of issues that this issue is blocking. + """ + blocking( + """ + 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 + + """ + Ordering options for dependencies + """ + orderBy: IssueDependencyOrder = {field: DEPENDENCY_ADDED_AT, direction: DESC} + ): IssueConnection! + """ Identifies the body of the issue. """ @@ -18778,6 +18878,11 @@ type Issue implements Assignable & Closable & Comment & Deletable & Labelable & """ isReadByViewer: Boolean + """ + Summary of the state of an issue's dependencies + """ + issueDependenciesSummary: IssueDependenciesSummary! + """ The issue type for this Issue """ @@ -19735,6 +19840,51 @@ type IssueContributionsByRepository { repository: Repository! } +""" +Summary of the state of an issue's dependencies +""" +type IssueDependenciesSummary { + """ + Count of issues this issue is blocked by + """ + blockedBy: Int! + + """ + Count of issues this issue is blocking + """ + blocking: Int! +} + +""" +Ordering options issue dependencies +""" +input IssueDependencyOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order issue dependencies by. + """ + field: IssueDependencyOrderField! +} + +""" +Properties by which issue dependencies can be ordered. +""" +enum IssueDependencyOrderField { + """ + Order issue dependencies by the creation time of the dependent issue + """ + CREATED_AT + + """ + Order issue dependencies by time of when the dependency relationship was added + """ + DEPENDENCY_ADDED_AT +} + """ An edge in a connection. """ @@ -20156,6 +20306,11 @@ enum IssueTimelineItemsItemType { """ ASSIGNED_EVENT + """ + Represents a 'blocked_by_added' event on a given issue. + """ + BLOCKED_BY_ADDED_EVENT + """ Represents a 'closed' event on any `Closable`. """ @@ -24099,6 +24254,16 @@ type Mutation { input: AddAssigneesToAssignableInput! ): AddAssigneesToAssignablePayload + """ + Adds a 'blocked by' relationship to an issue. + """ + addBlockedBy( + """ + Parameters for AddBlockedBy + """ + input: AddBlockedByInput! + ): AddBlockedByPayload + """ Adds a comment to an Issue or Pull Request. """ @@ -25494,6 +25659,16 @@ type Mutation { input: RemoveAssigneesFromAssignableInput! ): RemoveAssigneesFromAssignablePayload + """ + Removes a 'blocked by' relationship from an issue. + """ + removeBlockedBy( + """ + Parameters for RemoveBlockedBy + """ + input: RemoveBlockedByInput! + ): RemoveBlockedByPayload + """ Removes an administrator from the enterprise. """ @@ -42780,6 +42955,11 @@ enum PullRequestTimelineItemsItemType { """ BASE_REF_FORCE_PUSHED_EVENT + """ + Represents a 'blocked_by_added' event on a given issue. + """ + BLOCKED_BY_ADDED_EVENT + """ Represents a 'closed' event on any `Closable`. """ @@ -45070,6 +45250,46 @@ type RemoveAssigneesFromAssignablePayload { clientMutationId: String } +""" +Autogenerated input type of RemoveBlockedBy +""" +input RemoveBlockedByInput { + """ + The ID of the blocking issue. + """ + blockingIssueId: ID! @possibleTypes(concreteTypes: ["Issue"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the blocked issue. + """ + issueId: ID! @possibleTypes(concreteTypes: ["Issue"]) +} + +""" +Autogenerated return type of RemoveBlockedBy. +""" +type RemoveBlockedByPayload { + """ + The previously blocking issue. + """ + blockingIssue: Issue + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The previously blocked issue. + """ + issue: Issue +} + """ Autogenerated input type of RemoveEnterpriseAdmin """ diff --git a/src/graphql/data/fpt/schema.json b/src/graphql/data/fpt/schema.json index ad651df14969..b5742e1e9b70 100644 --- a/src/graphql/data/fpt/schema.json +++ b/src/graphql/data/fpt/schema.json @@ -1191,6 +1191,48 @@ } ] }, + { + "name": "addBlockedBy", + "kind": "mutations", + "id": "addblockedby", + "href": "/graphql/reference/mutations#addblockedby", + "description": "

Adds a 'blocked by' relationship to an issue.

", + "inputFields": [ + { + "name": "input", + "type": "AddBlockedByInput!", + "id": "addblockedbyinput", + "kind": "input-objects", + "href": "/graphql/reference/input-objects#addblockedbyinput" + } + ], + "returnFields": [ + { + "name": "blockingIssue", + "type": "Issue", + "id": "issue", + "kind": "objects", + "href": "/graphql/reference/objects#issue", + "description": "

The issue that is blocking the given issue.

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

A unique identifier for the client performing the mutation.

" + }, + { + "name": "issue", + "type": "Issue", + "id": "issue", + "kind": "objects", + "href": "/graphql/reference/objects#issue", + "description": "

The issue that is blocked.

" + } + ] + }, { "name": "addComment", "kind": "mutations", @@ -5843,6 +5885,48 @@ } ] }, + { + "name": "removeBlockedBy", + "kind": "mutations", + "id": "removeblockedby", + "href": "/graphql/reference/mutations#removeblockedby", + "description": "

Removes a 'blocked by' relationship from an issue.

", + "inputFields": [ + { + "name": "input", + "type": "RemoveBlockedByInput!", + "id": "removeblockedbyinput", + "kind": "input-objects", + "href": "/graphql/reference/input-objects#removeblockedbyinput" + } + ], + "returnFields": [ + { + "name": "blockingIssue", + "type": "Issue", + "id": "issue", + "kind": "objects", + "href": "/graphql/reference/objects#issue", + "description": "

The previously blocking issue.

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

A unique identifier for the client performing the mutation.

" + }, + { + "name": "issue", + "type": "Issue", + "id": "issue", + "kind": "objects", + "href": "/graphql/reference/objects#issue", + "description": "

The previously blocked issue.

" + } + ] + }, { "name": "removeEnterpriseAdmin", "kind": "mutations", @@ -28958,6 +29042,126 @@ "kind": "enums", "href": "/graphql/reference/enums#commentauthorassociation" }, + { + "name": "blockedBy", + "description": "

A list of issues that are blocking this issue.

", + "type": "IssueConnection!", + "id": "issueconnection", + "kind": "objects", + "href": "/graphql/reference/objects#issueconnection", + "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 dependencies.

", + "type": { + "name": "IssueDependencyOrder", + "id": "issuedependencyorder", + "kind": "input-objects", + "href": "/graphql/reference/input-objects#issuedependencyorder" + } + } + ] + }, + { + "name": "blocking", + "description": "

A list of issues that this issue is blocking.

", + "type": "IssueConnection!", + "id": "issueconnection", + "kind": "objects", + "href": "/graphql/reference/objects#issueconnection", + "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 dependencies.

", + "type": { + "name": "IssueDependencyOrder", + "id": "issuedependencyorder", + "kind": "input-objects", + "href": "/graphql/reference/input-objects#issuedependencyorder" + } + } + ] + }, { "name": "body", "description": "

Identifies the body of the issue.

", @@ -29258,6 +29462,14 @@ "kind": "scalars", "href": "/graphql/reference/scalars#boolean" }, + { + "name": "issueDependenciesSummary", + "description": "

Summary of the state of an issue's dependencies.

", + "type": "IssueDependenciesSummary!", + "id": "issuedependenciessummary", + "kind": "objects", + "href": "/graphql/reference/objects#issuedependenciessummary" + }, { "name": "issueType", "description": "

The issue type for this Issue.

", @@ -30968,6 +31180,31 @@ } ] }, + { + "name": "IssueDependenciesSummary", + "kind": "objects", + "id": "issuedependenciessummary", + "href": "/graphql/reference/objects#issuedependenciessummary", + "description": "

Summary of the state of an issue's dependencies.

", + "fields": [ + { + "name": "blockedBy", + "description": "

Count of issues this issue is blocked by.

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

Count of issues this issue is blocking.

", + "type": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + ] + }, { "name": "IssueEdge", "kind": "objects", @@ -89291,6 +89528,23 @@ } ] }, + { + "name": "IssueDependencyOrderField", + "kind": "enums", + "id": "issuedependencyorderfield", + "href": "/graphql/reference/enums#issuedependencyorderfield", + "description": "

Properties by which issue dependencies can be ordered.

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

Order issue dependencies by the creation time of the dependent issue.

" + }, + { + "name": "DEPENDENCY_ADDED_AT", + "description": "

Order issue dependencies by time of when the dependency relationship was added.

" + } + ] + }, { "name": "IssueOrderField", "kind": "enums", @@ -89369,6 +89623,10 @@ "name": "ASSIGNED_EVENT", "description": "

Represents anassignedevent on any assignable object.

" }, + { + "name": "BLOCKED_BY_ADDED_EVENT", + "description": "

Represents ablocked_by_addedevent on a given issue.

" + }, { "name": "CLOSED_EVENT", "description": "

Represents aclosedevent on any Closable.

" @@ -91496,6 +91754,10 @@ "name": "BASE_REF_FORCE_PUSHED_EVENT", "description": "

Represents abase_ref_force_pushedevent on a given pull request.

" }, + { + "name": "BLOCKED_BY_ADDED_EVENT", + "description": "

Represents ablocked_by_addedevent on a given issue.

" + }, { "name": "CLOSED_EVENT", "description": "

Represents aclosedevent on any Closable.

" @@ -96985,6 +97247,41 @@ } ] }, + { + "name": "AddBlockedByInput", + "kind": "inputObjects", + "id": "addblockedbyinput", + "href": "/graphql/reference/input-objects#addblockedbyinput", + "description": "

Autogenerated input type of AddBlockedBy.

", + "inputFields": [ + { + "name": "blockingIssueId", + "description": "

The ID of the issue that blocks the given issue.

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

A unique identifier for the client performing the mutation.

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

The ID of the issue to be blocked.

", + "type": "ID!", + "id": "id", + "kind": "scalars", + "href": "/graphql/reference/scalars#id", + "isDeprecated": false + } + ] + }, { "name": "AddCommentInput", "kind": "inputObjects", @@ -103262,6 +103559,31 @@ } ] }, + { + "name": "IssueDependencyOrder", + "kind": "inputObjects", + "id": "issuedependencyorder", + "href": "/graphql/reference/input-objects#issuedependencyorder", + "description": "

Ordering options issue dependencies.

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

The ordering direction.

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

The field to order issue dependencies by.

", + "type": "IssueDependencyOrderField!", + "id": "issuedependencyorderfield", + "kind": "enums", + "href": "/graphql/reference/enums#issuedependencyorderfield" + } + ] + }, { "name": "IssueFilters", "kind": "inputObjects", @@ -105175,6 +105497,41 @@ } ] }, + { + "name": "RemoveBlockedByInput", + "kind": "inputObjects", + "id": "removeblockedbyinput", + "href": "/graphql/reference/input-objects#removeblockedbyinput", + "description": "

Autogenerated input type of RemoveBlockedBy.

", + "inputFields": [ + { + "name": "blockingIssueId", + "description": "

The ID of the blocking issue.

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

A unique identifier for the client performing the mutation.

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

The ID of the blocked issue.

", + "type": "ID!", + "id": "id", + "kind": "scalars", + "href": "/graphql/reference/scalars#id", + "isDeprecated": false + } + ] + }, { "name": "RemoveEnterpriseAdminInput", "kind": "inputObjects", diff --git a/src/graphql/data/ghec/schema.docs.graphql b/src/graphql/data/ghec/schema.docs.graphql index 6c6122782dff..4a476108bbf4 100644 --- a/src/graphql/data/ghec/schema.docs.graphql +++ b/src/graphql/data/ghec/schema.docs.graphql @@ -386,6 +386,46 @@ type AddAssigneesToAssignablePayload { clientMutationId: String } +""" +Autogenerated input type of AddBlockedBy +""" +input AddBlockedByInput { + """ + The ID of the issue that blocks the given issue. + """ + blockingIssueId: ID! @possibleTypes(concreteTypes: ["Issue"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the issue to be blocked. + """ + issueId: ID! @possibleTypes(concreteTypes: ["Issue"]) +} + +""" +Autogenerated return type of AddBlockedBy. +""" +type AddBlockedByPayload { + """ + The issue that is blocking the given issue. + """ + blockingIssue: Issue + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The issue that is blocked. + """ + issue: Issue +} + """ Autogenerated input type of AddComment """ @@ -18613,6 +18653,66 @@ type Issue implements Assignable & Closable & Comment & Deletable & Labelable & """ authorAssociation: CommentAuthorAssociation! + """ + A list of issues that are blocking this issue. + """ + blockedBy( + """ + 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 + + """ + Ordering options for dependencies + """ + orderBy: IssueDependencyOrder = {field: DEPENDENCY_ADDED_AT, direction: DESC} + ): IssueConnection! + + """ + A list of issues that this issue is blocking. + """ + blocking( + """ + 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 + + """ + Ordering options for dependencies + """ + orderBy: IssueDependencyOrder = {field: DEPENDENCY_ADDED_AT, direction: DESC} + ): IssueConnection! + """ Identifies the body of the issue. """ @@ -18778,6 +18878,11 @@ type Issue implements Assignable & Closable & Comment & Deletable & Labelable & """ isReadByViewer: Boolean + """ + Summary of the state of an issue's dependencies + """ + issueDependenciesSummary: IssueDependenciesSummary! + """ The issue type for this Issue """ @@ -19735,6 +19840,51 @@ type IssueContributionsByRepository { repository: Repository! } +""" +Summary of the state of an issue's dependencies +""" +type IssueDependenciesSummary { + """ + Count of issues this issue is blocked by + """ + blockedBy: Int! + + """ + Count of issues this issue is blocking + """ + blocking: Int! +} + +""" +Ordering options issue dependencies +""" +input IssueDependencyOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order issue dependencies by. + """ + field: IssueDependencyOrderField! +} + +""" +Properties by which issue dependencies can be ordered. +""" +enum IssueDependencyOrderField { + """ + Order issue dependencies by the creation time of the dependent issue + """ + CREATED_AT + + """ + Order issue dependencies by time of when the dependency relationship was added + """ + DEPENDENCY_ADDED_AT +} + """ An edge in a connection. """ @@ -20156,6 +20306,11 @@ enum IssueTimelineItemsItemType { """ ASSIGNED_EVENT + """ + Represents a 'blocked_by_added' event on a given issue. + """ + BLOCKED_BY_ADDED_EVENT + """ Represents a 'closed' event on any `Closable`. """ @@ -24099,6 +24254,16 @@ type Mutation { input: AddAssigneesToAssignableInput! ): AddAssigneesToAssignablePayload + """ + Adds a 'blocked by' relationship to an issue. + """ + addBlockedBy( + """ + Parameters for AddBlockedBy + """ + input: AddBlockedByInput! + ): AddBlockedByPayload + """ Adds a comment to an Issue or Pull Request. """ @@ -25494,6 +25659,16 @@ type Mutation { input: RemoveAssigneesFromAssignableInput! ): RemoveAssigneesFromAssignablePayload + """ + Removes a 'blocked by' relationship from an issue. + """ + removeBlockedBy( + """ + Parameters for RemoveBlockedBy + """ + input: RemoveBlockedByInput! + ): RemoveBlockedByPayload + """ Removes an administrator from the enterprise. """ @@ -42780,6 +42955,11 @@ enum PullRequestTimelineItemsItemType { """ BASE_REF_FORCE_PUSHED_EVENT + """ + Represents a 'blocked_by_added' event on a given issue. + """ + BLOCKED_BY_ADDED_EVENT + """ Represents a 'closed' event on any `Closable`. """ @@ -45070,6 +45250,46 @@ type RemoveAssigneesFromAssignablePayload { clientMutationId: String } +""" +Autogenerated input type of RemoveBlockedBy +""" +input RemoveBlockedByInput { + """ + The ID of the blocking issue. + """ + blockingIssueId: ID! @possibleTypes(concreteTypes: ["Issue"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the blocked issue. + """ + issueId: ID! @possibleTypes(concreteTypes: ["Issue"]) +} + +""" +Autogenerated return type of RemoveBlockedBy. +""" +type RemoveBlockedByPayload { + """ + The previously blocking issue. + """ + blockingIssue: Issue + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The previously blocked issue. + """ + issue: Issue +} + """ Autogenerated input type of RemoveEnterpriseAdmin """ diff --git a/src/graphql/data/ghec/schema.json b/src/graphql/data/ghec/schema.json index ad651df14969..b5742e1e9b70 100644 --- a/src/graphql/data/ghec/schema.json +++ b/src/graphql/data/ghec/schema.json @@ -1191,6 +1191,48 @@ } ] }, + { + "name": "addBlockedBy", + "kind": "mutations", + "id": "addblockedby", + "href": "/graphql/reference/mutations#addblockedby", + "description": "

Adds a 'blocked by' relationship to an issue.

", + "inputFields": [ + { + "name": "input", + "type": "AddBlockedByInput!", + "id": "addblockedbyinput", + "kind": "input-objects", + "href": "/graphql/reference/input-objects#addblockedbyinput" + } + ], + "returnFields": [ + { + "name": "blockingIssue", + "type": "Issue", + "id": "issue", + "kind": "objects", + "href": "/graphql/reference/objects#issue", + "description": "

The issue that is blocking the given issue.

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

A unique identifier for the client performing the mutation.

" + }, + { + "name": "issue", + "type": "Issue", + "id": "issue", + "kind": "objects", + "href": "/graphql/reference/objects#issue", + "description": "

The issue that is blocked.

" + } + ] + }, { "name": "addComment", "kind": "mutations", @@ -5843,6 +5885,48 @@ } ] }, + { + "name": "removeBlockedBy", + "kind": "mutations", + "id": "removeblockedby", + "href": "/graphql/reference/mutations#removeblockedby", + "description": "

Removes a 'blocked by' relationship from an issue.

", + "inputFields": [ + { + "name": "input", + "type": "RemoveBlockedByInput!", + "id": "removeblockedbyinput", + "kind": "input-objects", + "href": "/graphql/reference/input-objects#removeblockedbyinput" + } + ], + "returnFields": [ + { + "name": "blockingIssue", + "type": "Issue", + "id": "issue", + "kind": "objects", + "href": "/graphql/reference/objects#issue", + "description": "

The previously blocking issue.

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

A unique identifier for the client performing the mutation.

" + }, + { + "name": "issue", + "type": "Issue", + "id": "issue", + "kind": "objects", + "href": "/graphql/reference/objects#issue", + "description": "

The previously blocked issue.

" + } + ] + }, { "name": "removeEnterpriseAdmin", "kind": "mutations", @@ -28958,6 +29042,126 @@ "kind": "enums", "href": "/graphql/reference/enums#commentauthorassociation" }, + { + "name": "blockedBy", + "description": "

A list of issues that are blocking this issue.

", + "type": "IssueConnection!", + "id": "issueconnection", + "kind": "objects", + "href": "/graphql/reference/objects#issueconnection", + "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 dependencies.

", + "type": { + "name": "IssueDependencyOrder", + "id": "issuedependencyorder", + "kind": "input-objects", + "href": "/graphql/reference/input-objects#issuedependencyorder" + } + } + ] + }, + { + "name": "blocking", + "description": "

A list of issues that this issue is blocking.

", + "type": "IssueConnection!", + "id": "issueconnection", + "kind": "objects", + "href": "/graphql/reference/objects#issueconnection", + "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 dependencies.

", + "type": { + "name": "IssueDependencyOrder", + "id": "issuedependencyorder", + "kind": "input-objects", + "href": "/graphql/reference/input-objects#issuedependencyorder" + } + } + ] + }, { "name": "body", "description": "

Identifies the body of the issue.

", @@ -29258,6 +29462,14 @@ "kind": "scalars", "href": "/graphql/reference/scalars#boolean" }, + { + "name": "issueDependenciesSummary", + "description": "

Summary of the state of an issue's dependencies.

", + "type": "IssueDependenciesSummary!", + "id": "issuedependenciessummary", + "kind": "objects", + "href": "/graphql/reference/objects#issuedependenciessummary" + }, { "name": "issueType", "description": "

The issue type for this Issue.

", @@ -30968,6 +31180,31 @@ } ] }, + { + "name": "IssueDependenciesSummary", + "kind": "objects", + "id": "issuedependenciessummary", + "href": "/graphql/reference/objects#issuedependenciessummary", + "description": "

Summary of the state of an issue's dependencies.

", + "fields": [ + { + "name": "blockedBy", + "description": "

Count of issues this issue is blocked by.

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

Count of issues this issue is blocking.

", + "type": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + ] + }, { "name": "IssueEdge", "kind": "objects", @@ -89291,6 +89528,23 @@ } ] }, + { + "name": "IssueDependencyOrderField", + "kind": "enums", + "id": "issuedependencyorderfield", + "href": "/graphql/reference/enums#issuedependencyorderfield", + "description": "

Properties by which issue dependencies can be ordered.

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

Order issue dependencies by the creation time of the dependent issue.

" + }, + { + "name": "DEPENDENCY_ADDED_AT", + "description": "

Order issue dependencies by time of when the dependency relationship was added.

" + } + ] + }, { "name": "IssueOrderField", "kind": "enums", @@ -89369,6 +89623,10 @@ "name": "ASSIGNED_EVENT", "description": "

Represents anassignedevent on any assignable object.

" }, + { + "name": "BLOCKED_BY_ADDED_EVENT", + "description": "

Represents ablocked_by_addedevent on a given issue.

" + }, { "name": "CLOSED_EVENT", "description": "

Represents aclosedevent on any Closable.

" @@ -91496,6 +91754,10 @@ "name": "BASE_REF_FORCE_PUSHED_EVENT", "description": "

Represents abase_ref_force_pushedevent on a given pull request.

" }, + { + "name": "BLOCKED_BY_ADDED_EVENT", + "description": "

Represents ablocked_by_addedevent on a given issue.

" + }, { "name": "CLOSED_EVENT", "description": "

Represents aclosedevent on any Closable.

" @@ -96985,6 +97247,41 @@ } ] }, + { + "name": "AddBlockedByInput", + "kind": "inputObjects", + "id": "addblockedbyinput", + "href": "/graphql/reference/input-objects#addblockedbyinput", + "description": "

Autogenerated input type of AddBlockedBy.

", + "inputFields": [ + { + "name": "blockingIssueId", + "description": "

The ID of the issue that blocks the given issue.

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

A unique identifier for the client performing the mutation.

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

The ID of the issue to be blocked.

", + "type": "ID!", + "id": "id", + "kind": "scalars", + "href": "/graphql/reference/scalars#id", + "isDeprecated": false + } + ] + }, { "name": "AddCommentInput", "kind": "inputObjects", @@ -103262,6 +103559,31 @@ } ] }, + { + "name": "IssueDependencyOrder", + "kind": "inputObjects", + "id": "issuedependencyorder", + "href": "/graphql/reference/input-objects#issuedependencyorder", + "description": "

Ordering options issue dependencies.

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

The ordering direction.

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

The field to order issue dependencies by.

", + "type": "IssueDependencyOrderField!", + "id": "issuedependencyorderfield", + "kind": "enums", + "href": "/graphql/reference/enums#issuedependencyorderfield" + } + ] + }, { "name": "IssueFilters", "kind": "inputObjects", @@ -105175,6 +105497,41 @@ } ] }, + { + "name": "RemoveBlockedByInput", + "kind": "inputObjects", + "id": "removeblockedbyinput", + "href": "/graphql/reference/input-objects#removeblockedbyinput", + "description": "

Autogenerated input type of RemoveBlockedBy.

", + "inputFields": [ + { + "name": "blockingIssueId", + "description": "

The ID of the blocking issue.

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

A unique identifier for the client performing the mutation.

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

The ID of the blocked issue.

", + "type": "ID!", + "id": "id", + "kind": "scalars", + "href": "/graphql/reference/scalars#id", + "isDeprecated": false + } + ] + }, { "name": "RemoveEnterpriseAdminInput", "kind": "inputObjects", diff --git a/src/secret-scanning/data/public-docs.yml b/src/secret-scanning/data/public-docs.yml index 14424f72f079..dc68fba9f664 100644 --- a/src/secret-scanning/data/public-docs.yml +++ b/src/secret-scanning/data/public-docs.yml @@ -130,6 +130,17 @@ hasPushProtection: true hasValidityCheck: '{% ifversion fpt or ghes %}false{% else %}true{% endif %}' isduplicate: false +- provider: Amazon AWS + supportedSecret: Amazon AWS API Key ID + secretType: aws_api_key + versions: + fpt: '*' + ghec: '*' + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + isduplicate: false - provider: Amazon AWS supportedSecret: Amazon AWS Session Token secretType: >- @@ -1809,7 +1820,7 @@ isPublic: true isPrivateWithGhas: true hasPushProtection: true - hasValidityCheck: false + hasValidityCheck: '{% ifversion fpt or ghes %}false{% else %}true{% endif %}' isduplicate: false - provider: DigitalOcean supportedSecret: DigitalOcean Personal Access Token @@ -1821,7 +1832,7 @@ isPublic: true isPrivateWithGhas: true hasPushProtection: true - hasValidityCheck: false + hasValidityCheck: '{% ifversion fpt or ghes %}false{% else %}true{% endif %}' isduplicate: false - provider: DigitalOcean supportedSecret: DigitalOcean Refresh Token @@ -2313,7 +2324,7 @@ isPublic: false isPrivateWithGhas: true hasPushProtection: true - hasValidityCheck: false + hasValidityCheck: '{% ifversion fpt or ghes %}false{% else %}true{% endif %}' isduplicate: false - provider: GoCardless supportedSecret: GoCardless Live Access Token @@ -2545,7 +2556,7 @@ isPublic: true isPrivateWithGhas: true hasPushProtection: true - hasValidityCheck: false + hasValidityCheck: '{% ifversion fpt or ghes %}false{% else %}true{% endif %}' isduplicate: false - provider: Heroku supportedSecret: Heroku Platform API OAuth2 Token @@ -3355,6 +3366,17 @@ hasPushProtection: true hasValidityCheck: false isduplicate: false +- provider: Notion + supportedSecret: Notion API Token + secretType: notion_api_token + versions: + fpt: '*' + ghec: '*' + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + isduplicate: false - provider: Notion supportedSecret: Notion Integration Token secretType: notion_integration_token @@ -4424,7 +4446,7 @@ versions: fpt: '*' ghec: '*' - isPublic: false + isPublic: true isPrivateWithGhas: true hasPushProtection: false hasValidityCheck: false @@ -4655,7 +4677,7 @@ isPublic: true isPrivateWithGhas: true hasPushProtection: false - hasValidityCheck: false + hasValidityCheck: '{% ifversion fpt or ghes %}false{% else %}true{% endif %}' isduplicate: false - provider: Telegram supportedSecret: Telegram Bot Token diff --git a/src/secret-scanning/lib/config.json b/src/secret-scanning/lib/config.json index 087118648827..5ab884d57c29 100644 --- a/src/secret-scanning/lib/config.json +++ b/src/secret-scanning/lib/config.json @@ -1,5 +1,5 @@ { - "sha": "594adea0c1c940527d547efc18db839af86d8b79", - "blob-sha": "3feedd6d151816923eec708ffa058b4b2cc87184", + "sha": "888f35e31af644d721bb12c9b3143b6b42d5652a", + "blob-sha": "ec24f6c2e3426c35ece41e52fb686170b15dec90", "targetFilename": "code-security/secret-scanning/introduction/supported-secret-scanning-patterns" } \ No newline at end of file