- This only views the manifest you pass in
- There is a hardcoded table header which is intended to be the origin URL of the manifest file.
- Currently you need to pass in the manifest but we should pass in a URL and the UI should fetch the manifest from the URL instead (I had no network on my plane ride while building this.)
- A simple answer could be to create an API (GitHub Actions?) that just asks ChatGPT to refactor the
.ubiquibot-config.yml
and push the commit. Refactoring via LLM seems pretty straightforward in my experience. - The optimized answer is to parse the YML file, and target the config based on its URL/location. Then edit the YML file using traditional code and push the commit using the user's credentials (there is a "GitHub Sign In" button.)
- I think that the remove or add buttons should display intelligently. Given that I admin two organizations that use the bot, its a bit tricky. To start perhaps it makes sense to display both but we should figure a solution out thats simple to implement.
Pass the manifest in the ?manifest=
query parameter for the UI to parse it.
?manifest={%22name%22:%22Start%20|%20Stop%22,%22description%22:%22Assign%20or%20un-assign%20yourself%20from%20an%20issue.%22,%22ubiquity:listeners%22:[%22issue_comment.created%22,%22issues.assigned%22,%22pull_request.opened%22%20],%22commands%22:{%22start%22:{%22ubiquity:example%22:%22/start%22,%22description%22:%22Assign%20yourself%20to%20the%20issue.%22},%22stop%22:{%22ubiquity:example%22:%22/stop%22,%22description%22:%22Unassign%20yourself%20from%20the%20issue.%22}}}
The browser automatically URI encodes it:
{
"name": "Start | Stop",
"description": "Assign or un-assign yourself from an issue.",
"ubiquity:listeners": ["issue_comment.created", "issues.assigned", "pull_request.opened"],
"commands": {
"start": {
"ubiquity:example": "/start",
"description": "Assign yourself to the issue."
},
"stop": {
"ubiquity:example": "/stop",
"description": "Unassign yourself from the issue."
}
}
}
- Clone the repository
- Run
yarn
to install dependencies - OAuth: Obtain your GitHub OAuth App client ID and secret from your OAuth app settings, and set the callback URL to match the one given by Supabase when enabling GitHub provider OAuth.
- Replace the hardcoded
SUPABASE_URL
andSUPABASE_KEY
inbuild/esbuild-build.ts
with your Supabase URL and key (Optionally use.env
and useprocess.env
instead.) - Run
yarn start
and visitlocalhost:8080
in your browser. - Once logged in you should see the orgs that you own.
- Select an org > select a config (dev | prod) > select a plugin > edit/add/remove > push to GitHub.
TODO: Update readme with a better overview of the project.