MCPcopy Index your code
hub / github.com/bleenco/abstruse

github.com/bleenco/abstruse @v2.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.1.0 ↗ · + Follow
1,351 symbols 3,281 edges 279 files 370 documented · 27%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Abstruse CI

Discord Go Report Card

Abstruse CI is a lightweight, yet powerful distributed CI/CD written in Golang. Its default configuration uses single node cluster with n workers, however, this cluster can be easily extended with more nodes if necessary.

This is the branch for v2.0.0 or later. If you are looking for Node.JS based v1.x.x version please check here.

Screenshot

Check Out Live Demo

Go to https://ci.abstruse.cc and login with username demo@bleenco.com and password abstruse.

Note: A demo user has only read permissions and can't add new repositories.

Get the Demo Running Locally

If you are interested about the status of this project, the easiest way to get Abstruse 2.x running is:

$ docker-compose -f https://raw.githubusercontent.com/bleenco/abstruse/master/configs/demo/default/docker-compose.yml up -d

You can also build docker images locally:

$ make docker
$ docker-compose -f configs/demo/default/docker-compose.yml up -d

This command will run abstruse-server with a single worker node abstruse-worker and MySQL database. You should be able to open up the installation wizard in your browser at http://localhost and finish the setup.

Building the Project from Source

To build the project from source, first clone or download repository, then:

$ make install_dependencies
$ make

Development

If you are interested in helping with the new release, you can get the development environment running like:

$ make install_dependencies

This will install all dependencies for building the project. Please note that you need Node.JS, yarn and go installed, preferably latest releases.

For UI development run:

$ cd web/abstruse
$ yarn start

For abstruse-server development with live-reload enabled run:

$ make dev

And for abstruse-worker development with live-reload run:

$ make dev_worker

License

See the license.

Extension points exported contracts — how you extend this code

EnvVariableStore (Interface)
EnvVariableStore defines operations on environment variables in datastore. [8 implementers]
server/core/env.go
Login (Interface)
(no doc)
web/abstruse/src/app/auth/shared/auth.model.ts
MountsStore (Interface)
MountsStore defines operations on mounts in datastore [8 implementers]
server/core/mount.go
UserData (Interface)
(no doc)
web/abstruse/src/app/auth/shared/auth.model.ts
PermissionStore (Interface)
PermissionStore defines operations on permissions. [8 implementers]
server/core/permission.go
TokenResponse (Interface)
(no doc)
web/abstruse/src/app/auth/shared/auth.model.ts
GitHookParser (Interface)
GitHookParser parses a post-commit hook from the SCM and returns mapped data. [2 implementers]
server/core/githook.go
Password (Interface)
(no doc)
web/abstruse/src/app/profile/shared/password.model.ts

Core symbols most depended-on inside this repo

Error
called by 182
worker/http/client.go
InternalServerError
called by 102
server/api/render/errors.go
subscribe
called by 75
server/ws/client.go
String
called by 54
internal/auth/jwt.go
JSON
called by 50
server/api/render/render.go
Close
called by 47
server/http/http.go
Find
called by 45
server/core/job.go
UnathorizedError
called by 30
server/api/render/errors.go

Shape

Method 710
Class 250
Function 237
Struct 119
Interface 29
TypeAlias 4
Enum 2

Languages

TypeScript54%
Go46%

Modules by API surface

server/scheduler/scheduler.go26 symbols
web/abstruse/src/app/teams/shared/user.model.ts19 symbols
web/abstruse/src/app/shared/components/modal/modal-stack.class.ts19 symbols
web/abstruse/src/app/builds/shared/builds.service.ts19 symbols
server/core/repo.go19 symbols
internal/auth/jwt.go19 symbols
web/abstruse/src/app/repos/shared/repos.service.ts18 symbols
server/api/api.go18 symbols
server/store/repo/repo.go17 symbols
pkg/gitscm/scm.go17 symbols
server/core/worker.go16 symbols
web/abstruse/src/app/teams/team-modal/team-modal.component.ts14 symbols

For agents

$ claude mcp add abstruse \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact