maximbircu / pull-request-assistant Goto Github PK
View Code? Open in Web Editor NEWA GitHub Action that represents an assistant in form of a CLI tool that you could use inside a GitHub Pull Request.
License: Apache License 2.0
A GitHub Action that represents an assistant in form of a CLI tool that you could use inside a GitHub Pull Request.
License: Apache License 2.0
It seems that I forgot to add a release
script to the pacjages.json file which fails the release process
Push a new release branch
Expected
The Assistant should be released
Actual
The release workflow fails https://github.com/maximbircu/pull-request-assistant/actions/runs/2638439409
It would be nice to have the option to configure Friday so that every repo contributor can run it for cases when all contributors can merge PRs.
Do not block running Friday commands if the list of controllers is empty.
The PR Assistant should act like a CLI tool embedded into the Github Pull Request UI. The user should be able to run CLI commands by adding them to the PR in for of top-level comments.
The very first command should automate and simplify the PR merging process.
It would be nice to set up the structure of the project in such a way that it will be fairly easy to add new commands to it.
Implement the Assistant:
Implement the merge
command
Suggested configuration file
{
"assistant_name": "friday",
"log_level": "info",
"assistant_controllers": [],
"commands": {
"merge": {
"default_merge_method": "merge",
"required_number_of_approvals": 1,
"commit_message_template_path": "/assets/commands/merge/commit-template.txt",
"issue_id_provider": "(pullRequest) => pullRequest.sourceBranch.match(/\\d+/)[0]",
"reviewers_provider": "(reviewers) => reviewers.join(' ')",
"description_provider": "(pullRequest) => pullRequest.description"
}
}
}
yarn build
to generate the dist
with artifactsfriday
merge commands on the PRIt's a common practice to marc the PRs that are not ready to be merged with a GitHub label. For example, it could be named do-not-merge
It would be nice if we'd be able to make the assistant aware of these labels so that it will take care of and not merge the PR in case it's not ready to be merged.
Add the ability to add a label name to the configuration, which will be considered as a blocker for the merge command when they are present on the PR.
You'll have to verify the presence of the label here https://github.com/maximbircu/pull-request-assistant/blob/master/src/domain/commands/merge/MergeabilityProvider.js#L14
Currently, the whole commit message is added to the changelog table of the dry-run message of the merge
command. This looks good in the case of one-line commit messages but doesn't look neat for multi-line ones.
friday merge --dry-run
Expected
Only the first line, which represents the title of the commit message, should be added to the changelog table.
Actual
The whole commit message is added to the changelog table, which makes the changelog table look ugly
We have to use just the commit message title instead of the whole commit message here
Make Friday react to PR review messages like it does for regular comments.
If I leave a PR review with friday merge
command, it should pick it up as a usual command and execute the merge action.
Configure Friday for the Friday repository.
Try running Friday commands on this repository and make sure they are running properly.
Finally, the PR Assistant is almost ready to be used, and the only missing thing is docs. Yeah, a set of good simple docs that will make it clear how to gather all benefits from the Assistant and will explain how to configure it.
Cover the Pull Request Assistant with documentation. For now, the documentation could be written into MD files inside the repo.
Proofread the docs and make sure they are well structured, clear, and without typos.
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.