Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/check-for-spammy-issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ jobs:

const titleWordCount = issue.title.trim().split(' ').length
const titleWordCountMin = 3
const urlRegex = /https?:\/\/\S+/i
const titleHasUrl = urlRegex.test(issue.title)

try {
await github.rest.teams.getMembershipForUserInOrg({
Expand All @@ -43,7 +45,7 @@ jobs:
// An error will be thrown if the user is not a GitHub employee
// If a user is not a GitHub employee, we should check to see if title has at least the minimum required number of words in it and if it does, we can exit the workflow

if (titleWordCount >= titleWordCountMin) {
if (titleWordCount >= titleWordCountMin && !titleHasUrl) {
return
}
}
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/check-for-spammy-prs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,10 @@ jobs:
const totalChanges = files.reduce((sum, f) => sum + f.additions + f.deletions, 0)
const isOneLineAddition = files.every(f => f.status === 'added') && totalChanges <= 1
const isBlankLineEdit = totalChanges <= 1 && files.every(f => f.status === 'modified')
const onlyRenames = files.length > 0 && files.every(f => f.status === 'renamed')

// Close the PR and add the invalid label
if (onlyDeletes || isEmptyCommit || touchesTooMany || isOneLineAddition || isBlankLineEdit) {
if (onlyDeletes || isEmptyCommit || touchesTooMany || isOneLineAddition || isBlankLineEdit || onlyRenames) {
await github.rest.issues.update({
owner: owner,
repo: repo,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ Check current numbers:
* Resque workers

```shell
ps -ef | grep aqueduct-1.1.0 | grep -v "grep aqueduct-1.1.0" | wc -l
ps -ef | grep -E 'aqueduct-[0-9]' | grep -v grep | wc -l
```

#### 3. Adjust configuration
Expand Down
15 changes: 10 additions & 5 deletions content/pull-requests/reference/stacked-prs-cli-commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,9 @@ Add a new branch on top of the current stack.
gh stack add [flags] [branch]
```

Creates a new branch at the current HEAD, adds it to the top of the stack, and checks it out. You must run this command while on the topmost branch of a stack. If you do not provide a branch name, the command prompts for one.
For an existing stack, creates a new branch at the current HEAD, adds it to the top of the stack, and checks it out. You must run this command while on the topmost branch of a stack. If you do not provide a branch name, the command prompts for one.

When you run the command interactively from a branch that is not part of a stack, `add` offers to initialize a new stack instead. The branch name you supply, or the auto-generated name, becomes the first layer. If you don't supply a name, the standard `init` prompts are used.

You can optionally stage changes and create a commit as part of the `add` flow. When you provide `-m` without an explicit branch name, the branch name is generated automatically in date and slug format, such as `03-24-add_login`.

Expand Down Expand Up @@ -143,7 +145,7 @@ Shows all branches in the stack, their ordering, pull request links, and the mos

| Flag | Description |
|------|-------------|
| `-s, --short` | Compact output (branch names only) |
| `-s, --short` | Compact one-line-per-branch output |
| `--json` | Output stack data as JSON |

**Examples:**
Expand All @@ -154,6 +156,8 @@ gh stack view --short
gh stack view --json
```

`gh stack view --short` uses OSC 8 hyperlinks for pull request numbers when the terminal supports them. Otherwise, the full URL is shown for copy and paste. Set `GH_STACK_HYPERLINKS=1` or `GH_STACK_HYPERLINKS=0` to override terminal detection.

### `gh stack checkout`

Check out a stack by its stack number, a pull request number, a pull request URL, or a branch name.
Expand All @@ -166,9 +170,9 @@ A bare number is interpreted first as a stack or pull request number. These are

When you reference a remote stack, the command fetches the stack on {% data variables.product.github %}, pulls the branches, and sets up the stack locally. If the stack already exists locally and matches, the command switches to the branch. If the local and remote stacks have different compositions, you are prompted to resolve the conflict.

When you provide a branch name, the command resolves it against locally tracked stacks only.
When you provide a branch name, the command checks locally tracked stacks first. If the branch is not tracked locally, the command looks for the branch on remote stacks and pulls down the matching stack. If more than one stack matches, use a stack or pull request number to choose one explicitly.

When you run the command without arguments in an interactive terminal, it opens a searchable picker listing every stack available to you, both the stacks tracked locally and the stacks that exist only on {% data variables.product.github %}. Each row shows the stack number, its bottom and top branch, base branch, a status bar summarizing how many of its pull requests are merged, open, closed, or not yet pushed, and whether the stack is available locally or only on the remote. Filter with the **All**, **Local**, and **Remote** tabs, or type `/` to search. Fully merged stacks are omitted. Selecting a remote-only stack clones it locally before switching to it.
When you run the command without arguments in an interactive terminal, it first checks whether the current branch belongs to a stack on the remote that is not tracked locally, and offers to check it out. If there is no unique match, or you decline, it opens a searchable picker listing every stack available to you, both the stacks tracked locally and the stacks that exist only on {% data variables.product.github %}. Each row shows the stack number, its bottom and top branch, base branch, a status bar summarizing how many of its pull requests are merged, open, closed, or not yet pushed, and whether the stack is available locally or only on the remote. Filter with the **All**, **Local**, and **Remote** tabs, or type `/` to search. Fully merged stacks are omitted. Selecting a remote-only stack clones it locally before switching to it.

**Examples:**

Expand All @@ -182,7 +186,7 @@ gh stack checkout 42
# Check out a stack by pull request URL
gh stack checkout https://github.com/owner/repo/pull/42

# Check out a stack by branch name (local only)
# Check out a stack by branch name
gh stack checkout feature-auth

# Interactive — pick from all available stacks (local and remote)
Expand Down Expand Up @@ -687,6 +691,7 @@ gh stack feedback "Support for reordering branches"
| Variable | Values | Description |
|----------|--------|-------------|
| `GH_STACK_THEME` | `auto` (default), `light`, `dark` | Controls the color palette of the interactive screens for `submit`, `modify`, and `view`, and all colored command output. Colors adapt to your terminal background automatically. Set this variable to force the light or dark palette when a terminal does not report its background, which can happen in some SSH or `tmux` setups. |
| `GH_STACK_HYPERLINKS` | `0`, `1` | Disables or enables OSC 8 hyperlinks when terminal detection is incorrect. Unsupported terminals show the full URL by default. |

```shell
# Force the light palette for one command
Expand Down
24 changes: 12 additions & 12 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@
"@axe-core/playwright": "^4.11.1",
"@eslint/js": "^9.39.3",
"@github/markdownlint-github": "^0.6.3",
"@graphql-inspector/core": "^7.1.2",
"@graphql-inspector/core": "^8.0.0",
"@graphql-tools/load": "^8.1.8",
"@octokit/rest": "22.0.0",
"@playwright/test": "^1.60.0",
Expand Down Expand Up @@ -324,7 +324,7 @@
"eslint-plugin-prettier": "^5.5.5",
"eslint-plugin-primer-react": "^9.0.0",
"globals": "^17.3.0",
"gpt-tokenizer": "^3.4.0",
"gpt-tokenizer": "^4.0.0",
"graphql": "^16.12.0",
"http-status-code": "^2.1.0",
"husky": "^9.1.7",
Expand Down
2 changes: 1 addition & 1 deletion src/content-pipelines/state/gh-stack.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
a1b4a3d4d0bcde9ec3a78ab99b2d63af121857a9
2bd699a544a09cb5c45a013d03416e0894b0454e
15 changes: 15 additions & 0 deletions src/graphql/data/fpt/changelog.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,19 @@
[
{
"schemaChanges": [
{
"title": "The GraphQL schema includes these changes:",
"changes": [
"<p>Enum value 'ENTERPRISE_ORGANIZATION_CREATION<code>was added to enum</code>OrganizationInvitationSource'</p>",
"<p>Enum value 'ADDED_TO_STACK_EVENT<code>was added to enum</code>PullRequestTimelineItemsItemType'</p>",
"<p>Enum value 'REMOVED_FROM_STACK_EVENT<code>was added to enum</code>PullRequestTimelineItemsItemType'</p>"
]
}
],
"previewChanges": [],
"upcomingChanges": [],
"date": "2026-09-02"
},
{
"schemaChanges": [
{
Expand Down
4 changes: 2 additions & 2 deletions src/graphql/data/fpt/schema-enterprise-admin.json
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@
"name": "createEnterpriseOrganization",
"id": "createenterpriseorganization",
"href": "/graphql/reference/enterprise-admin#mutation-createenterpriseorganization",
"description": "<p>Creates an organization as part of an enterprise account. A personal access\ntoken used to create an organization is implicitly permitted to update the\norganization it created, if the organization is part of an enterprise that has\nSAML enabled or uses Enterprise Managed Users. If the organization is not part\nof such an enterprise, and instead has SAML enabled for it individually, the\ntoken will then require SAML authorization to continue working against that organization.</p>",
"description": "<p>Creates an organization as part of an enterprise account. User-authenticated\nrequests make the viewer an owner and invite users in <code>adminLogins</code>.\nInstallation requests directly add listed enterprise members and invite other\nlisted users. Enterprise Managed User enterprises directly add managed users.\nInvitation failures do not roll back organization creation. A personal access\ntoken used to create an organization is implicitly permitted to update the\norganization it created, if the organization is part of an enterprise that has\nSAML enabled or uses Enterprise Managed Users. If the organization is not part\nof such an enterprise, and instead has SAML enabled for it individually, the\ntoken will then require SAML authorization to continue working against that organization.</p>",
"isDeprecated": false,
"inputFields": [
{
Expand Down Expand Up @@ -12222,7 +12222,7 @@
"inputFields": [
{
"name": "adminLogins",
"description": "<p>The logins for the administrators of the new organization.</p>",
"description": "<p>For user-authenticated requests, the logins of additional owners to invite.\nFor installation requests, existing enterprise members are added directly and\nother listed users are invited.</p>",
"type": "[String!]!",
"id": "string",
"href": "/graphql/reference/other#scalar-string"
Expand Down
4 changes: 4 additions & 0 deletions src/graphql/data/fpt/schema-orgs.json
Original file line number Diff line number Diff line change
Expand Up @@ -10485,6 +10485,10 @@
"description": "<p>The possible organization invitation sources.</p>",
"isDeprecated": false,
"values": [
{
"name": "ENTERPRISE_ORGANIZATION_CREATION",
"description": "<p>The invitation was created with an enterprise organization.</p>"
},
{
"name": "MEMBER",
"description": "<p>The invitation was created from the web interface or from API.</p>"
Expand Down
8 changes: 8 additions & 0 deletions src/graphql/data/fpt/schema-pulls.json
Original file line number Diff line number Diff line change
Expand Up @@ -8399,6 +8399,10 @@
"name": "ADDED_TO_PROJECT_V2_EVENT",
"description": "<p>Represents a<code>added_to_project_v2</code>event on a given issue or pull request.</p>"
},
{
"name": "ADDED_TO_STACK_EVENT",
"description": "<p>Represents an<code>added_to_stack</code>event on a given pull request.</p>"
},
{
"name": "ARCHIVED_EVENT",
"description": "<p>Represents an<code>archived</code>event on a given pull request.</p>"
Expand Down Expand Up @@ -8639,6 +8643,10 @@
"name": "REMOVED_FROM_PROJECT_V2_EVENT",
"description": "<p>Represents a<code>removed_from_project_v2</code>event on a given issue or pull request.</p>"
},
{
"name": "REMOVED_FROM_STACK_EVENT",
"description": "<p>Represents a<code>removed_from_stack</code>event on a given pull request.</p>"
},
{
"name": "RENAMED_TITLE_EVENT",
"description": "<p>Represents a<code>renamed</code>event on a given issue or pull request.</p>"
Expand Down
25 changes: 23 additions & 2 deletions src/graphql/data/fpt/schema.docs.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -8326,7 +8326,9 @@ Autogenerated input type of CreateEnterpriseOrganization
"""
input CreateEnterpriseOrganizationInput {
"""
The logins for the administrators of the new organization.
For user-authenticated requests, the logins of additional owners to invite.
For installation requests, existing enterprise members are added directly and
other listed users are invited.
"""
adminLogins: [String!]!

Expand Down Expand Up @@ -27828,7 +27830,11 @@ type Mutation @docsCategory(name: "meta") {
): CreateDiscussionPayload @docsCategory(name: "discussions")

"""
Creates an organization as part of an enterprise account. A personal access
Creates an organization as part of an enterprise account. User-authenticated
requests make the viewer an owner and invite users in `adminLogins`.
Installation requests directly add listed enterprise members and invite other
listed users. Enterprise Managed User enterprises directly add managed users.
Invitation failures do not roll back organization creation. A personal access
token used to create an organization is implicitly permitted to update the
organization it created, if the organization is part of an enterprise that has
SAML enabled or uses Enterprise Managed Users. If the organization is not part
Expand Down Expand Up @@ -37443,6 +37449,11 @@ enum OrganizationInvitationRole @docsCategory(name: "orgs") {
The possible organization invitation sources.
"""
enum OrganizationInvitationSource @docsCategory(name: "orgs") {
"""
The invitation was created with an enterprise organization
"""
ENTERPRISE_ORGANIZATION_CREATION

"""
The invitation was created from the web interface or from API
"""
Expand Down Expand Up @@ -47483,6 +47494,11 @@ enum PullRequestTimelineItemsItemType {
"""
ADDED_TO_PROJECT_V2_EVENT

"""
Represents an 'added_to_stack' event on a given pull request.
"""
ADDED_TO_STACK_EVENT

"""
Represents an 'archived' event on a given pull request.
"""
Expand Down Expand Up @@ -47783,6 +47799,11 @@ enum PullRequestTimelineItemsItemType {
"""
REMOVED_FROM_PROJECT_V2_EVENT

"""
Represents a 'removed_from_stack' event on a given pull request.
"""
REMOVED_FROM_STACK_EVENT

"""
Represents a 'renamed' event on a given issue or pull request
"""
Expand Down
4 changes: 2 additions & 2 deletions src/graphql/data/ghec/schema-enterprise-admin.json
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@
"name": "createEnterpriseOrganization",
"id": "createenterpriseorganization",
"href": "/graphql/reference/enterprise-admin#mutation-createenterpriseorganization",
"description": "<p>Creates an organization as part of an enterprise account. A personal access\ntoken used to create an organization is implicitly permitted to update the\norganization it created, if the organization is part of an enterprise that has\nSAML enabled or uses Enterprise Managed Users. If the organization is not part\nof such an enterprise, and instead has SAML enabled for it individually, the\ntoken will then require SAML authorization to continue working against that organization.</p>",
"description": "<p>Creates an organization as part of an enterprise account. User-authenticated\nrequests make the viewer an owner and invite users in <code>adminLogins</code>.\nInstallation requests directly add listed enterprise members and invite other\nlisted users. Enterprise Managed User enterprises directly add managed users.\nInvitation failures do not roll back organization creation. A personal access\ntoken used to create an organization is implicitly permitted to update the\norganization it created, if the organization is part of an enterprise that has\nSAML enabled or uses Enterprise Managed Users. If the organization is not part\nof such an enterprise, and instead has SAML enabled for it individually, the\ntoken will then require SAML authorization to continue working against that organization.</p>",
"isDeprecated": false,
"inputFields": [
{
Expand Down Expand Up @@ -12222,7 +12222,7 @@
"inputFields": [
{
"name": "adminLogins",
"description": "<p>The logins for the administrators of the new organization.</p>",
"description": "<p>For user-authenticated requests, the logins of additional owners to invite.\nFor installation requests, existing enterprise members are added directly and\nother listed users are invited.</p>",
"type": "[String!]!",
"id": "string",
"href": "/graphql/reference/other#scalar-string"
Expand Down
4 changes: 4 additions & 0 deletions src/graphql/data/ghec/schema-orgs.json
Original file line number Diff line number Diff line change
Expand Up @@ -10485,6 +10485,10 @@
"description": "<p>The possible organization invitation sources.</p>",
"isDeprecated": false,
"values": [
{
"name": "ENTERPRISE_ORGANIZATION_CREATION",
"description": "<p>The invitation was created with an enterprise organization.</p>"
},
{
"name": "MEMBER",
"description": "<p>The invitation was created from the web interface or from API.</p>"
Expand Down
Loading
Loading