1
0
Fork 0
mirror of https://code.naskya.net/repos/ndqEd synced 2025-03-18 08:26:19 +09:00
Commit graph

62 commits

Author SHA1 Message Date
fr33domlover
a419db5b5b Publish AS2 representation of SSH keys and list SSH keys in actor documents 2019-10-17 08:37:48 +00:00
fr33domlover
0be7fa05f8 In Push activity summary, list the titles of the pushed commits 2019-10-13 19:19:24 +00:00
fr33domlover
6cb86ebbf1 Install darcs post-apply hooks in darcs repos, no-op hook for now
In Darcs, any command can have a post hook (and a pre hook), and the hook
command can be set using a command-line option to the darcs command that you
run. So, in the Vervis SSH server, if we add a --posthook option when running
`darcs apply` to apply remotely received patches, we get a chance to process
the patch data much like in the git post-receive hook.

The setup this patch creates is similar to the git one: It writes a
_darcs/prefs/defaults file to all Darcs repos, and that defaults file sets the
posthook line for `darcs apply`. The posthook line simply executes the actual
hook program written in Haskell.

The current hook program is a one-liner that prints a line to stdout, so every
time you `darcs push` you can tell the hook got executed. The next step is to
implement the actual hook logic, by reading patch data from the environment
variable in which Darcs puts it.
2019-10-07 14:05:52 +00:00
fr33domlover
525a722439 Implement C2S Follow activity and add form on /publish page 2019-09-11 08:12:20 +00:00
fr33domlover
68e8b094a0 Handle post-receive hook, publish a Push activity 2019-09-09 00:27:45 +00:00
fr33domlover
3c01f4136c Mechanism for reporting git pushes to Vervis via post-receive hooks
Here's how it works:

- When Vervis starts, it writes a config file and it writes post-receive hooks
  into all the repos it manages
- When a git push is accepted, git runs the post-receive hook, which is a
  trivial shell script that executes the actual Haskell program implementing
  the hook logic
- The Haskell hook program generates a Push JSON object and HTTP POSTs it to
  Vervis running on localhost
- Vervis currently responds with an error, the next step is to implement the
  actual publishing of ForgeFed Push activities
2019-09-05 12:02:42 +00:00
fr33domlover
d4d45c6fe7 AP representation of git repo branches & preparation for Push activities 2019-08-28 15:31:40 +00:00
fr33domlover
2c18660a3b Provide AP representation of commits, and support committer field 2019-08-06 13:23:11 +00:00
fr33domlover
4b20ed23b6 Stop using Vervis.Import and NoImplicitPrelude, switch to plain regular imports 2019-06-15 08:24:08 +00:00
fr33domlover
71ab1c4459 Syntax-highlight the pretty JSON display of AP objects 2019-06-09 14:32:57 +00:00
fr33domlover
21b7325c1b Rename role related tables to reflect the role unification
There used to be project roles and repo roles, and they were separate. A while
ago I merged them, and there has been a single role system, used with both
repos and projects. However the table names were still "ProjectRole" and things
like that. This patch renames some tables to just refer to a "Role" because
there's only one kind of role system.
2019-05-31 15:02:57 +00:00
fr33domlover
eb514b8c3f Use path segment in HighlightStyleR, addStylesheet doesn't support query params 2019-05-27 19:54:11 +00:00
fr33domlover
e02a0fa4db Make pandoc highlight style configurable in settings and in query parameter 2019-05-27 18:30:48 +00:00
fr33domlover
b8b226d15c Highlight code segments in pandoc rendered source file views 2019-05-27 13:28:57 +00:00
fr33domlover
c0965a4c47 Default roles for repos and turn user/anon collab tables into proj/repo fields
* Repo collab now supports basic default roles developer/user/guest like
  project collab does
* User/Anon collab for repos and projects are now stored as fields instead of
  in dedicated tables, there was never a need for dedicated tables but I didn't
  see that before
* Repo push op is now part of `ProjectOperation`
* `RepoRole` and related code has been entirely removed, only project roles
  remain and they're used for both repos and projects
* This is the first not-totally-trivial DB migration in Vervis, it's automatic
  but please be careful and report errors
2019-01-29 22:24:32 +00:00
fr33domlover
c8b085fbc8 Plan for parsing Darcs patch for patch view 2018-07-07 16:05:10 +00:00
fr33domlover
6d97636b0f Commit info display, no diff diplay yet 2018-05-17 23:33:37 +00:00
fr33domlover
ce89bded73 Add a commit view route, nothing displayed yet 2018-05-17 15:46:57 +00:00
fr33domlover
bfa6436bb3 Atom and RSS feeds for repo history 2018-03-31 22:04:33 +00:00
fr33domlover
dd27f9d5b9 Replace unnecessary requireAuth with requireAuthId 2016-06-07 05:17:54 +00:00
fr33domlover
f2e4bb4291 Roles now under by sharers, i.e. now groups too 2016-06-06 17:29:54 +00:00
fr33domlover
5305caf0b0 Repo settings page, allow repos to move between projects 2016-06-05 21:11:05 +00:00
fr33domlover
72def092b2 If a repo belongs to a project, pick repo team from project team 2016-06-05 13:59:48 +00:00
fr33domlover
10c27464dd Make all role-related code repo-specific 2016-06-01 07:35:22 +00:00
fr33domlover
13bf3e1953 Write missing repo collaborator handlers 2016-05-31 01:52:04 +00:00
fr33domlover
40add444ba Repo collaborator removal 2016-05-30 14:32:20 +00:00
fr33domlover
d655e7302e Use the RBAC system to determine repo push access 2016-05-30 13:10:02 +00:00
fr33domlover
2d4fb85fca Dummy routes for repo team members 2016-05-29 14:13:25 +00:00
fr33domlover
c6c41b485c Finish route change, it builds now
I used this chance to make some name changes, add some utils, tweak some
imports, remove more `setTitle`s and so on. I also made person, repo,
key and project creation forms verify CI-uniqueness.
2016-05-23 20:46:54 +00:00
fr33domlover
49807ed27f Start big route change, doesn't build yet
I decided to add some safety to routes:

- Use dedicated newtypes
- Use CI for the CI-unique DB fields

Since such a change requires so many changes in many source files, this
is also a chance to do other such breaking changes. I'm recording the
change gradually. It won't build until I finish, so for now don't waste
time trying to build the app.
2016-05-23 12:24:14 +00:00
fr33domlover
f8ae122da7 When creating a repo, allow to pick a project for it 2016-05-14 13:05:29 +00:00
fr33domlover
4d16203e5d Repo deletion button 2016-05-13 19:23:56 +00:00
fr33domlover
80576d9caa Darcs pull over HTTP 2016-05-13 10:58:42 +00:00
fr33domlover
0d7349cb5d Split git and darcs specific handlers into separate submodules 2016-05-13 10:11:17 +00:00
fr33domlover
b2f5b20184 Minimal pagination for git and darcs change log 2016-05-13 08:49:19 +00:00
fr33domlover
5c288c7fdb Darcs change log view 2016-05-08 14:28:03 +00:00
fr33domlover
07b627eb9c Refactor Git log view into separate modules and Widgets 2016-05-06 10:29:02 +00:00
fr33domlover
ed2df29b66 Refactor git log view, make room for darcs 2016-05-05 16:30:30 +00:00
fr33domlover
3ed04941e8 Refactor git source view code and implement the same for Darcs 2016-05-05 07:29:19 +00:00
fr33domlover
c8c323f695 Split git repo source handler into sane small functions 2016-05-04 17:17:47 +00:00
fr33domlover
69229fb80e Enable Darcs repo creation using the executable
Darcs does export most of its module tree, but there's a problem: Darcs
relies on the current directory. It changes the current directory of the
process to the repo, and then proceeds using paths relative to the repo
dir. This is bad for my case here. If some other thread uses a relative
path (e.g. currently any repo path is relative by default) in parallel,
it will fail.

For now, the quick path around this problem is to use the `darcs`
program.
2016-05-04 11:44:06 +00:00
fr33domlover
4dd4e1b932 Let user choose VCS and fail to create repo if Darcs is chosen 2016-05-03 00:33:49 +00:00
fr33domlover
0b06b72b85 Implement an 'initRepo' that actually works 2016-05-02 23:11:32 +00:00
fr33domlover
d8d2d160a0 Render ticket description as Markdown
At the beginning the rendering was invalid because it parsed the entire
content as a single line. For some reason, when I read the ticket
description from the DB, all newlines are returned as CRLF. I don't know
why yet or whether it can or should be changed, but as a quick fix, I
made the handler function filter out the CRs from the text. Then the
rendering is correct.

This matches the documentation of Pandoc, which mentions the readers
assume newlines are encoded as LF.
2016-05-02 21:20:25 +00:00
fr33domlover
36b5ae983e Don't use git Util module from git-graph, it's been removed 2016-04-30 20:14:56 +00:00
fr33domlover
a0945bfd87 Use Pandoc for document rendering, for now just Markdown 2016-04-17 17:55:23 +00:00
fr33domlover
85319ddfdc Render README below repo tree view when present 2016-04-13 16:17:34 +00:00
fr33domlover
b42d9db432 Split source file rendering into separate module 2016-04-13 06:55:39 +00:00
fr33domlover
2323ec3fc0 Repo page is root repo source page, remove duplication 2016-04-12 23:38:21 +00:00
fr33domlover
d37108fa6f Add breadcrumb to repo tree content view 2016-04-12 23:10:46 +00:00