1. A method for enforcing change policies in a software development environment comprises: receiving at a source control system a request to make a change to a project; defining a change management role and a policy to evaluate and allow or deny the change based on the defined change management rule and policy automatically and wherein the change management policy consists of a specified type of change that is being requested, a set of variables about the proposed change and a set of actions that is to be taken for each type of change and wherein the change management rule is defined based on the specified type of change, the set of variables and the set of actions, and wherein the specified type of change and the set of variables are captured from an user input or from a policy, user and group database, and wherein the change management policy is enforced automatically by mapping a physical source control system codelines to the project and by maintaining a state of the project with a user or group assigned to the project, and wherein the change management policy includes defining types of changes for triggering a rule, and wherein a release condition to which a particular project belongs is determined from a release management system, and a current state for a codeline is checked from a code review system to invoke an appropriate set of policies to accept or reject changes, when a change is submitted; before making said changes, retrieving user information associated with a user requesting said changes, and determining a type of the requested change, and wherein said requested change is a first type of change or a second type of change, and wherein the first type of change and the second type of change are different types of changes from a set consisting of a codeline merge in the project, a codeline branch in the project, an addition of one or more features to a set of features that are specified in a data associated with the project, a downgrading or a deferral of one or more bugs in the project and a closing of bugs; wherein, according to one or more policy rules, a first user is allowed to make the first type of change, and a second user is allowed to make the second type of change but not the first type of change; based at least in part on the user information and the type of the requested change, evaluating the one or more policy rules to determine if the user is allowed to make the requested change; and in response to evaluating the one or more policy rules, storing said requested change in the source control system when the user is allowed to make the requested change and rejecting said requested change when the user is not allowed to make the requested change; and wherein the method is performed by one or more computing devices; determining that the first requested change is to a first codeline within the project, when the requested change is a first requested change and a second requested change to a second codeline not within the project is also received, in the request, with the first requested change; determining a first state of the first codeline and a second state of the second codeline, and wherein according to the one or more policy rules, the user is allowed to make changes to codelines in the first state but not to code lines codelines in the second state, wherein the second state is different than the first state; wherein evaluating the one or more policy rules to determine if the user is allowed to make the first requested change is further based at least in part on the first state of the first codeline and determining if the user is allowed to make the second requested change based at least in part on the second state of the second codeline.