个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Update Jira from the Gerrit change you are already looking at. Chrome extension (MV3), Jira Cloud.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Changelink
Update Jira from the Gerrit change you are already looking at.
Reviewing a change on Gerrit and then switching to Jira to paste the link, write the
comment and move the status is three tabs and five minutes of nothing. Changelink does
that from the change page.
It reads the issue key out of the commit message, then talks to the Jira REST API
directly from the extension. There is no server in between, and no account to sign up for.查看完整 README ↗Reviewing a change on Gerrit and then switching to Jira to paste the link, write the comment and move the status is three tabs and five minutes of nothing. Changelink does that from the change page.
It reads the issue key out of the commit message, then talks to the Jira REST API directly from the extension. There is no server in between, and no account to sign up for.
From the Chrome Web Store: Changelink for Gerrit and Jira Cloud
From source:
git clone https://github.com/osntak/changelink-gerrit-jira.git
cd changelink-gerrit-jira
npm run build # writes changelink-v<version>.zip
Then open chrome://extensions, turn on Developer mode, and load the unpacked folder.
Open the options page (extension icon, then the gear button) and fill in these fields:
| Field | Example |
|---|---|
| Gerrit URL | https://gerrit.example.com |
| Jira URL | https://yourcompany.atlassian.net |
| Jira email | [email protected] |
| Jira API token | create one here |
| Gerrit username, HTTP password (optional) | Gerrit settings → HTTP Credentials |
Saving asks for access to those two sites. That prompt is the extension requesting host
permissions for the URLs you just typed, and it has to be allowed for anything to work.
The connection test checks the credentials against /rest/api/3/myself and reports the
HTTP status, so a wrong token says 401 instead of failing silently later.
The Gerrit username and HTTP password are only used when the Jira side reads Gerrit: the
related change search, the account lookup that tells your changes apart, and the change
details read when commenting from the list. Leave them empty and the browser's Gerrit login
session is used instead. When they
are filled in, the connection test checks them too, against /a/accounts/self.
With "Status to offer after a comment" set in the options, a comment on a merged change makes the popup pick that status for you, and the quick action button shows a button to move there. For a status that sets a resolution (such as Resolved), you can pick which one (such as Fixed) with "Resolution for the transition". Jira's default, usually Done, is preselected. If the issue has other required fields left empty (such as fix version), the status is left unchanged and you are told why.
The interface speaks English and Korean. The options page has a language setting with three choices: follow the browser, English, or Korean. It applies immediately, including in Gerrit tabs that are already open.
The template is yours to edit on the options page. Available placeholders:
| Placeholder | Value |
|---|---|
{title} | change subject |
{body} | commit message body |
{branch} | target branch |
{change_num} | change number |
{change_id} | Change-Id |
{project} | Gerrit project |
{owner} | change owner |
{date} | submit time, blank when the change is not submitted |
{url} | change URL |
{body} drops the lines that are noise inside Jira: jira:, Change-Id: and
cherry-picked from.
| Permission | Why |
|---|---|
storage | Keeps your URLs, credentials and template in chrome.storage.local |
scripting | Registers the content script on your Gerrit and Jira hosts, and re-injects it into open tabs after an extension reload |
| optional host access | Your Gerrit and Jira URLs, requested when you save them |
The manifest asks for no host up front. Which two sites this extension may touch is decided by what you type into the options page, and nothing else is reachable.
Credentials live in chrome.storage.local, never in sync, and never leave the browser
except as the Authorization header on requests to your own Jira. Tokens are never
logged. See PRIVACY.md.
/c/<project>/+/<number> change URLs.| File | Role |
|---|---|
service_worker.js | Every Jira API call and the Gerrit change search. Apart from the content script reading the open change's own details from Gerrit, nothing else makes network requests |
content_script.js | Reads the change context out of the Gerrit DOM, draws the quick action button and status badge. On Jira, draws the button that lists related Gerrit changes |
popup.js | The toolbar popup |
options.js | Settings, credential test, host permission request |
i18n.js | String table and language resolution shared by all four |
Push a vX.Y.Z tag and the release workflow syncs the manifest version, builds the zip
and publishes a GitHub release.
git tag v1.5.2 && git push origin v1.5.2
MIT. See LICENSE.