Delivery Management Tools
Complete documentation is available in the docs/ folder:
-
π Getting Started - Install, configure, and run your first commands
-
π» CLI Usage - Command-line interface guide
- MCP Tools Reference - 67 built-in tools
-
βοΈ Jobs (JobRunner) - 20 automation jobs
-
π€ AI Teammate Workflows - GitHub Actions automation
-
π Integrations - Connect to Jira, Confluence, Figma, GitHub, etc.
# One-line installation
curl https://github.com/IstiN/dmtools/releases/latest/download/install.sh -fsS | bash
# Verify installation
dmtools --version# Create configuration file
cat > dmtools.env << EOF
JIRA_BASE_PATH=https://your-company.atlassian.net
JIRA_EMAIL=your-email@company.com
JIRA_API_TOKEN=your-jira-api-token
GEMINI_API_KEY=your-gemini-api-key
EOF
# Secure the file
chmod 600 dmtools.env# Get a Jira ticket
dmtools jira_get_ticket YOUR-123
# Search tickets
dmtools jira_search_by_jql "project = PROJ AND status = Open" "summary,status"
# List all available tools
dmtools listSee First Steps Guide for more examples.
- Download the release from: DMTools Releases
- Set environment variables.
- Run the command:
API of base64 encoded
java -cp dmtools.jar com.github.istin.dmtools.job.UrlEncodedJobTrigger "$JOB_PARAMS"JOB_PARAMS: API Description
To build the JAR file, run:
gradle shadowJarDMTools includes a web application with OAuth2 authentication supporting Google, Microsoft, and GitHub login.
For complete OAuth2 setup instructions including:
- β Google, Microsoft, GitHub OAuth provider configuration
- β Production deployment on Google Cloud Run
- β GitHub Actions with secrets management
- β Security configuration and troubleshooting
π See the comprehensive guide: OAUTH_SETUP.md
- Production: https://dmtools-431977789017.us-central1.run.app
- API Documentation: https://dmtools-431977789017.us-central1.run.app/swagger-ui/index.html
JIRA_BASE_PATH=https://jira.company.com
JIRA_LOGIN_PASS_TOKEN=base64(email:token)
JIRA_AUTH_TYPE=Bearer
JIRA_WAIT_BEFORE_PERFORM=true
JIRA_LOGGING_ENABLED=true
JIRA_CLEAR_CACHE=true
JIRA_EXTRA_FIELDS_PROJECT=customfield_10001,customfield_10002
JIRA_EXTRA_FIELDS=summary,description,status- Go to Jira > Profile Settings > Security.
- Under "API Token", click Create and manage API tokens.
- Click Create API token and give it a name (e.g.,
dm_tools). - Copy the generated token.
- Convert
email:tokento base64 format. - Add the following to your configuration:
JIRA_LOGIN_PASS_TOKEN=base64(email:token) JIRA_AUTH_TYPE=Bearer
RALLY_TOKEN=your_rally_token
RALLY_PATH=https://rally1.rallydev.com- Log in to Rally.
- Navigate to User Profile > API Keys.
- Generate a new API key.
- Copy the token and add it to the configuration.
BITBUCKET_TOKEN=Bearer your_token
BITBUCKET_API_VERSION=V2
BITBUCKET_WORKSPACE=your-workspace
BITBUCKET_REPOSITORY=your-repo
BITBUCKET_BRANCH=main
BITBUCKET_BASE_PATH=https://api.bitbucket.org- Go to Bitbucket Settings > App passwords.
- Click Create app password.
- Select the required permissions (e.g., read/write access).
- Copy the generated token.
- Add the following to your configuration:
BITBUCKET_TOKEN=Bearer [token]
SOURCE_GITHUB_TOKEN=your_github_token
SOURCE_GITHUB_WORKSPACE=your-org
SOURCE_GITHUB_REPOSITORY=your-repo
SOURCE_GITHUB_BRANCH=main
SOURCE_GITHUB_BASE_PATH=https://api.github.com- Go to GitHub Settings > Developer settings > Personal access tokens.
- Generate a new token (classic).
- Select the required scopes (e.g., repo access).
- Copy the generated token.
- Add the following to your configuration:
SOURCE_GITHUB_TOKEN=[token]
GITLAB_TOKEN=your_gitlab_token
GITLAB_WORKSPACE=your-workspace
GITLAB_REPOSITORY=your-repo
GITLAB_BRANCH=main
GITLAB_BASE_PATH=https://gitlab.com/api/v4- Go to GitLab > User Settings > Access Tokens.
- Create a new personal access token.
- Select the required scopes (e.g., API access).
- Copy the generated token and add it to the configuration.
CONFLUENCE_BASE_PATH=https://confluence.company.com
CONFLUENCE_LOGIN_PASS_TOKEN=base64(email:token)
CONFLUENCE_GRAPHQL_PATH=/graphql
CONFLUENCE_DEFAULT_SPACE=TEAM- Go to Confluence > Profile > Settings > Password.
- Create an API token.
- Convert
email:tokento base64 format. - Add the following to your configuration:
CONFLUENCE_LOGIN_PASS_TOKEN=base64(email:token)
DIAL_BATH_PATH=https://api.dial.com/v1
DIAL_API_KEY=your_dial_key
DIAL_MODEL=gpt-4- Go to the DIAL Platform.
- Request your API key.
- Create a new secret key.
- Copy the key and add it to the configuration:
DIAL_API_KEY=[token]
CODE_AI_MODEL=gpt-4
TEST_AI_MODEL=gpt-4****---
FIGMA_BASE_PATH=https://api.figma.com/v1
FIGMA_TOKEN=your_figma_token- Log in to Figma.
- Go to Account Settings > Personal Access Tokens.
- Generate a new token.
- Copy the token and add it to the configuration.
FIREBASE_PROJECT_ID=your-project-id
FIREBASE_SERVICE_ACCOUNT_JSON_AUTH={"type":"service_account",...}- Go to the Firebase Console.
- Navigate to Project Settings > Service Accounts.
- Generate a new private key.
- Download the JSON file and use it in the configuration.
- Replace all placeholder values (e.g.,
your_token,your-org) with actual values. - Never commit sensitive tokens to version control. Use environment variables or secure vaults instead.
# Prompt Chunk Configurations
PROMPT_CHUNK_TOKEN_LIMIT=4000
PROMPT_CHUNK_MAX_SINGLE_FILE_SIZE_MB=4
PROMPT_CHUNK_MAX_TOTAL_FILES_SIZE_MB=4
PROMPT_CHUNK_MAX_FILES=10