{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1771999938,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","verify button for cloned repos"]],"content":"Signed commit: verify button for cloned repos","id":"4710ea5de6287e00b5da9a6d7cd6568901e3db45a71476b56dc83ec39b8be73d","sig":"7613ca0847af4eb1fd3f52ef0f59c8f6316ba75605085da8eb0a64ced6fe43897d6af26b84d218155ab61ab8e1b42cbc2a686f2eab9572734fb7d911961d3e85"}
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1771999938,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","verify button for cloned repos"]],"content":"Signed commit: verify button for cloned repos","id":"4710ea5de6287e00b5da9a6d7cd6568901e3db45a71476b56dc83ec39b8be73d","sig":"7613ca0847af4eb1fd3f52ef0f59c8f6316ba75605085da8eb0a64ced6fe43897d6af26b84d218155ab61ab8e1b42cbc2a686f2eab9572734fb7d911961d3e85"}
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1772000347,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","added status to patches\nrenamed chat-relay to project-relay"]],"content":"Signed commit: added status to patches\nrenamed chat-relay to project-relay","id":"3c717ed3935bf95a70a0e9ffbe655728d325f72e8cbeb3d38da37b1b6e1304a2","sig":"952584bfe718362864fdf117bb4c4b042dbea9fe2307bca2f94a9004394bb6fdb3f4f4acd6714bcfdb32453a9d09d24e2c97f512bc1b06e1ba3cd50556f67b6e"}
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1772000347,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","added status to patches\nrenamed chat-relay to project-relay"]],"content":"Signed commit: added status to patches\nrenamed chat-relay to project-relay","id":"3c717ed3935bf95a70a0e9ffbe655728d325f72e8cbeb3d38da37b1b6e1304a2","sig":"952584bfe718362864fdf117bb4c4b042dbea9fe2307bca2f94a9004394bb6fdb3f4f4acd6714bcfdb32453a9d09d24e2c97f512bc1b06e1ba3cd50556f67b6e"}
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1772002202,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","improving commit signing and verification"]],"content":"Signed commit: improving commit signing and verification","id":"c149ee64445a63b9a471d1866df86d702fe3fead1049a8e3272ea76a25f11094","sig":"f0745d02cb1b2ac012feb5e38cd4917eb9af48338eb13626aedae6ce73025758b2debe6874c5af3a4e252241405fdaa91042a031fa56c4fe0257c978d23babb2"}
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1772002202,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","improving commit signing and verification"]],"content":"Signed commit: improving commit signing and verification","id":"c149ee64445a63b9a471d1866df86d702fe3fead1049a8e3272ea76a25f11094","sig":"f0745d02cb1b2ac012feb5e38cd4917eb9af48338eb13626aedae6ce73025758b2debe6874c5af3a4e252241405fdaa91042a031fa56c4fe0257c978d23babb2"}
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1772003001,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","fix local cloning"]],"content":"Signed commit: fix local cloning","id":"0e7b4f06276988a2caf1c8fa9f6ba4a1cb683033c0714cc88699e3a4bda67d68","sig":"3c46ff9412a72f3ca39d216d6bd2eee7b9f70331fe8c0d557ee8339be4c05d03fe949e3aaef6e29126d4174b9f6d10de9e605273918106b9d40bc81cfaa1d290"}
returnerror(400,'Cannot create fork with only localhost. The original repository must have at least one public clone URL, or you need to configure a Tor .onion address.');
returnerror(400,'Cannot create fork with only localhost. The original repository must have at least one public clone URL, or you need to configure a Tor .onion address.');
}
}
// Preserve visibility and project-relay from original repo
// Log error but don't fail - some relays may have succeeded
// Log error but don't fail - some relays may have succeeded
logger.warn({error: err,npub: repoContext.npub,repo: repoContext.repo,eventId: highlightEvent.id},'Error publishing highlight event, some relays may have succeeded');
logger.warn({error: err,npub: repoContext.npub,repo: repoContext.repo,eventId: highlightEvent.id},'Error publishing highlight event, some relays may have succeeded');
throwhandleApiError(newError('Failed to publish issue to all relays'),{operation:'createIssue',npub: repoContext.npub,repo: repoContext.repo},'Failed to publish issue to all relays');
throwhandleApiError(newError('Failed to publish issue to all relays'),{operation:'createIssue',npub: repoContext.npub,repo: repoContext.repo},'Failed to publish issue to all relays');
throwhandleApiError(newError('Failed to publish patch to all relays'),{operation:'createPatch',npub: repoContext.npub,repo: repoContext.repo},'Failed to publish patch to all relays');
throwhandleApiError(newError('Failed to publish patch to all relays'),{operation:'createPatch',npub: repoContext.npub,repo: repoContext.repo},'Failed to publish patch to all relays');
throwhandleApiError(newError('Failed to publish status event to all relays'),{operation:'updatePatchStatus',npub: repoContext.npub,repo: repoContext.repo},'Failed to publish status event');
throwhandleApiError(newError('Failed to publish status event to all relays'),{operation:'updatePatchStatus',npub: repoContext.npub,repo: repoContext.repo},'Failed to publish status event');
throwhandleApiError(newError('Failed to publish pull request to all relays'),{operation:'createPR',npub: repoContext.npub,repo: repoContext.repo},'Failed to publish pull request to all relays');
throwhandleApiError(newError('Failed to publish pull request to all relays'),{operation:'createPR',npub: repoContext.npub,repo: repoContext.repo},'Failed to publish pull request to all relays');
error = 'Project relay is required for unlisted and restricted repositories. Please add at least one project-relay.';
loading = false;
return;
}
}
// Remove any existing client tags (from other clients) and ensure only our client tag exists
// Remove any existing client tags (from other clients) and ensure only our client tag exists
@ -2858,19 +2946,79 @@
{/if}
{/if}
<divclass="form-group">
<divclass="form-group">
<labelclass="checkbox-label">
<labelfor="visibility">
<input
Repository Visibility *
type="checkbox"
<small>
bind:checked={isPrivate}
<strong>Public:</strong> Repository and events are published to all relays and project relay.<br/>
disabled={loading}
<strong>Unlisted:</strong> Repository is public but events are only published to project relay.<br/>
/>
<strong>Restricted:</strong> Repository is private, events are only published to project relay.<br/>
<div>
<strong>Private:</strong> Repository is private, events are not published to relays (git-only).
<span>Private Repository</span>
</small>
<small>Private repositories are hidden from public listings and can only be accessed by the owner and maintainers. Git clone/fetch operations require authentication.</small>