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

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
---
title: Responsible use of GitHub Copilot commit message generation
shortTitle: Commit message generation
allowTitleToDifferFromFilename: true
intro: 'Learn how to use {% data variables.product.prodname_copilot_short %} commit message generation responsibly by understanding its purposes, capabilities, and limitations.'
versions:
feature: copilot
topics:
- Copilot
contentType: rai
---

## About {% data variables.product.prodname_copilot_short %} commit message generation

{% data variables.product.prodname_copilot_short %} commit message generation is an AI-powered feature that allows you to create a commit message summary (title) and description based on the changes you've selected to commit in {% data variables.product.prodname_dotcom_the_website %}. To learn about commit message generation in {% data variables.product.prodname_desktop %}, see [AUTOTITLE](/copilot/responsible-use/copilot-in-github-desktop).

When users commit changes to files using {% data variables.product.github %}'s web interface, {% data variables.product.prodname_copilot_short %} scans through the code changes and provides a suggested summary (title) and description of the changes made in prose. You can review and edit {% data variables.product.prodname_copilot_short %}'s suggested title and description **before** committing the changes to a branch.

The only supported language for {% data variables.product.prodname_copilot_short %}-generated commit messages in {% data variables.product.prodname_dotcom_the_website %} is English.

{% data variables.product.prodname_copilot_short %} commit message generation uses a simple-prompt flow leveraging the {% data variables.product.prodname_copilot_short %} API, utilizing the generic large language model and no additional trained models.

When you click on the **Commit changes** button in {% data variables.product.prodname_dotcom_the_website %}, a call is generated to the {% data variables.product.prodname_copilot_short %} API to generate suggested text to insert into the summary and description boxes. The text complete request includes information from the selected changes in the different files of the repository in a prompt that requests {% data variables.product.prodname_copilot_short %} to generate a suggestion for a commit message that accurately describes those changes. The response is then used to fill the summary and description boxes. You can then review the suggested message, edit it if needed, and then make a commit with it.

## Use cases for {% data variables.product.prodname_copilot_short %} commit message generation

{% data variables.product.prodname_copilot_short %} commit message generation aims to streamline the author workflow so that they can save time and maintain clear commit histories when summarizing their changes. For many users, this could be helpful for saving time when committing large changes. Authors can review and edit suggestions before finalizing and manually committing the changes to a branch. The feature is integrated seamlessly into the commit workflow for a smoother experience.

## Improving {% data variables.product.prodname_copilot_short %} commit message generation

To enhance the experience and address some of the limitations of {% data variables.product.prodname_copilot_short %} commit message generation, there are various measures that you can adopt. For more information about the limitations, see [Limitations of {% data variables.product.prodname_copilot_short %} commit message generation](#limitations-of-copilot-commit-message-generation).

### Use {% data variables.product.prodname_copilot_short %} commit message generation as a tool, not a replacement

The feature is intended to supplement rather than replace a human's work to draft commit messages. The quality of the commit message suggestions will depend on the quality of the code changes and the context in the changed files. It remains your responsibility to review and assess the accuracy of information in the commits you create.

### Provide feedback

If you encounter any issues or limitations with {% data variables.product.prodname_copilot_short %} commit message generation, you can provide feedback via the [community discussion](https://github.com/orgs/community/discussions/categories/copilot-news-and-announcements). This can help the developers to improve the tool and address any concerns or limitations.

## Limitations of {% data variables.product.prodname_copilot_short %} commit message generation

Depending on factors such as your operating system and input data, you may encounter different levels of accuracy when using {% data variables.product.prodname_copilot_short %} commit message generation in {% data variables.product.prodname_dotcom_the_website %}. The following information is designed to help you understand system limitations and key concepts about performance as they apply to {% data variables.product.prodname_copilot_short %} commit message generation.

### Limited scope

{% data variables.product.prodname_copilot_short %} commit message generation operates within defined boundaries and might struggle with intricate code changes, short diff windows, or recently developed programming languages. The quality of suggestions it provides can be influenced by the availability and diversity of training data. For instance, inquiries about well-documented languages like Python may yield more accurate responses compared to questions about less popular languages.

### Inaccurate responses

The more inputs and context that {% data variables.product.prodname_copilot_short %} can learn from, the better the outputs will become. However, since the feature is quite new, it will take time to reach exact precision with the summaries that are generated. In the meantime, there may be cases where a generated summary is less accurate and requires the user to make modifications before saving and publishing their commit. In addition, there is a risk of "hallucination," where {% data variables.product.prodname_copilot_short %} generates statements that are inaccurate. For these reasons, reviewing is a requirement, and careful review of the output is highly recommended by our team.

### Replication of commit message content

Because a commit message is a summary of the changes that were made in a repository, there is potential for the summary to include harmful or offensive terms if any are within the content of the changes.

### Potential biases and errors

Training data for {% data variables.product.prodname_copilot_short %} commit message generation is sourced from existing online sources. It’s important to note that these sources may include biases and errors of the individuals who contributed to the training data. {% data variables.product.prodname_copilot_short %} commit message generation may inadvertently perpetuate these biases and errors.

## Opt out

Users wishing to opt out of {% data variables.product.prodname_copilot_short %} commit message generation can do so via the {% data variables.product.prodname_copilot_short %} [settings page](https://github.com/settings/copilot/features) in {% data variables.product.prodname_dotcom_the_website %}.

## Further reading

* [AUTOTITLE](/free-pro-team@latest/site-policy/github-terms/github-terms-for-additional-products-and-features#github-copilot)
* [{% data variables.product.prodname_copilot %} Trust Center](https://copilot.github.trust.page/)
1 change: 1 addition & 0 deletions content/copilot/responsible-use/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ children:
- /copilot-in-github-desktop
- /pull-request-summaries
- /copilot-text-completion
- /copilot-commit-message-generation
- /code-review
- /copilot-coding-agent
- /spark
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@ You can use {% data variables.product.prodname_projects_v2 %} to manage your wor

Breaking a large issue into smaller issues makes the work more manageable and enables team members to work in parallel. It also leads to smaller pull requests, which are easier to review.

To track how smaller issues fit into the larger goal, milestones, or labels. For more information, see [AUTOTITLE](/issues/using-labels-and-milestones-to-track-work/about-milestones) and [AUTOTITLE](/issues/using-labels-and-milestones-to-track-work/managing-labels).
To ensure efficient progress, clearly define which issues are blocked by, or blocking, other issues. See [AUTOTITLE](/free-pro-team@latest/issues/tracking-your-work-with-issues/using-issues/creating-issue-dependencies).

To track how smaller issues fit into the larger goal, use milestones or labels. For more information, see [AUTOTITLE](/issues/using-labels-and-milestones-to-track-work/about-milestones) and [AUTOTITLE](/issues/using-labels-and-milestones-to-track-work/managing-labels).

## Communicate

Expand Down
4 changes: 4 additions & 0 deletions content/issues/tracking-your-work-with-issues/about-issues.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ Issues can be created in a variety of ways, so you can choose the most convenien

{% endif %}

## About issue dependencies

You can define blocking relationships between issues using issue dependencies. Issue dependencies let you identify issues that are blocked by, or blocking, other work. See [AUTOTITLE](/free-pro-team@latest/issues/tracking-your-work-with-issues/using-issues/creating-issue-dependencies).

## About integration with {% data variables.product.github %}

Issues integrate with your work all across {% data variables.product.github %}. Mentioning an issue in another issue or pull request will create references between them and using keywords, like `fixes:`, in your pull requests will automatically close the associated issues. See [AUTOTITLE](/issues/tracking-your-work-with-issues/using-issues/linking-a-pull-request-to-an-issue).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,10 @@ Below we have added a task list to our Project Octocat issue, breaking it down i

{% endif %}

### Showing which issues are blocked by, or blocking, other work

By creating issue dependencies, you can easily see and communicate which issues are blocked by, or blocking, other issues. This helps streamline coordination, prevent bottlenecks and increase transparency across the team. See [AUTOTITLE](/free-pro-team@latest/issues/tracking-your-work-with-issues/using-issues/creating-issue-dependencies).

{% ifversion copilot %}

## Understanding new issues
Expand Down Expand Up @@ -175,7 +179,7 @@ You can also use the existing {% data variables.product.prodname_projects_v1 %}

Below is a {% data variables.projects.projects_v1_board %} for our example Project Octocat with the issue we created, and the smaller issues we broke it down into, added to it.

![Screenshot of a {% data variables.projects.projects_v1_board %} called "Project Octocat Board," with issues organized into columns for "To do", "In progress," and "Done."](/assets/images/help/issues/quickstart-project-board.png)
![Screenshot of a {% data variables.projects.projects_v1_board %} called "Project Octocat Board," with issues organized into columns for "To do," "In progress," and "Done."](/assets/images/help/issues/quickstart-project-board.png)

{% endif %}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
title: Creating issue dependencies
intro: 'Learn how to create issue dependencies so that you can see which issues are blocked by, or blocking, other work.'
versions:
fpt: '*'
ghec: '*'
type: overview
topics:
- Project management
permissions: 'People with at least triage permissions for a repository can create issue dependencies.'
product: 'Issue dependencies are available for users on {% data variables.product.prodname_free_user %}, {% data variables.product.prodname_pro %}, {% data variables.product.prodname_team %}, and {% data variables.product.prodname_ghe_cloud %} plans.'
---

{% data reusables.issues.issue-dependencies-preview-note %}

Issue dependencies let you define issues that are blocked by, or blocking, other work.

## Marking an issue as blocked by, or blocking, another issue

1. Navigate to the issue that you want to create a dependency for.
1. In the right sidebar, click **Relationships**.
1. From the dropdown, select a dependency option:
* To indicate that your issue depends on another issue being completed, select **Mark as blocked by**.
* To indicate that your issue is preventing another issue from being completed, select **Mark as blocking**.
1. In the dialog box that opens, search for and select all the issues that are blocked by, or blocking, your issue.

Blocked issues are marked with a "Blocked" icon on your project boards or repository's Issues page, so you can easily identify bottlenecks.

## Removing a blocking relationship between two issues

1. Navigate to the issue that you want to remove a dependency from.
1. In the right sidebar, click **Relationships**.
1. From the dropdown, select a dependency option:
* To indicate that your issue no longer depends on another issue being completed, select **Change blocked by**.
* To indicate that your issue is no longer preventing another issue from being completed, select **Change blocking**.
1. In the dialog box that opens, deselect the issues that are no longer blocked by, or blocking, your issue.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ topics:
children:
- /creating-an-issue
- /adding-sub-issues
- /creating-issue-dependencies
- /assigning-issues-and-pull-requests-to-other-github-users
- /editing-an-issue
- /viewing-all-of-your-issues-and-pull-requests
Expand Down
3 changes: 1 addition & 2 deletions data/reusables/actions/branch-requirement.md
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
> [!NOTE]
> This event will only trigger a workflow run if the workflow file exists on the default branch.
This event will only trigger a workflow run if the workflow file exists on the default branch.
1 change: 1 addition & 0 deletions data/reusables/issues/issue-dependencies-preview-note.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
> [!NOTE] Issue dependencies are in public preview and subject to change.
3 changes: 1 addition & 2 deletions data/reusables/webhooks/discussions-webhooks-beta.md
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
> [!NOTE]
> Webhook events for {% data variables.product.prodname_discussions %} are currently in {% data variables.release-phases.public_preview %} and subject to change.
Webhook events for {% data variables.product.prodname_discussions %} are currently in {% data variables.release-phases.public_preview %} and subject to change.
105 changes: 105 additions & 0 deletions src/app/404/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
import { getAppRouterContext } from '@/app/lib/app-router-context'
import { AppRouterMainContextProvider } from '@/app/components/AppRouterMainContext'
import { translate } from '@/languages/lib/translation-utils'
import { CommentDiscussionIcon, MarkGithubIcon } from '@primer/octicons-react'
import type { Metadata } from 'next'

export const dynamic = 'force-dynamic'

export const metadata: Metadata = {
title: '404 - Page not found',
other: { status: '404' },
}

export default async function Page404() {
// Get context with UI data
const appContext = await getAppRouterContext()

const siteTitle = translate(appContext.site.data.ui, 'header.github_docs', 'GitHub Docs')
const oopsTitle = translate(appContext.site.data.ui, 'meta.oops', 'Ooops!')

return (
<AppRouterMainContextProvider context={appContext}>
<div className="min-h-screen d-flex flex-column">
{/* Simple Header */}
<div className="border-bottom color-border-muted no-print">
<header className="container-xl p-responsive py-3 position-relative d-flex width-full">
<div className="d-flex flex-1 flex-items-center">
<a
href={`/${appContext.currentLanguage}`}
className="color-fg-default no-underline d-flex flex-items-center"
>
<MarkGithubIcon size={32} className="mr-2" />
<span className="f4 text-bold">{siteTitle}</span>
</a>
</div>
</header>
</div>

{/* Main Content */}
<div className="container-xl p-responsive py-6 width-full flex-1">
<article className="col-md-10 col-lg-7 mx-auto">
<h1>{oopsTitle}</h1>
<div className="f2 color-fg-muted mb-3" data-container="lead">
It looks like this page doesn't exist.
</div>
<p className="f3">
We track these errors automatically, but if the problem persists please feel free to
contact us.
</p>
<a id="support" href="https://support.github.com" className="btn btn-outline mt-2">
<CommentDiscussionIcon size="small" className="octicon mr-1" />
Contact support
</a>
</article>
</div>

<footer className="py-6">
<div className="container-xl px-3 px-md-6">
<ul className="d-flex flex-wrap list-style-none">
<li className="d-flex mr-xl-3 color-fg-muted">
<span>© 2025 GitHub, Inc.</span>
</li>
<li className="ml-3">
<a
className="text-underline"
href="/site-policy/github-terms/github-terms-of-service"
>
Terms
</a>
</li>
<li className="ml-3">
<a
className="text-underline"
href="/site-policy/privacy-policies/github-privacy-statement"
>
Privacy
</a>
</li>
<li className="ml-3">
<a className="text-underline" href="https://www.githubstatus.com/">
Status
</a>
</li>
<li className="ml-3">
<a className="text-underline" href="https://github.com/pricing">
Pricing
</a>
</li>
<li className="ml-3">
<a className="text-underline" href="https://services.github.com/">
Expert services
</a>
</li>
<li className="ml-3">
<a className="text-underline" href="https://github.blog/">
Blog
</a>
</li>
</ul>
</div>
</footer>
</div>
</AppRouterMainContextProvider>
)
}
7 changes: 7 additions & 0 deletions src/app/_not-found/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { notFound } from 'next/navigation'

// This page handles internal /_not-found redirects from Express middleware
export default function InternalNotFound() {
// This will trigger Next.js to render the not-found.tsx page
notFound()
}
Loading
Loading