Skip to content

Commit 5ff076b

Browse files
committed
make the Refresh Tags button clear the webhook URL
1 parent 3636f1e commit 5ff076b

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

Sources/UnidocServer/Operations/Interactions/Unidoc.PackageConfigOperation.swift

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import HTTP
2+
import GitHubAPI
23
import MongoDB
34
import UnidocUI
45
import Symbols
@@ -91,14 +92,33 @@ extension Unidoc.PackageConfigOperation:Unidoc.RestrictedOperation
9192
rebuildPackageList = updated != nil
9293

9394
case .expires(let when):
94-
/// TODO: we should diagnose when we try to request a tags fetch for a package that
95-
/// uses webhooks, as this will fail silently.
96-
let _:Bool? = try await server.db.crawlingTickets.move(
95+
if case _? = try await server.db.crawlingTickets.move(
9796
ticket: self.package,
9897
time: when,
9998
with: session)
99+
{
100+
updated = nil
101+
}
102+
else if
103+
let package:Unidoc.PackageMetadata = try await server.db.packages.detachWebhook(
104+
package: self.package,
105+
with: session),
106+
case .github(let origin)? = package.repo?.origin,
107+
let node:GitHub.Node = origin.node
108+
{
109+
let ticket:Unidoc.CrawlingTicket<Unidoc.Package> = .init(id: self.package,
110+
node: node,
111+
time: when)
112+
_ = try await server.db.crawlingTickets.create(tickets: [ticket],
113+
with: session)
114+
115+
updated = package.symbol
116+
}
117+
else
118+
{
119+
return .notFound("Package does not exist, or is missing GitHub node metadata\n")
120+
}
100121

101-
updated = nil
102122
rebuildPackageList = false
103123

104124
case .symbol(let symbol):

0 commit comments

Comments
 (0)