Github Copilot Coding Agent
- 1 How to Set up a basic Github Coding Agent POC with demo app
- 2 How to Setup Github’s Cloud Coding Agent to listen to the Atlassian MCP Server
- 3 How to Setup Github’s Cloud Coding Agent to listen to the Figma MCP Server
- 4 How to Setup Jira to Instantly Create a Github Issue Assigned to Copilot with the Ticket Information
- 5 How to Setup Jira and Github to Automate Updating Ticket Status When PR is Opened
- 6 How to Setup AI-Coding-Agent as a MCP Proxy Service for Atlassian in the Github Cloud Coding Agent
- 7 FAQs About Github Cloud Coding Agent (FE-461)
The coding agent is officially called Copilot coding agent, so all “copilot” references in this doc are specifically for the coding agent used via http://github.com , not the vscode copilot chat.
👉 Bitovi can help you integrate this into your own SDLC workflow: AI for Software Teams
How to Set up a basic Github Coding Agent POC with demo app
Quick Start
Create a detailed Github Issue
Assign the issue to Copilot
Copilot will respond with a PR. This is where all future communications and work on the issue happen.
Chat with Copilot directly in the PR
Copilot will recognize any comments in in “Conversation” & from “Files changed” as long as they include
@copilotin the messageExample of mentioning copilot in conversation commentChat with copilot in “Conversation” or while reviewing code in “Files changed”- Example of mentioning copilot in conversation comment
- Example of mentioning copilot as part of a code review
To see what copilot is doing at any point, click the Session button in the PR’s conversation view:
Click here to see a copilot session- Example copilot session
View all current and past sessions on the Agents page
Other ways to start a PR with Copilot Coding Agent:
- Delegate new tasks to Copilot and monitor progress from your Agents. Across all your repos/branches.
Copilot Chat in Visual Studio Code
Requires GitHub Pull Requests extension
Recommended Setup
If Copilot has not already been enabled in your repo, follow these instructions. All Bitovi-owned repos should already have it enabled. Test by attempting to assign a Github issue to copilot. There is no other initial setup required though some extra work is recommended when first using copilot coding agent in a repo:
Configure firewall (copilot tells you which urls it couldn’t access & provides instructions)
Add copilot-instructions.md (do this before firewall & instructions may reference links being blocked)
situational: setup
.github/workflows/copilot-setup-steps.yml
Configure firewall: allow access to external sites:
Recommend setting up a custom copilot configuration as the agents firewall is strict by default. If it finds blocked sites, Copilot will suggest doing one of the following:
Configure Actions setup steps to set up environment, which run before the firewall is enabled
Add the appropriate URLs or hosts to the custom allowlist in this repository's Copilot coding agent settings (admins only)
Add Copilot Instructions
If copilot-instructions are not already in the repo, every copilot PR will recommend adding them & provide a link to have copilot automatically generate them.
Result: Does a decent job & only requires minimal effort: (1️⃣)
Attempting to use Bitovi’s instruction generator
Initial result may ignore instructions and use githubs process: 👎 (2️⃣)
May need to re-instruct to follow Bitovi prompt: ☹️ (3️⃣)
Example of github created copilot-instructions.md
Example using Bitovi Generator
Tip: may want to include semantic branch naming instructions. Branch
copilot/fix-7means nothing, especially when it’s for issue #3
Maybe Later: Have Copilot help with setup?
Custom configuration quick links
before the agent starts
.github/workflows/copilot-setup-steps.yml
Capabilities
docs: https://docs.github.com/en/copilot/concepts/coding-agent/coding-agent
Fix bugs
Implement incremental new features
Improve test coverage
Update documentation
Address technical debt
Why Copilot Coding Agent vs IDE AI or agent mode?
From Benefits over traditional AI workflows:
Copilot automates branch creation, commit message writing and pushing, PR opening, and PR description writing. Developers let the agent work in the background and then steer Copilot to a final solution using PR reviews. Working on GitHub adds transparency, where every step happens in a commit and is viewable in logs. Working on GitHub also opens up collaboration opportunities for the entire team.
From Copilot coding agent versus agent mode:
Copilot coding agent works autonomously in a GitHub Actions-powered environment to complete development tasks assigned through GitHub issues or GitHub Copilot Chat prompts, and creates pull requests with the results. In contrast, agent mode in Visual Studio and Visual Studio Code is part of the GitHub Copilot Edits feature that allows Copilot to make autonomous edits directly in your local development environment.
Tools Available
By default, Copilot Coding Agent only starts with access to a subset of the github-mcp-server tools.
To add other tools,
see the official docs Preinstalling tools or dependencies in copilots environments https://bitovi.atlassian.net/browse/FE-461
Or our docs on
Code Review
As mentioned above, Copilot will only recognize comments if they include @copilot in the message.
@copilot in the review summary eliminates the need to mention it in each inline comment during the code review (example)
Strengths
Immediate responsiveness: Responds to every comment quickly and directly
Clear status updates: Provides detailed progress reports with ✅/❌ status indicators
Code references: Shows specific code examples when explaining changes
Multiple task handling: Successfully manages complex multi-part requests (file moves, component renames, prop additions)
Build verification: Runs tests and builds after changes to confirm success
Weaknesses
Misses implicit feedback: Didn't catch the comment about styling tests that wasn't directly @-mentioned, or inside a code review
Incomplete type setup: did not install
@types/jest(commit)Session note isolation: Important findings (like pre-existing broken tests) only appear in session notes, not in comments
No proactive suggestions: Doesn't suggest follow-up actions or separate issues for unrelated problems found
For detailed example of all the above, see comment thread in this PR: Adding tests to a repo, and seeing how copilot iterates on them
Testing - Adherence & Iteration
https://docs.github.com/en/copilot/tutorials/write-tests
Strengths
Testing setup: Can establish testing frameworks in codebases that don't have them
Proactive testing: Runs tests before changes and writes/updates them automatically if codebase has existing tests
Smart test management: Updates existing component tests and adds new tests for features without explicit instruction
Focused scope: Stays on task without expanding to unrelated issues
Weaknesses
Poor communication: Buries important findings (like unrelated broken tests) in session notes instead of alerting developers
Incomplete cleanup: Leaves behind broken types and doesn't ensure full codebase health (unless explicitly instructed)
Limited follow-up: Often skips suggesting next steps or mentioning separate issues for any unrelated problems found
No testing initiative: Won't add tests to codebases without existing tests or update unrelated tests (unless explicitly instructed)
For detailed example of all the above, see comment thread in this PR: Adding tests to a repo, and seeing how copilot iterates on them
Limitations: (as of Aug 18, 2025)
No issue updates after assignment: Changes to issues after Copilot is assigned are ignored.
To fix: edit issue then unassign/reassign (creates new PR), or comment new instructions in the PR itself
Comment edits ignored: Unlike VSCode, edits to comments aren't recognized - forgot @copilot or hit enter early? Must send a new message with
@copilotNo clarifying questions: Copilot only follows initial ticket instructions without asking for missing details
From Docs - Limitations of Copilot coding agent:
Repository scope: Limited to the same repository as the assigned issue
Context access: Only accesses context from the assigned issue's repository
Single PR: Opens exactly one pull request per assigned task
Existing PRs: Cannot modify PRs it didn't create (can review them)
Unsigned commits: Requires commit rewriting if signed commits are required
Self-hosted runners: Doesn't work with self-hosted GitHub Actions runners
Managed accounts: Doesn't work in personal repos owned by managed user accounts
Content exclusions: Ignores content exclusion settings
🔥 Public code policy: Bypasses "Suggestions matching public code" blocks and may suggest public code anyway
GitHub only: Only works with GitHub-hosted repositories
How to Setup Github’s Cloud Coding Agent to listen to the Atlassian MCP Server
So, configuring the Cloud Coding Agent to work with the Jira MCP turned out to be a bit more obnoxious than initially anticipated. The crux of the problem being: Jira’s MCP service apparently requires a PKCE-flow auth token. Learning that this token was required and distinct/different from an API token or encrypted token with Basic auth was part of the time sink here. Furthermore, Github’s own documentation suggests secrets should be passed to the JSON MCP config as <COPILOT_MCP_SECRET> when in reality it should be $<COPILOT_MCP_SECRET>
Once that requirement was ascertained, shoutout to Justin Meyer for quickly figuring out a hacky way to grab one of those PKCE tokens to unblock investigation work. Below are the steps for configuring a repository in Github to leverage the Jira MCP server as part of its Cloud Coding Agent compute:
For the repository in question, navigate to its
SettingstabWithin the
Code and automationsection, scroll downCopilot, expand it, and clickCoding agentScroll down to the MCP configuration JSON block and input the following:
{ "mcpServers": { "jira": { "tools": ["*"], // for simplicity, allow all Atlassian tooling "type": "sse", "url": "https://mcp.atlassian.com/v1/sse", "headers": { "Authorization": "Bearer <PKCE token>" // see next steps for generating this } } } }Next, in your terminal ensure you have
modelcontextprotocol/inspectorinstalled. If not, run the following to install:npx @modelcontextprotocol/inspectorThis will open a localhost window that looks like the following:
In the left sidepane, under URL input the Jira MCP url -
https://mcp.atlassian.com/v1/sseThen press “Connect” at the bottom of the config options in the left sidepane (pictured it says “Reconnect”)
This will trigger the OAuth PKCE flow
After that is completed, select
Authfrom the top navigation barScroll down until you see where it says
Authentication Complete. Below that you’ll see a small dropdown forAccess Tokens. Expand that to find your token to use!Add your PKCE token to your Github secrets for Copilot, by Navigation to
Repository→Settings→Code and automationclickEnvironments→ clickcopilot→ Within theEnvironment Secretssection clickAdd environment secretBE SURE YOUR SECRET NAME IS PREFIXED WITH
COPILOT_MCP_so that the Clouding Agent may use it.Add the secret to your JSON config for the MCP server outlined in step 3, replacing
<PKCE token>with the name of yourCOPILOT_MCP_environment secret that you created in step 12.
{
"mcpServers": {
"jira": {
"tools": ["*"],
"type": "sse",
"url": "https://mcp.atlassian.com/v1/sse",
"headers": {
"Authorization": "Bearer $COPILOT_MCP_JIRA_TOKEN"
}
}
}
}Now, whenever you open an issue assigned to Copilot, if the issue instructions require reading a Jira ticket the agent will do that!
How to Setup Github’s Cloud Coding Agent to listen to the Figma MCP Server
For the repository in question, navigate to its
SettingstabWithin the
Code and automationsection, scroll downCopilot, expand it, and clickCoding agentScroll down to the MCP configuration JSON block and input the following:
{ "mcpServers": { "figma": { "tools": ["*"], "type": "http", "url": "http://figma-mcp-load-balancer-1597143317.us-east-1.elb.amazonaws.com/mcp", "headers": { "Authorization": "Bearer $COPILOT_MCP_FIGMA_TOKEN" } } } }Navigate to the Bitovi 1Password instance and locate the
Authorizationheader information there: https://start.1password.com/open/i?a=GV2FYFKQURG4RCTEGPUDM2ZFFU&v=mecxwd3bzdov2zdnr2g7hqeq64&i=kz5ck7vq5xxtzq73tajehufwcu&h=bitovi.1password.comStore the token portion of the information in Github’s
copilotenvironment secrets by navigating toRepository→Settings→Code and automationclickEnvironments→ clickcopilot→ Within theEnvironment Secretssection clickAdd environment secretBE SURE YOUR SECRET NAME IS PREFIXED WITH
COPILOT_MCP_so that the Clouding Agent may use it.In the above JSON snippet example, the token is named
COPILOT_MCP_FIGMA_TOKEN
Open a new Github issue and provide a link to a Figma node. Links are available by clicking on the code symbol in the top right corner of Layers and selecting
Copy link to focus view.Assign the issue to Copilot and create the issue! The agent should automatically pick up the task and successfully connect to the Figma MCP server!
How to Setup Jira to Instantly Create a Github Issue Assigned to Copilot with the Ticket Information
Small, lovely gotchas here, too. Conceptually, all this will be is some sort of trigger on the Jira side that, whenever a new issue is created within a specified project, this will fire an API request to Github to create an issue with the Jira ticket information and automatically assign it to Copilot – which will kick off the cloud coding agent flow.
On the Jira side, within the relevant project, navigate to
Project SettingsFrom
Project Settingsnavigate in the left pane toAutomationFrom
Automationin the top right corner, click the button that saysCreate Ruleand choose the “From scratch” dropdown option.For the initial trigger, within
Add a Triggersearch “Work Item Created” and select it.Next click
Add componentand in the right wizard, selectTHEN: Add an actionSearch “Web request”
Fill in your Web request to the Github API to look like the following:
{ "operationName": "CreateIssue", "query": "mutation CreateIssue($repositoryId: ID!, $title: String!, $body: String, $assigneeIds: [ID!]) { createIssue(input: { repositoryId: $repositoryId, title: $title, body: $body, assigneeIds: $assigneeIds }) { issue { id title assignees(first: 10) { nodes { login } } } } }", "variables": { "repositoryId": "R_kgDOPdj41Q", "title": "{{issue.key}} {{issue.summary}}", "body": " Implement the work described in Jira ticket {{issue.key}}", "assigneeIds": ["BOT_kgDOC9w8XQ"] } }This Uses the Github GraphQL API (seemingly their only service that will currently let you assign issues to the copilot bot)
Note the headers and be sure to generate Github PAT to pass that has Content Read/Write access to the Repo.
HEADS UP: YOU MUST ENSURE WHOEVER GENERATED THE ACCESS TOKEN HAS COPILOT PRIVILEGES IN THE ORGANIZATION – check the following link to verify:
https://github.com/organizations/<YOUR_ORG>/settings/copilot/seat_managementfor
repositoryIdand the bot id withinassigneeIds– you’ll need to query the Github API to pull those specific values for the repo in question. Here’s a helpful query you can make to pull that info:{ "query": "query($owner: String!, $name: String!, $first: Int!) { repository(owner: $owner, name: $name) { id suggestedActors(capabilities: [CAN_BE_ASSIGNED], first: $first) { nodes { ... on Bot { id } } } } }", "variables": { "owner": "bitovi", // or relevant owner "name": "taskflow", // or relevant repo "first": 1 } }Note: you’ll need to pass the following headers for all Github API requests:
{ "Accept": "application/vnd.github+json", "X-Github-API-Version": "2022-11-28", "Authorization": "Bearer <TOKEN>" // make a fine-grained access token in Github, ensure it has read/write access for Content }
You can run a
Validatefxn to ensure your request works (pictured is the result of the query for ID information)Once you’re satisfied, at the top right corner you can click
"Turn on rule"and turn it on.Now, whenever you make a new ticket in this Jira project, it should automatically create a Github issue in the specified repo assigned to copilot!
How to Setup Jira and Github to Automate Updating Ticket Status When PR is Opened
The theory here is that we will:
Establish a Jira webhook as an automation trigger
Configure a Github CICD pipeline
ymlfile to communicate with that webhook, if the pipeline passes.Have the webhook trigger hand off the ticket key to a rule that will update its status to
Done(but it could be to any accessible status configured in the project settings).
On the Jira side, within the relevant project, navigate to
Project SettingsFrom
Project Settingsnavigate in the left pane toAutomationFrom
Automationin the top right corner, click the button that saysCreate Ruleand choose the “From scratch” dropdown option.For the initial trigger, within
Add a Triggersearch “Incoming Webhook”Then click “Add Component” below your trigger in the workflow UI
Select
THEN: Add an actionand searchTransition work itemConfigure the
Destination statusto be whatever status you want the ticket updated to:Next, if your project doesn’t already have a CICD
ymlfile, create one. Below is a simpleymlto run alintcheck. Create this file within.github/workflows/<newfile>.ymlname: PR Lint Check and Jira Integration on: pull_request: types: [opened, synchronize, reopened, edited] jobs: lint: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v5 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: "20" cache: "npm" - name: Install dependencies run: npm ci - name: Run lint check id: lint run: npm run lintNow, here’s where we connect the dots to make the magic happen. Add a new job to run after the lint job that will communicate with our webhook. That would look like:
name: PR Lint Check and Jira Integration on: pull_request: types: [opened, synchronize, reopened, edited] jobs: lint: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v5 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: "20" cache: "npm" - name: Install dependencies run: npm ci - name: Run lint check id: lint run: npm run lint jira: runs-on: ubuntu-latest needs: lint steps: - name: Extract Jira ticket from branch name id: extract-ticket run: | branch_name="${{ github.head_ref }}" echo "Branch name: $branch_name" # Extract Jira ticket pattern (e.g., PROJ-123, ABC-456) # This regex matches common Jira ticket patterns jira_ticket=$(echo "$branch_name" | grep -oE '[A-Z]+-[0-9]+' | head -1 || echo "") if [ -n "$jira_ticket" ]; then echo "Found Jira ticket: $jira_ticket" echo "jira_ticket=$jira_ticket" >> $GITHUB_OUTPUT else echo "No Jira ticket found in branch name" echo "jira_ticket=" >> $GITHUB_OUTPUT fi - name: Update Jira Ticket Status if: steps.extract-ticket.outputs.jira_ticket != '' env: JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }} JIRA_EMAIL: ${{ secrets.JIRA_EMAIL }} JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }} run: | jira_ticket="${{ steps.extract-ticket.outputs.jira_ticket }}" if [ -z "$JIRA_BASE_URL" ] || [ -z "$JIRA_EMAIL" ] || [ -z "$JIRA_API_TOKEN" ]; then echo "⚠️ Jira credentials not configured. Please set JIRA_BASE_URL, JIRA_EMAIL, and JIRA_API_TOKEN secrets." exit 0 fi echo "Looking up Jira ticket: $jira_ticket" # Make API request to Jira to get ticket details response=$(curl -s -w "\n%{http_code}" -X POST \ -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \ -H "Content-type: application/json" \ -H "X-Automation-Webhook-Token: ${{ secrets.JIRA_WEBHOOK_TOKEN}}" \ --data "{\"issues\":[\"${jira_ticket}\"], \"data\": {\"releaseVersion\": \"5.3.2\"}}" \ "https://api-private.atlassian.com/automation/webhooks/jira/a/${{ secrets.JIRA_PRIVATE_ENDPOINT_ID}}") # Extract HTTP status code http_code=$(echo "$response" | tail -n1) response_body=$(echo "$response" | head -n -1) if [ "$http_code" = "200" ]; then echo "✅ Successfully found Jira ticket: $jira_ticket" echo "Ticket details:" echo "$response_body" | jq -r '.fields.summary // "No summary available"' echo "Status: $(echo "$response_body" | jq -r '.fields.status.name // "Unknown"')" echo "Assignee: $(echo "$response_body" | jq -r '.fields.assignee.displayName // "Unassigned"')" elif [ "$http_code" = "404" ]; then echo "❌ Jira ticket $jira_ticket not found" exit 1 else echo "❌ Failed to lookup Jira ticket. HTTP status: $http_code" echo "Response: $response_body" exit 1 fiNote: In this example, we first run the step
Extra Jira ticket from branch nameso that we know what ticket to lookup in our Jira webhook.Note: This ticket extraction assumes your branch naming convention will be as follows:
<PROJECT-NUMBER>-other-details-...The magic is below. No data is passed really aside from the ticket key because all we need to do is ping Jira with the key. Jira takes it from with logic management within its webhook:
response=$(curl -s -w "\n%{http_code}" -X POST \ -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \ -H "Content-type: application/json" \ -H "X-Automation-Webhook-Token: ${{ secrets.JIRA_WEBHOOK_TOKEN}}" \ --data "{\"issues\":[\"${jira_ticket}\"], \"data\": {\"releaseVersion\": \"5.3.2\"}}" \ "https://api-private.atlassian.com/automation/webhooks/jira/a/${{ secrets.JIRA_PRIVATE_ENDPOINT_ID}}")
You’ll probably notice some environment secrets in the above
yml. Navigate to your Github repository secrets settings, and set the following:JIRA_BASE_URL: https://<org>.atlassian.net/ JIRA_EMAIL: you@org.com // probably your email address that you use to access Jira JIRA_API_TOKEN: xxx // can be generated here https://id.atlassian.com/manage-profile/security/api-tokens JIRA_PRIVATE_ENDPOINT_ID: The last two path segmemts of id generated by Jira for its "Webhook url" JIRA_WEBHOOK_TOKEN: // Visible in the `Secret` section, when you created the Webhook trigger in JiraYou’re all set! Now whenever you open a PR with the appropriate branch naming, Github and Jira will communicate to update the status of the specified ticket to
Done(or whatever status you selected in your Jira webhook settings)
How to Setup AI-Coding-Agent as a MCP Proxy Service for Atlassian in the Github Cloud Coding Agent
Using local ai-coding-agent
Pretty straight-forward here with a small but crucial gotcha. We will proxy the Atlassian MCP server in this example.
Run the AI-Coding-Agent app locally
In a terminal
ngrokthe http 3000 port to create a navigable domainIn the AI-Coding-Agent local instance, run through the OAuth PKCE flow for Jira.
Once you see “authorized” for Jira in the UI, proceed. You may need to refresh the page.
Navigate to https://github.com/<org>/<repo>/settings/copilot/coding_agent and down to the
MCP ConfigurationsectionCreate a new server entry (above named
"my-proxy"and setup this config"my-proxy": { "type": "sse", "tools": ["*"], "url": "<ngrok-url>/api/mcp/jira/proxy", "headers": { "Content-Type": "application/json", "Authorization": "Bearer $COPILOT_MCP_your_secure_access_token_here" } }Note: Replace
<ngrok-url>with whatever ngrok provides as the published domain in your terminalNote: Set
COPILOT_MCP_your_secure_access_token_herewith whatever the value ofACCESS_TOKENis in theai-coding-agent.envfile in your Github secrets (SPECIFICALLY in thecopilotenvironment).Note: The gotcha in this instance is that the
typefor specifically the Atlassian proxy must be “sse” .
Save the MCP Configuration.
Create a new Github issue assigned to Copilot. Be sure to specify a ticket number and, to speed things along, in the Issue description tell it to use whatever the name of your proxy service (in this case
"my-proxy") is to fulfill the ticket search.
Entirely browser based (This is the ideal end-goal)
FAQs About Github Cloud Coding Agent (FE-461)
What environment is the github coding agent running in?
Documentation around how-to customize the dev environment the coding agent runs in: https://docs.github.com/en/copilot/how-tos/use-copilot-agents/coding-agent/customize-the-agent-environment
Look like it runs in Node using a version from the
cache toolsspecified by the specific Runner.To be clear, it can run on a Microsoft, Mac, or Ubuntu OS – this can specified through use of a specific runner image and setup before copilot runs via the copilot-setup-steps.yml
What version of node / linux / etc?
You can configure the runner environment for copilot like you could any other Github Action. There are various runner images maintained by Github, not to mention self-hosting your own custom runner.
Here’s an example of a runner image maintained by Github. You see see at the top level of this
jsonthat”toolcache”is defined. We see that term used in the logs whenever the coding agent runs its jobs. Here specific software likenodeandlinuxamong others can be specified.
How can we control it?
Through use of a copilot-setup-steps.yml file to specify environment setup BEFORE copilot agent runs. See above for more details.
Can we effectively specify the container?
Yes, you can specify the container. According to Github, within the
ymlfile these are the settings which you may customize (the rest would be ignored by copilot):In your copilot-setup-steps.yml file, you can only customize the following settings of the copilot-setup-steps job. If you try to customize other settings, your changes will be ignored. - steps - permissions - runs-on - container - services - snapshot - timeout-minutes (maximum value: 59)
How can we specify other environment capabilities? Examples:
a mock screen so browsers can run? Example: Xvfb
The copilot
ymlhas access to thestepssetting, so within steps you could install something like Xvfb.To be clear, for most of “what’s possible,” the answer to that question is another question:
“Is it possible in a normal Github runner via one of the outlined settings above? If so, then it should be possible here.”
could we run postgres?
According to the general documentation for setting up service containers in a Github Runner, you may setup a Postgres instance – the example in the link uses a Docker Hub
postgresimage. This information is specified within theservicessetting.The
servicessetting is accessible by the copilot-setup-steps.yml file and read by the coding agent, meaning one should be able to establish a postgres instance in their coding agent environment as well.
What can we do with it?
Can we tell it to run a build?
Yes. It does this by default in the course of building code that would want to be tested.
Can we tell it to run tests and respond to test failures.
Yes, the Github Issue would need prompting if there is a specific follow-up on test fail or that a PR can’t be considered complete unless all tests are passing.
This sort of instructing can be in the Github Issue or in the repo copilot instructions.
How do we do that?
Prompting in the Github issue, or, and probably cleaner -
Generate copilot instructions that tell Copilot how to build and test the repo and all relevant coding standards.
Is there a way to tell the AI to take what it’s done and keep going?