hershaw / bugfixer Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
The README doesn't describe the project.
Write two sections into the README to cover "architecture" and "deployment". Leave all other files alone.
Only append the new sections to the end of the README.
Only add new material to the README, don't change existing contents.
When run in a GitHub action, it fails with the following error:
2023-05-23T13:17:59.0697298Z Successfully built 777544ad8f23
2023-05-23T13:17:59.0720697Z Successfully tagged bugfixer:latest
2023-05-23T13:17:59.0912051Z the input device is not a TTY
Make the command compatible with a device that is not a TTY
Don't include any natural language or explanation in your response. Only provide the requested and requested json output.
In the output of the script itself, the fixed output doesn't display well in the output.
On line 93 where it says print('fixing', filepath)
, print the fixed_contents instead of the filepath.
In bugfixer.py there is not enough documentation.
Add short and to-the-point docstrings for each function that are compliant with PEP 257. Add typehints for the outputs of each function as well. Don't change any of the code logic, only add comments and typehints
temperature is only being set for one call to the llm
In the constructor call to ChatOpenAI in the main function, include temperature=0
Remove the llm.temperature=0 from the fix_bugs function
When a PR is created, The issue number and title should be used in the title of the PR.
When a branch is created by create-pull-reques action needs a better name.
you can use the issue and title in the title of the PR created by peter-evans/create-pull-request@v5. using the input called title
. remember that this action is run on issue creations to use the issues.event api
Update the README example to use github variables to add the issue number into the PR title via the github.event.issue in github actions.
Use the issue number to create a branch in the format of bugfixer/ using the github.event.issue in the branch parameter of create-pull-request
the script does not produce pep8 compliant code.
Add to the SYSTEM_MESSAGE the requirement to produce pep8 compliant code.
You are changing stuff that I'm not asking you to.
Update the SYSTEM_MESSAGE to include the requirement that no changes other than the ones requested in the hints should be made.
The example workflow should be triggered when an issue is edited as well as when it is created.
add another event in the README example. don't include anything other than JSON in your output.
Any time json.loads is called, the output of the llm sometimes contains a natural language preamble which causes the loads to fail.
Add a function called strip_preamble that is called on the llm output before being passed to json.loads. This function should remove all characters until the first { which represents the start of the json output.
Remember to fix this in all places that the llm is called since there may be multiple.
When running test.sh inside of GitHub actions, it throws the following error:
/workdir/entrypoint.sh: 7: cannot create /tmp/input.md: Permission denied
Fix test.sh to ensure the proper permissions are given so that /tmp/input.md can be created.
The action.yml doesn't have enough inputs and needs to be able to include the issue number in a PR.
in action.yml you can add the following new inputs:
and in .github/workflows/main.yml you can use the issue and title in the title of the PR created by peter-evans/create-pull-request@v5. using the input called body
.
Outdated version number in call to hershaw/bugfix in the example in the README.
In the README example call to the hershaw/bugfixer@v24 action, set the version to update it to be hershaw/bugfixer@v38.
The action.yml doesn't have enough inputs and needs to be able to include the issue number in a PR.
in action.yml you can add the following new inputs:
and in .github/workflows/main.yml you can use the issue and title in the title of the PR created by peter-evans/create-pull-request@v5. README for peter-evans/create-pull-request@v5 is:
A GitHub action to create a pull request for changes to your repository in the actions workspace.
Changes to a repository in the Actions workspace persist between steps in a workflow.
This action is designed to be used in conjunction with other steps that modify or add files to your repository.
The changes will be automatically committed to a new branch and a pull request created.
Create Pull Request action will:
- uses: actions/checkout@v3
# Make changes to pull request here
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
You can also pin to a specific release version in the format @v5.x.x
For this action to work you must explicitly allow GitHub Actions to create pull requests.
This setting can be found in a repository's settings under Actions > General > Workflow permissions.
For repositories belonging to an organization, this setting can be managed by admins in organization settings under Actions > General > Workflow permissions.
All inputs are optional. If not set, sensible defaults will be used.
Note: If you want pull requests created by this action to trigger an on: push
or on: pull_request
workflow then you cannot use the default GITHUB_TOKEN
. See the documentation here for workarounds.
Name | Description | Default |
---|---|---|
token |
GITHUB_TOKEN (permissions contents: write and pull-requests: write ) or a repo scoped Personal Access Token (PAT). |
GITHUB_TOKEN |
path |
Relative path under GITHUB_WORKSPACE to the repository. |
GITHUB_WORKSPACE |
add-paths |
A comma or newline-separated list of file paths to commit. Paths should follow git's pathspec syntax. If no paths are specified, all new and modified files are added. See Add specific paths. | |
commit-message |
The message to use when committing changes. | [create-pull-request] automated change |
committer |
The committer name and email address in the format Display Name <[email protected]> . Defaults to the GitHub Actions bot user. |
GitHub <[email protected]> |
author |
The author name and email address in the format Display Name <[email protected]> . Defaults to the user who triggered the workflow run. |
${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> |
signoff |
Add Signed-off-by line by the committer at the end of the commit log message. |
false |
branch |
The pull request branch name. | create-pull-request/patch |
delete-branch |
Delete the branch when closing pull requests, and when undeleted after merging. |
false |
branch-suffix |
The branch suffix type when using the alternative branching strategy. Valid values are random , timestamp and short-commit-hash . See Alternative strategy for details. |
|
base |
Sets the pull request base branch. | Defaults to the branch checked out in the workflow. |
push-to-fork |
A fork of the checked-out parent repository to which the pull request branch will be pushed. e.g. owner/repo-fork . The pull request will be created to merge the fork's branch into the parent's base. See push pull request branches to a fork for details. |
|
title |
The title of the pull request. | Changes by create-pull-request action |
body |
The body of the pull request. | Automated changes by [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action |
body-path |
The path to a file containing the pull request body. Takes precedence over body . |
|
labels |
A comma or newline-separated list of labels. | |
assignees |
A comma or newline-separated list of assignees (GitHub usernames). | |
reviewers |
A comma or newline-separated list of reviewers (GitHub usernames) to request a review from. | |
team-reviewers |
A comma or newline-separated list of GitHub teams to request a review from. Note that a repo scoped PAT, or equivalent GitHub App permissions, are required. |
|
milestone |
The number of the milestone to associate this pull request with. | |
draft |
Create a draft pull request. It is not possible to change draft status after creation except through the web interface. | false |
For self-hosted runners behind a corporate proxy set the https_proxy
environment variable.
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
env:
https_proxy: http://<proxy_address>:<port>
The following outputs can be used by subsequent workflow steps.
pull-request-number
- The pull request number.pull-request-url
- The URL of the pull request.pull-request-operation
- The pull request operation performed by the action, created
, updated
or closed
.pull-request-head-sha
- The commit SHA of the pull request branch.Step outputs can be accessed as in the following example.
Note that in order to read the step outputs the action step must have an id.
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request@v5
- name: Check outputs
if: ${{ steps.cpr.outputs.pull-request-number }}
run: |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
The default behaviour of the action is to create a pull request that will be continually updated with new changes until it is merged or closed.
Changes are committed and pushed to a fixed-name branch, the name of which can be configured with the branch
input.
Any subsequent changes will be committed to the same branch and reflected in the open pull request.
How the action behaves:
branch
and a pull request created.delete-branch
is set to true
the branch
will be deleted.For further details about how the action works and usage guidelines, see Concepts, guidelines and advanced usage.
For some use cases it may be desirable to always create a new unique branch each time there are changes to be committed.
This strategy is not recommended because if not used carefully it could result in multiple pull requests being created unnecessarily. If in doubt, use the default strategy of creating an updating a fixed-name branch.
To use this strategy, set input branch-suffix
with one of the following options.
random
- Commits will be made to a branch suffixed with a random alpha-numeric string. e.g. create-pull-request/patch-6qj97jr
, create-pull-request/patch-5jrjhvd
timestamp
- Commits will be made to a branch suffixed by a timestamp. e.g. create-pull-request/patch-1569322532
, create-pull-request/patch-1569322552
short-commit-hash
- Commits will be made to a branch suffixed with the short SHA1 commit hash. e.g. create-pull-request/patch-fcdfb59
, create-pull-request/patch-394710b
The action defaults to adding all new and modified files.
If there are files that should not be included in the pull request, you can use the following methods to control the committed content.
The most straightforward way to handle unwanted files is simply to remove them in a step before the action runs.
- run: |
rm -rf temp-dir
rm temp-file.txt
If there are files or directories you want to ignore you can simply add them to a .gitignore
file at the root of your repository. The action will respect this file.
You can control which files are committed with the add-paths
input.
Paths should follow git's pathspec syntax.
File changes that do not match one of the paths will be stashed and restored after the action has completed.
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
with:
add-paths: |
*.java
docs/*.md
As well as relying on the action to handle uncommitted changes, you can additionally make your own commits before the action runs.
Note that the repository must be checked out on a branch with a remote, it won't work for events which checkout a commit.
steps:
- uses: actions/checkout@v3
- name: Create commits
run: |
git config user.name 'Peter Evans'
git config user.email '[email protected]'
date +%s > report.txt
git commit -am "Modify tracked file during workflow"
date +%s > new-report.txt
git add -A
git commit -m "Add untracked file during workflow"
- name: Uncommitted change
run: date +%s > report.txt
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
To create a project card for the pull request, pass the pull-request-number
step output to create-or-update-project-card action.
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request@v5
- name: Create or Update Project Card
if: ${{ steps.cpr.outputs.pull-request-number }}
uses: peter-evans/create-or-update-project-card@v2
with:
project-name: My project
column-name: My column
issue-number: ${{ steps.cpr.outputs.pull-request-number }}
Auto-merge can be enabled on a pull request allowing it to be automatically merged once requirements have been satisfied.
See enable-pull-request-automerge action for usage details.
The following workflow sets many of the action's inputs for reference purposes.
Check the defaults to avoid setting inputs unnecessarily.
See examples for more realistic use cases.
jobs:
createPullRequest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Make changes to pull request
run: date +%s > report.txt
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request@v5
with:
token: ${{ secrets.PAT }}
commit-message: Update report
committer: GitHub <[email protected]>
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
signoff: false
branch: example-patches
delete-branch: true
title: '[Example] Update report'
body: |
Update report
- Updated with *today's* date
- Auto-generated by [create-pull-request][1]
[1]: https://github.com/peter-evans/create-pull-request
labels: |
report
automated pr
assignees: peter-evans
reviewers: peter-evans
team-reviewers: |
developers
qa-team
milestone: 1
draft: false
An example based on the above reference configuration creates pull requests that look like this:
In bugfixer.py the temperature parameter to the llm is set too high.
In bugfixer.py set the temperature to zero in the following line:
llm = ChatOpenAI(model_name=MODEL_NAME)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.