kanboard-api-java

Java client for the Kanboard API

This project is maintained by phoen1x

Project

Quick StartStructureUsageDevelopment

Following YAGNI only Kanboard methods deemed necessary are implemented. A complete list of covered methods can be found here. Just start a pull-request or open a issue if you need more.

Quick start

Make sure you have a working Docker and docker-compose environment.

# download
git clone https://github.com/phoen1x/kanboard-api-java.git
cd kanboard-api-java

# start project
docker-compose up -d

# run integration tests
docker-compose exec maven ./mvnw -Dtest=Kanboard\*\*IntegrationTest test

# build jar file to project/target/kanboard-api-java.jar
docker-compose exec maven ./mvnw clean package

# remove root file permissions
docker-compose exec maven chown -R 1000:1000 /root/.m2 /project

# show build results in web browser - login admin:admin
google-chrome --incognito http://172.19.1.1

# stop project
docker-compose down

Build without Docker

# download
git clone https://github.com/phoen1x/kanboard-api-java.git

# build .jar file without integration tests
cd kanboard-api-java/project
./mvnw clean package

Structure

Structure

Usage

See KanboardSetupIntegrationTest on how to use this YAML file to setup your Kanban board.

kanboardApi:
    apiUrl: http://172.19.1.1/jsonrpc.php
    apiAuthToken: 19ffd9709d03ce50675c3a43d1c49c1ac207f4bc45f06c5b2701fbdf8929
    apiHeader: X-API-Auth
    apiVersion: 2.0
    apiUser: jsonrpc

kanboardSetup:
    user:
        username: skylar
        password: skylar
        email: change.me@livingfire.local
        role: app-admin
    projects:
        - name: skylar
          description: skylar default project
          identifier: skylar
          swimlanes:
            - name: alert
            - name: todo
          columns:
            - title: backlog
              position: 1
            - title: new
              position: 2
            - title: in progress
              position: 3
            - title: complete
              position: 4
        - name: shopping
          description: skylar shopping
          identifier: shopping
          columns:
            - title: backlog
              position: 1
            - title: in progress
              position: 2
            - title: complete
              position: 3
          tasks:
            - title: eggs
              recurrenceTrigger: 1
              recurrenceStatus: 1
            - title: milk
              recurrenceTrigger: 1
              recurrenceStatus: 1
            - title: sugar
              recurrenceTrigger: 1
              recurrenceStatus: 1
            - title: coffee
              recurrenceTrigger: 1
              recurrenceStatus: 1
            - title: salt
              recurrenceTrigger: 1
              recurrenceStatus: 1
          actions:
            - event_name: task.move.column
              action_name: \Kanboard\Action\TaskCloseColumn
              params:
                column_id: complete

Development

Debug Requests

Set SHOW_HTTP_REQUESTS = true in KanboardConstant.java

# start debug
find . -name 'KanboardConstant.java' \
    -exec sed -i 's/SHOW_HTTP_REQUESTS = false/SHOW_HTTP_REQUESTS = true/' {} ";"

# end debug
find . -name 'KanboardConstant.java' \
    -exec sed -i 's/SHOW_HTTP_REQUESTS = true/SHOW_HTTP_REQUESTS = false/' {} ";"

Author

The documentation is written in Markdown. If you want to improve the documentation send a pull-request.