Federated forge server

[[ 🗃 ^rjQ3E vervis ]] :: [📥 Inbox] [📤 Outbox] [🐤 Followers] [🤝 Collaborators] [🛠 Commits]

Clone

HTTPS: git clone https://vervis.peers.community/repos/rjQ3E

SSH: git clone USERNAME@vervis.peers.community:rjQ3E

Branches

Tags

main :: templates / repo /

source-git.hamlet

$# This file is part of Vervis.
$#
$# Written in 2016, 2018, 2019, 2020, 2022, 2023, 2024
$# by fr33domlover <fr33domlover@riseup.net>.
$#
$# ♡ Copying is an act of love. Please copy, reuse and share.
$#
$# The author(s) have dedicated all copyright and related and neighboring
$# rights to this software to the public domain worldwide. This software is
$# distributed without any warranty.
$#
$# You should have received a copy of the CC0 Public Domain Dedication along
$# with this software. If not, see
$# <http://creativecommons.org/publicdomain/zero/1.0/>.

$# $maybe (s, j, w, sw) <- mproject
$#   <p>
$#     Belongs to project
$#     <a href=@{ProjectR (sharerIdent s) (projectIdent j)}>
$#       $maybe name <- projectName j
$#         #{name}
$#       $nothing
$#         #{prj2text $ projectIdent j}
$#
$#   ^{personNavW $ sharerIdent s}
$#
$#   ^{projectNavW j w sw (sharerIdent s) (projectIdent j)}

<p>#{actorDesc actor}

$# ^{personNavW user}

<div>
  <span>
    [[ 🗃
    <a href=@{RepoR repo}>
      ^#{keyHashidText repo} #{actorName actor}
    ]] ::
  <span>
    <a href=@{RepoInboxR repo}>
      [📥 Inbox]
  <span>
    <a href=@{RepoOutboxR repo}>
      [📤 Outbox]
  <span>
    <a href=@{RepoErrboxR repo}>
      [💥 Errbox]
  <span>
    <a href=@{RepoFollowersR repo}>
      [🐤 Followers]
  <span>
    <a href=@{RepoCollabsR repo}>
      [🤝 Collaborators]
  <span>
    <a href=@{RepoProjectsR repo}>
      [🏗 Projects]
  <span>
    <a href=@{RepoCommitsR repo}>
      [🛠 Commits]
  $maybe loomID <- repoLoom repository
    <span>
      <a href=@{LoomClothsR $ hashLoom loomID}>
        [🧩 Merge Requests]

^{personPermitsForResourceW permits}

^{followW' $ Left $ repoActor repository}

<div>
  <a href=@{RepoNewR}>
    [⑂ Fork]

$if not $ null looms
  <h2>Enable patch tracking
  <ul>
    $forall (loomID, actor) <- looms
      <li>
        Loom
        <a href=@{LoomR $ hashLoom loomID}>
          +#{keyHashidText $ hashLoom loomID} #{actorName actor}
        wants to link with this repo
        ^{buttonW POST "Link" $ RepoLinkR repo $ hashLoom loomID}

<h2>Clone

<p>
  HTTPS:
  <code>git clone @{RepoR repo}
<p>
  SSH:
  <code>git clone USERNAME@#{renderAuthority host}:#{keyHashidText repo}

<h2>Branches

<ul>
  $forall branch <- branches
    <li>
      <a href=@{RepoBranchSourceR repo branch []}>#{branch}

<h2>Tags

<ul>
  $forall tag <- tags
    <li>
      <a href=@{RepoBranchSourceR repo tag []}>#{tag}

<div>
  <a href=@{RepoBranchSourceR repo ref []}>#{ref}
  :: #
  $forall (piece, piecePath) <- dirs
    <a href=@{RepoBranchSourceR repo ref piecePath}>#{piece}
    / #

$case sv
  $of SourceFile (FileView name body)
    <h2>#{name}
    ^{body}
  $of SourceDir (DirectoryView mname ents mreadme)
    <h2>#{fromMaybe "Files" mname}
    $if null ents
      <p>No files!
    $else
      <table>
        $forall DirEntry type' name <- ents
          <tr>
            <td>
              $case type'
                $of TypeBlob
                  🗎
                $of TypeTree
                  🗀
            <td>
              <a href=@{RepoBranchSourceR repo ref (dir ++ [name])}>
                #{name}
    $maybe (readmeName, readmeWidget) <- mreadme
      <h2>#{readmeName}
      ^{readmeWidget}

<div>
  ^{buttonW POST "Delete this repo" (RepoDeleteR repo)}

<div>
  <a href=@?{(RepoR repo, [("prettyjson","true")])}>
    [See repo JSON]

[See repo JSON]