package com.atlassian.bitbucket.mesh.config;

import javax.annotation.Nonnull;
import java.util.Map;

/**
 * Properties for configuring {@code git} processes. This works in conjunction with {@link ProcessConfig}, which deals
 * with general configuration for all processes, and adds Git-specific configuration.
 */
public interface GitProcessConfig {

    /**
     * Retrieves a map of standard configuration values (e.g. {@code -c foo=bar}) to apply to <i>all</i> {@code git}
     * processes.
     *
     * @return standard configuration values
     */
    @Nonnull
    Map<String, String> getConfiguration();

    /**
     * Retrieves a map of standard environment variables to apply to <i>all</i> {@code git} processes.
     *
     * @return standard environment variables
     */
    @Nonnull
    Map<String, String> getEnvironment();
}
