{"id":18580187,"url":"https://github.com/brcolow/jfxmirror-bot","last_synced_at":"2025-07-09T18:32:12.172Z","repository":{"id":85823266,"uuid":"123990763","full_name":"brcolow/jfxmirror-bot","owner":"brcolow","description":"Makes the transition from GitHub Pull Request to upstream OpenJFX contribution smoother.","archived":false,"fork":false,"pushed_at":"2018-04-03T09:04:53.000Z","size":608,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-05-16T03:08:56.052Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brcolow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-05T23:09:56.000Z","updated_at":"2018-04-03T09:04:55.000Z","dependencies_parsed_at":"2023-03-12T21:30:28.580Z","dependency_job_id":null,"html_url":"https://github.com/brcolow/jfxmirror-bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/brcolow/jfxmirror-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brcolow%2Fjfxmirror-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brcolow%2Fjfxmirror-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brcolow%2Fjfxmirror-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brcolow%2Fjfxmirror-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brcolow","download_url":"https://codeload.github.com/brcolow/jfxmirror-bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brcolow%2Fjfxmirror-bot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264502387,"owners_count":23618587,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T23:44:33.818Z","updated_at":"2025-07-09T18:32:12.071Z","avatar_url":"https://github.com/brcolow.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jfxmirror-bot\n\nHelps contributors to the [OpenJFX GitHub repository](https://github.com/javafxports/openjdk-jfx) get their pull\nrequests accepted into [OpenJFX upstream](http://hg.openjdk.java.net/openjfx/jfx/rt/).\n\n## Setup\n\nA webhook must be added to the `javafxports/openjdk-jfx` GitHub repository so that pull request events are sent (pushed)\nto the bot. Follow the GitHub guide about [creating webhooks](https://developer.github.com/webhooks/creating/), making\nthe following substitutions:\n\n* Payload URL: `http://${SERVER_URL}/ghevent` where `${SERVER_URL}` is the URL of the server running this bot\n* Content Type: `application/json`\n* Events: Select (only) `Pull request` and `Issue comments`\n\n## Running The Bot\n\nCreate a GitHub [personal access token](https://github.com/settings/tokens) for jfxmirror_bot. No scopes\nneed to be checked. The `JFXMIRROR_GH_TOKEN` environment variable must be set to that access token to run jfxmirror-bot.\n\nTo set the environment variable for the current shell and run the bot you can use:\n\n* Windows (powershell): `$env:jfxmirror_gh_token=\"GH_ACCESS_TOKEN\"; .\\gradlew run`\n* Windows (cmd.exe):    `set JFXMIRROR_GH_TOKEN=\"GH_ACCESS_TOKEN\" \u0026\u0026 .\\gradlew run`\n* *nix: `export jfxmirror_gh_token=\"GH_ACCESS_TOKEN\" \u0026\u0026 ./gradlew run`\n\nOr you can set the environment variable permanently. I recommend using Rapid Environment Editor on Windows. For *nix\nvariants, they can be set as usual in your shell's `rc` file (e.g. `.bashrc`, `.zshrc`, etc.). The bot can be run\nmost easily by using `gradlew run`. It should also be possible to create a fat/uber JAR and run it using `java -jar`\nusing something like the gradle plugin [shadow](https://github.com/johnrengelman/shadow).\n\n## What The Bot Does\n\nWhen a pull request is opened, edited, or re-opened on the `javafxports/openjdk-jfx` GitHub repository, the bot\nreceives a notification from GitHub's webhooks. It then creates a new, pending status check for that PR (similar to how\nwe have status checks for Travis CI and Appveyor) and then does the following:\n\n* Generates a mercurial patch encompassing all of the changes in the PR.\n* Imports that patch in to a local mercurial clone of the upstream OpenJFX repository, managed by this bot.\n* Generates a webrev for the imported patch.\n* Runs jcheck against the imported patch.\n* Checks to see if the user who opened the PR has signed the OCA. The bot keeps a record of OCA signers. If we have\nno record of them signing the OCA, the bot comments on the PR and helps them through the process.\n* Checks to see if any JBS bugs are referenced by the PR (checking the branch name, title, and commit messages) and,\nusing the JIRA API, if those founds are indeed actual valid JBS bugs for JavaFX.\n\nIf the patch does not apply cleanly to upstream the status check is set to \"failure\". If the bot encounters an error\nthat is not the user who opened the PR's fault (such as file permission issues) the status is set to \"error\". Otherwise,\nthe status is set to \"success\". The status check provides a link to the status page that contains all of the generated\ndata listed above.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrcolow%2Fjfxmirror-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrcolow%2Fjfxmirror-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrcolow%2Fjfxmirror-bot/lists"}